Why?
I admit, it's rather simple but if you ever run into needing something like this then atleast you won't have to reinvent the wheel :P
Serverside Global Weapon Trigger
Methods:
void GlobalEvents.triggerAll( string eventName, array parameters[] );
This triggers an event on every weapon serverside. GlobalEvents should be replaced by your NPC name.
PHP Code:
function onCreated() {
//IMPORTANT - ASSIGN THE PERCENTSIGN
temp.percentSymbol = "percent";
this.weapons = NULL;
temp.charMap = {
{temp.percentSymbol @ "045", "-"},
{temp.percentSymbol @ "042", "*"},
{temp.percentSymbol @ "047", "/"},
{temp.percentSymbol @ "032", " "}
};
temp.weaponsFolder.loadfolder("weapons/*.txt", 1);
for (temp.weapon: temp.weaponsFolder) {
temp.weapon = temp.weapon.substring( 6 );
for ( temp.char: temp.charMap )
temp.weapon = replacetext( temp.weapon, temp.char[0], temp.char[1] );
this.weapons.add( temp.weapon.substring( 0, temp.weapon.length() - 4 ) );
}
}
public function triggerAll( eventName, parameters ) {
for ( temp.weapon: this.weapons ) {
( @ temp.weapon ).trigger( eventName, parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5], parameters[6], parameters[7], parameters[8], parameters[9] );
}
}
//Thanks to Dusty
function replacetext(txt,a,b) {
if (txt.pos(a)<0) return txt;
temp.txtpos = txt.positions(a);
temp.newtxt = txt.substring(0,txtpos[0]);
for (temp.i=0;i<txtpos.size();i++) {
newtxt @= b;
newtxt @= txt.substring(txtpos[i]+a.length(),txt.substring(txtpos[i]+a.length()).pos(a));
}
return newtxt;
}
Clientside Global Weapon Trigger
Same syntax as serverside. This is actually rather simple but it's one less tediuous task for yourself
PHP Code:
function onPlayerLogin( pl ) {
findPlayer( pl ).addWeapon( this.name );
}
//#CLIENTSIDE
function onCreated() {
GlobalEvents = this;
}
public function triggerAll( eventName, parameters ) {
for ( temp.weapon: player.weapons ) {
temp.weapon.trigger( eventName, parameters[0], parameters[1], parameters[2], parameters[3], parameters[4], parameters[5], parameters[6], parameters[7], parameters[8], parameters[9] );
}
}
I'll be posting the functionality for NPCs soon - I should have been working on an Events System instead of this, haha.
Thanks for reading!