View unanswered posts | View active topics It is currently Thu Dec 26, 2024 5:45 pm



Reply to topic  [ 12 posts ] 
 Unknown crash reason. 
Author Message
User avatar

Joined: Wed Feb 17, 2010 12:07 am
Posts: 1545
Location: That small peaceful place called Hell.
Reply with quote
Post Unknown crash reason.
Alright, me and CC48 have been at it but can't seem to get this to work.

It crashes before it gives any errors but were guessing its somewhere based on switching control back to the user.

I can't tell you what the script's purpose is. Don't want to show anyone right now, not till intial release.

Heres the code

Thanks. Also if it gives any motivation, whoever manages to find out gets a sneak at it.

Code:
function Create(self)
      
   self.gopen = false
   self.gotweap = false;
   self.gotactor = false;

   self.gOffset = Vector(-0, -75);
   self.vectx = Vector(10,0)
   self.vectxx = Vector(-10,0)
   self.vecty = Vector(0,10)
   self.vectyy = Vector(0,-10)
   
    self.frone = "YOU CAN'T KNOW WHAT THIS IS YET";
    self.frtwo = "YOU CAN'T KNOW WHAT THIS IS YET";
    self.frthree = "YOU CAN'T KNOW WHAT THIS IS YET";
    self.alone = "YOU CAN'T KNOW WHAT THIS IS YET";
    self.altwo = "YOU CAN'T KNOW WHAT THIS IS YET";
    self.althree = "YOU CAN'T KNOW WHAT THIS IS YET";
    self.htone = "YOU CAN'T KNOW WHAT THIS IS YET";
    self.httwo = "YOU CAN'T KNOW WHAT THIS IS YET";
    self.htthree = "YOU CAN'T KNOW WHAT THIS IS YET";

    self.mainweaponclass = "YOU CAN'T KNOW WHAT THIS IS YET";

   self.c = CreateActor("YOU CAN'T KNOW WHAT THIS IS YET");

   print("YOU CAN'T KNOW WHAT THIS IS YET")   
   for weapon = 1,MovableMan:GetMOIDCount()-1 do
        self.gun = MovableMan:GetMOFromID(weapon);
      if self.gotweap == false then
         if self.gun.PresetName == self.frone or self.gun.PresetName == self.frtwo or self.gun.PresetName == self.frthree or self.gun.PresetName == self.alone or self.gun.PresetName == self.altwo or self.gun.PresetName == self.althree or self.gun.PresetName == self.HTone or self.gun.PresetName == self.HTtwo or self.gun.PresetName == self.HTthree then
            if self.gun.ClassName == self.mainweaponclass then
               self.gotweap = true
               self.parentgun = ToHDFirearm(self.gun)
            else
               self.gotweap = false
               self.ToDelete = true
            end
         else
            self.ToDelete = true
         end
      end
   end
end

   
function Update(self)
   self.actor = MovableMan:GetMOFromID(self.parentgun.RootID);
   if MovableMan:IsActor(self.actor) and self.actor.Team == 0 and self.actor.PresetName ~= "YOU CAN'T KNOW WHAT THIS IS YET" then
      self.user = ToActor(self.actor)
      self.angle = ToActor(self.user):GetAimAngle(true);
      self.control = self.user:GetController().Player
      self.gotactor = true
   end
   for particle in MovableMan.Particles do
      if particle.PresetName == self.PresetName then
         self.ToDelete = false
         self.ToSettle = false
         self.PinStrength = 1000
      end
   end
   if UInputMan:KeyPressed(7) then
      if self.gopen == false then
         if self.user:IsPlayerControlled() and self.gotactor == true then
            self.gopen = true
            self.g = CreateAEmitter("YOU CAN'T KNOW WHAT THIS IS YET")
            MovableMan:AddParticle(self.g);
            self.g.Pos = self.user.Pos + self.gOffset
            self.g.ToDelete = false
            self.g.ToSettle = false
            self.g.PinStrength = 1000
            if MovableMan:IsActor(self.c) == false then
               self.c.Pos = self.g.Pos;
               self.c.Team = 0
               MovableMan:AddActor(self.c);
            end
            ActivityMan:GetActivity():SwitchToActor(self.c,self.control,-1);
         end   

      -- I BELEIVE IT CRASHES SOMEWHERE FROM HERE.

      else
         ActivityMan:GetActivity():SwitchToActor(self.user,self.control,self.user.Team)
         self.g.ToDelete = true
         self.c.ToDelete = true   
         self.gopen = false
      end

      -- TO HERE, MAYBE IM WRONG THOUGH.

   end
   if self.c:IsPlayerControlled() then
      self.leftright = 0;
      self.updown = 0;
      self.cMovement = UInputMan:GetMouseMovement(0);
      if UInputMan:KeyHeld(1) then
         self.leftright = -1;
      elseif UInputMan:KeyHeld(4) then
         self.leftright = 1;
      end               
      if UInputMan:KeyHeld(23) then
         self.updown = -1;
      elseif UInputMan:KeyHeld(19) then
         self.updown = 1;
      end            
      self.keymove = Vector(self.leftright * 2, self.updown * 2);
      self.desiredPos = self.c.Pos + self.cMovement + self.keymove
      self.c.Pos = self.desiredPos;
      if self.c.Pos.X < self.vectx.X and self.c.Pos.X > self.vectxx.X and self.c.Pos.Y < self.vecty.Y and self.c.Pos.Y > self.vectyy.Y then
         print("In Range")
      end
   end
   if self.parentgun.ToDelete == true or self.parentgun == nil then
      self.ToDelete = true
      self.gotweap = false
   end
end

function Destroy(self)
   print("YOU CAN'T KNOW WHAT THIS IS YET")
end


Last edited by Coops on Wed Oct 27, 2010 10:43 pm, edited 1 time in total.



Wed Oct 27, 2010 10:20 pm
Profile
User avatar

Joined: Mon Jun 15, 2009 4:02 pm
Posts: 905
Reply with quote
Post Re: Unknown crash reason.
It would be helpful if you actually said what the error was.


Wed Oct 27, 2010 10:36 pm
Profile WWW
User avatar

Joined: Wed Feb 17, 2010 12:07 am
Posts: 1545
Location: That small peaceful place called Hell.
Reply with quote
Post Re: Unknown crash reason.
It crashes before it gives any errors.


Wed Oct 27, 2010 10:40 pm
Profile
User avatar

Joined: Wed Feb 17, 2010 12:07 am
Posts: 1545
Location: That small peaceful place called Hell.
Reply with quote
Post Re: Unknown crash reason.
It seems to be focused around getting rid of self.c and swicthing control to self.user


Wed Oct 27, 2010 10:52 pm
Profile
Data Realms Elite
Data Realms Elite
User avatar

Joined: Tue May 25, 2010 8:27 pm
Posts: 4521
Location: Constant motion
Reply with quote
Post Re: Unknown crash reason.
Coops9753 wrote:
self.htone = "YOU CAN'T KNOW WHAT THIS IS YET";
self.httwo = "YOU CAN'T KNOW WHAT THIS IS YET";
self.htthree = "YOU CAN'T KNOW WHAT THIS IS YET";

-snip-

if self.gun.PresetName == self.frone or self.gun.PresetName == self.frtwo or self.gun.PresetName == self.frthree or self.gun.PresetName == self.alone or self.gun.PresetName == self.altwo or self.gun.PresetName == self.althree or self.gun.PresetName == self.HTone or self.gun.PresetName == self.HTtwo or self.gun.PresetName == self.HTthree then[/code]


Probably not your crash, but I think it's an error you should fix.


Wed Oct 27, 2010 10:56 pm
Profile
DRL Developer
DRL Developer
User avatar

Joined: Wed Dec 13, 2006 5:27 am
Posts: 3138
Location: A little south and a lot west of Moscow
Reply with quote
Post Re: Unknown crash reason.
CC has issues with switching actors. If, for any reason, it switches the same user's control more than once in a single frame, it'll crash.


Wed Oct 27, 2010 11:40 pm
Profile WWW
User avatar

Joined: Wed Feb 17, 2010 12:07 am
Posts: 1545
Location: That small peaceful place called Hell.
Reply with quote
Post Re: Unknown crash reason.
How do I avoid this properly then?


Wed Oct 27, 2010 11:54 pm
Profile
DRL Developer
DRL Developer
User avatar

Joined: Wed Dec 13, 2006 5:27 am
Posts: 3138
Location: A little south and a lot west of Moscow
Reply with quote
Post Re: Unknown crash reason.
Well, judging by the code, I have to assume you've got multiple instances of the script running. Have a check that makes sure it hasn't switched it once already.


Thu Oct 28, 2010 12:03 am
Profile WWW
User avatar

Joined: Wed Feb 17, 2010 12:07 am
Posts: 1545
Location: That small peaceful place called Hell.
Reply with quote
Post Re: Unknown crash reason.
Only one instance of the script is running at once

and this doesnt seem to work either, this is what I added

Code:
   if self.user:IsPlayerControlled() == false and self.g.ToDelete == true then
      self.c.ToDelete = true
      ActivityMan:GetActivity():SwitchToActor(self.user,self.control,0);
   end


Thu Oct 28, 2010 12:31 am
Profile
DRL Developer
DRL Developer
User avatar

Joined: Wed Dec 13, 2006 5:27 am
Posts: 3138
Location: A little south and a lot west of Moscow
Reply with quote
Post Re: Unknown crash reason.
Have you tried removing the switching altogether?


Thu Oct 28, 2010 12:36 am
Profile WWW
User avatar

Joined: Wed Feb 17, 2010 12:07 am
Posts: 1545
Location: That small peaceful place called Hell.
Reply with quote
Post Re: Unknown crash reason.
Yes, no crashes.. It has to do with switching with the actors, If i comment out the switch back to the user and keep the self.c.ToDelete then it still crashes so maybe it has something to do with ownership?

EDIT: I think I know whats going on, its fine when it switches to self.user aslong as self.c doesnt die or lose control at the same time.


Thu Oct 28, 2010 12:46 am
Profile
User avatar

Joined: Wed Feb 17, 2010 12:07 am
Posts: 1545
Location: That small peaceful place called Hell.
Reply with quote
Post Re: Unknown crash reason.
Got it..

it seems it didn't like self.control and liked the number 0 more.


Fri Oct 29, 2010 1:36 am
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 12 posts ] 

Who is online

Users browsing this forum: No registered users


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.
[ Time : 0.146s | 13 Queries | GZIP : Off ]