Sprache Deutsch Language English

Script Dokumentation LS 2015 - ChainsawDelimbEvent (Patch 1.3)

Script Dokumentation Übersicht

scripts/handTools/ChainsawDelimbEvent.lua

Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
1-- Copyright (C) GIANTS Software GmbH, Confidential, All Rights Reserved.
2
3ChainsawDelimbEvent = {};
4ChainsawDelimbEvent_mt = Class(ChainsawDelimbEvent, Event);
5
6InitStaticEventClass(ChainsawDelimbEvent, "ChainsawDelimbEvent", EventIds.EVENT_CHAINSAW_DELIMB);
7
8function ChainsawDelimbEvent:emptyNew()
9 local self = Event:new(ChainsawDelimbEvent_mt);
10 return self;
11end;
12
13function ChainsawDelimbEvent:new(player, x,y,z, nx,ny,nz, yx,yy,yz, onDelimb)
14 local self = ChainsawDelimbEvent:emptyNew()
15 self.player = player;
16 self.x, self.y, self.z = x, y, z;
17 self.nx, self.ny, self.nz = nx, ny, nz;
18 self.yx, self.yy, self.yz = yx, yy, yz;
19 self.onDelimb = onDelimb;
20 return self;
21end;
22
23function ChainsawDelimbEvent:readStream(streamId, connection)
24 if not connection:getIsServer() then -- server side
25 self.player = networkGetObject(streamReadInt32(streamId));
26 self.x = streamReadFloat32(streamId);
27 self.y = streamReadFloat32(streamId);
28 self.z = streamReadFloat32(streamId);
29 self.nx = streamReadFloat32(streamId);
30 self.ny = streamReadFloat32(streamId);
31 self.nz = streamReadFloat32(streamId);
32 self.yx = streamReadFloat32(streamId);
33 self.yy = streamReadFloat32(streamId);
34 self.yz = streamReadFloat32(streamId);
35 self.onDelimb = false;
36 if self.player ~= nil then
37 local chainsaw = self.player.currentTool;
38 if chainsaw ~= nil then
39 local ret = findAndRemoveSplitShapeAttachments(self.x,self.y,self.z, self.nx,self.ny,self.nz, self.yx,self.yy,self.yz, 0.7, chainsaw.cutSizeY, chainsaw.cutSizeZ);
40 if ret then
41 self.onDelimb = true;
42 connection:sendEvent(self);
43 end;
44 end;
45 end;
46 else -- client side
47 self.player = networkGetObject(streamReadInt32(streamId));
48 self.onDelimb = streamReadBool(streamId);
49 if self.player ~= nil and self.player.currentTool ~= nil then
50 if self.player.currentTool.setOnDelimb ~= nil then
51 self.player.currentTool:setOnDelimb(self.onDelimb);
52 end;
53 end;
54 end
55end;
56
57function ChainsawDelimbEvent:writeStream(streamId, connection)
58 if connection:getIsServer() then -- client
59 streamWriteInt32(streamId, networkGetObjectId(self.player));
60 streamWriteFloat32(streamId, self.x);
61 streamWriteFloat32(streamId, self.y);
62 streamWriteFloat32(streamId, self.z);
63 streamWriteFloat32(streamId, self.nx);
64 streamWriteFloat32(streamId, self.ny);
65 streamWriteFloat32(streamId, self.nz);
66 streamWriteFloat32(streamId, self.yx);
67 streamWriteFloat32(streamId, self.yy);
68 streamWriteFloat32(streamId, self.yz);
69 else
70 streamWriteInt32(streamId, networkGetObjectId(self.player));
71 streamWriteBool(streamId, self.onDelimb);
72 end
73end;
74
75function ChainsawDelimbEvent:run(connection)
76 print("Error: ChainsawDelimbEvent is not allowed to be executed on a local client");
77end;
Copyright (c) 2008-2015 GIANTS Software GmbH, Confidential, All Rights Reserved.
This document is to be published solely by ls-mods.de
Script Dokumentation Übersicht