spiders.js
// Gives the spider a chance to freeze player any time damage is done towards him just change the iNum > 700 to what ever number of chance you want to make it do more.
function onDefense( pAttacker, pDefender )
{
var iNum = RandomNumber( 0, 1000 );
if( iNum > 700 )
{
if( pDefender.health < pDefender.maxhp )
{
pAttacker.frozen = 1;
pAttacker.StaticEffect( 0x10DD, 0, 20 );
pAttacker.SoundEffect( 0x01f2, true );
pAttacker.EmoteMessage("You are caught in the spiders web ");
pAttacker.StartTimer(5000, 0, true);
}
}
}
function onTimer(pAttacker,timerID)
{
var socket = pAttacker.socket;
if(timerID == 0)
{
pAttacker.frozen = 0;
pAttacker.EmoteMessage( "You break free of the web");
}
}
var spiderWebDelay = 5000;// You can change the freeze time here.
var webSound = 0x01f2;// change the sound the web makes here
var webID = 0x10DD; //this is the static effect the char has around him when caught in web
var webmovingEffect = 0x0F8D;// this is the moving effect you see when the spider shoots at you.
var frozenMsg = "You are caught in the spiders web";
var unfrozenMsg = "You break free of the web";
var spawnMsg = "You see baby spiders coming";
var monsterSpawn = "giantspider";
function onCombatStart( pAttacker, pDefender )
{
if( pDefender.frozen == 0)
{
pDefender.frozen = 1;
DoMovingEffect( pAttacker, pDefender, webmovingEffect, 0x10, 0x00, false );
pDefender.StaticEffect( webID, 0, 30 );
pDefender.SoundEffect( webSound, true );
pDefender.EmoteMessage( frozenMsg );
pDefender.StartTimer(spiderWebDelay, 0, true);
}
return true;
}
// Gives the spider a chance to freeze player any time damage is done towards him just change the iNum > 700 to what ever number of chance you want to make it do more.
function onDefense( pAttacker, pDefender )
{
var iNum = RandomNumber( 0, 1000 );
if( iNum > 700 )
{
if( pDefender.health < pDefender.maxhp )
{
var dice;
dice = RollDice(1,20,0);
if (dice < 3)
{
var nSpawned = SpawnNPC( monsterSpawn, pDefender.x, pDefender.y, pDefender.z, pDefender.worldnumber );
pAttacker.EmoteMessage( spawnMsg );
}
if (dice < 6)
{
var nSpawned = SpawnNPC( monsterSpawn, pDefender.x, pDefender.y, pDefender.z, pDefender.worldnumber );
pAttacker.EmoteMessage( spawnMsg );
}
if (dice < 16)
{
var nSpawned = SpawnNPC( monsterSpawn, pDefender.x, pDefender.y, pDefender.z, pDefender.worldnumber );
pAttacker.EmoteMessage( spawnMsg );
}
if( pAttacker.frozen == 0)
{
pAttacker.frozen = 1;
DoMovingEffect( pDefender, pAttacker, webmovingEffect, 0x10, 0x00, false );
pAttacker.StaticEffect( webID, 0, 30 );
pAttacker.SoundEffect( webSound, true );
pAttacker.EmoteMessage( frozenMsg );
pAttacker.StartTimer(spiderWebDelay, 0, true);
}
}
}
}
function onCombatEnd( pDefender, pAttacker )
{
if( pAttacker.frozen == 0)
{
pAttacker.frozen = 1;
DoMovingEffect( pDefender, pAttacker, webmovingEffect, 0x10, 0x00, false );
pAttacker.StaticEffect( webID, 0, 30 );
pAttacker.SoundEffect( webSound, true );
pAttacker.EmoteMessage( frozenMsg );
pAttacker.StartTimer(spiderWebDelay, 0, true);
}
return true;
}
function onTimer(pAttacker,timerID)
{
var socket = pAttacker.socket;
if(timerID == 0)
{
pAttacker.frozen = 0;
pAttacker.EmoteMessage( unfrozenMsg );
}
}