C_far

Solution: Warning avec YSI 3, OnUnoccupiedVehicleUpdate

2 messages dans ce sujet

Bonjour,

 

@SUNSHINE. m'a contacté suite à ce problème puisqu'il utilise YSI 3 et l'anticheat d'OstGot "Nexus AC".

Le warning est appelé sur le fichier "nex-ac.inc" mais le problème vient de la callback "OnUnoccupiedVehicleUpdate" dans YSI 3.

 

Ce problème peut intervenir sur d'autres includes n'ayant pas été mises à jour utilisant YSI 3 et utilisant la callback "OnUnoccupiedVehicleUpdate".

 

J'avais déjà indiqué comment résoudre ce problème sur le sujet anglais de l'anticheat, donc au cas où des personnes seraient concernées par ce problème, je vous aide à le résoudre en français sur ce forum.

 

Ma réponse originale : http://forum.sa-mp.com/showpost.php?p=3556462&postcount=202

Je traduis mon blabla :

 

Pour les personnes utilisant YSI 3, vous aurez un avertissement avec le hook de la callback "OnUnoccupiedVehicleUpdate". C'est normal, car l'include YSI 3 n'a pas été mise à jour suite à une mise à jour de SAMP. Je vous suggère deux solutions :

  • Soit de passer à YSI 4
  • Soit de changer quelques lignes dans les fichiers que je vais vous indiquer :

 

Depuis la version SAMP 0.3z R4, 3 paramètres ont été ajoutés à la callback "OnUnoccupiedVehicleUpdate".

Il est donc nécessaire de mettre à jour "y_hooks" et "y_als" qui fonctionnent ensemble (sans compter "y_unique").

 

Cherchez et ouvrez les fichiers "impl.inc" dans le dossier "YSI\y_hooks" et "YSI\y_als"

Pour "YSI\y_hooks\impl.inc", modifiez ce code à partir de la ligne 1755 :

public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)  
{  
    P:2("Hooks_OnUnoccupiedVehicleUpdate called: %d, %d, %d, %f, %f, %f, %f, %f, %f", vehicleid, playerid, passenger_seat, new_x, new_y, new_z, vel_x, vel_y, vel_z);  
    new  
        end   = _:YSI_g_sCallbackEnd[ALS_OnUnoccupiedVehicleUpdate],  
        start = _:YSI_g_sCallbackStart[ALS_OnUnoccupiedVehicleUpdate],  
        ret = ALS_R_UnoccupiedVehicleUpdate;  
    while (start++ != end)  
    {  
        #emit PUSH.S vel_z  
        #emit PUSH.S vel_y  
        #emit PUSH.S vel_x  
        #emit PUSH.S new_z  
        #emit PUSH.S new_y  
        #emit PUSH.S new_x  
        #emit PUSH.S passenger_seat  
        #emit PUSH.S playerid  
        #emit PUSH.S vehicleid  
        // I wonder if I could hack the stack with a negative number so that when  
        // the called function returns it puts all the header data BACK on to the  
        // stack instead of removing the parameters and header.  
        #emit PUSH.C     36  
        #emit CONST.alt  YSI_g_sCallbackAddresses  
        #emit LOAD.S.pri start  
        //#emit INC.pri  
        //#emit STOR.S.pri start  
        #emit LIDX  
        #emit MOVE.alt  
        #emit LCTRL      6  
        #emit ADD.C      24  
        #emit PUSH.pri  
        #emit MOVE.pri  
        #emit SCTRL      6  
        #emit MOVE.alt  
        #emit CONST.pri  0xFFFFFFFE  
        #emit AND  
        #emit PUSH.pri  
        #emit LOAD.S.pri ret  
        #emit AND  
        #emit POP.alt  
        #emit OR  
        #emit STOR.S.pri ret  
        if (ret < 0) return ret + 1;  
    }  
    return ret;  
}  
#if defined _ALS_OnUnoccupiedVehicleUpdate  
    #undef OnUnoccupiedVehicleUpdate  
#else  
    #define _ALS_OnUnoccupiedVehicleUpdate  
#endif  
#define OnUnoccupiedVehicleUpdate [email protected]@_OnUnoccupiedVehicleUpdate  
HOOK_FORWARD<UnoccupiedVehicleUpdate>  

 

Et pour "YSI\y_als\impl.inc", modifiez la ligne 233 par ceci :

#define ALS_DO_UnoccupiedVehicleUpdate<%0> %0<UnoccupiedVehicleUpdate,iiiffffff>(more:vehicleid,more:playerid,more:passenger_seat,Float:new_x,Float:new_y,Float:new_z,Float:vel_x,Float:vel_y,end_Float:vel_z)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Sujet épinglé, merci @C_far ! 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant