BigETI

new_callbacks.inc

Sep 5th, 2011
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 18.94 KB | None | 0 0
  1. /*
  2. ////////////////////////////////////////////////////////////
  3. //========================================================//
  4. //== New Player Callbacks include made by BigETI © 2011 ==//
  5. //========================================================//
  6. //== You are not allowed to edit this include ============//
  7. //== and/or release it without my permissions! ===========//
  8. //========================================================//
  9. //== File name: new_callbacks.inc ========================//
  10. //== Autor: Ethem Kurt © =================================//
  11. //== Release Date: 06.09.2011 ============================//
  12. //== Version: V1.3 =======================================//
  13. //== Lines: 448 ==========================================//
  14. //== File size: 18,9 KB ==================================//
  15. //========================================================//
  16. ////////////////////////////////////////////////////////////
  17. */
  18.  
  19. //IMPORTANT: Define FILTERSCRIPT on top of your script to verify if you are yousing a filterscript or a gamemode!
  20.  
  21. //Just comment a define if you don't need it. Otherwise uncomment.
  22. #define USE_OPU_DELAY                   //Uses a delay at OnPlayerUpdate to prevent totally overkill (Usefull for anti cheats but the callbacks may get slower!)
  23. //#define USE_OPU_SECONDS               //Callbacks delays >1 seconds otherwise they delays for >1 milliseconds. (Uncomment USE_OPU_DELAY to make this usable!) [Optional]
  24. #define USE_PLAYER_CALLBACKS            //Makes the use of extended player callbacks.
  25. //#define USE_PVAR_CALLBACKS            //Makes the use of PVar callbacks (Uncomment this if you want to use PVar Callbacks) [Optional]
  26. #define CB_OnPlayerSkinChange           //Makes the use of OnPlayerSkinChange (Uncomment USE_PLAYER_CALLBACKS to make this usable!)
  27. #define CB_OnPlayerHoldWeaponChange     //Makes the use of OnPlayerHoldWeaponChange (Uncomment USE_PLAYER_CALLBACKS to make this usable!)
  28. #define CB_OnPlayerWeaponStateChange    //Makes the use of OnPlayerWeaponStateChange (Uncomment USE_PLAYER_CALLBACKS to make this usable!)
  29. #define USE_WEAPON_DATA_CALLBACKS       //Makes the use of weapon data callbacks
  30. #define CB_OnPlayerWeaponDataChange     //Makes the use of OnPlayerWeaponDataChange (Uncomment USE_PLAYER_CALLBACKS and USE_WEAPON_DATA_CALLBACKS to make this usable!)
  31. #define CB_OnPlayerAmmoDataChange       //Makes the use of OnPlayerAmmoDataChange (Uncomment USE_PLAYER_CALLBACKS and USE_WEAPON_DATA_CALLBACKS to make this usable!)
  32. #define CB_OnPlayerHealthChange         //Makes the use of OnPlayerHealthChange (Uncomment USE_PLAYER_CALLBACKS to make this usable!)
  33. #define CB_OnPlayerArmourChange         //Makes the use of OnPlayerArmourChange (Uncomment USE_PLAYER_CALLBACKS to make this usable!)
  34. #define CB_OnPlayerAnimationIndexChange //Makes the use of OnPlayerAnimationIndexChange (Uncomment USE_PLAYER_CALLBACKS to make this usable!)
  35. #define CB_OnPlayerSpecialActionChange  //Makes the use of OnPlayerSpecialActionChange (Uncomment USE_PLAYER_CALLBACKS to make this usable!)
  36. #define CB_OnPlayerVirtualWorldChange   //Makes the use of OnPlayerVirtualWorldChange (Uncomment USE_PLAYER_CALLBACKS to make this usable!)
  37. #define CB_OnPVarDelete                 //Makes the use of OnPVarDelete (Uncomment USE_PVAR_CALLBACKS to make this usable!)
  38. #define CB_OnPVarCreate                 //Makes the use of OnPVarCreate (Uncomment USE_PVAR_CALLBACKS to make this usable!)
  39. #define CB_OnPVarTypeChange             //Makes the use of OnPVarTypeChange (Uncomment USE_PVAR_CALLBACKS to make this usable!)
  40. #define CB_OnPVarIntChange              //Makes the use of OnPVarIntChange (Uncomment USE_PVAR_CALLBACKS to make this usable!)
  41. #define CB_OnPVarStringChange           //Makes the use of OnPVarStringChange (Uncomment USE_PVAR_CALLBACKS to make this usable!)
  42. #define CB_OnPVarFloatChange            //Makes the use of OnPVarFloatChange (Uncomment USE_PVAR_CALLBACKS to make this usable!)
  43.  
  44. //Setable defines
  45. #define ADD_OPU_DELAY   0               //You can increase/decrease the delay of OnPlayerUpdate by setting this define (0 is standard [means >1 s or ms delay]) (If USE_OPU_SECONDS is defined, then in seconds otherwise in milliseconds)
  46.  
  47.  
  48. //Do not edit those things below!
  49. #include <a_samp>
  50. #if defined _BIGETI_NEW_PLAYER_CALLBACKS
  51.     #endinput
  52. #endif
  53. #define _BIGETI_NEW_PLAYER_CALLBACKS
  54. #pragma library                 new_callbacks
  55. #define MAX_WEAPON_SLOTS        13
  56. #define INVALID_WEAPON_SLOT_ID  -1
  57. #if defined USE_PLAYER_CALLBACKS
  58.     #if defined CB_OnPlayerSkinChange
  59. forward OnPlayerSkinChange(playerid, oldskin, newskin);
  60.     #endif
  61.     #if defined CB_OnPlayerHoldWeaponChange
  62. forward OnPlayerHoldWeaponChange(playerid, oldslot, oldweapon, newslot, newweapon);
  63.     #endif
  64.     #if defined CB_OnPlayerWeaponStateChange
  65. forward OnPlayerWeaponStateChange(playerid, oldstate, newstate);
  66.     #endif
  67.     #if defined USE_WEAPON_DATA_CALLBACKS
  68.         #if defined CB_OnPlayerWeaponDataChange
  69. forward OnPlayerWeaponDataChange(playerid, slot, oldweapon, newweapon);
  70.         #endif
  71.         #if defined CB_OnPlayerAmmoDataChange
  72. forward OnPlayerAmmoDataChange(playerid, slot, oldammo, newammo);
  73.         #endif
  74.     #endif
  75.     #if defined CB_OnPlayerHealthChange
  76. forward OnPlayerHealthChange(playerid, Float:oldhealth, Float:newhealth);
  77.     #endif
  78.     #if defined CB_OnPlayerArmourChange
  79. forward OnPlayerArmourChange(playerid, Float:oldarmour, Float:newarmour);
  80.     #endif
  81.     #if defined CB_OnPlayerAnimationIndexChange
  82. forward OnPlayerAnimationIndexChange(playerid, oldindex, newindex);
  83.     #endif
  84.     #if defined CB_OnPlayerSpecialActionChange
  85. forward OnPlayerSpecialActionChange(playerid, oldsaction, newsaction);
  86.     #endif
  87.     #if defined CB_OnPlayerVirtualWorldChange
  88. forward OnPlayerVirtualWorldChange(playerid, oldworld, newworld);
  89.     #endif
  90. enum CallBack_Infos
  91. {
  92.     nCallBack_Skin,
  93.     nCallBack_HoldWeapon,
  94.     nCallBack_WeaponState,
  95.     nCallBack_Weapon[MAX_WEAPON_SLOTS],
  96.     nCallBack_Ammo[MAX_WEAPON_SLOTS],
  97.     Float:nCallBack_Health,
  98.     Float:nCallBack_Armour,
  99.     nCallBack_Animation,
  100.     nCallBack_SpecialAction,
  101.     bool:nCallBack_KickedBanned,
  102.     nCallBack_OPUTime,
  103. };
  104. new pCallBack_Info[MAX_PLAYERS][CallBack_Infos], OPC_CallBack, OPDC_CallBack, OPU_CallBack;
  105.     #define ETI_ReturnOPC(%0) ((OPC_CallBack != -1) ? CallLocalFunction("ETI_OnPlayerConnect", %0) : 1)
  106.     #define ETI_ReturnOPDC(%0) ((OPDC_CallBack != -1) ? CallLocalFunction("ETI_OnPlayerDisconnect", %0) : 1)
  107.     #define ETI_ReturnOPU(%0) ((OPU_CallBack != -1) ? CallLocalFunction("ETI_OnPlayerUpdate", %0) : 1)
  108. stock GetWeaponSlot_ETI(weaponid)
  109. {
  110.     new slot;
  111.     switch(weaponid)
  112.     {
  113.         case 0,1: slot = 0;
  114.         case 2..9: slot = 1;
  115.         case 22..24: slot = 2;
  116.         case 25..27: slot = 3;
  117.         case 28,29,32: slot = 4;
  118.         case 30,31: slot = 5;
  119.         case 33,34: slot = 6;
  120.         case 35..38: slot = 7;
  121.         case 16..18,39: slot = 8;
  122.         case 41..43: slot = 9;
  123.         case 10..15: slot = 10;
  124.         case 44..46: slot = 11;
  125.         case 40: slot = 12;
  126.         default: slot = INVALID_WEAPON_SLOT_ID;
  127.     }
  128.     return slot;
  129. }
  130.     #if defined FILTERSCRIPT
  131. public OnFilterScriptInit()
  132. {
  133.     OPC_CallBack = funcidx("OnPlayerConnect");
  134.     OPDC_CallBack = funcidx("OnPlayerDisconnect");
  135.     OPU_CallBack = funcidx("OnPlayerUpdate");
  136.     return (funcidx("ETI_OnFilterScriptInit") != -1) ? CallLocalFunction("ETI_OnFilterScriptInit","") : 1;
  137. }
  138.         #if defined _ALS_OnFilterScriptInit
  139.             #undef OnFilterScriptInit
  140.         #else
  141.             #define _ALS_OnFilterScriptInit
  142.         #endif
  143.         #define OnFilterScriptInit ETI_OnFilterScriptInit
  144. forward ETI_OnFilterScriptInit();
  145.     #else
  146. public OnGameModeInit()
  147. {
  148.     OPC_CallBack = funcidx("OnPlayerConnect");
  149.     OPDC_CallBack = funcidx("OnPlayerDisconnect");
  150.     OPU_CallBack = funcidx("OnPlayerUpdate");
  151.     return (funcidx("ETI_OnGameModeInit") != -1) ? CallLocalFunction("ETI_OnGameModeInit","") : 1;
  152. }
  153.         #if defined _ALS_OnGameModeInit
  154.             #undef OnGameModeInit
  155.         #else
  156.             #define _ALS_OnGameModeInit
  157.         #endif
  158.         #define OnGameModeInit ETI_OnGameModeInit
  159. forward ETI_OnGameModeInit();
  160.     #endif
  161. public OnPlayerConnect(playerid)
  162. {
  163.     pCallBack_Info[playerid][nCallBack_Health] = 100.0;
  164.     pCallBack_Info[playerid][nCallBack_KickedBanned] = false;
  165.     return ETI_ReturnOPC("d", playerid);
  166. }
  167.     #if defined _ALS_OnPlayerConnect
  168.         #undef OnPlayerConnect
  169.     #else
  170.         #define _ALS_OnPlayerConnect
  171.     #endif
  172.     #define OnPlayerConnect ETI_OnPlayerConnect
  173. forward ETI_OnPlayerConnect(playerid);
  174. public OnPlayerDisconnect(playerid, reason)
  175. {
  176.     #if defined CB_OnPlayerSkinChange
  177.     pCallBack_Info[playerid][nCallBack_Skin] = 0;
  178.     #endif
  179.     #if defined CB_OnPlayerWeaponChange
  180.     pCallBack_Info[playerid][nCallBack_HoldWeapon] = 0;
  181.     #endif
  182.     #if defined CB_OnPlayerWeaponStateChange
  183.     pCallBack_Info[playerid][nCallBack_WeaponState] = 0;
  184.     #endif
  185.     #if defined USE_WEAPON_DATA_CALLBACKS
  186.     for(new i = 0; i < MAX_WEAPON_SLOTS; i++)
  187.     {
  188.         #if defined CB_OnPlayerWeaponDataChange
  189.         pCallBack_Info[playerid][nCallBack_Weapon][i] = 0;
  190.         #endif
  191.         #if defined CB_OnPlayerAmmoDataChange
  192.         pCallBack_Info[playerid][nCallBack_Ammo][i] = 0;
  193.         #endif
  194.     }
  195.     #endif
  196.     #if defined CB_OnPlayerHealthChange
  197.     pCallBack_Info[playerid][nCallBack_Health] = 0.0;
  198.     #endif
  199.     #if defined CB_OnPlayerArmourChange
  200.     pCallBack_Info[playerid][nCallBack_Armour] = 0.0;
  201.     #endif
  202.     #if defined CB_OnPlayerAnimationIndexChange
  203.     pCallBack_Info[playerid][nCallBack_Animation] = 0;
  204.     #endif
  205.     #if defined CB_OnPlayerSpecialActionChange
  206.     pCallBack_Info[playerid][nCallBack_SpecialAction] = 0;
  207.     #endif
  208.     return ETI_ReturnOPDC("dd", playerid, reason);
  209. }
  210.     #if defined _ALS_OnPlayerDisconnect
  211.         #undef OnPlayerDisconnect
  212.     #else
  213.         #define _ALS_OnPlayerDisconnect
  214.     #endif
  215.     #define OnPlayerDisconnect ETI_OnPlayerDisconnect
  216. forward ETI_OnPlayerDisconnect(playerid, reason);
  217. public OnPlayerUpdate(playerid)
  218. {
  219.     if(pCallBack_Info[playerid][nCallBack_KickedBanned]) return ETI_ReturnOPU("d", playerid);
  220.     new update_Variable[CallBack_Infos];
  221.     #if defined USE_OPU_DELAY
  222.         #if defined USE_OPU_SECONDS
  223.     update_Variable[nCallBack_OPUTime] = gettime();
  224.         #else
  225.     update_Variable[nCallBack_OPUTime] = GetTickCount();
  226.         #endif
  227.     if(pCallBack_Info[playerid][nCallBack_OPUTime]+ADD_OPU_DELAY >= update_Variable[nCallBack_OPUTime]) return ETI_ReturnOPU("d", playerid);
  228.     pCallBack_Info[playerid][nCallBack_OPUTime] = update_Variable[nCallBack_OPUTime];
  229.     #endif
  230.     #if defined CB_OnPlayerSkinChange
  231.     update_Variable[nCallBack_Skin] = GetPlayerSkin(playerid);
  232.     if(pCallBack_Info[playerid][nCallBack_Skin] != update_Variable[nCallBack_Skin])
  233.     {
  234.         CallLocalFunction("OnPlayerSkinChange", "ddd", playerid, pCallBack_Info[playerid][nCallBack_Skin], update_Variable[nCallBack_Skin]);
  235.         pCallBack_Info[playerid][nCallBack_Skin] = update_Variable[nCallBack_Skin];
  236.     }
  237.     #endif
  238.     #if defined CB_OnPlayerHoldWeaponChange
  239.     update_Variable[nCallBack_HoldWeapon] = GetPlayerWeapon(playerid);
  240.     if(pCallBack_Info[playerid][nCallBack_HoldWeapon] != update_Variable[nCallBack_HoldWeapon])
  241.     {
  242.         CallLocalFunction("OnPlayerHoldWeaponChange", "ddddd", playerid, GetWeaponSlot_ETI(pCallBack_Info[playerid][nCallBack_HoldWeapon]), pCallBack_Info[playerid][nCallBack_HoldWeapon], GetWeaponSlot_ETI(update_Variable[nCallBack_HoldWeapon]), update_Variable[nCallBack_HoldWeapon]);
  243.         pCallBack_Info[playerid][nCallBack_HoldWeapon] = update_Variable[nCallBack_HoldWeapon];
  244.     }
  245.     #endif
  246.     #if defined CB_OnPlayerWeaponStateChange
  247.     update_Variable[nCallBack_WeaponState] = GetPlayerWeaponState(playerid);
  248.     if(pCallBack_Info[playerid][nCallBack_WeaponState] != update_Variable[nCallBack_WeaponState])
  249.     {
  250.         CallLocalFunction("OnPlayerWeaponStateChange", "ddd", playerid, pCallBack_Info[playerid][nCallBack_WeaponState], update_Variable[nCallBack_WeaponState]);
  251.         pCallBack_Info[playerid][nCallBack_WeaponState] = update_Variable[nCallBack_WeaponState];
  252.     }
  253.     #endif
  254.     #if defined USE_WEAPON_DATA_CALLBACKS
  255.     for(new i = 0; i < MAX_WEAPON_SLOTS; i++)
  256.     {
  257.         GetPlayerWeaponData(playerid, i, update_Variable[nCallBack_Weapon][i], update_Variable[nCallBack_Ammo][i]);
  258.         #if defined CB_OnPlayerWeaponDataChange
  259.         if(pCallBack_Info[playerid][nCallBack_Weapon][i] != update_Variable[nCallBack_Weapon][i])
  260.         {
  261.             CallLocalFunction("OnPlayerWeaponDataChange", "dddd", playerid, i, pCallBack_Info[playerid][nCallBack_Weapon][i], update_Variable[nCallBack_Weapon][i]);
  262.             pCallBack_Info[playerid][nCallBack_Weapon][i] = update_Variable[nCallBack_Weapon][i];
  263.         }
  264.         #endif
  265.         #if defined CB_OnPlayerAmmoDataChange
  266.         if(pCallBack_Info[playerid][nCallBack_Ammo][i] != update_Variable[nCallBack_Ammo][i])
  267.         {
  268.             CallLocalFunction("OnPlayerAmmoDataChange", "dddd", playerid, i, pCallBack_Info[playerid][nCallBack_Ammo][i], update_Variable[nCallBack_Ammo][i]);
  269.             pCallBack_Info[playerid][nCallBack_Ammo][i] = update_Variable[nCallBack_Ammo][i];
  270.         }
  271.         #endif
  272.     }
  273.     #endif
  274.     #if defined CB_OnPlayerHealthChange
  275.     GetPlayerHealth(playerid, update_Variable[nCallBack_Health]);
  276.     if(pCallBack_Info[playerid][nCallBack_Health] != update_Variable[nCallBack_Health])
  277.     {
  278.         CallLocalFunction("OnPlayerHealthChange", "dff", playerid, pCallBack_Info[playerid][nCallBack_Health], update_Variable[nCallBack_Health]);
  279.         pCallBack_Info[playerid][nCallBack_Health] = update_Variable[nCallBack_Health];
  280.     }
  281.     #endif
  282.     #if defined CB_OnPlayerArmourChange
  283.     GetPlayerArmour(playerid, update_Variable[nCallBack_Armour]);
  284.     if(pCallBack_Info[playerid][nCallBack_Armour] != update_Variable[nCallBack_Armour])
  285.     {
  286.         CallLocalFunction("OnPlayerArmourChange", "dff", playerid, pCallBack_Info[playerid][nCallBack_Armour], update_Variable[nCallBack_Armour]);
  287.         pCallBack_Info[playerid][nCallBack_Armour] = update_Variable[nCallBack_Armour];
  288.     }
  289.     #endif
  290.     #if defined CB_OnPlayerAnimationIndexChange
  291.     update_Variable[nCallBack_Animation] = GetPlayerAnimationIndex(playerid);
  292.     if(pCallBack_Info[playerid][nCallBack_Animation] != update_Variable[nCallBack_Animation])
  293.     {
  294.         CallLocalFunction("OnPlayerAnimationIndexChange", "ddd", playerid, pCallBack_Info[playerid][nCallBack_Animation], update_Variable[nCallBack_Animation]);
  295.         pCallBack_Info[playerid][nCallBack_Animation] = update_Variable[nCallBack_Animation];
  296.     }
  297.     #endif
  298.     #if defined CB_OnPlayerSpecialActionChange
  299.     update_Variable[nCallBack_SpecialAction] = GetPlayerSpecialAction(playerid);
  300.     if(pCallBack_Info[playerid][nCallBack_SpecialAction] != update_Variable[nCallBack_SpecialAction])
  301.     {
  302.         CallLocalFunction("OnPlayerSpecialActionChange", "ddd", playerid, pCallBack_Info[playerid][nCallBack_SpecialAction], update_Variable[nCallBack_SpecialAction]);
  303.         pCallBack_Info[playerid][nCallBack_SpecialAction] = update_Variable[nCallBack_SpecialAction];
  304.     }
  305.     #endif
  306.     return ETI_ReturnOPU("d", playerid);
  307. }
  308.     #if defined _ALS_OnPlayerUpdate
  309.         #undef OnPlayerUpdate
  310.     #else
  311.         #define _ALS_OnPlayerUpdate
  312.     #endif
  313.     #define OnPlayerUpdate ETI_OnPlayerUpdate
  314. forward ETI_OnPlayerUpdate(playerid);
  315.     #if defined CB_OnPlayerVirtualWorldChange
  316. stock SetPlayerVirtualWorld_ETI(playerid, worldid)
  317. {
  318.     new oldworld = GetPlayerVirtualWorld(playerid);
  319.     if(oldworld != worldid) CallLocalFunction("OnPlayerVirtualWorldChange", "ddd", playerid, oldworld, worldid);
  320.     SetPlayerVirtualWorld(playerid, worldid);
  321. }
  322.         #define SetPlayerVirtualWorld(%0) SetPlayerVirtualWorld_ETI(%0)
  323.     #endif
  324.     #if !defined ETI_Kick
  325. stock ETI_Kick(playerid)
  326. {
  327.     pCallBack_Info[playerid][nCallBack_KickedBanned] = true;
  328.     Kick(playerid);
  329. }
  330.         #define Kick(%0) ETI_Kick(%0)
  331.     #endif
  332.     #if !defined ETI_Ban
  333. stock ETI_Ban(playerid)
  334. {
  335.     pCallBack_Info[playerid][nCallBack_KickedBanned] = true;
  336.     Ban(playerid);
  337. }
  338.         #define Ban(%0) ETI_Ban(%0)
  339.     #endif
  340.     #if !defined ETI_BanEx
  341. stock ETI_BanEx(playerid, const reason[])
  342. {
  343.     pCallBack_Info[playerid][nCallBack_KickedBanned] = true;
  344.     BanEx(playerid, reason);
  345. }
  346.         #define BanEx(%0) ETI_BanEx(%0)
  347.     #endif
  348. #endif
  349. #if defined USE_PVAR_CALLBACKS
  350.     #if defined CB_OnPVarDelete
  351. forward OnPVarDelete(playerid, varname[], oldtype);
  352.     #endif
  353.     #if defined CB_OnPVarCreate
  354. forward OnPVarCreate(playerid, varname[], type);
  355.     #endif
  356.     #if defined CB_OnPVarTypeChange
  357. forward OnPVarTypeChange(playerid, varname[], oldtype, newtype);
  358.     #endif
  359. forward OnPVarIntChange(playerid, varname[], oldint_value, newint_value);
  360. forward OnPVarStringChange(playerid, varname[], oldstring_value[], newstring_value[]);
  361. forward OnPVarFloatChange(playerid, varname[], Float:oldfloat_value, Float:newfloat_value);
  362.     #if !defined ReturnPVarString
  363. stock ReturnPVarString(playerid, varname[])
  364. {
  365.     new pvstring[1024];
  366.     GetPVarString(playerid, varname, pvstring, sizeof(pvstring));
  367.     return pvstring;
  368. }
  369.     #endif
  370.     #if defined CB_OnPVarDelete
  371. stock DeletePVar_ETI(playerid, varname[])
  372. {
  373.     new pvartype = GetPVarType(playerid, varname);
  374.     if(DeletePVar(playerid, varname))
  375.     {
  376.         CallLocalFunction("OnPVarDelete", "dsd", playerid, varname, pvartype);
  377.         return 1;
  378.     }
  379.     return 0;
  380. }
  381.         #define DeletePVar(%0) DeletePVar_ETI(%0)
  382.     #endif
  383. stock SetPVarInt_ETI(playerid, varname[], int_value)
  384. {
  385.     #if defined CB_OnPVarCreate
  386.     if(GetPVarType(playerid, varname) == 0) CallLocalFunction("OnPVarCreate", "dsd", playerid, varname, 1);
  387.         #if defined CB_OnPVarTypeChange
  388.     else
  389.         #endif
  390.     #endif
  391.     #if defined CB_OnPVarTypeChange
  392.     if(GetPVarType(playerid, varname) != 0 && GetPVarType(playerid, varname) != 1) CallLocalFunction("OnPVarTypeChange", "dsdd", playerid, varname, GetPVarType(playerid, varname), 1);
  393.         #if defined CB_OnPVarIntChange
  394.     else
  395.         #endif
  396.     #endif
  397.     #if defined CB_OnPVarIntChange
  398.     if(GetPVarInt(playerid, varname) != int_value) CallLocalFunction("OnPVarIntChange", "dsdd", playerid, varname, GetPVarInt(playerid, varname), int_value);
  399.     #endif
  400.     SetPVarInt(playerid, varname, int_value);
  401. }
  402.     #define SetPVarInt(%0) SetPVarInt_ETI(%0)
  403. stock SetPVarString_ETI(playerid, varname[], string_value[])
  404. {
  405.     #if defined CB_OnPVarCreate
  406.     if(GetPVarType(playerid, varname) == 0) CallLocalFunction("OnPVarCreate", "dsd", playerid, varname, 2);
  407.         #if defined CB_OnPVarTypeChange
  408.     else
  409.         #endif
  410.     #endif
  411.     #if defined CB_OnPVarTypeChange
  412.     if(GetPVarType(playerid, varname) != 0 && GetPVarType(playerid, varname) != 2) CallLocalFunction("OnPVarTypeChange", "dsdd", playerid, varname, GetPVarType(playerid, varname), 2);
  413.         #if defined CB_OnPVarStringChange
  414.     else
  415.     {
  416.         #endif
  417.     #endif
  418.     #if defined CB_OnPVarStringChange
  419.         new strcmpval = strcmp(ReturnPVarString(playerid, varname), string_value);
  420.         if(strcmpval == -1 || strcmpval == 1) CallLocalFunction("OnPVarStringChange", "dsss", playerid, varname, ReturnPVarString(playerid, varname), string_value);
  421.         #if defined CB_OnPVarTypeChange
  422.     }
  423.         #endif
  424.     #endif
  425.     SetPVarString(playerid, varname, string_value);
  426. }
  427.     #define SetPVarString(%0) SetPVarString_ETI(%0)
  428. stock SetPVarFloat_ETI(playerid, varname[], Float:float_value)
  429. {
  430.     #if defined CB_OnPVarCreate
  431.     if(GetPVarType(playerid, varname) == 0) CallLocalFunction("OnPVarCreate", "dsd", playerid, varname, 3);
  432.         #if defined CB_OnPVarTypeChange
  433.     else
  434.         #endif
  435.     #endif
  436.     #if defined CB_OnPVarTypeChange
  437.     if(GetPVarType(playerid, varname) != 0 && GetPVarType(playerid, varname) != 3) CallLocalFunction("OnPVarTypeChange", "dsdd", playerid, varname, GetPVarType(playerid, varname), 3);
  438.         #if defined CB_OnPVarFloatChange
  439.     else
  440.         #endif
  441.     #endif
  442.     #if defined CB_OnPVarFloatChange
  443.     if(GetPVarFloat(playerid, varname) != float_value) CallLocalFunction("OnPVarFloatChange", "dsff", playerid, varname, GetPVarFloat(playerid, varname), float_value);
  444.     #endif
  445.     SetPVarFloat(playerid, varname, float_value);
  446. }
  447.     #define SetPVarFloat(%0) SetPVarFloat_ETI(%0)
  448. #endif
Advertisement
Add Comment
Please, Sign In to add comment