Author Topic: Safe Zones  (Read 3730 times)

Possible? Can someone hand me the code if it's possible.   :cookie:
So, players can't kill themselves in safe zones.

Code: [Select]
datablock TriggerData(SafeZone)
{
   tickPeriodMS = 100;
};
function SafeZone::onLeaveTrigger(%this,%trigger,%obj)
{
   %obj.client.isSafe = 1;
}
function SafeZone::onEnterTrigger(%this,%trigger,%obj)
{
   %obj.client.isSafe = 0;
}
function SafeZone::onTickTrigger(%this,%trigger, %obj)
{
   Parent::onTickTrigger(%this,%trigger);
}

package SafeZone {
function serverCmdSelf Delete(%client)
  {
    if(%client.isSafe) return;
    else {
    parent::serverCmdSelf Delete(%client);
       }
   }
};

Untested, just wrote it then.

Code: [Select]
datablock TriggerData(SafeZone)
{
   tickPeriodMS = 100;
};
function SafeZone::onLeaveTrigger(%this,%trigger,%obj)
{
   %obj.client.isSafe = 1;
}
function SafeZone::onEnterTrigger(%this,%trigger,%obj)
{
   %obj.client.isSafe = 0;
}
function SafeZone::onTickTrigger(%this,%trigger, %obj)
{
   Parent::onTickTrigger(%this,%trigger);
}

package SafeZone[b]Toggle[/b] {
function serverCmdSelf Delete(%client)
  {
    if(%client.isSafe) return;
    else {
    parent::serverCmdSelf Delete(%client);
       }
   }
};[b]activatepackage(SafeZoneToggle);[/b]

Untested, just wrote it then.

Fixed a little. Datablock errors would happen as you tried to name the package the same, and I actually activated the commands.

I always forget to activate the package  :cookieMonster:

Thanks, i'm going to try it.

Code: [Select]
datablock TriggerData(SafeZone)
{
   tickPeriodMS = 100;
};
function SafeZone::onLeaveTrigger(%this,%trigger,%obj)
{
   %obj.client.isSafe = 1;
}
function SafeZone::onEnterTrigger(%this,%trigger,%obj)
{
   %obj.client.isSafe = 0;
}
function SafeZone::onTickTrigger(%this,%trigger, %obj)
{
   Parent::onTickTrigger(%this,%trigger);
}

package SafeZoneToggle {
function serverCmdSelf Delete(%client)
  {
    if(%client.isSafe) return;
    else {
    parent::serverCmdSelf Delete(%client);
       }
   }
};activatepackage(SafeZoneToggle);
Bold tags never work in Code: tags...
Code: [Select]

I noticed that, so I removed them.


No, it doesn't do anything. I don't get any code errors tho.

datablock TriggerData(SafeZone)
{
   tickPeriodMS = 100;
};
function SafeZone::onLeaveTrigger(%this,%trigger,%obj)
{
   messageclient(%obj.client,'',"\c1Entered the \c2Safe Zone");
   %obj.client.isSafe = 1;
}
function SafeZone::onEnterTrigger(%this,%trigger,%obj)
{
   messageclient(%obj.client,'',"\c1Left the \c2Safe Zone");
   %obj.client.isSafe = 0;
}
function SafeZone::onTickTrigger(%this,%trigger, %obj)
{
   Parent::onTickTrigger(%this,%trigger);
}

package SafeZoneToggle {
function serverCmdSelf Delete(%client)
  {
    if(%client.isSafe)
    {
     messageclient("\c1Self Delete is disabled in the \c2Safe Zone.");
    }
    else {
    parent::serverCmdSelf Delete(%client);
       }
   }
};activatepackage(SafeZoneToggle);

--
Try that and tell me what messages you get. Are you placing the correct trigger and scaling it up to a large size so you can walk in?

Hmm, now it works. Thanks.
I now only need PvP safe zones.  :cookieMonster:

Dammit, I can't edit my posts. (Yeah, i know, nobody cans..)
So now I have safe zone for suiciding, now I need safe zone for PvP. Moar cookies.  :cookie: :cookie:


So you can't kill other players.

Code: [Select]
   function ProjectileData::Damage(%this, %obj, %col, %fade, %pos, %normal)
   {
      if(%this.isSafe)
      {
         return;
      }
      Parent::Damage(%this, %obj, %col, %fade, %pos, %normal);
   }

This will stop people from being killed by projectiles, they can still be killed by radius damage or whatever.