ZoriaRPG icon

RunScript Functions v2

ZoriaRPG | PRO | 03/18/19 08:38:33 AM UTC | 0 ⭐ | 706 👁️ | Never ⏰ | []
C++ |

1.44 KB

|

None

|

0 👍

/

0 👎

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;
}

Comments