Data Realms Fan Forums http://45.55.195.193/ |
|
Unknown crash reason. http://45.55.195.193/viewtopic.php?f=73&t=20051 |
Page 1 of 1 |
Author: | Coops [ Wed Oct 27, 2010 10:20 pm ] |
Post subject: | 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 |
Author: | Petethegoat [ Wed Oct 27, 2010 10:36 pm ] |
Post subject: | Re: Unknown crash reason. |
It would be helpful if you actually said what the error was. |
Author: | Coops [ Wed Oct 27, 2010 10:40 pm ] |
Post subject: | Re: Unknown crash reason. |
It crashes before it gives any errors. |
Author: | Coops [ Wed Oct 27, 2010 10:52 pm ] |
Post subject: | Re: Unknown crash reason. |
It seems to be focused around getting rid of self.c and swicthing control to self.user |
Author: | Roast Veg [ Wed Oct 27, 2010 10:56 pm ] |
Post subject: | 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. |
Author: | TheLastBanana [ Wed Oct 27, 2010 11:40 pm ] |
Post subject: | 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. |
Author: | Coops [ Wed Oct 27, 2010 11:54 pm ] |
Post subject: | Re: Unknown crash reason. |
How do I avoid this properly then? |
Author: | TheLastBanana [ Thu Oct 28, 2010 12:03 am ] |
Post subject: | 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. |
Author: | Coops [ Thu Oct 28, 2010 12:31 am ] |
Post subject: | 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 |
Author: | TheLastBanana [ Thu Oct 28, 2010 12:36 am ] |
Post subject: | Re: Unknown crash reason. |
Have you tried removing the switching altogether? |
Author: | Coops [ Thu Oct 28, 2010 12:46 am ] |
Post subject: | 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. |
Author: | Coops [ Fri Oct 29, 2010 1:36 am ] |
Post subject: | Re: Unknown crash reason. |
Got it.. it seems it didn't like self.control and liked the number 0 more. |
Page 1 of 1 | All times are UTC [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |