OnPlayerDeath doesn't work.
#1

Hello , so i got this code here
pawn Код:
OnPlayerDeath(playerid,killerid,reason)
{
    if(NormalKill[killerid]==1)
    {
        if(reason==34) //sniper
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Sniper Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
        }
        if(reason==51 && GetPlayerVehicleID(playerid)==432) //rhino
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Rhino Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
        }
        if(reason==31 && GetPlayerVehicleID(playerid)==476)//Rustler or w/e
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Plane Kill~n~~w~+3 Scores~n~~g~+1000$",5000,3);
            GivePlayerMoney(killerid,1000);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+3);
        }
        GameTextForPlayer(killerid,"~b~Good Job~n~~w~ +1 Score~n~~g~+500$",3000,3);
        SetPlayerScore(killerid, kScore+1);
        GivePlayerMoney(killerid, 300);
    }
return 1;
}
So when i kill a player using sniper , it says this part
pawn Код:
GameTextForPlayer(killerid,"~b~Good Job~n~~w~ +1 Score~n~~g~+500$",3000,3);
        SetPlayerScore(killerid, kScore+1);
        GivePlayerMoney(killerid, 300);
Instead of this one
pawn Код:
GameTextForPlayer(killerid,"~r~~h~~h~You made a Sniper Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
Why?
Reply
#2

Actually i noticed you didn't place the return 1; (the call back) right so you got loose idetination or something..
So place it Like that

Код:
OnPlayerDeath(playerid,killerid,reason)
{
    if(NormalKill[killerid]==1)
    {
        if(reason==34) //sniper
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Sniper Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
        }
        if(reason==51 && GetPlayerVehicleID(playerid)==432) //rhino
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Rhino Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
        }
        if(reason==31 && GetPlayerVehicleID(playerid)==476)//Rustler or w/e
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Plane Kill~n~~w~+3 Scores~n~~g~+1000$",5000,3);
            GivePlayerMoney(killerid,1000);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+3);
        }
        GameTextForPlayer(killerid,"~b~Good Job~n~~w~ +1 Score~n~~g~+500$",3000,3);
        SetPlayerScore(killerid, kScore+1);
        GivePlayerMoney(killerid, 300);
    }
    return 1;
}
Reply
#3

pawn Код:
if(reason==34) //sniper
        {
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
            return GameTextForPlayer(killerid,"~r~~h~~h~You made a Sniper Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
        }
Reply
#4

Quote:
Originally Posted by Lorenzo9Oz
Посмотреть сообщение
Actually i noticed you didn't place the return 1; (the call back) right so you got loose idetination or something..
So place it Like that

Код:
OnPlayerDeath(playerid,killerid,reason)
{
    if(NormalKill[killerid]==1)
    {
        if(reason==34) //sniper
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Sniper Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
        }
        if(reason==51 && GetPlayerVehicleID(playerid)==432) //rhino
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Rhino Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
        }
        if(reason==31 && GetPlayerVehicleID(playerid)==476)//Rustler or w/e
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Plane Kill~n~~w~+3 Scores~n~~g~+1000$",5000,3);
            GivePlayerMoney(killerid,1000);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+3);
        }
        GameTextForPlayer(killerid,"~b~Good Job~n~~w~ +1 Score~n~~g~+500$",3000,3);
        SetPlayerScore(killerid, kScore+1);
        GivePlayerMoney(killerid, 300);
    }
    return 1;
}
No worries about idetination its alright at my pawno but i dunno how to loose it here at samp forum cuz i can't press TAB xD
Anyways , thank you , will be tested.
Reply
#5

It's probably because you are not returning 1 afterwards. It sends the old message as-well, since you are not stopping it from continueing. So just add return 1; after every since if statement (after everything else, so after doing everything inside the if statement asking what killed em.

So technically, it is sending a gametext with the fact you killed them with a sniper, BUT it is overwrited by the code you written above.

Quote:
Originally Posted by CoDeZ
Посмотреть сообщение
No worries about idetination its alright at my pawno but i dunno how to loose it here at samp forum cuz i can't press TAB xD
Anyways , thank you , will be tested.
Simply copy your pawno code from pawno.exe and paste it here. It should be automatically indented unless you fuck with it.

EDIT: if you are lazy, use this and it will work like a charm:

pawn Код:
OnPlayerDeath(playerid,killerid,reason)
{
    if(NormalKill[killerid]==1)
    {
        if(reason==34) //sniper
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Sniper Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
            return 1;
        }
        if(reason==51 && GetPlayerVehicleID(playerid)==432) //rhino
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Rhino Kill~n~~w~+2 Scores~n~~g~+500$",5000,3);
            GivePlayerMoney(killerid,500);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+2);
            return 1;
        }
        if(reason==31 && GetPlayerVehicleID(playerid)==476)//Rustler or w/e
        {
            GameTextForPlayer(killerid,"~r~~h~~h~You made a Plane Kill~n~~w~+3 Scores~n~~g~+1000$",5000,3);
            GivePlayerMoney(killerid,1000);
            SetPlayerScore(killerid,GetPlayerScore(killerid)+3);
            return 1;
        }
        GameTextForPlayer(killerid,"~b~Good Job~n~~w~ +1 Score~n~~g~+500$",3000,3);
        SetPlayerScore(killerid, kScore+1);
        GivePlayerMoney(killerid, 300);
    }
    return 1;
}
Reply
#6

Thank you man!
Can't rep you dunno why. xD
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)