Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <foreach>
- #undef MAX_PLAYERS
- #define MAX_PLAYERS (100)
- // Variables.
- new Dinero[MAX_PLAYERS];
- new Float:Vida[MAX_PLAYERS];
- new Float:Chaleco[MAX_PLAYERS];
- new Float:VidaCheat[MAX_PLAYERS];
- new Float:ChalecoCheat[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- EnableVehicleFriendlyFire(); // Permitimos hacerle daño a vehículos.
- SetTimer("Anticheat", 1000, 1); // Ejecutamos la función cada 1 segundo.
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SetPlayerTeam(playerid, 1); // Evitamos el daño por defecto de las armas.
- ResetPlayerMoney(playerid); // Reiniciamos el dinero del jugador.
- Vida[playerid] = 0.0; // Reiniciamos la variable.
- Chaleco[playerid] = 0.0; // Reiniciamos la variable.
- VidaCheat[playerid] = 0.0; // Reiniciamos la variable.
- ChalecoCheat[playerid] = 0.0; // Reiniciamos la variable.
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- EstablecerVida(playerid, 100.0); // Damos 100 de vida al spawnar.
- return 1;
- }
- // Configuramos los daños, es útil por si alguien quiere usar algún sistema de daños personalizado.
- public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid, bodypart)
- {
- new Float:vida = Vida[playerid];
- new Float:chaleco = Chaleco[playerid];
- if(issuerid != INVALID_PLAYER_ID) // Si el daño lo produce otro jugador.
- {
- GetPlayerHealth(playerid, vida);
- GetPlayerArmour(playerid, chaleco);
- if(amount) // Si tenemos algo de chaleco, vamos a perder chaleco antes que vida.
- {
- if(chaleco > amount) EstablecerChaleco(playerid, chaleco-amount);
- else
- {
- EstablecerChaleco(playerid, 0.0);
- chaleco = amount-chaleco;
- if(chaleco >= vida) EstablecerVida(playerid, 0.0);
- else EstablecerVida(playerid, vida-chaleco);
- }
- }
- else
- {
- if(vida > amount) EstablecerVida(playerid, vida-amount);
- else EstablecerVida(playerid, 0.0);
- }
- }
- else // Si el daño se lo produce uno mismo, no pierde armadura, sólo vida.
- {
- GetPlayerHealth(playerid, vida);
- if(vida > amount) EstablecerVida(playerid, vida-amount);
- else EstablecerVida(playerid, 0.0);
- }
- return 1;
- }
- // Timer anticheat.
- forward Anticheat();
- public Anticheat()
- {
- foreach(new i : Player)
- {
- GetPlayerHealth(i, VidaCheat[i]);
- GetPlayerArmour(i, ChalecoCheat[i]);
- if(ObtenerDinero(i) != GetPlayerMoney(i))
- {
- ResetPlayerMoney(i);
- ActualizarDinero(i, ObtenerDinero(i));
- }
- // if(VidaCheat[i] > 0.0 && Vida[playerid] < VidaCheat[i])
- if(VidaCheat[i] != Vida[i])
- {
- VidaCheat[i] = Vida[i];
- EstablecerVida(i, VidaCheat[i]);
- }
- // if(ChalecoCheat[i] > 0.0 && Chaleco[playerid] < ChalecoCheat[i])
- if(ChalecoCheat[i] != Chaleco[i])
- {
- ChalecoCheat[i] = Chaleco[i];
- EstablecerChaleco(i, ChalecoCheat[i]);
- }
- }
- }
- // Función para sumar un monto específico de dinero a un jugador.
- stock DarDinero(playerid, dinero)
- {
- new string[12];
- Dinero[playerid] += dinero;
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, Dinero[playerid]);
- format(string, sizeof(string), "~g~ +%d$", dinero);
- GameTextForPlayer(playerid, string, 5000, 1);
- PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
- return Dinero[playerid];
- }
- // Función para restar un monto específico de dinero a un jugador.
- stock QuitarDinero(playerid, dinero)
- {
- new string[12];
- Dinero[playerid]-= dinero;
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, -Dinero[playerid]);
- format(string, sizeof(string), "~r~ -%d$", dinero);
- GameTextForPlayer(playerid, string, 5000, 1);
- PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
- return Dinero[playerid];
- }
- // Función para actualizar el dinero de un jugador al valor correspondiente.
- stock ActualizarDinero(playerid, dinero)
- {
- Dinero[playerid] = dinero;
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, Dinero[playerid]);
- return Dinero[playerid];
- }
- // Función para reiniciar el dinero de un jugador a 0.
- stock ReiniciarDinero(playerid)
- {
- Dinero[playerid] = 0;
- ResetPlayerMoney(playerid);
- GivePlayerMoney(playerid, Dinero[playerid]);
- return Dinero[playerid];
- }
- // Función para obtener la cifra exacta del dinero que tiene un jugador.
- stock ObtenerDinero(playerid) return Dinero[playerid];
- // Función para establecer la vida de un jugador a la cantidad indicada.
- stock EstablecerVida(playerid, Float:vida)
- {
- Vida[playerid] = vida;
- return SetPlayerHealth(playerid, vida);
- }
- // Función para establecer el chaleco de un jugador a la cantidad indicada.
- stock EstablecerChaleco(playerid, Float:chaleco)
- {
- Chaleco[playerid] = chaleco;
- return SetPlayerArmour(playerid, chaleco);
- }
Advertisement
Add Comment
Please, Sign In to add comment