Jump to content

[ Tutorial ] Taser System


Hemingway
 Share

Recommended Posts

Salut! In acest tutorial o sa va invat cum sa faceti un sistem de taser pentru politie etc.

/* variabila */
new 
  taser[MAX_PLAYERS] /* avem nevoie de aceasta variabila pentru activare si dezactivare a tase-rului */
;

/* mergem in OnPlayerConnect */

public OnPlayerConnect(playerid) {
  
  /* atribuim player-ului la conectarea pe server taser dezactivat */
  taser[playerid] = 0; /* taser - variabila atrbuita la inceput | playerid - id jucator | 0 - raspunde ca functie neactiva */

  return 1;
}

/* Mergem in OnPlayerKeyStateChange */
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	if(newkeys == KEY_YES) { /* activarea/dezactivarea are loc prin butonul Y | KEY_YES - Y */   
      new 
        weap, /* inregistram prin weap arma noastra ca taser */
        ammo; /* id arma */
      
	  /* functia ce verifica daca are jucatorul arma necesara */
      GetPlayerWeaponData(playerid,2,weap,ammo); /* playerid - id jucator | 2 - slot | weap - arma inregistrata ca taser | ammo - id arma */

      /* verificam daca player-ul are arma necesara, in cazul meu Deagle. */
      if(weap != 24) 
          return 
              SendClientMessage(playerid, -1, "Nu ai arma necesara pentru Taser."); 

      /* verificam daca taser-ul este activat */
      if(taser[playerid]) { 
        taser[playerid] = 0; 
        return 
          SendClientMessage(playerid, -1, "Tase-rul nu este activat."); 
      } 
      else {  /* activam taser-ul */
          taser[playerid] = 1; 
          return 
              SendClientMessage(playerid,-1,"Taser-ul a fost activat."); 
      }
    }
	return 1;
}

/* mergem in OnPlayerWeaponShot */
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{

  if(hittype == 1 && weaponid == 24 && taser[playerid] == 1) return staser(playerid,hitid);
  //hittype - tipul de foc, in cazul nostru se atribuie la playerl [ 1 - player ]
  //weaponid - id arma
  //taser[playerid] - deja stiti ( atribuire 1 - stock-ul pe care il avem, i se atribuie armei introduse de noi la variabila care inregistreaza statusul   taserului
  return 1;
}

/* megem in orice loc al GM-ului */
stock staser(playerid, suspectid) { 
  
  SetPlayerSpecialAction(suspectid,SPECIAL_ACTION_HANDSUP); // atribuim animatia care dupa idee il electrocuteaza 
  ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, "{9ACD32}Taser", "\n\nAi fost electrocutat cu o arma speciala Taser ( Deagle )\n\n", "x", ""); // informam player-ul ca a fost electrocutat.
  return 0; 
}

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...