Code: server.cs (101 lines)
function fxDTSBrick::onMinigameInitSpawn(%obj, %client) { if(!isObject(%client)) return; $InputTarget_["Self"] = %obj; $InputTarget_["Player"] = %client.getControlObject(); $InputTarget_["Client"] = %client; $InputTarget_["MiniGame"] = getMiniGameFromObject(%obj); %obj.processInputEvent("onMinigameInitSpawn", %client); } registerInputEvent("fxDTSBrick", "onMinigameInitSpawn", "Self fxDTSBrick" TAB "Player Player" TAB "Client GameConnection" TAB "MiniGame MiniGame", 1, 1);
$Server::onMinigameInitSpawnList = inputEvent_GetInputEventIdx("onMinigameInitSpawn");
package onMinigameInitSpawn { function GameConnection::SpawnPlayer(%this) { Parent::SpawnPlayer(%this); if(isObject(%this.player) && isObject(%this.minigame) && !$ClientInitSpawn[%this.getBLID()]) { $ClientInitSpawn[%this.getBLID()] = true; for(%i=0;%i<getWordCount($Server::onMinigameInitSpawnEvents);%i++) { %brick = getWord($Server::onMinigameInitSpawnEvents, %i); if(isObject(%brick)) { $inputTarget_Self = %brick; $inputTarget_Player = %this.player; $inputTarget_Client = %this; $inputTarget_Minigame = %this.minigame; %brick.processInputEvent("onMinigameInitSpawn", %this); } } } }
function serverCmdAddEvent(%client,%delay,%input,%target,%a,%b,%output,%para1,%para2,%para3,%para4) { if(%input == $Server::onMinigameInitSpawnList) $Server::onMinigameInitSpawnEvents = addItemToList($Server::onMinigameInitSpawnEvents,%client.wrenchBrick); return Parent::serverCmdAddEvent(%client,%delay,%input,%target,%a,%b,%output,%para1,%para2,%para3,%para4); }
function serverCmdClearEvents(%client) { if(hasItemOnList($Server::onMinigameInitSpawnEvents,%client.wrenchBrick)) { $Server::onMinigameInitSpawnEvents = removeItemFromList($Server::onMinigameInitSpawnEvents,%client.wrenchBrick); } Parent::serverCmdClearEvents(%client); }
function fxDtsBrick::onDeath(%brick) { if(hasItemOnList($Server::onMinigameInitSpawnEvents,%brick)) { $Server::onMinigameInitSpawnEvents = removeItemFromList($Server::onMinigameInitSpawnEvents,%brick); } Parent::onDeath(%brick); } }; activatepackage(onMinigameInitSpawn);
function addItemToList(%string,%item) { if(hasItemOnList(%string,%item)) return %string;
if(%string $= "") return %item; else return %string SPC %item; } function hasItemOnList(%string,%item) { for(%i=0;%i<getWordCount(%string);%i++) { if(getWord(%string,%i) $= %item) return 1; } return 0; } function removeItemFromList(%string,%item) { if(!hasItemOnList(%string,%item)) return %string;
for(%i=0;%i<getWordCount(%string);%i++) { if(getWord(%string,%i) $= %item) { if(%i $= 0) return getWords(%string,1,getWordCount(%string)); else if(%i $= getWordCount(%string)-1) return getWords(%string,0,%i-1); else return getWords(%string,0,%i-1) SPC getWords(%string,%i+1,getWordCount(%string)); } } }
|