Chaoz

Callbackz 1.0

Aug 21st, 2011
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 17.56 KB | None | 0 0
  1. #if !defined _CBz_INCLUDED
  2.     #define _CBz_INCLUDED
  3. #else
  4.     #endinput
  5. #endif
  6.  
  7. #include <YSI\y_hooks>
  8. #define PUBLIC:%0(%1)   forward %0(%1); public %0(%1)
  9. #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  10. #define PAUSE_TIME      5
  11. #define AFK_TIME        30
  12. #define INTERVAL        350
  13. enum _I{
  14.     bool:pAFK,
  15.     bool:pPaused,
  16.     bool:pInWater,
  17.     bool:pShoting,
  18.     bool:pParachuting,
  19.     bool:pMachine,
  20.     bool:pDriveBy,
  21.     bool:pIntDamage,
  22.     bool:pReconnect,
  23.     Float:pP[4],
  24.     pTimer,
  25.     pTime[2],
  26.     pWeap,
  27.     pVWorld,
  28.     Float:pHealth,
  29.     Float:pArmour,
  30.     pMoney,
  31.     pWeaps[13],
  32.     pAmmo[13],
  33.     pFPS,
  34.     pDrk,
  35.     pIP[16]
  36. };
  37. enum _V{
  38.     bool:vCreated,
  39.     vColor[2],
  40.     vPlate[32],
  41.     vInterior,
  42. };
  43. new I[MAX_PLAYERS][_I], V[MAX_VEHICLES][_V],
  44.     Ranges[30][2] = {
  45.         {0, 1},
  46.         {1, 1},
  47.         {2, 1},
  48.         {3, 1},
  49.         {4, 1},
  50.         {5, 1},
  51.         {6, 1},
  52.         {7, 1},
  53.         {8, 1},
  54.         {9, 1},
  55.         {10, 1},
  56.         {11, 1},
  57.         {12, 1},
  58.         {13, 1},
  59.         {14, 1},
  60.         {15, 1},//----Armas blancas/puños/etc
  61.         {22, 20},//colt
  62.         {23, 20},//silenced
  63.         {24, 30},//eagle
  64.         {25, 35},//escopeta
  65.         {26, 35},//recortada
  66.         {27, 35},//spaz
  67.         {28, 30},//uzi
  68.         {29, 50},//MP5
  69.         {30, 70},//AK-47
  70.         {31, 70},//M4
  71.         {32, 30},//Tec
  72.         {33, 80},//Rifle
  73.         {34, 150},//Sniper
  74.         {38, 70}//Minigun
  75.     };
  76.  
  77. forward OnPlayerPause(playerid);
  78. forward OnPlayerAFK(playerid);
  79. forward OnPlayerWeaponChange(playerid, newweaponid, oldweaponid);
  80. forward OnPlayerVirtualWorldChange(playerid, newworldid, oldworldid);
  81. forward OnPlayerEnterWater(playerid);
  82. forward OnPlayerHealthChange(playerid, Float:newhealth, Float:oldhealth);
  83. forward OnPlayerArmourChange(playerid, Float:newarmour, Float:oldarmour);
  84. forward OnPlayerMoneyChange(playerid, newmoney, oldmoney);
  85. forward OnPlayerShotPlayer(playerid, targetid, Float:health, Float:armour, weaponid, Headshot);
  86. forward OnVehicleCreate(vehicleid);
  87. forward OnVehicleDestroy(vehicleid);
  88. forward OnPlayerUseMachine(playerid);
  89.  
  90. #if defined FILTERSCRIPT
  91.     Hook:CBz_OnFilterScriptInit()
  92.     {
  93.         for(new i; i<GetMaxPlayers(); i++){
  94.             if(IsPlayerConnected(i) && !IsPlayerNPC(i)){
  95.                 ResetPlayer(i);
  96.                 I[i][pTime][1] = GetTickCount();
  97.                 GetPlayerHealth(i, I[i][pHealth]);
  98.                 GetPlayerArmour(i, I[i][pArmour]);
  99.                 I[i][pWeap] = GetPlayerWeapon(i);
  100.                 I[i][pMoney] = GetPlayerMoney(i);
  101.                 I[i][pTimer] = SetTimerEx("Check", INTERVAL, true, "i", i);
  102.             }
  103.         }
  104.         return 1;
  105.     }
  106.  
  107.     Hook:CBz_OnFilterScriptExit()
  108.     {
  109.         for(new i; i<GetMaxPlayers(); i++)if(IsPlayerConnected(i) && !IsPlayerNPC(i) && I[i][pTimer])KillTimer(I[i][pTimer]);
  110.         return 1;
  111.     }
  112. #else
  113.     Hook:CBz_OnGameModeInit()
  114.     {
  115.         for(new i; i<GetMaxPlayers(); i++){
  116.             if(IsPlayerConnected(i) && !IsPlayerNPC(i)){
  117.                 ResetPlayer(i);
  118.                 I[i][pTime][1] = GetTickCount();
  119.                 GetPlayerHealth(i, I[i][pHealth]);
  120.                 GetPlayerArmour(i, I[i][pArmour]);
  121.                 I[i][pWeap] = GetPlayerWeapon(i);
  122.                 I[i][pMoney] = GetPlayerMoney(i);
  123.                 I[i][pTimer] = SetTimerEx("Check", INTERVAL, true, "i", i);
  124.             }
  125.         }
  126.         return 1;
  127.     }
  128.  
  129.     Hook:CBz_OnGameModeExit()
  130.     {
  131.         for(new i; i<GetMaxPlayers(); i++)if(IsPlayerConnected(i) && !IsPlayerNPC(i) && I[i][pTimer])KillTimer(I[i][pTimer]);
  132.         return 1;
  133.     }
  134. #endif
  135. Hook:CBz_OnPlayerConnect(playerid)
  136. {
  137.     ResetPlayer(playerid);
  138.     if(IsPlayerNPC(playerid))return 1;
  139.     I[playerid][pTimer] = SetTimerEx("Check", INTERVAL, true, "i", playerid);
  140.     I[playerid][pTime][1] = GetTickCount();
  141.     return 1;
  142. }
  143.  
  144. Hook:CBz_OnPlayerDisconnect(playerid, reason)
  145. {
  146.     if(I[playerid][pTimer])KillTimer(I[playerid][pTimer]);
  147.     if(I[playerid][pReconnect]){
  148.         new cmdstr[25];
  149.         I[playerid][pReconnect] = false;
  150.         format(cmdstr, 23, "unbanip %s", I[playerid][pIP]);
  151.         SendRconCommand(cmdstr);
  152.         SendRconCommand("reloadbans");
  153.     }
  154.     return 1;
  155. }
  156.  
  157. Hook:CBz_OnPlayerSpawn(playerid)
  158. {
  159.     I[playerid][pWeap] = GetPlayerWeapon(playerid);
  160.     I[playerid][pVWorld] = GetPlayerVirtualWorld(playerid);
  161.     I[playerid][pHealth] = 100;
  162.     SetTimerEx("GetWeaps", 500, false, "i", playerid);
  163.     return 1;
  164. }
  165.  
  166. Hook:CBz_OnPlayerDeath(playerid)
  167. {
  168.     I[playerid][pHealth] = 0;
  169.     return 1;
  170. }
  171.  
  172. Hook:CBz_OnPlayerText(playerid, text[])
  173. {
  174.     I[playerid][pTime][1] = GetTickCount();
  175.     return 1;
  176. }
  177.  
  178. Hook:CBz_OnPlayerCommandText(playerid, cmdtext[])
  179. {
  180.     I[playerid][pTime][1] = GetTickCount();
  181.     return 1;
  182. }
  183.  
  184. Hook:OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  185. {
  186.     if(!I[playerid][pIntDamage]){
  187.         if(!newinteriorid)for(new i; i<13; i++)GivePlayerWeapon(playerid, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
  188.         else{
  189.             for(new i; i<13; i++)GetPlayerWeaponData(playerid, i, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
  190.             ResetPlayerWeapons(playerid);
  191.         }
  192.     }
  193.     return 1;
  194. }
  195.  
  196. Hook:CBz_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  197. {
  198.     I[playerid][pTime][1] = GetTickCount();
  199.     if(I[playerid][pWeap]){
  200.         if(PRESSED(KEY_FIRE) || PRESSED(KEY_SECONDARY_ATTACK))I[playerid][pShoting] = true;
  201.         else I[playerid][pShoting] = false;
  202.     }
  203.     return 1;
  204. }
  205.  
  206. Hook:CBz_OnPlayerStateChange(playerid, newstate, oldstate)
  207. {
  208.     I[playerid][pTime][1] = GetTickCount();
  209.     I[playerid][pShoting] = false;
  210.     if(newstate == PLAYER_STATE_DRIVER){
  211.         if(!I[playerid][pDriveBy]){
  212.             for(new i; i<13; i++)GetPlayerWeaponData(playerid, i, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
  213.             ResetPlayerWeapons(playerid);
  214.         }
  215.     }
  216.     else if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER && !I[playerid][pDriveBy])for(new i; i<13; i++)GivePlayerWeapon(playerid, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
  217.     return 1;
  218. }
  219.  
  220. Hook:CBz_OnPlayerUpdate(playerid)
  221. {
  222.     if(!I[playerid][pAFK]){
  223.         new Float:rP[7], Float:HA[2], tmp[2];
  224.         GetPlayerPos(playerid, rP[0], rP[1], rP[2]);
  225.         GetPlayerFacingAngle(playerid, rP[3]);
  226.         if(floatcmp(rP[0], I[playerid][pP][0]) && floatcmp(rP[1], I[playerid][pP][1]) && floatcmp(rP[2], I[playerid][pP][2]) && floatcmp(rP[3], I[playerid][pP][3])){
  227.             GetPlayerPos(playerid, I[playerid][pP][0], I[playerid][pP][1], I[playerid][pP][2]);
  228.             GetPlayerFacingAngle(playerid, I[playerid][pP][3]);
  229.             I[playerid][pTime][1] = GetTickCount();
  230.             I[playerid][pAFK] = false;
  231.         }
  232.         GetPlayerHealth(playerid, HA[0]);
  233.         GetPlayerArmour(playerid, HA[1]);
  234.         if(floatcmp(HA[0], I[playerid][pHealth]) || floatcmp(HA[1], I[playerid][pArmour])){
  235.             GetPlayerCameraPos(playerid, rP[0], rP[1], rP[2]);
  236.             GetPlayerCameraFrontVector(playerid, rP[3], rP[4], rP[5]);
  237.             for(new i; i<GetMaxPlayers(); i++){
  238.                 if(IsPlayerConnected(i) && !IsPlayerNPC(i) && I[i][pShoting] && i != playerid && GetPlayerVirtualWorld(i) == I[playerid][pVWorld] && GetPlayerInterior(i) == GetPlayerInterior(playerid)){
  239.                     if(IsPlayerInRangeOfPoint(i, GetWeaponRange(I[i][pWeap]), I[playerid][pP][0], I[playerid][pP][1], I[playerid][pP][2])){
  240.                         GetDistanceFromPointToLine(rP[6], rP[3], rP[4], rP[5], rP[0], rP[1], rP[2], I[i][pP][0], I[i][pP][1], I[i][pP][2]);
  241.                         if(rP[6] < 1)CallLocalFunction("OnPlayerShotPlayer", "iifffi", i, playerid, (I[i][pHealth]-HA[0]), (I[i][pArmour]-HA[1]), I[playerid][pWeap]);
  242.                     }
  243.                 }
  244.             }
  245.         }
  246.         tmp[0] = GetPlayerDrunkLevel(playerid);
  247.         if(tmp[0] < 200)SetPlayerDrunkLevel(playerid, 2000);
  248.         else if(I[playerid][pDrk] != tmp[0]){
  249.             tmp[1] = I[playerid][pDrk] - tmp[0];
  250.             if(0 < tmp[1] < 200)I[playerid][pFPS] = tmp[1];
  251.             I[playerid][pDrk] = tmp[0];
  252.         }
  253.         I[playerid][pTime][0] = GetTickCount();
  254.     }
  255.     return 1;
  256. }
  257.  
  258. Hook:CBz_OnVehicleRespray(playerid, vehicleid, color1, color2)
  259. {
  260.     V[vehicleid][vColor][0] = color1;
  261.     V[vehicleid][vColor][1] = color2;
  262.     return 1;
  263. }
  264.  
  265. PUBLIC:Check(playerid)
  266. {
  267.     if(!I[playerid][pAFK] && !I[playerid][pPaused]){
  268.         if((GetTickCount()-I[playerid][pTime][0])>=(PAUSE_TIME*519)){
  269.             I[playerid][pPaused] = true;
  270.             CallLocalFunction("OnPlayerPause", "i", playerid);
  271.         }else I[playerid][pPaused] = false;
  272.         if((GetTickCount()-I[playerid][pTime][1])>=(AFK_TIME*1000)){
  273.             I[playerid][pAFK] = true;
  274.             CallLocalFunction("OnPlayerAFK", "i", playerid);
  275.         }else I[playerid][pAFK] = false;
  276.         if(!I[playerid][pPaused]){
  277.             new tmp, Lib[2][32], Float:HA[2];
  278.             tmp = GetPlayerWeapon(playerid);
  279.             if(tmp != I[playerid][pWeap]){
  280.                 CallLocalFunction("OnPlayerWeaponChange", "iii", playerid, tmp, I[playerid][pWeap]);
  281.                 I[playerid][pWeap] = tmp;
  282.             }
  283.             tmp = GetPlayerVirtualWorld(playerid);
  284.             if(tmp != I[playerid][pVWorld]){
  285.                 CallLocalFunction("OnPlayerVirtualWorldChange", "iii", playerid, tmp, I[playerid][pVWorld]);
  286.                 I[playerid][pVWorld] = tmp;
  287.             }
  288.             GetAnimationName(GetPlayerAnimationIndex(playerid), Lib[0], 32, Lib[1], 32);
  289.             if(Lib[0][0]){
  290.                 if(!strcmp(Lib[0], "SWIM")){
  291.                     if(!I[playerid][pInWater]){
  292.                         I[playerid][pInWater] = true;
  293.                         CallLocalFunction("OnPlayerEnterWater", "i", playerid);
  294.                     }
  295.                 }else if(I[playerid][pInWater]){
  296.                     I[playerid][pInWater] = false;
  297.                     CallLocalFunction("OnPlayerExitWater", "i", playerid);
  298.                 }
  299.                 if(!strcmp(Lib[0], "PARACHUTE") || (!strcmp(Lib[0], "ped") && !strcmp(Lib[1], "FALL_skyDive")))I[playerid][pParachuting] = true;
  300.                 else I[playerid][pParachuting] = false;
  301.                 if(!strcmp(Lib[0], "VENDING")){
  302.                     I[playerid][pMachine] = true;
  303.                     CallLocalFunction("OnPlayerUseMachine", "i", playerid);
  304.                 }else I[playerid][pMachine] = false;
  305.             }
  306.             GetPlayerHealth(playerid, HA[0]);
  307.             if(floatcmp(HA[0], I[playerid][pHealth])){
  308.                 CallLocalFunction("OnPlayerHealthChange", "iff", playerid, HA[0], I[playerid][pHealth]);
  309.                 I[playerid][pHealth] = HA[0];
  310.             }
  311.             GetPlayerArmour(playerid, HA[1]);
  312.             if(floatcmp(HA[1], I[playerid][pArmour])){
  313.                 CallLocalFunction("OnPlayerArmourChange", "iff", playerid, HA[0], I[playerid][pArmour]);
  314.                 I[playerid][pArmour] = HA[1];
  315.             }
  316.             tmp = GetPlayerMoney(playerid);
  317.             if(tmp != I[playerid][pMoney]){
  318.                 CallLocalFunction("OnPlayerMoneyChange", "iii", playerid, tmp, I[playerid][pMoney]);
  319.                 I[playerid][pMoney] = tmp;
  320.             }
  321.         }
  322.     }
  323. }
  324.  
  325. PUBLIC:GetWeaps(playerid)for(new i; i<13; i++)GetPlayerWeaponData(playerid, i, I[playerid][pWeaps][i], I[playerid][pAmmo][i]);
  326.  
  327. PUBLIC:ForceReconnect(playerid)
  328. {
  329.     new cmdstr[23];
  330.     GetPlayerIp(playerid, I[playerid][pIP], 16);
  331.     format(cmdstr, 23, "banip %s", I[playerid][pIP]);
  332.     I[playerid][pReconnect] = true;
  333.     SendRconCommand(cmdstr);
  334. }
  335.  
  336. stock SetPlayerAFK(playerid, bool:afk)
  337. {
  338.     I[playerid][pAFK] = afk;
  339.     return 1;
  340. }
  341.  
  342. stock IsPlayerAFK(playerid)return I[playerid][pAFK];
  343.  
  344. stock IsPlayerPaused(playerid)return I[playerid][pPaused];
  345.  
  346. stock IsPlayerInWater(playerid)return I[playerid][pInWater];
  347.  
  348. stock IsPlayerParachuting(playerid)return I[playerid][pParachuting];
  349.  
  350. stock IsPlayerUsingMachine(playerid)return I[playerid][pMachine];
  351.  
  352. stock _SetPlayerHealth(playerid, Float:health)
  353. {
  354.     I[playerid][pHealth] = health;
  355.     return SetPlayerHealth(playerid, health);
  356. }
  357.  
  358. stock _GetPlayerHealth(playerid, &Float:health){
  359.     health = I[playerid][pHealth];
  360.     return 1;
  361. }
  362.  
  363. stock _SetPlayerArmour(playerid, Float:armour)
  364. {
  365.     I[playerid][pArmour] = armour;
  366.     return SetPlayerArmour(playerid, armour);
  367. }
  368.  
  369. stock _GetPlayerArmour(playerid, &Float:armour){
  370.     armour = I[playerid][pArmour];
  371.     return 1;
  372. }
  373.  
  374. stock _SetPlayerMoney(playerid, amount)
  375. {
  376.     I[playerid][pMoney] = amount;
  377.     return GivePlayerMoney(playerid, -GetPlayerMoney(playerid)+amount);
  378. }
  379.  
  380. stock _GivePlayerMoney(playerid, amount)
  381. {
  382.     I[playerid][pMoney] += amount;
  383.     return GivePlayerMoney(playerid, amount);
  384. }
  385.  
  386. stock _GetPlayerMoney(playerid)return I[playerid][pMoney];
  387.  
  388. stock EnableDriveBy(bool:enable)
  389. {
  390.     for(new i; i<GetMaxPlayers(); i++)I[i][pDriveBy] = enable;
  391.     return 1;
  392. }
  393.  
  394. stock EnablePlayerDriveBy(playerid, bool:enable)
  395. {
  396.     I[playerid][pDriveBy] = enable;
  397.     return 1;
  398. }
  399.  
  400. stock EnableInteriorDamage(bool:toggle)
  401. {
  402.     for(new i; i<GetMaxPlayers(); i++)I[i][pIntDamage] = enable;
  403.     return 1;
  404. }
  405.  
  406. stock EnablePlayerInteriorDamage(playerid, bool:enable)
  407. {
  408.     I[playerid][pIntDamage] = enable;
  409.     return 1;
  410. }
  411.  
  412. stock _AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2)
  413. {
  414.     new vID;
  415.     if(color1 == -1)color1 = random(127);
  416.     if(color2 == -1)color2 = random(127);
  417.     vID = AddStaticVehicle(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2);
  418.     V[vID][vCreated] = true;
  419.     V[vID][vColor][0] = color1;
  420.     V[vID][vColor][1] = color2;
  421.     format(V[vID][vPlate], 32, "XYZR 000");
  422.     CallLocalFunction("OnVehicleCreate", "i", vID);
  423.     return vID;
  424. }
  425.  
  426. stock _AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2, respawn_delay)
  427. {
  428.     new vID;
  429.     if(color1 == -1)color1 = random(127);
  430.     if(color2 == -1)color2 = random(127);
  431.     vID = AddStaticVehicleEx(modelid, spawn_x, spawn_y, spawn_z, z_angle, color1, color2, respawn_delay);
  432.     V[vID][vCreated] = true;
  433.     V[vID][vColor][0] = color1;
  434.     V[vID][vColor][1] = color2;
  435.     format(V[vID][vPlate], 32, "XYZR 000");
  436.     CallLocalFunction("OnVehicleCreate", "i", vID);
  437.     return vID;
  438. }
  439.  
  440. stock _CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay)
  441. {
  442.     new vID;
  443.     if(color1 == -1)color1 = random(127);
  444.     if(color2 == -1)color2 = random(127);
  445.     vID = CreateVehicle(vehicletype, x, y, z, rotation, color1, color2, respawn_delay);
  446.     V[vID][vCreated] = true;
  447.     V[vID][vColor][0] = color1;
  448.     V[vID][vColor][1] = color2;
  449.     format(V[vID][vPlate], 32, "XYZR 000");
  450.     CallLocalFunction("OnVehicleCreate", "i", vID);
  451.     return vID;
  452. }
  453.  
  454. stock _DestroyVehicle(vehicleid)
  455. {
  456.     V[vehicleid][vCreated] = false;
  457.     CallLocalFunction("OnVehicleDestroy", "i", vehicleid);
  458.     return DestroyVehicle(vehicleid);
  459. }
  460.  
  461. stock _ChangeVehicleColor(vehicleid, color1, color2)
  462. {
  463.     V[vehicleid][vColor][0] = color1;
  464.     V[vehicleid][vColor][1] = color2;
  465.     return ChangeVehicleColor(vehicleid, color1, color2);
  466. }
  467.  
  468. stock _SetVehicleNumberPlate(vehicleid, numberplate[])
  469. {
  470.     format(V[vehicleid][vPlate], 32, "%s", numberplate);
  471.     return SetVehicleNumberPlate(vehicleid, numberplate[])
  472. }
  473.  
  474. stock GetVehiclePlate(vehicleid, Plate[], size)
  475. {
  476.     format(Plate, size, "%s", V[vehicleid][vPlate]);
  477.     return 1;
  478. }
  479.  
  480. stock GetVehicleColor(vehicleid, &color1, &color2)
  481. {
  482.     color1 = V[vehicleid][vColor][0];
  483.     color2 = V[vehicleid][vColor][1];
  484.     return 1;
  485. }
  486.  
  487. stock _LinkVehicleToInterior(vehicleid, interiorid)
  488. {
  489.     V[vehicleid][vInterior] = interiorid;
  490.     return LinkVehicleToInterior(vehicleid, interiorid);
  491. }
  492.  
  493. stock GetVehicleInterior(vehicleid) return V[vehicleid][vInterior];
  494.  
  495. stock GetVehicleIDFromPlate(Plate[])
  496. {
  497.     new i;
  498.     for(i=1; i<=MAX_VEHICLES; i++)if(V[i][vCreated] && !strcmp(V[i][vPlate], Plate))break;
  499.     if(!V[i][vCreated] || strcmp(V[i][vPlate], Plate))i=-1;
  500.     return i;
  501. }
  502.  
  503. stock IsVehicleCreated(vehicleid)return V[vehicleid][vCreated];
  504.  
  505. stock CrashPlayer(playerid)return ApplyAnimation(playerid, "INVALID", "INVALID", 1, 0, 0, 0, 0, 0);
  506.  
  507. stock GetPlayerFPS(playerid)return I[playerid][pFPS];
  508.  
  509. stock Reconnect(playerid)
  510. {
  511.     new cmdstr[23];
  512.     GetPlayerIp(playerid, I[playerid][pIP], 16);
  513.     format(cmdstr, 23, "banip %s", I[playerid][pIP]);
  514.     I[playerid][pReconnect] = true;
  515.     return SendRconCommand(cmdstr);
  516. }
  517.  
  518. stock ReconnectEx(playerid, time)
  519. {
  520.     return SetTimerEx("ForceReconnect", time, false, "i", playerid);
  521. }
  522.  
  523. ResetPlayer(playerid)
  524. {
  525.     new i;
  526.     I[playerid][pAFK] = false;
  527.     I[playerid][pPaused] = false;
  528.     I[playerid][pInWater] = false;
  529.     I[playerid][pShoting] = false;
  530.     I[playerid][pParachuting] = false;
  531.     I[playerid][pMachine] = false;
  532.     I[playerid][pDriveBy] = true;
  533.     I[playerid][pIntDamage] = true;
  534.     I[playerid][pReconnect] = false;
  535.     for(; i<4; i++)I[playerid][pP][i] = 0.0;
  536.     I[playerid][pTimer] = -1;
  537.     I[playerid][pTime][0] = 0;
  538.     I[playerid][pTime][1] = 0;
  539.     I[playerid][pWeap] = 0;
  540.     I[playerid][pVWorld] = 0;
  541.     I[playerid][pHealth] = 0.0;
  542.     I[playerid][pArmour] = 0.0;
  543.     I[playerid][pMoney] = 0;
  544.     for(i=0; i<13; i++){
  545.         I[playerid][pWeaps][i] = 0;
  546.         I[playerid][pAmmo][i] = 0;
  547.     }
  548.     I[playerid][pFPS] = 0;
  549.     I[playerid][pDrk] = 0;
  550. }
  551.  
  552. GetWeaponRange(weaponid)
  553. {
  554.     new i;
  555.     for(; i<30; i++)if(Ranges[i][0] == weaponid)break;
  556.     return Ranges[i][1];
  557. }
  558.  
  559. crossp(Float:v1x, Float:v1y, Float:v1z, Float:v2x, Float:v2y, Float:v2z, &Float:output)
  560. {
  561.     new
  562.         Float:c1 = (v1y * v2z) - (v1z * v2y),
  563.         Float:c2 = (v1z * v2x) - (v1x * v2z),
  564.         Float:c3 = (v1x * v2y) - (v1y * v2x);
  565.     output = floatsqroot ((c1 * c1) + (c2 * c2) + (c3 * c3));
  566.     return 0;
  567. }
  568.  
  569. GetDistanceFromPointToLine(&Float:distance, Float:line_vector_x, Float:line_vector_y, Float:line_vector_z, Float:line_x, Float:line_y, Float:line_z, Float:point_x, Float:point_y, Float:point_z)
  570. {
  571.     new Float:output;
  572.     crossp(line_vector_x, line_vector_y, line_vector_z, point_x - line_x, point_y - line_y, point_z - line_z, output);//Cross product of 2 vectors.
  573.     distance = output / floatsqroot ((line_vector_x * line_vector_x) + (line_vector_y * line_vector_y) + (line_vector_z * line_vector_z));
  574.     return 0;
  575. }
  576. #define SetPlayerHealth         _SetPlayerHealth
  577. #define SetPlayerArmour         _SetPlayerArmour
  578. #define SetPlayerMoney          _SetPlayerMoney
  579. #define GivePlayerMoney         _GivePlayerMoney
  580. #define AddStaticVehicle        _AddStaticVehicle
  581. #define AddStaticVehicleEx      _AddStaticVehicleEx
  582. #define CreateVehicle           _CreateVehicle
  583. #define SetVehicleNumberPlate   _SetVehicleNumberPlate
  584. #define DestroyVehicle          _DestroyVehicle
  585. #define ChangeVehicleColor      _ChangeVehicleColor
  586. #define LinkVehicleToInterior   _LinkVehicleToInterior
Advertisement
Add Comment
Please, Sign In to add comment