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
//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>
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>
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. |
//==============================================================================
// 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 ******
//##############################################################################
I'm looking for the includes in y_dohooks.inc
Open that file and check the includes there. |
#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>