For example, as a GM you may wish to reward or penalize players by giving or taking away fame or karma. You may also wish to remove health (damage a PC or NPC) and/or add or remove stamina. Also a certain deed may permenantly add or remove strength. The GM toolkit differs from the 'set command, in that it decrements or increments the stat; whereas, the 'set command requires you to set a value.
**HP, MP, ST, all remove or add health, MP, Stamina, until the PC dies (zero HP) or the maximum stats are reached. It is not permenant. Str, INT, DEX, Fame, Karma, are all permenant, not temporary adjustments**
Currently this toolkit contains:
Here is the script:'gm karma ## Gives or takes away karma depending on the #s sign.
'gm fame ## Gives or takes away fame based on the #s sign.
'gm str ## Gives or takes away strength based on the #s sign.
'gm dex ## Gives or takes away dex based on the #s sign.
'gm int ## Gives or takes away int based on the #s sign.
'gm mp ## Gives or takes away mana based on the #s sign.
'gm hp ## Gives or takes away health based on the #s sign.
'gm st ## Gives or takes away stamina based on the #s sign.
'gm stamina ## Gives or takes away stamina based on the #s sign.
Emotes
'gm bow Forces an NPC or PC to bow
'gm salute forces a salute
'gm shooth forces a bowshoot animation on horseback
'gm shoot forces a bowshot animation
'gm swordh forces a mounted sword animation
'gm sword forces a sword animation
'gm sword2 forces an alternate sword animation
'gm axe forces a 2hd weapon animation (chop)
'gm axe2 forces a 2hd animation 2 (works with swords (swing)
'gm axeh 2hnded mounted animation
'gm die forces death animation (good for falling emote)
'gm salute2 animation for non-human NPCs (causes dogs to scratch)
'gm bow2 2nd non-human animation (dogs scratch)
'gm ffall causes PCs to fall forward (quake animation)
'gm push causes PC to push (resurrect animation)
'gm cast casting animation (wave arms in the air)
'gm fcast forward casting animation (resurrect)
function CommandRegistration()
{
RegisterCommand( "gm", 0, true );
}
function command_GM( socket, cmdString )
{
if( cmdString )
{
var splitString = cmdString.split( " ", 2 );
socket.xText = cmdString;
socket.CustomTarget( 0, "Choose target for: " + cmdString );
}
else
socket.SysMessage( "No property was specified for the GM
command." );
}
function onCallback0( socket, ourObj )
{
if( socket.GetWord( 1 ) )
{
socket.SysMessage( "'Set': Invalid target" );
return;
}
var splitString = socket.xText.split( " ", 2 );
var uKey = splitString[0].toUpperCase();
var nVal = StringToNum( splitString[1] );
//var for Dm skills
switch( uKey )
{
case "KARMA":
ourObj.karma = nVal + ourObj.karma;
okMsg( socket );
ourObj.SysMessage( "Karma has changed by " + nVal );
break;
case "FAME":
ourObj.fame = nVal + ourObj.fame;
okMsg( socket );
ourObj.SysMessage( "Fame has changed by " + nVal );
break;
case "HP":
ourObj.health = nVal + ourObj.health;
okMsg( socket );
ourObj.TextMessage("HP: "+ourObj.health);
ourObj.SysMessage( "Health has changed by " + nVal );
break;
case "ST":
case "STAMINA":
ourObj.stamina = nVal + ourObj.stamina;
okMsg( socket );
ourObj.TextMessage("ST: "+ourObj.stamina);
ourObj.SysMessage( "Stamina has changed by " + nVal );
break;
case "MP":
ourObj.mana = nVal + ourObj.mana;
okMsg( socket );
ourObj.TextMessage("MP: "+ourObj.mana);
ourObj.SysMessage( "Magic has changed by " + nVal );
break;
case "STR":
ourObj.strength = nVal + ourObj.strength;
okMsg( socket );
ourObj.SysMessage( "Strength has changed by " + nVal );
break;
case "INT":
ourObj.intelligence = nVal + ourObj.intelligence;
okMsg( socket );
ourObj.SysMessage( "Intelligence has changed by " + nVal );
break;
case "DEX":
ourObj.dexterity = nVal + ourObj.dexterity;
okMsg( socket );
ourObj.SysMessage( "Dexterity has changed by " + nVal );
break;
case "BOW":
ourObj.DoAction( 0x20 );
break;
case "SALUTE":
ourObj.DoAction( 0x21 );
break;
case "SHOOTH":
ourObj.DoAction( 0x1b );
break;
case "SHOOT":
ourObj.DoAction( 0x12 );
break;
case "SWORDH":
ourObj.DoAction( 0x1A );
break;
case "SWORD":
ourObj.DoAction( 0x09 );
break;
case "SWORD2":
ourObj.DoAction( 0x0A );
break;
case "AXE":
ourObj.DoAction( 0x0c );
break;
case "AXE2":
ourObj.DoAction (0x0d);
break;
case "AXEH":
ourObj.DoAction( 0x1d );
break;
case "DIE":
ourObj.DoAction( 0x15 );
break;
case "SALUTE2":
ourObj.DoAction( 0x11 );
break;
case "BOW2":
ourObj.DoAction( 0x12 );
break;
case "FFALL":
ourObj.DoAction( 0x16 );
break;
case "PUSH":
ourObj.DoAction( 0x10 );
break;
case "CAST":
ourObj.DoAction( 0x11 );
break;
case "FCAST":
ourObj.DoAction( 0x10 );
break;
// avatar case
default:
socket.SysMessage( "Invalid set command " + uKey );
break;
}
}
function okMsg( socket )
{ //Sends verification to the player that the specified value was successfully
set.
socket.SysMessage( GetDictionaryEntry( 1756, socket.Language ));
}
{
RegisterCommand( "gm", 0, true );
}
function command_GM( socket, cmdString )
{
if( cmdString )
{
var splitString = cmdString.split( " ", 2 );
socket.xText = cmdString;
socket.CustomTarget( 0, "Choose target for: " + cmdString );
}
else
socket.SysMessage( "No property was specified for the GM
command." );
}
function onCallback0( socket, ourObj )
{
if( socket.GetWord( 1 ) )
{
socket.SysMessage( "'Set': Invalid target" );
return;
}
var splitString = socket.xText.split( " ", 2 );
var uKey = splitString[0].toUpperCase();
var nVal = StringToNum( splitString[1] );
//var for Dm skills
switch( uKey )
{
case "KARMA":
ourObj.karma = nVal + ourObj.karma;
okMsg( socket );
ourObj.SysMessage( "Karma has changed by " + nVal );
break;
case "FAME":
ourObj.fame = nVal + ourObj.fame;
okMsg( socket );
ourObj.SysMessage( "Fame has changed by " + nVal );
break;
case "HP":
ourObj.health = nVal + ourObj.health;
okMsg( socket );
ourObj.TextMessage("HP: "+ourObj.health);
ourObj.SysMessage( "Health has changed by " + nVal );
break;
case "ST":
case "STAMINA":
ourObj.stamina = nVal + ourObj.stamina;
okMsg( socket );
ourObj.TextMessage("ST: "+ourObj.stamina);
ourObj.SysMessage( "Stamina has changed by " + nVal );
break;
case "MP":
ourObj.mana = nVal + ourObj.mana;
okMsg( socket );
ourObj.TextMessage("MP: "+ourObj.mana);
ourObj.SysMessage( "Magic has changed by " + nVal );
break;
case "STR":
ourObj.strength = nVal + ourObj.strength;
okMsg( socket );
ourObj.SysMessage( "Strength has changed by " + nVal );
break;
case "INT":
ourObj.intelligence = nVal + ourObj.intelligence;
okMsg( socket );
ourObj.SysMessage( "Intelligence has changed by " + nVal );
break;
case "DEX":
ourObj.dexterity = nVal + ourObj.dexterity;
okMsg( socket );
ourObj.SysMessage( "Dexterity has changed by " + nVal );
break;
case "BOW":
ourObj.DoAction( 0x20 );
break;
case "SALUTE":
ourObj.DoAction( 0x21 );
break;
case "SHOOTH":
ourObj.DoAction( 0x1b );
break;
case "SHOOT":
ourObj.DoAction( 0x12 );
break;
case "SWORDH":
ourObj.DoAction( 0x1A );
break;
case "SWORD":
ourObj.DoAction( 0x09 );
break;
case "SWORD2":
ourObj.DoAction( 0x0A );
break;
case "AXE":
ourObj.DoAction( 0x0c );
break;
case "AXE2":
ourObj.DoAction (0x0d);
break;
case "AXEH":
ourObj.DoAction( 0x1d );
break;
case "DIE":
ourObj.DoAction( 0x15 );
break;
case "SALUTE2":
ourObj.DoAction( 0x11 );
break;
case "BOW2":
ourObj.DoAction( 0x12 );
break;
case "FFALL":
ourObj.DoAction( 0x16 );
break;
case "PUSH":
ourObj.DoAction( 0x10 );
break;
case "CAST":
ourObj.DoAction( 0x11 );
break;
case "FCAST":
ourObj.DoAction( 0x10 );
break;
// avatar case
default:
socket.SysMessage( "Invalid set command " + uKey );
break;
}
}
function okMsg( socket )
{ //Sends verification to the player that the specified value was successfully
set.
socket.SysMessage( GetDictionaryEntry( 1756, socket.Language ));
}