Category | Farming Simulator 2011 |
Created | 18.01.2011 20:33 |
Przemysław Lipiński (Unknown) | 18.01.2011 20:53 |
---|---|
I want made script for building works in multiplayer. I used example script for tip trigger but i have error in game. This is my error in log.txt: <--log.txt--> Call Stack: D:/code/lsim2011/build/finalbin/dataS/scripts/network/ObjectIds.lua(55) : printCallstack D:/code/lsim2011/build/finalbin/dataS/scripts/network/ObjectIds.lua(30) : assignObjectClassObjectId C:/Users/Lipa/Documents/My Games/FarmingSimulator2011/mods/ruchomedrzwi/Ruchoma_brama.lua(7) : InitStaticObjectClass =[C](-1) D:/code/lsim2011/build/finalbin/dataS/scripts/main.lua(1170) : source D:/code/lsim2011/build/finalbin/dataS/scripts/gui/MPLoadingScreen.lua(251) : loadMod D:/code/lsim2011/build/finalbin/dataS/scripts/gui/MPLoadingScreen.lua(131) : initializeLoading D:/code/lsim2011/build/finalbin/dataS/scripts/gui/CareerScreen.lua(281) : startLocal D:/code/lsim2011/build/finalbin/dataS/scripts/gui/CareerScreen.lua(269) : onStartMission D:/code/lsim2011/build/finalbin/dataS/scripts/gui/CareerScreen.lua(209) : startSelectedGame D:/code/lsim2011/build/finalbin/dataS/scripts/gui/MapSelectionScreen.lua(112) : setSelectedGameMap D:/code/lsim2011/build/finalbin/dataS/scripts/gui/MapSelectionScreen.lua(78) : onStartClick D:/code/lsim2011/build/finalbin/dataS/scripts/gui/elements/ListElement.lua(367) : onDoubleClick D:/code/lsim2011/build/finalbin/dataS/scripts/gui/elements/GuiElement.lua(294) : mouseEvent D:/code/lsim2011/build/finalbin/dataS/scripts/gui/elements/BitmapElement.lua(90) : mouseEvent D:/code/lsim2011/build/finalbin/dataS/scripts/gui/elements/GuiElement.lua(294) : mouseEvent D:/code/lsim2011/build/finalbin/dataS/scripts/gui/Gui.lua(236) : mouseEvent D:/code/lsim2011/build/finalbin/dataS/scripts/main.lua(701) : mouseEvent D:/code/lsim2011/build/finalbin/dataS/scripts/network/ObjectIds.lua(64) : table index is nil <--end--> This is my script: <--script--> DrzwiGarazowe = {}; local DrzwiGarazowe_mt = Class(DrzwiGarazowe, Object); InitStaticObjectClass(DrzwiGarazowe, "DrzwiGarazowe", ObjectIds.OBJECT_DRZWI_GARAZOWE); function DrzwiGarazowe:onCreate(id) local trigger = DrzwiGarazowe:new(g_server ~= nil, g_client ~= nil); local index = g_currentMission:addOnCreateLoadedObject(trigger); trigger:load(id); trigger:register(true); --[[if g_client ~= nil then g_client:getServerConnection():sendEvent(OnCreateLoadedObjectEvent:new(index)); end;]] --print("created tip trigger, id: ", id); end; function DrzwiGarazowe:new(isServer, isClient) local self = Object:new(isServer, isClient, DrzwiGarazowe_mt); self.className = "DrzwiGarazowe"; self.triggerId = 0; g_currentMission:addDrzwiGarazowe(self); return self; end; function DrzwiGarazowe:load(id) self.triggerId = id; addTrigger(id, "triggerCallback", self); self.playerInTrigger = false; self.drzwilewe = getChildAt(id, 0); self.drzwiprawe = getChildAt(id, 1); self.koniec = 2000; self.poczatek = 0; self.obrotdrzwi = nil; self.isEnabled = true; self.DrzwiGarazoweDirtyFlag = self:getNextDirtyFlag(); return self; end; function DrzwiGarazowe:delete() g_currentMission:removeDrzwiGarazowe(self); removeTrigger(self.triggerId); delete(self.triggerId); DrzwiGarazowe:superClass().delete(self); end; function DrzwiGarazowe:readStream(streamId, connection) if connection:getIsServer() then if self.drzwiprawe ~= nil then local x,y,z = getRotation(self.drzwiprawe); y = streamReadFloat32(streamId); setRotation(self.drzwiprawe, x, y, z); end; if self.drzwilewe ~= nil then local x,y,z = getRotation(self.drzwilewe); y = streamReadFloat32(streamId); setRotation(self.drzwilewe, x, y, z); end; end; end; function DrzwiGarazowe:writeStream(streamId, connection) if not connection:getIsServer() then if self.drzwiprawe ~= nil then local x,y,z = getRotation(self.drzwiprawe); streamWriteFloat32(streamId, y); end; if self.drzwilewe ~= nil then local x,y,z = getRotation(self.drzwilewe); streamWriteFloat32(streamId, y); end; end; end; function DrzwiGarazowe:readUpdateStream(streamId, timestamp, connection) self:readStream(streamId, connection); end; function DrzwiGarazowe:writeUpdateStream(streamId, connection, dirtyMask) self:writeStream(streamId, connection); end; function DrzwiGarazowe:update(dt) if self.playerInTrigger then if InputBinding.hasEvent(InputBinding.GARAZ_DRZWI) then self.obrotdrzwi = not self.obrotdrzwi; end; end; if self.obrotdrzwi then self.poczatek = self.poczatek + dt; self.poczatek = math.min(self.poczatek, self.koniec); else self.poczatek = self.poczatek - dt; self.poczatek = math.max(self.poczatek, 0); end; if self.drzwiprawe ~= nil then local x,y,z = getRotation(self.drzwiprawe); local newY = math.max(0*(3.14159265/180))*(self.poczatek/self.koniec); setRotation(self.drzwiprawe, x, newY, z); end; if self.drzwilewe ~= nil then local x,y,z = getRotation(self.drzwilewe); local newY = math.max(0*(3.14159265/180))*(self.poczatek/self.koniec); setRotation(self.drzwilewe, x, newY, z); end; --setRotation(self.drzwiprawe, 0, (110*(3.14159265/180))*(self.poczatek/self.koniec), 0); --setRotation(self.drzwilewe, 0, (-110*(3.14159265/180))*(self.poczatek/self.koniec), 0); end; function DrzwiGarazowe:updateMoving(delta) if self.drzwiprawe ~= nil and self.isServer then local x,y,z = getRotation(self.drzwiprawe); local newY = math.max(110*(3.14159265/180))*(self.poczatek/self.koniec); setRotation(self.drzwiprawe, x, newY, z); self:raiseDirtyFlags(self.DrzwiGarazoweDirtyFlag); end; if self.drzwilewe ~= nil and self.isServer then local x,y,z = getRotation(self.drzwilewe); local newY = math.max(-110*(3.14159265/180))*(self.poczatek/self.koniec); setRotation(self.drzwilewe, x, newY, z); self:raiseDirtyFlags(self.DrzwiGarazoweDirtyFlag); end; end; function DrzwiGarazowe:draw() if self.playerInTrigger then if self.obrotdrzwi then g_currentMission:addExtraPrintText("Zamknij brame: Wcisnij "..InputBinding.getButtonKeyName(InputBinding.GARAZ_DRZWI)); else g_currentMission:addExtraPrintText("Otworz brame: Wcisnij "..InputBinding.getButtonKeyName(InputBinding.GARAZ_DRZWI)); end; end; end; function DrzwiGarazowe:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay, otherShapeId) if self.isEnabled then if onEnter then if (g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode) then self.playerInTrigger = true; end; elseif onLeave then if (g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode) then self.playerInTrigger = false; end; end; end; end; <--end--> This is photo of my trigger in GE: http://www.abload.de/image.php?img=triggeringame4rgo.jpg Vielen Dank im Voraus fur Ihren Hilfe. Entschuldigung aber meine Englisch Kenntnisse ist schlecht. |
Wojtek Speedy (Unknown) | 19.01.2011 13:38 |
---|---|
Please delete my post |
Note: Log in to post. Create a new account here.