OnPlayerDeath hiba :S SÜRgõs!

Indította hpeter94, 2010. szeptember 12. - 12:09:36

Előző téma - Következő téma

hpeter94

Hali van egy nagynagy problémám... a szerveremen ha megölök valakit akkor annak lefut az onplayerdeath tehát kiír minden üzit meg fegyverelvétel meg minden de a faszika nem hal meg hanem futkos tovább és sehogyse tud meghali (nem fut le az onplayerspawn)... erre keresek valami megoldást mert mindent próbáltam de nem megy...
 

public OnPlayerDeath(playerid, killerid, reason)
{
//Textdrawok eltüntetése
TextDrawHideForPlayer( playerid, TeamInfo );
TextDrawHideForPlayer( playerid, AttackerInfo );
TextDrawHideForPlayer( playerid, DefenderInfo );
if(killerid == INVALID_PLAYER_ID) SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
    else SendDeathMessage(killerid,playerid,reason);
   
ResetPlayerWeapons(playerid);
SetPlayerWantedLevel(killerid,GetPlayerWantedLevel(playerid)+1);//Növeli a gyilkos körözötségét
GivePlayerMoney(killerid,3000*GetPlayerWantedLevel(playerid));//Ha a halott körözött volt akkor plussz pénzt ad a gyilkosnak
SetPlayerWantedLevel(playerid,0);//A halottnak lenullázza a körözötségét
if(gTeam[killerid] != gTeam[playerid])//Ha a gyilkos más csapatban van mint a halott akkor lefut
{
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
GivePlayerMoney(killerid, 500);
} else {//De ha ugyanabban van akkor tk felirat jön ki
SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
GivePlayerMoney(killerid, -250);
SetPlayerHealth(killerid, 0);//Megöli a teamkillert
TextDrawShowForPlayer( killerid, TeamKill );
SetTimerEx(\"MessOff\",5*1000,0, \"d\", killerid);
}
        return 1;//itt egyáltalán nem spawnol
//return OnPlayerSpawn(playerid);//ha meg ez van bent akkor valaki nem spawnol valaki meg spawnután is meghal :S
}

jana4

SpawnPlayer(playerid);
 
public OnPlayerDeath(playerid, killerid, reason)
{
//Textdrawok eltüntetése
TextDrawHideForPlayer( playerid, TeamInfo );
TextDrawHideForPlayer( playerid, AttackerInfo );
TextDrawHideForPlayer( playerid, DefenderInfo );
if(killerid == INVALID_PLAYER_ID) SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
           else SendDeathMessage(killerid,playerid,reason);
   
ResetPlayerWeapons(playerid);
SetPlayerWantedLevel(killerid,GetPlayerWantedLevel(playerid)+1);//Növeli a gyilkos körözötségét
GivePlayerMoney(killerid,3000*GetPlayerWantedLevel(playerid));//
SetPlayerWantedLevel(playerid,0);//A halottnak lenullázza a körözötségét
if(gTeam[killerid] != gTeam[playerid])//Ha a gyilkos más csapatban van mint a halott akkor lefut
{
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
GivePlayerMoney(killerid, 500);
} else {//De ha ugyanabban van akkor tk felirat jön ki
SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
GivePlayerMoney(killerid, -250);
SetPlayerHealth(killerid, 0);//Megöli a teamkillert
TextDrawShowForPlayer( killerid, TeamKill );
SetTimerEx(\"MessOff\",5*1000,0, \"d\", killerid);
                      SpawnPlayer(killerid); // vagy playerid
}
     }
return 1;
}

hpeter94

nem jó :S akkoris bugol hogyha tök üres az onplayerdeath...

ptlevi

De az OnPlayerSpawn-al nem lehet baj mert ha amikor kiválasztod a skint amivel akarsz lenni és letesz, akkor azzal nem lehet baj. Valami akadályozhatja

M4tr1X

Nincs god mód a szerveren? Azaz, mindig visszatölti a játékos életét?

hpeter94

nincs... öszvissz az ladminos de annak nem lehet baja nem nyúltam hozzá már pár hónapja

GroX

Az Ladminéhoz nem kell hozzá nyúlnod, szar ígyis.
Próbáld úgy hogy kiveszed az ladmint.

hpeter94

próbáltam már úgyis hogy nincs bent semmi script...

kurta999

Nekem is volt haonló problémám, nekem meghalt, csak a spawn nemfutott le. A SpawnPlayer(playerid)-t rakd a legelejére és tuti h menni fog.
( Textdrawok eltüntetése felé )

hpeter94

ha odarakom akkor meg totál bebuggol :S  1másodperc alatt 5ször megöli és 5ször spawnolja... és ezt megállás nélkül :\'( egyébként szerintem a teamkillnél lehet valmai mert azoknak akik nem tudnak spawnolni a tk utáni részt nem futtatja le :S

kurta999


public OnPlayerDeath(playerid, killerid, reason)
{
//Textdrawok eltüntetése
SpawnPlayer(playerid);
        TextDrawHideForPlayer( playerid, TeamInfo );
TextDrawHideForPlayer( playerid, AttackerInfo );
TextDrawHideForPlayer( playerid, DefenderInfo );
if(killerid == INVALID_PLAYER_ID) SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
    else SendDeathMessage(killerid,playerid,reason);
   
ResetPlayerWeapons(playerid);
SetPlayerWantedLevel(killerid,GetPlayerWantedLevel(playerid)+1);//Növeli a gyilkos körözötségét
GivePlayerMoney(killerid,3000*GetPlayerWantedLevel(playerid));//Ha a halott körözött volt akkor plussz pénzt ad a gyilkosnak
SetPlayerWantedLevel(playerid,0);//A halottnak lenullázza a körözötségét
if(gTeam[killerid] != gTeam[playerid])//Ha a gyilkos más csapatban van mint a halott akkor lefut
{
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
GivePlayerMoney(killerid, 500);
} else {//De ha ugyanabban van akkor tk felirat jön ki
SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);
GivePlayerMoney(killerid, -250);
SetPlayerHealth(killerid, 0);//Megöli a teamkillert
TextDrawShowForPlayer( killerid, TeamKill );
SetTimerEx(\"MessOff\",5*1000,0, \"d\", killerid);
}
        return 0; // return 0-val
}

hpeter94

így se mûködik :S ugyanúgy bebugol...

hpeter94

na hát elég hülye módzsert találtam ki de az on player deathez beírtam hogy dobja le 50 méter magasra azt akkor tuti meghal így most jó XD

Game94

Én úgy csináltam meg hogy az OnPlayerUpdate függvénnyel lekérdeztem a player életét és ha 3 alá csökken akkor megöli a playert :)
Néha így is bugos , de azért mûködik :D

hpeter94

hát ez nem nagyon mûködne mivel van oan map amin 1 élettel indulnak :P