| Blockland Forums > Modification Help |
| When A Player Steps Off A Brick |
| << < (2/4) > >> |
| Placid:
--- Quote from: jes00 on June 04, 2012, 09:46:47 AM ---Care to explain? --- End quote --- if you don't know, events are coded by.. well, torque code. therefore, the zones created via someone's zone mod are not actually being created by the events, they're being created by code. you can make zones without events. if you want to know how i suggest you look at the zone events script, it'll probably help. |
| jes00:
--- Quote from: Port on June 04, 2012, 09:45:01 AM ---function fxDTSBrick::stopTouch( %this, %pl ) { // do something } When %pl (player) touches %obj (brick): [*] cancel( %obj.stopTouch[ %pl ] ); [*] %obj.stopTouch[ %pl ] = %obj.schedule( tolerance, "stopTouch", %pl ); --- End quote --- So like this? --- Code: ---package Blah { function FxDTSBrick::stopTouch(%obj, %player) { %player.isTouchin[%obj] = false; } function FxDTSBrick::onPlayerTouch(%obj, %player) { parent::onPlayerTouch(%obj, %player); %player.isTouchin[%obj] = true; cancel(%obj.stopTouch[%player]); %obj.stopTouch[%player] = %obj.schedule(50, "stopTouch", %player); } }; activatePackage(Blah); --- End code --- Then to check if their not touching the brick I can do if(!%player.isTouchin[%obj]) right? |
| Port:
--- Quote from: jes00 on June 04, 2012, 10:58:25 AM ---So like this? --- Code: --- --- End code --- Then to check if their not touching the brick I can do if(!%player.isTouchin[%obj]) right? --- End quote --- Essentially. You don't need to package fxDTSBrick::stopTouch though. |
| jes00:
--- Quote from: Port on June 04, 2012, 11:10:45 AM ---You don't need to package fxDTSBrick::stopTouch though. --- End quote --- I know. --- Quote from: Port on June 04, 2012, 11:10:45 AM ---Essentially. --- End quote --- Not working : / --- Code: ---registerInputEvent("FxDTSBrick","onPlayerFirstTouch","Self fxDTSBrick" TAB "Player Player" TAB "Client GameConnection" TAB "MiniGame MiniGame"); package onPlayerFirstTouch { function FxDTSBrick::stopTouch(%obj, %player) { %player.isTouchin[%obj] = false; } function FxDTSBrick::onPlayerTouch(%obj, %player) { parent::onPlayerTouch(%obj, %player); %player.isTouchin[%obj] = true; cancel(%obj.stopTouch[%player]); %obj.stopTouch[%player] = %obj.schedule(50, "stopTouch", %player); if(!%player.isTouchin[%obj]) { $InputTarget_["Self"] = %obj; $InputTarget_["Player"] = %player; $InputTarget_["Client"] = %player.client; if($Server::LAN) { $InputTarget_["MiniGame"] = getMiniGameFromObject(%player.client); } else { if(getMiniGameFromObject(%this) == getMiniGameFromObject(%player.client)) { $InputTarget_["MiniGame"] = getMiniGameFromObject(%obj); } else { $InputTarget_["MiniGame"] = 0; } } %this.processInputEvent(onPlayerFirstTouch, %player.client); } } }; activatePackage(onPlayerFirstTouch); --- End code --- |
| phflack:
--- Code: --- if(!%player.isTouchin[%obj]) { $InputTarget_["Self"] = %obj; $InputTarget_["Player"] = %player; $InputTarget_["Client"] = %player.client; if($Server::LAN) { $InputTarget_["MiniGame"] = getMiniGameFromObject(%player.client); } else { if(getMiniGameFromObject(%this) == getMiniGameFromObject(%player.client)) { $InputTarget_["MiniGame"] = getMiniGameFromObject(%obj); } else { $InputTarget_["MiniGame"] = 0; } } %this.processInputEvent(onPlayerFirstTouch, %player.client); } --- End code --- this is never run, the if statement should always return false from --- Code: ---%player.isTouchin[%obj] = true; --- End code --- |
| Navigation |
| Message Index |
| Next page |
| Previous page |