Advertisement
S4T3K

s_changes

Apr 2nd, 2014
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.83 KB | None | 0 0
  1. #include <a_samp>
  2. native IsValidVehicle(vehicleid);
  3.  
  4. forward OnPlayerAmmoChange(playerid, olda, newa, weapona);
  5. forward OnPlayerWeaponChange(playerid, oldw, neww);
  6. forward OnPlayerHealthChange(playerid, Float:oldh, Float:newh);
  7. forward OnPlayerArmourChange(playerid, Float:olda, Float:newa);
  8. forward OnServerConnectedPlayersChange(old, newc);
  9. forward OnPlayerPosChange(playerid, Float:oldx, Float:newx, Float:oldy, Float:newy, Float:oldz, Float:newz);
  10. forward OnPlayerFire(playerid, weaponu);
  11. forward OnPlayerMoneyChange(playerid, oldm, newm);
  12. forward OnPlayerSpeedChange(playerid, Float:oldsx, Float:newsx, Float:oldsy, Float:newsy, Float:oldsz, Float:newsz);
  13. forward OnPlayerVehicleSpeedChange(playerid, vehicleid, Float:oldsx, Float:newsx, Float:oldsy, Float:newsy, Float:oldsz, Float:newsz);
  14. forward OnPlayerAnimationChange(playerid, oldal[], newal[], oldan[], newan[]);
  15. forward OnPlayerScoreChange(playerid, olds, news);
  16. forward OnPlayerPingChange(playerid, oldp, newp);
  17. forward OnPlayerNameChange(playerid, oldn[], newn[]);
  18.  
  19.  
  20. static weapon[MAX_PLAYERS], ammo[MAX_PLAYERS], Float:health[MAX_PLAYERS], Float:armour[MAX_PLAYERS], money[MAX_PLAYERS];
  21. static connected, Float:pos[MAX_PLAYERS][3], Float:ps[MAX_PLAYERS][3], Float:vs[MAX_VEHICLES][3], animlib[MAX_PLAYERS][32], animname[MAX_PLAYERS][32];
  22. static score[MAX_PLAYERS], ping[MAX_PLAYERS], name[MAX_PLAYERS][MAX_PLAYER_NAME+1];
  23.  
  24. SH_OnPlayerConnect(playerid)
  25. {
  26.     weapon[playerid] = GetPlayerWeapon(playerid);
  27.     ammo[playerid] = GetPlayerAmmo(playerid);
  28.     money[playerid] = GetPlayerMoney(playerid);
  29.     GetPlayerHealth(playerid, health[playerid]);
  30.     GetPlayerArmour(playerid, armour[playerid]);
  31.     GetPlayerPos(playerid, pos[playerid][0], pos[playerid][1], pos[playerid][2]);
  32.  
  33.     GetPlayerVelocity(playerid, ps[playerid][0], ps[playerid][1], ps[playerid][2]);
  34.     if(IsPlayerInAnyVehicle(playerid))
  35.     {
  36.         new vid = GetPlayerVehicleID(playerid);
  37.         GetVehicleVelocity(vid, vs[vid][0], vs[vid][1], vs[vid][2]);
  38.     }
  39.  
  40.     GetAnimationName(GetPlayerAnimationIndex(playerid), animlib[playerid], 32, animname[playerid], 32);
  41.     score[playerid] = GetPlayerScore(playerid);
  42.     ping[playerid] = GetPlayerPing(playerid);
  43.     GetPlayerName(playerid, name[playerid], MAX_PLAYER_NAME+1);
  44.     return 1;
  45. }
  46.  
  47. stock UpdateAmmo(playerid)
  48. {
  49.     new ammon;
  50.     ammon = GetPlayerAmmo(playerid);
  51.     new weaponn;
  52.     weaponn = GetPlayerWeapon(playerid);
  53.     if(ammo[playerid] != ammon) { OnPlayerAmmoChange(playerid, ammo[playerid], ammon, weaponn); }
  54.     ammo[playerid] = ammon;
  55. }
  56.  
  57. SH_OnPlayerUpdate(playerid)
  58. {
  59.     new weaponn, Float:healthn, Float:armourn, moneyn, scoren, pingn, namen[MAX_PLAYER_NAME+1];
  60.     weaponn = GetPlayerWeapon(playerid);
  61.     GetPlayerHealth(playerid, healthn);
  62.     GetPlayerArmour(playerid, armourn);
  63.     new Float:posn[3];
  64.     GetPlayerPos(playerid, posn[0], posn[1], posn[2]);
  65.     moneyn = GetPlayerMoney(playerid);
  66.     scoren = GetPlayerScore(playerid);
  67.     pingn = GetPlayerPing(playerid);
  68.     GetPlayerName(playerid, namen, sizeof(namen));
  69.  
  70.     new Float:psn[3];
  71.     GetPlayerVelocity(playerid, psn[0], psn[1], psn[2]);
  72.  
  73.     if(weapon[playerid] != weaponn) OnPlayerWeaponChange(playerid, weapon[playerid], weaponn);
  74.     if(health[playerid] != healthn) OnPlayerHealthChange(playerid, health[playerid], healthn);
  75.     if(armour[playerid] != armourn) OnPlayerArmourChange(playerid, armour[playerid], armourn);
  76.     if(money[playerid] != moneyn) OnPlayerMoneyChange(playerid, money[playerid], moneyn);
  77.     if(posn[0] != pos[playerid][0] || posn[1] != pos[playerid][1] || posn[2] != pos[playerid][2]) OnPlayerPosChange(playerid, pos[playerid][0], posn[0], pos[playerid][1], posn[1], pos[playerid][2], posn[2]);
  78.     if(psn[0] != ps[playerid][0] || psn[1] != ps[playerid][1] || psn[2] != ps[playerid][2])  OnPlayerSpeedChange(playerid, ps[playerid][0], psn[0], ps[playerid][1], psn[1], ps[playerid][2], psn[2]);
  79.     if(score[playerid] != scoren) OnPlayerScoreChange(playerid, score[playerid], scoren);
  80.     if(ping[playerid] != pingn) OnPlayerPingChange(playerid, ping[playerid], pingn);
  81.     if(strcmp(name[playerid], namen, false) != 0) OnPlayerNameChange(playerid, name[playerid], namen);
  82.  
  83.     weapon[playerid] = weaponn;
  84.     health[playerid] = healthn;
  85.     armour[playerid] = armourn;
  86.     money[playerid] = moneyn;
  87.     score[playerid] = scoren;
  88.     ping[playerid] = pingn;
  89.     pos[playerid][0] = posn[0];
  90.     pos[playerid][1] = posn[1];
  91.     pos[playerid][2] = posn[2];
  92.     ps[playerid][0] = psn[0];
  93.     ps[playerid][1] = psn[1];
  94.     ps[playerid][2] = psn[2];
  95.  
  96.     new connectedn;
  97.     for(new co = 0; co < MAX_PLAYERS; co++)
  98.     {
  99.         if(IsPlayerConnected(co)) connectedn++;
  100.     }
  101.  
  102.     if(connectedn != connected) OnServerConnectedPlayersChange(connected, connectedn);
  103.     connected = connectedn;
  104.  
  105.     new Float:vsn[3];
  106.     if(IsPlayerInAnyVehicle(playerid))
  107.     {
  108.         new vid = GetPlayerVehicleID(playerid);
  109.         GetVehicleVelocity(vid, vsn[0], vsn[1], vsn[2]);
  110.         if(vs[vid][0] != vsn[0] || vs[vid][1] != vsn[1] || vs[vid][2] != vsn[2]) OnPlayerVehicleSpeedChange(playerid, vid, vs[vid][0], vsn[0], vs[vid][1], vsn[1], vs[vid][2], vsn[2]);
  111.         vs[vid][0] = vsn[0];
  112.         vs[vid][1] = vsn[1];
  113.         vs[vid][2] = vsn[2];
  114.     }
  115.  
  116.     new animlibn[32], animnamen[32];
  117.     GetAnimationName(GetPlayerAnimationIndex(playerid), animlibn, 32, animnamen, 32);
  118.     if(strcmp(animlibn, animlib[playerid], false) != 0 || strcmp(animname[playerid], animnamen, false) != 0) OnPlayerAnimationChange(playerid, animlib[playerid], animlibn, animname[playerid], animnamen);
  119.     animlib[playerid] = animlibn;
  120.     animname[playerid] = animnamen;
  121.  
  122.     return 1;
  123. }
  124.  
  125. SH_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  126. {
  127.     if(newkeys & KEY_FIRE)
  128.     {
  129.         if(!IsPlayerInAnyVehicle(playerid))
  130.         {
  131.             UpdateAmmo(playerid);
  132.             new weaponn = GetPlayerWeapon(playerid);
  133.             OnPlayerFire(playerid, weaponn);
  134.         }
  135.         else
  136.         {
  137.             if(GetPlayerVehicleSeat(playerid) != 0)
  138.             {
  139.                 UpdateAmmo(playerid);
  140.                 new weaponn = GetPlayerWeapon(playerid);
  141.                 OnPlayerFire(playerid, weaponn);
  142.             }
  143.         }
  144.     }
  145.     return 1;
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement