hook problem
#1

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"
Reply
#2

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.
Reply
#3

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?
Reply
#4

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"
Reply
#5

Sorry for bump but I need really help.
Reply
#6

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;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)