Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- native IsValidVehicle(vehicleid);
- static weapon[MAX_PLAYERS], ammo[MAX_PLAYERS], Float:health[MAX_PLAYERS], Float:armour[MAX_PLAYERS], money[MAX_PLAYERS];
- 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];
- static score[MAX_PLAYERS], ping[MAX_PLAYERS], name[MAX_PLAYERS][MAX_PLAYER_NAME+1];
- S_OnPlayerConnect(playerid)
- {
- weapon[playerid] = GetPlayerWeapon(playerid);
- ammo[playerid] = GetPlayerAmmo(playerid);
- money[playerid] = GetPlayerMoney(playerid);
- GetPlayerHealth(playerid, health[playerid]);
- GetPlayerArmour(playerid, armour[playerid]);
- GetPlayerPos(playerid, pos[playerid][0], pos[playerid][1], pos[playerid][2]);
- GetPlayerVelocity(playerid, ps[playerid][0], ps[playerid][1], ps[playerid][2]);
- if(IsPlayerInAnyVehicle(playerid))
- {
- new vid = GetPlayerVehicleID(playerid);
- GetVehicleVelocity(vid, vs[vid][0], vs[vid][1], vs[vid][2]);
- }
- GetAnimationName(GetPlayerAnimationIndex(playerid), animlib[playerid], 32, animname[playerid], 32);
- score[playerid] = GetPlayerScore(playerid);
- ping[playerid] = GetPlayerPing(playerid);
- GetPlayerName(playerid, name[playerid], MAX_PLAYER_NAME+1);
- return 1;
- }
- stock UpdateAmmo(playerid)
- {
- new ammon;
- ammon = GetPlayerAmmo(playerid);
- new weaponn;
- weaponn = GetPlayerWeapon(playerid);
- if(ammo[playerid] != ammon) return CallRemoteFunction("OnPlayerAmmoChange", "iiii", playerid, ammo[playerid], ammon, weaponn);
- ammo[playerid] = ammon;
- }
- S_OnPlayerUpdate(playerid)
- {
- new weaponn, Float:healthn, Float:armourn, moneyn, scoren, pingn, namen[MAX_PLAYER_NAME+1];
- weaponn = GetPlayerWeapon(playerid);
- GetPlayerHealth(playerid, healthn);
- GetPlayerArmour(playerid, armourn);
- new Float:posn[3];
- GetPlayerPos(playerid, posn[0], posn[1], posn[2]);
- moneyn = GetPlayerMoney(playerid);
- scoren = GetPlayerScore(playerid);
- pingn = GetPlayerPing(playerid);
- GetPlayerName(playerid, namen, sizeof(namen));
- new Float:psn[3];
- GetPlayerVelocity(playerid, psn[0], psn[1], psn[2]);
- if(weapon[playerid] != weaponn) return CallRemoteFunction("OnPlayerWeaponChange", "iii", playerid, weapon[playerid], weaponn);
- if(health[playerid] != healthn) return CallRemoteFunction("OnPlayerHealthChange", "iff", playerid, health[playerid], healthn);
- if(armour[playerid] != armourn) return CallRemoteFunction("OnPlayerArmourChange", "iff", playerid, armour[playerid], armourn);
- if(money[playerid] != moneyn) return CallRemoteFunction("OnPlayerMoneyChange", "iii", playerid, money[playerid], moneyn);
- 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]);
- 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]);
- if(score[playerid] != scoren) return CallRemoteFunction("OnPlayerScoreChange", "iii", playerid, score[playerid], scoren);
- if(ping[playerid] != pingn) return CallRemoteFunction("OnPlayerPingChange", "iii", playerid, ping[playerid], pingn);
- if(strcmp(name[playerid], namen, false) != 0) return CallRemoteFunction("OnPlayerNameChange", "iss", playerid, name[playerid], namen);
- weapon[playerid] = weaponn;
- health[playerid] = healthn;
- armour[playerid] = armourn;
- money[playerid] = moneyn;
- score[playerid] = scoren;
- ping[playerid] = pingn;
- pos[playerid][0] = posn[0];
- pos[playerid][1] = posn[1];
- pos[playerid][2] = posn[2];
- ps[playerid][0] = psn[0];
- ps[playerid][1] = psn[1];
- ps[playerid][2] = psn[2];
- new connectedn;
- for(new co = 0; co < MAX_PLAYERS; co++)
- {
- if(IsPlayerConnected(co)) connectedn++;
- }
- if(connectedn != connected) return CallRemoteFunction("OnServerConnectedPlayersChange", "ii", connected, connectedn);
- connected = connectedn;
- new Float:vsn[3];
- if(IsPlayerInAnyVehicle(playerid))
- {
- new vid = GetPlayerVehicleID(playerid);
- GetVehicleVelocity(vid, vsn[0], vsn[1], vsn[2]);
- 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]);
- vs[vid][0] = vsn[0];
- vs[vid][1] = vsn[1];
- vs[vid][2] = vsn[2];
- }
- new animlibn[32], animnamen[32];
- GetAnimationName(GetPlayerAnimationIndex(playerid), animlibn, 32, animnamen, 32);
- if(strcmp(animlibn, animlib[playerid], false) != 0 || strcmp(animname[playerid], animnamen, false) != 0) return CallRemoteFunction("OnPlayerAnimationChange", "issss", playerid, animlib[playerid], animlibn, animname[playerid], animnamen);
- animlib[playerid] = animlibn;
- animname[playerid] = animnamen;
- return 1;
- }
- S_OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys & KEY_FIRE)
- {
- if(!IsPlayerInAnyVehicle(playerid))
- {
- UpdateAmmo(playerid);
- new weaponn = GetPlayerWeapon(playerid);
- return CallRemoteFunction("OnPlayerFire", "ii", playerid, weaponn);
- }
- else
- {
- if(GetPlayerVehicleSeat(playerid) != 0)
- {
- UpdateAmmo(playerid);
- new weaponn = GetPlayerWeapon(playerid);
- return CallRemoteFunction("OnPlayerFire", "ii", playerid, weaponn);
- }
- }
- }
- return 1;
- }
- forward OnPlayerAmmoChange(playerid, olda, newa, weapona);
- forward OnPlayerWeaponChange(playerid, oldw, neww);
- forward OnPlayerHealthChange(playerid, Float:oldh, Float:newh);
- forward OnPlayerArmourChange(playerid, Float:olda, Float:newa);
- forward OnServerConnectedPlayersChange(old, newc);
- forward OnPlayerPosChange(playerid, Float:oldx, Float:newx, Float:oldy, Float:newy, Float:oldz, Float:newz);
- forward OnPlayerFire(playerid, weaponu);
- forward OnPlayerMoneyChange(playerid, oldm, newm);
- forward OnPlayerSpeedChange(playerid, Float:oldsx, Float:newsx, Float:oldsy, Float:newsy, Float:oldsz, Float:newsz);
- forward OnPlayerVehicleSpeedChange(playerid, vehicleid, Float:oldsx, Float:newsx, Float:oldsy, Float:newsy, Float:oldsz, Float:newsz);
- forward OnPlayerAnimationChange(playerid, oldal[], newal[], oldan[], newan[]);
- forward OnPlayerScoreChange(playerid, olds, news);
- forward OnPlayerPingChange(playerid, oldp, newp);
- forward OnPlayerNameChange(playerid, oldn[], newn[]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement