Szerző Téma: Ütéssel gyilkolás a OnPlayerKeyStateChange segítségével!  (Megtekintve 718 alkalommal)

Ütéssel gyilkolás a OnPlayerKeyStateChange segítségével!
« Dátum: 2012. június 17. - 22:36:32 »
0 Show voters
Üdv van egy kis gondom.
Azt csináltam hogyha az egyik csapat tagja üti a másik csapat tagját akkor veszítsen az életébõl az akit ütnek, és végül haljon meg.
Nos ez megvan és idáig mûködik is. Viszont nem teljesülnek azok a dolgok amiket akkor szeretnék hogy bekövetkezzenek, ha az ütött ember, (ez esetben a victimid) meghal, a playerid aki megölte pedig kapja a pontot, meg a változójához hozzálesz adva +1. Kérem valaki segítsen :confused:, itt a kód
 
   if(newkeys & KEY_FIRE) {
        if(gTeam[playerid] == TEAM_ZOMBIE) {
            if(GetPlayerWeapon(playerid) == 0) {
                new victimid = GetClosestPlayer(playerid);
                if(IsPlayerConnected(victimid)) {
          if(gTeam[victimid] == TEAM_HUMAN){
         if(GetDistanceBetweenPlayers(playerid,victimid) < 2) {
                        new Float:health;
                        GetPlayerHealth(victimid, health);
                        SetPlayerHealth(victimid, health - 8.0);
   if(GetPlayerHealth(victimid) == 0) {
   SetPlayerScore(playerid, GetPlayerScore(playerid) +10);
   GivePlayerMoney(playerid,15);
   PlayerInfo[playerid] [humankill] = PlayerInfo[playerid] [humankill] +1;
            }
            return 1;
                    }
                }
            }
        }
    }
« Utoljára szerkesztve: 2012. június 17. - 22:57:22 írta Keszeg »

Nem elérhető CANNONN

  • 2139
    • Profil megtekintése
Ütéssel gyilkolás a OnPlayerKeyStateChange segítségével!
« Válasz #1 Dátum: 2012. június 17. - 23:25:20 »
+1 Show voters
A kódhoz szükséges az opsp include. Link: http://www.solidfiles.com/d/fa58211840/
 
#include opsp
public OnPlayerShootPlayer(shooter,target,Float:damage)
{
     new Float: elet;
     GetPlayerHealth(target, elet);
     SetPlayerHealth(target, elet -8);
     SetPlayerScore(shooter, GetPlayerScore(shooter) +10);
     PlayerInfo[shooter][humankill] = PlayerInfo[shooter][humankill]++;
     return 1;
}

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
Ütéssel gyilkolás a OnPlayerKeyStateChange segítségével!
« Válasz #2 Dátum: 2012. június 17. - 23:31:59 »
+1 Show voters
0.3d verziótól van alapból OnPlayerGiveDamage callback, ami akkor hívódik meg, amikor egy játékos megsebez egy másikat.
Tehát:
 
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
     new Float: elet;
     GetPlayerHealth(damagedid, elet);
     SetPlayerHealth(damagedid, elet -8);
     SetPlayerScore(playerid, GetPlayerScore(playerid) +10);
     PlayerInfo[playerid][humankill] = PlayerInfo[playerid][humankill]++;
     return 1;
}

Ütéssel gyilkolás a OnPlayerKeyStateChange segítségével!
« Válasz #3 Dátum: 2012. június 17. - 23:40:28 »
0 Show voters
Köszönöm szépen mindenkinek!Holnap letesztelem.
 Szerintem a 2. megoldást használom a OnPlayerShootra loose identitation warningokat ír ki!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal