Jump to content

Hemingway

Member
  • Posts

    4
  • Joined

  • Last visited

Posts posted by Hemingway

  1. Salut!
    Daca doresti sa modifici caracteristica unei arme, atunci ai venit in topicul potrivit.

    /* define prescurtari ( pentru comoditate ) [ individual ]*/
    
    #define SetPlayerHealth sph
    #define GetPlayerHealth gph
    #define playerid pi
    
    
    
    public 
      OnPlayerTakeDamage(pi, issuerid, Float: amount, weaponid) { 
      
      /*armour */
      new 
        Float: lh
      ; /* variabila care va raspunde de damage */
      gph(pi, lh); /* atribuim variabila catre viata jucatorului, cand impusti in player, i se va modifica procentajul introdus mai jos*/
      switch(weaponid) { 
          
        case 31: /* id arma */
          sph(pi, lh - 4); // [ ( -4 ) - hp-ul playerului scade cu 4 procente ]
          
        /* Daca doresti, poti adauga random damage */
        case 31: {
         switch(random(4)) {
           case 0: 
             sph(pi, lh - 5); 
           case 1: 
             sph(pi, lh - 23); 
           case 2: 
             sph(pi, lh - 10); 
           case 3: 
             sph(pi, lh - 6); 
           /*------------------------------------------ */   
           }
        }
        /* Daca doresti, poti adauga doar damage pe o anumita parte a corpului*/
        case 31: {
            switch (bodypart) // id parte a corpului
            {
                case 3: sph(pi, lh-12);
            }
        }
      }
      return 1;
    }
    
    /* Partile corpului id */
    3 - Trunchi
    4 - Partea abdomenului
    5 - Mâna stângă
    6 - Mâna dreaptă
    7 - Piciorul stâng
    8 - Piciorul drept
    9 - Cap
    /*------------------------------------------ */  

     

  2. 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; 
    }

     

×
×
  • Create New...