Advertisement
S4T3K

s_changes v3

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