npc RunNPCScript(int ID, int scriptNum, untyped args) { // Invalid script if(scriptNum < 1 || scriptNum > 511) { LogPrint("Invalid script ID ( %d ) passed to RunNPCScript. \n Valid range is (1 to 511). Aborting. \n", ID); return Debug->NULL(); } npc n = Screen->CreateNPC(ID); n->Script = scriptNum; int sz = SizeOfArray(args); if(sz) { sz = ( sz > 7 ) ? 7 : sz-1; for (; sz >= 0; --sz) n->InitD[sz] = args[sz]; } return n; } lweapon RunLWeaponScript(int ID, int scriptNum, untyped args) { // Invalid script if(scriptNum < 1 || scriptNum > 511) { LogPrint("Invalid script ID ( %d ) passed to RunLWeaponScript. \n Valid range is (1 to 511). Aborting. \n", ID); return Debug->NULL(); } lweapon n = Screen->CreateLWeapon(ID); n->Script = scriptNum; int sz = SizeOfArray(args); if(sz) { sz = ( sz > 7 ) ? 7 : sz-1; for (; sz >= 0; --sz) n->InitD[sz] = args[sz]; } return n; } lweapon RunEWeaponScript(int ID, int scriptNum, untyped args) { // Invalid script if(scriptNum < 1 || scriptNum > 511) { LogPrint("Invalid script ID ( %d ) passed to RunEWeaponScript. \n Valid range is (1 to 511). Aborting. \n", ID); return Debug->NULL(); } eweapon n = Screen->CreateEWeapon(ID); n->Script = scriptNum; int sz = SizeOfArray(args); if(sz) { sz = ( sz > 7 ) ? 7 : sz-1; for (; sz >= 0; --sz) n->InitD[sz] = args[sz]; } return n; }