WTFCS Community | Gaming community @ since 2011

Full Version: [PAWN] SetHealthAll Command
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Creat de Tupi

În acest tutorial vă voi prezenta cum se poate realiza comanda prin care puteți să setați viața jucătorilor pe o anumită rază
 
 
Înainte de toate eu am folosit include-ul: a_samp, sscanf2, zcmd, foreach și am definit SCM-ul


Code:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <foreach>
 
#define SCM SendClientMessage
Acum vom crea comanda în sine prin care vom seta nivelul de viață jucătorilor pe o anumită rază.

Code:
CMD:sethpall(playerid, params[])
{
   new range, health, Float: Pos[3], string[128], sendername[16]; //ne cream variabilele de care avem nevoie
   //eu verificarea pentru admin o voi face in felul urmator, adica daca este logat cu parola RCON
   if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Eroare: Nu ai acces la aceasta comanda!");
   //insa voi o puteti face in functie de enum-ul pe care il aveti in gamemode (ex: if(PlayerInfo[playerid][pAdmin] < 1) )
   if(sscanf(params, "ii", health, range)) return SCM(playerid, -1, "Use: /sethpall <Health> <Range>"); //verificam daca in sintaxa comenzii s-au folosit 2 valori
   if(health < 0 || health > 100) return SCM(playerid, -1, "Error: Invalid health (0 - 100)!"); //daca nivelul hp-ului folosit este mai mic de 0 sau mai mare de 100 returnam in mesaj informativ
 
   GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); //salvam coordonatele celui care foloseste comanda
   GetPlayerName(playerid, sendername, 16); //salvam numele celui care foloseste comanda
 
   foreach(Player, i) { //scanam toti jucatorii
        if(IsPlayerConnected(i) && IsPlayerInRangeOfPoint(i, range, Pos[0], Pos[1], Pos[2])) { //verificam daca jucatorul este conectat si daca este in apropierea celui care foloseste comanda pe raza folosita
         SetPlayerHealth(i, health); //ii setam viata
         format(string, sizeof(string), "Adminul %s ti-a setat viata la %d.", sendername, health); //formatam un mesaj in felul urmator pentru informarea jucatorului
         SCM(i, -1, string); //ii trimitem mesjaul formatat
       }
   }
     
   return 1;
}