SA-MP Forums Archive
hook problem - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: hook problem (/showthread.php?tid=600349)



hook problem - Sanady - 06.02.2016

Hey, I tried hook function with ALS method, but when I do hook, I get warning that symbol already exsists here is the code:
pawn Код:
#if defined _ALS_OnPlayerEnterDynamicRaceCP
    #undef OnPlayerEnterDynamicRaceCP
#else
    #define _ALS_OnPlayerEnterDynamicRaceCP
#endif
#define OnPlayerEnterDynamicRaceCP dym_OnPlayerEnterRaceCP
forward dym_OnPlayerEnterRaceCP(playerid, checkpointid);

public OnPlayerEnterDynamicRaceCP(playerid, checkpointid)
{
    CallLocalFunction("dym_OnPlayerEnterRaceCP","ii");
    return 1;
}

public dym_OnPlayerEnterRaceCP(playerid, checkpointid)
{

    return 1;
}
Код:
D:\Server\SA-MP Server\gamemodes\SAOnline.pwn(1961) : error 021: symbol already defined: "dym_OnPlayerEnterRaceCP"



Re: hook problem - Gammix - 06.02.2016

You won't be able to hook such large callback names because samp allows only 31 characters for a deceleration/element.

You have to use ALS method, by cutting some part of the callback's name while hooking.


Re: hook problem - Sanady - 06.02.2016

Quote:
Originally Posted by Gammix
Посмотреть сообщение
You won't be able to hook such large callback names because samp allows only 31 characters for a deceleration/element.

You have to use ALS method, by cutting some part of the callback's name while hooking.
Is possible to change 31 characters of deceleration/element?


Re: hook problem - Sanady - 07.02.2016

Hey, I tried hook function with ALS method, but when I do hook, I get warning that symbol already exsists here is the code:
pawn Код:
#if defined _ALS_OnPlayerEnterDynamicRaceCP
    #undef OnPlayerEnterDynamicRaceCP
#else
    #define _ALS_OnPlayerEnterDynamicRaceCP
#endif
#define OnPlayerEnterDynamicRaceCP dym_OnPlayerEnterRaceCP
forward dym_OnPlayerEnterRaceCP(playerid, checkpointid);

public OnPlayerEnterDynamicRaceCP(playerid, checkpointid)
{
    CallLocalFunction("dym_OnPlayerEnterRaceCP","ii");
    return 1;
}

public dym_OnPlayerEnterRaceCP(playerid, checkpointid)
{

    return 1;
}
Код:
D:\Server\SA-MP Server\gamemodes\SAOnline.pwn(1961) : error 021: symbol already defined: "dym_OnPlayerEnterRaceCP"



Re: hook problem - Sanady - 07.02.2016

Sorry for bump but I need really help.


Re: hook problem - Nero_3D - 07.02.2016

The ALS hook must be after the function!, also use hook method 7
The reason is simple because you redefine the function name
PHP код:
public OnPlayerEnterDynamicRaceCP(playeridcheckpointid)
{
    
#if defined dym_OnPlayerEnterRaceCP
        
return dym_OnPlayerEnterRaceCP(playeridcheckpointid);
    
#else
        
return true;
    
#endif
}
#if defined _ALS_OnPlayerEnterDynamicRaceCP
    #undef OnPlayerEnterDynamicRaceCP
#else
    #define _ALS_OnPlayerEnterDynamicRaceCP
#endif
#define OnPlayerEnterDynamicRaceCP dym_OnPlayerEnterRaceCP
#if defined dym_OnPlayerEnterRaceCP
    
forward dym_OnPlayerEnterRaceCP(playeridcheckpointid);
#endif
// in another file
public OnPlayerEnterDynamicRaceCP(playeridcheckpointid)
{
    return 
true;