Jump to content

[PAWN] Kill Player


Tupi
 Share

Recommended Posts

~ Kill Player ~

 

  • Înainte de toate eu am folosit include-ul: a_samp, sscanf2, zcmd și am definit SCM-ul
#include <a_samp>
#include <zcmd>
#include <sscanf2>
  
#define SCM SendClientMessage

 

  • Acum vom crea o comanda prin care vom omorâ un jucător folosindu-ne de:
SetPlayerHealth(playerid, 0.0);
CMD:kill(playerid, params[])
{
    new id, string[128], sendername[16], receivername[16]; //ne cream variabilele de care avem nevoie
    if(sscanf(params, "u", id)) return SCM(playerid, -1, "Use: /kill <Name/Playerid>"); //verificam daca in sintaxa comenzii s-a folosit un Nume/ID
    if(!IsPlayerConnected(id) || id == INVALID_PLAYER_ID) return SCM(playerid, -1, "Error: Player not connected!");
	   
    GetPlayerName(playerid, sendername, 16); //luam numele celui care foloseste comanda
    GetPlayerName(id, receivername, 16); //luam numele celui pe care se foloseste comanda
    SetPlayerHealth(id, 0.0); //setam viata jucatorului pe 0
    format(string, sizeof(string), "%s te-a omorat.", sendername); //formatam string-ul in felul urmator
    SCM(id, -1, string); //il trimitem celui pe care se foloseste comanda
    format(string, sizeof(string), "L-ai omorat pe %s", receivername); //formatam string-ul in felul urmator
    SCM(playerid, -1, string); //il trimitem celui care foloseste comanda
      
    return 1;
}

 

Nota: Această metoda poate fi folosită și în callback-uri care sunt apelate de timere sau de alte callback-uri.

forward KillPlayer(playerid);
public KillPlayer(playerid)
{
    if(IsPlayerConnected(playerid)
    {
        SetPlayerHealth(playerid, 0.0);
        SCM(playerid, -1, "Player is now death");
    }
    return 1;
}

* De fiecare data când callback-ul KillPlayer este apelat acesta seteaza jucătorului cu id-ul pe care îl conține HP-ul la 0.0 dacă acesta este conectat.

 

public OnPlayerDeath(playerid, killerid, reason)
{
    if(killerid != INVALID_PLAYER_ID)
    {
        SetTimerEx("RegenKiller", 5000, false, "%d" killerid);
    }
    return 1;
}

forward KillKiller(playerid);
public KillKiller(playerid)
{
    SetPlayerHealth(playerid, 0.0);
    SCM(playerid, -1, "You died beacause killed someone");
    return 1;
}

* În momentul în care un jucător este omorât de alt jucător jucătorul care îl omoară este și el omorât după 5 secunde o singură dată.

 

* Cum spuneam, poate fi folosită în mai multe feluri, nu doar în comenzile simple.

* Pentru orice întrebare/nelămurire puteți trimite un PM la un Programmer sau să deschideți un topic in secțiunea Help and Discussions.

Edited by Tupi
Update
Link to comment
Share on other sites

  • Tupi locked this topic
Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.