Error problems strike again ;/
#1

Yo guys now i tried to compile Garhouse V2 which did work with my servers script before but now it shows me this ;/ Help ;/

PHP код:
C:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(496) : error 029: invalid expression, assumed zero
C
:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(496) : error 001: expected token: ",", but found ";"
C:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(541) : error 029: invalid expression, assumed zero
C
:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(567) : error 029: invalid expression, assumed zero
C
:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(567) : error 001: expected token: ",", but found ";"
C:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(608) : error 029: invalid expression, assumed zero
C
:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(754) : error 029: invalid expression, assumed zero
C
:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(754) : error 001: expected token: ",", but found ";"
C:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(795) : error 029: invalid expression, assumed zero
C
:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(817) : error 029: invalid expression, assumed zero
C
:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(817) : error 001: expected token: ",", but found ";"
C:\Users\WeeD\Desktop\Samp\pawno\include\YSI\internal\y_dohooks.inc(858) : error 029: invalid expression, assumed zero 
Reply
#2

Try updating the include.
Reply
#3

Quote:
Originally Posted by [vTc]Patroool
Посмотреть сообщение
Try updating the include.
U mean by adding newer YSI ver ?

If u do i had done that and recived much more errors dunno why ;/
Reply
#4

I need this realy much so i can finish the server ;/
Reply
#5

Can we see the code?
Reply
#6

Quote:
Originally Posted by GloomY
Посмотреть сообщение
Can we see the code?
These are the incl file lines 495-947

PHP код:
        //printf("%d", P@("S@@_OnGameModeInit", ""));
        
HOOK_CALL<GameModeInit>
        
//hooks_do_hooks_call_no_als:
        //printf("end 2");
        //return 1;
    
}
    new
        
idx,
        
pointer,
        
re = end;
    if (
end > sizeof (YSI_g_sCallbackAddresses))
    {
        
re = sizeof (YSI_g_sCallbackAddresses);
        if (
start != sizeof (YSI_g_sCallbackAddresses)) idx = YSI_g_sLastFoundIndex;
    }
    
// Do the initial fast elements.
    
while (start != re)
    {
        
pointer = YSI_g_sCallbackAddresses[start++];
        
#emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        // Note that this label is embedded in the "HOOK_CALL" macro above.
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Get any remaining pointers the old way.
    
while (start++ != end)
    {
        
idx = AMX_GetPublicPointer(idx, pointer, "@yH_GameModeInit");
        
#emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Do ALS just in case (YSI no longer uses this though now).
    
P:2("Hooks_OnGameModeInit end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnGameModeInit));
    
HOOK_RETURN<GameModeInit>
    
//return 1;
}
#if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
#else
    #define _ALS_OnGameModeInit
#endif
#define OnGameModeInit S@@_OnGameModeInit
ALS_FORWARD<GameModeInit>
public 
OnGameModeExit()
{
    
P:2("Hooks_OnGameModeExit called");
    if (!
YSI_FILTERSCRIPT)
    {
        
Hooks_OnScriptExit();
        
//Hooks_OnAnyScriptExit();
    
}
    new
        
end   = YSI_g_sCallbackData[ALS_OnGameModeExit][E_FUNC_HOOK_DATA_END],
        
start = YSI_g_sCallbackData[ALS_OnGameModeExit][E_FUNC_HOOK_DATA_START],
        
ret = ALS_R_GameModeExit;
    if (
start == end)
    {
        
P:2("Hooks_OnGameModeExit end 1: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnGameModeExit));
        
HOOK_CALL<GameModeExit>
    }
    new
        
idx,
        
pointer,
        
re = end;
    if (
end > sizeof (YSI_g_sCallbackAddresses))
    {
        
re = sizeof (YSI_g_sCallbackAddresses);
        if (
start != sizeof (YSI_g_sCallbackAddresses)) idx = YSI_g_sLastFoundIndex;
    }
    
// Do the initial fast elements.
    
while (start != re)
    {
        
pointer = YSI_g_sCallbackAddresses[start++];
        
#emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Get any remaining pointers the old way.
    
while (start++ != end)
    {
        
idx = AMX_GetPublicPointer(idx, pointer, "@yH_GameModeExit");
        
#emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Do ALS just in case (YSI no longer uses this though now).
    
P:2("Hooks_OnGameModeExit end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnGameModeExit));
    
HOOK_RETURN<GameModeExit>
}
#if defined _ALS_OnGameModeExit
    #undef OnGameModeExit
#else
    #define _ALS_OnGameModeExit
#endif
#define OnGameModeExit S@@_OnGameModeExit
ALS_FORWARD<GameModeExit>
/*static Hooks_OnAnyScriptInit()
{
    P:2("Hooks_OnAnyScriptInit called");
    new
        end   = YSI_g_sCallbackData[ALS_OnAnyScriptInit][E_FUNC_HOOK_DATA_END],
        start = YSI_g_sCallbackData[ALS_OnAnyScriptInit][E_FUNC_HOOK_DATA_START],
        ret = ALS_R_PlayerCommandText;
    if (start == end)
    {
        P:2("Hooks_OnAnyScriptInit end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnAnyScriptInit));
        //HOOK_CALL<AnyScriptInit>
hooks_do_hooks_call_no_als:
        return;
    }
    new
        idx,
        pointer,
        re = end;
    if (end > sizeof (YSI_g_sCallbackAddresses))
    {
        re = sizeof (YSI_g_sCallbackAddresses);
        if (start != sizeof (YSI_g_sCallbackAddresses)) idx = YSI_g_sLastFoundIndex;
    }
    // Do the initial fast elements.
    while (start != re)
    {
        pointer = YSI_g_sCallbackAddresses[start++];
        #emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        // Note that this label is embedded in the "HOOK_CALL" macro above.
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    }
    // Get any remaining pointers the old way.
    while (start++ != end)
    {
        idx = AMX_GetPublicPointer(idx, pointer, "@yH_AnyScriptInit");
        #emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    }
    // Do ALS just in case (YSI no longer uses this though now).
    P:2("Hooks_OnAnyScriptInit end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnAnyScriptInit));
    //HOOK_RETURN<AnyScriptInit>
}
static Hooks_OnAnyScriptExit()
{
    P:2("Hooks_OnAnyScriptExit called");
    new
        end   = YSI_g_sCallbackData[ALS_OnAnyScriptExit][E_FUNC_HOOK_DATA_END],
        start = YSI_g_sCallbackData[ALS_OnAnyScriptExit][E_FUNC_HOOK_DATA_START],
        ret = ALS_R_PlayerCommandText;
    if (start == end)
    {
        P:2("Hooks_OnAnyScriptExit end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnAnyScriptExit));
        //HOOK_CALL<AnyScriptExit>
hooks_do_hooks_call_no_als:
        return;
    }
    new
        idx,
        pointer,
        re = end;
    if (end > sizeof (YSI_g_sCallbackAddresses))
    {
        re = sizeof (YSI_g_sCallbackAddresses);
        if (start != sizeof (YSI_g_sCallbackAddresses)) idx = YSI_g_sLastFoundIndex;
    }
    // Do the initial fast elements.
    while (start != re)
    {
        pointer = YSI_g_sCallbackAddresses[start++];
        #emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    }
    // Get any remaining pointers the old way.
    while (start++ != end)
    {
        idx = AMX_GetPublicPointer(idx, pointer, "@yH_AnyScriptExit");
        #emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    }
    // Do ALS just in case (YSI no longer uses this though now).
    P:2("Hooks_OnAnyScriptExit end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnAnyScriptExit));
    //HOOK_RETURN<AnyScriptExit>
}*/
public OnFilterScriptInit()
{
    
P:2("Hooks_OnFilterScriptInit called");
    
Hooks_OnScriptInit();
    
#if defined YSI_LOCK_MODE
        
if (strval(YSI_gLockData[strfind(YSI_gLockData[5], YSI_gLockData[1])]) | strval(YSI_gLockData[strfind(YSI_gLockData[YSI_gLockData[0]], YSI_gLockData[1], _, 1)]) << 8 != _LOCK_IP_1 | _LOCK_IP_2 << 8)
        {
            
y_lock 4;
        }
        
/*if (strval(YSI_gLockData[9]) + strval(YSI_gLockData[11]) + strval(YSI_gLockData[13]) != 1)
        {
            y_lock 5;
        }*/
    #endif
    //Hooks_OnAnyScriptInit();
    
YSI_FILTERSCRIPT = true;
    new
        
end   = YSI_g_sCallbackData[ALS_OnFilterScriptInit][E_FUNC_HOOK_DATA_END],
        
start = YSI_g_sCallbackData[ALS_OnFilterScriptInit][E_FUNC_HOOK_DATA_START],
        
ret = ALS_R_FilterScriptInit;
    if (
start == end)
    {
        
P:2("Hooks_OnFilterScriptInit end 1: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnFilterScriptInit));
        
HOOK_CALL<FilterScriptInit>
    }
    new
        
idx,
        
pointer,
        
re = end;
    if (
end > sizeof (YSI_g_sCallbackAddresses))
    {
        
re = sizeof (YSI_g_sCallbackAddresses);
        if (
start != sizeof (YSI_g_sCallbackAddresses)) idx = YSI_g_sLastFoundIndex;
    }
    
// Do the initial fast elements.
    
while (start != re)
    {
        
pointer = YSI_g_sCallbackAddresses[start++];
        
#emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Get any remaining pointers the old way.
    
while (start++ != end)
    {
        
idx = AMX_GetPublicPointer(idx, pointer, "@yH_FilterScriptInit");
        
#emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Do ALS just in case (YSI no longer uses this though now).
    
P:2("Hooks_OnFilterScriptInit end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnFilterScriptInit));
    
HOOK_RETURN<FilterScriptInit>
}
#if defined _ALS_OnFilterScriptInit
    #undef OnFilterScriptInit
#else
    #define _ALS_OnFilterScriptInit
#endif
#define OnFilterScriptInit S@@_OnFilterScriptInit
ALS_FORWARD<FilterScriptInit>
public 
OnFilterScriptExit()
{
    
P:2("Hooks_OnFilterScriptExit called");
    
Hooks_OnScriptExit();
    
//Hooks_OnAnyScriptExit();
    
new
        
end   = YSI_g_sCallbackData[ALS_OnFilterScriptExit][E_FUNC_HOOK_DATA_END],
        
start = YSI_g_sCallbackData[ALS_OnFilterScriptExit][E_FUNC_HOOK_DATA_START],
        
ret = ALS_R_FilterScriptExit;
    if (
start == end)
    {
        
P:2("Hooks_OnFilterScriptExit end 1: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnFilterScriptExit));
        
HOOK_CALL<FilterScriptExit>
    }
    new
        
idx,
        
pointer,
        
re = end;
    if (
end > sizeof (YSI_g_sCallbackAddresses))
    {
        
re = sizeof (YSI_g_sCallbackAddresses);
        if (
start != sizeof (YSI_g_sCallbackAddresses)) idx = YSI_g_sLastFoundIndex;
    }
    
// Do the initial fast elements.
    
while (start != re)
    {
        
pointer = YSI_g_sCallbackAddresses[start++];
        
#emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Get any remaining pointers the old way.
    
while (start++ != end)
    {
        
idx = AMX_GetPublicPointer(idx, pointer, "@yH_FilterScriptExit");
        
#emit PUSH.C     0
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Do ALS just in case (YSI no longer uses this though now).
    
P:2("Hooks_OnFilterScriptExit end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnFilterScriptExit));
    
HOOK_RETURN<FilterScriptExit>
}
#if defined _ALS_OnFilterScriptExit
    #undef OnFilterScriptExit
#else
    #define _ALS_OnFilterScriptExit
#endif
#define OnFilterScriptExit S@@_OnFilterScriptExit
ALS_FORWARD<FilterScriptExit>
public 
OnPlayerConnect(playerid)
{
    
P:2("Hooks_OnPlayerConnect called: %d", playerid);
    new
        
end   = YSI_g_sCallbackData[ALS_OnPlayerConnect][E_FUNC_HOOK_DATA_END],
        
start = YSI_g_sCallbackData[ALS_OnPlayerConnect][E_FUNC_HOOK_DATA_START],
        
ret = ALS_R_PlayerConnect;
    if (
start == end)
    {
        
P:2("Hooks_OnPlayerConnect end 1: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnPlayerConnect));
        
HOOK_CALL<PlayerConnect>
    }
    new
        
pointer,
        
idx,
        
re = end;
    if (
end > sizeof (YSI_g_sCallbackAddresses))
    {
        
re = sizeof (YSI_g_sCallbackAddresses);
        if (
start != sizeof (YSI_g_sCallbackAddresses)) idx = YSI_g_sLastFoundIndex;
    }
    
// Do the initial fast elements.  This was an experiment to play with the
    // stack so we only ever need to push the parameters and return address once
    // and do the loop using the return address!  Shame I've not got it working
    // yet really!
    /*#emit PUSH.S playerid
    #emit PUSH.C     4
    #emit LCTRL      6
    #emit ADD.C      20
    #emit PUSH.pri
    // This is done twice so that the second time the loop runs (which isn't
    // actually done by "while" anymore, the loop is hidden) the code's correct.
    #emit STACK      12
    // This is where the code above makes the SCTRL call return to!
    #emit STACK      0xFFFFFFF4
    //while (start != re)
    // NOTE: THIS IS A LOOP!  I know it doesn't look like one but it is!
    if (start != re)*/
    
while (start != re)
    {
        
pointer = YSI_g_sCallbackAddresses[start++];
        
#emit PUSH.S playerid
        #emit PUSH.C     4
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
// Clean up the stack.
    // Get any remaining pointers the old way.
    
while (start++ != end)
    {
        
idx = AMX_GetPublicPointer(idx, pointer, "@yH_PlayerConnect");
        
#emit PUSH.S playerid
        #emit PUSH.C     4
        #emit LCTRL      6
        #emit ADD.C      28
        #emit PUSH.pri
        #emit LOAD.S.pri pointer
        #emit SCTRL      6
        #emit CONST.alt  0xFFFFFFFF
        #emit STOR.S.pri ret
        #emit JEQ        hooks_do_hooks_call_no_als
    
}
    
//#emit STACK      12
    // Do ALS just in case (YSI no longer uses this though now).
    
P:2("Hooks_OnPlayerConnect end 2: %d %d", ret, _:Bit_GetBit(Bit:gs_ALS, _:ALS_OnPlayerConnect));
    
HOOK_RETURN<PlayerConnect>
}
#if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
#else
    #define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect S@@_OnPlayerConnect
ALS_FORWARD<PlayerConnect> 
Exact error lines:

PHP код:
496     HOOK_CALL<GameModeInit>
541     HOOK_RETURN<GameModeInit>
567     HOOK_CALL<GameModeExit>
608     HOOK_RETURN<GameModeExit>
754     HOOK_CALL<FilterScriptInit>
795     HOOK_RETURN<FilterScriptInit>
817     HOOK_CALL<FilterScriptExit>
858     HOOK_RETURN<FilterScriptExit> 
Reply
#7

Make sure you have all the YSI includes he used in this include.
Check the start of the script.
Or you can put this code in the pawno and try to compile it.
Reply
#8

Quote:
Originally Posted by GloomY
Посмотреть сообщение
Make sure you have all the YSI includes he used in this include.
Check the start of the script.
Or you can put this code in the pawno and try to compile it.
These are the includes for garhousev2 :

PHP код:
//==============================================================================
//                              Includes
//==============================================================================
#define FILTERSCRIPT // Important
#include <a_samp> // Credits to the SA:MP Developement Team
#include <sscanf2> // Credits to ******
#include <YSI\y_ini> // Credits to ******
#include <ZCMD> // Credits to Zeex
#include <streamer> // Credits to Incognito
#include <foreach> // Credits to ******
//############################################################################## 
Well when i use the original garhouse.amx and garhouse.pwn all works till i open garhouse.pwn and add some edits it throws those errors on compiling ;/
Reply
#9

I'm looking for the includes in y_dohooks.inc
Open that file and check the includes there.
Reply
#10

Quote:
Originally Posted by GloomY
Посмотреть сообщение
I'm looking for the includes in y_dohooks.inc
Open that file and check the includes there.
Includes+Defines:

PHP код:
#include <YSI\internal\y_version>
#include <a_samp>
#include <YSI\y_debug>
#include <YSI\y_amx>
#define ALS_PREFIX S@@
#if !defined YSI_FILTERSCRIPT
    
new
        
bool:YSI_FILTERSCRIPT = false;
#endif
#define hook%0On%1(%2) UNIQUE_FUNCTION<@yH_%1...>(%2);UNIQUE_FUNCTION<@yH_%1...>(%2)
//#define master_hook%0On%1(%2) UNIQUE_FUNCTION<@yH_%1...>(%2);UNIQUE_FUNCTION<@yH_%1...>(%2)<>{return ALS_R_%1;}UNIQUE_FUNCTION<@yH_%1...>(%2)<_YCM:y>
#define rehook%0On%1(%2) UNIQUE_FUNCTION<@yH_%1...>(%2)
#define Hook:%0On%1(%2) UNIQUE_FUNCTION<@yH_%1...%0>(%2);UNIQUE_FUNCTION<@yH_%1...%0>(%2)
#include <YSI\y_als>
/*#if !defined OnPlayerLogin
#endif
#if !defined OnPlayerLogout
#endif*/
//forward Hooks_OnPlayerLogin(playerid, yid);
//forward Hooks_OnPlayerLogout(playerid, yid);
//hook OnPlayerConnect
#if !defined HOOKS_MAX_UPDATES
    // Slight increase from the previous version.
    #define HOOKS_MAX_UPDATES           (8)
#endif
// One of the few places where this is still used.
ALS_DATA<>
// These defines now use the much more generic ALS code so that the list of
// callbacks is only done in one place.
#define HOOK_R_INT<%0,%2>(%3) return Bit_GetBit(Bit:gs_ALS,_:ALS_On%0)?P@(#ALS_PREFIX"_On"#%0,(q:#%2#),ALS_RS_%3):ret;
#define HOOK_RETURN<%0> ALS_DO:HOOK_R_INT<%0>
#define HOOK_C_INT<%0,%2>(%3) if(Bit_GetBit(Bit:gs_ALS,_:ALS_On%0))return P@(#ALS_PREFIX"_On"#%0,(q:#%2#),ALS_RS_%3);hooks_do_hooks_call_no_als:return ret;
#define HOOK_CALL<%0> ALS_DO:HOOK_C_INT<%0> 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)