SA-MP Forums Archive
OnPlayerDeath And OnPlayerDisconnect [+REP] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: OnPlayerDeath And OnPlayerDisconnect [+REP] (/showthread.php?tid=493638)



OnPlayerDeath And OnPlayerDisconnect [+REP] - Mahde - 09.02.2014

Hello im trying to destroy player car when he/she dead and when he/she disconnect from server iv this terms

SetVehicleToRespawn(vehid);
DestroyVehicle(vehid);


But strange that its working even when you be passenger , so if im passenger and dead my car destroy , and its should not , its should only destroy if you was driver lead isnt true? , iv tried like make
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
But nothing worked please give me an ideas!

NOTE: when i type /kill or dead , its take 2 seconds to do the anim and die like just report that iv dead :S !


Re: OnPlayerDeath And OnPlayerDisconnect [+REP] - Vanter - 09.02.2014

show us codes.


! - RajatPawar - 09.02.2014

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
      if( IsPlayerInAnyVehicle( playerid ))
      {
            if( ! GetPlayerVehicleSeat( playerid ))
            {
                    DestroyVehicle( GetPlayerVehicleID( playerid ));
 .....
Make sure you read this, too ! (it CAN return 128 for some weird reason)

The same code goes for both the callbacks..


Re: OnPlayerDeath And OnPlayerDisconnect [+REP] - Mahde - 09.02.2014

Quote:
Originally Posted by Rajat_Pawar
Посмотреть сообщение
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
      if( IsPlayerInAnyVehicle( playerid ))
      {
            if( ! GetPlayerVehicleSeat( playerid ))
            {
                    DestroyVehicle( GetPlayerVehicleID( playerid ));
 .....
Make sure you read this, too ! (it CAN return 128 for some weird reason)
Thanks what about OnPlayerDeath it is hard :S


Re: OnPlayerDeath And OnPlayerDisconnect [+REP] - Vanter - 09.02.2014

post same codes. but under OnPlayerDeath.


Re: OnPlayerDeath And OnPlayerDisconnect [+REP] - Mahde - 09.02.2014

Код:
public OnPlayerDeath(playerid, killerid, reason)
{
	//Killingspree
    new str[ 256 ], KillerName[MAX_PLAYER_NAME];
    GetPlayerName(killerid, KillerName, sizeof(KillerName));
    //End KS
    GodMode[playerid] = 0;
    SendDeathMessage(killerid, playerid, reason);
    if(killerid != INVALID_PLAYER_ID)
    {
   	    TotalKills[killerid]++;
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
        SetPlayerWantedLevel(killerid, (GetPlayerWantedLevel(killerid) + 1));
        GameTextForPlayer(killerid,"~w~+1 Score~R~~N~+1 kill~N~ ~g~+1000$", 5000, 1);
        GivePlayerMoney(killerid, 1000);
        Streaks[killerid]++;
    if(Streaks[killerid] == 3) {
            format(str, sizeof(str), "%s {00FFEE}is on Triple Kill  {FFAF00}(3 kills +3 Score!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);
            SetPlayerScore(killerid, GetPlayerScore(killerid) + 2);
    }
    if(Streaks[killerid] == 5) {
            format(str, sizeof(str), "%s {F81414}is on Killing Spree {FFAF00}(5 Kills +5 Score!!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);
            SetPlayerScore(killerid, GetPlayerScore(killerid) + 4);
    }
    if(Streaks[killerid] == 10) {
            format(str, sizeof(str), "%s {B8FF02}is on UNSTOPPABLE {FFAF00}(10 Kills +10 Score!!!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);

    }
    }
    TotalDeaths[playerid]++;
    SetPlayerScore(playerid, GetPlayerScore(playerid) - 1);
    SetPlayerWantedLevel(playerid, 0);
    GivePlayerMoney(playerid, -1000);
    GameTextForPlayer(playerid,"~R~W~B~A~G~S~W~T~P~E~G~D~N~~N~~N~~N~~N~~R~Rest ~W~In ~g~PEACE", 3000, 5);
    return 1;
}
??


Re: OnPlayerDeath And OnPlayerDisconnect [+REP] - Abagail - 09.02.2014

Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(!ispassenger(playerid)) return SetPVarInt(playerid, "LastCar", vehicleid);
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
SetPVarInt(playerid, "LastCar", vehicleid);
}

public OnPlayerDeath(playerid, killerid, reason)
{
	//Killingspree
    new str[ 256 ], KillerName[MAX_PLAYER_NAME];
    GetPlayerName(killerid, KillerName, sizeof(KillerName));
    //End KS
    GodMode[playerid] = 0;
    SendDeathMessage(killerid, playerid, reason);
    new vehicleid = GetPVarInt(playerid, "LastCar");
    if(vehicleid != INVALID_VEHICLE_ID) DestroyVehicle(vehicleid);
    DeletePVarInt(playerid, "LastCar");
    if(killerid != INVALID_PLAYER_ID)
    {
   	    TotalKills[killerid]++;
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
        SetPlayerWantedLevel(killerid, (GetPlayerWantedLevel(killerid) + 1));
        GameTextForPlayer(killerid,"~w~+1 Score~R~~N~+1 kill~N~ ~g~+1000$", 5000, 1);
        GivePlayerMoney(killerid, 1000);
        Streaks[killerid]++;
    if(Streaks[killerid] == 3) {
            format(str, sizeof(str), "%s {00FFEE}is on Triple Kill  {FFAF00}(3 kills +3 Score!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);
            SetPlayerScore(killerid, GetPlayerScore(killerid) + 2);
    }
    if(Streaks[killerid] == 5) {
            format(str, sizeof(str), "%s {F81414}is on Killing Spree {FFAF00}(5 Kills +5 Score!!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);
            SetPlayerScore(killerid, GetPlayerScore(killerid) + 4);
    }
    if(Streaks[killerid] == 10) {
            format(str, sizeof(str), "%s {B8FF02}is on UNSTOPPABLE {FFAF00}(10 Kills +10 Score!!!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);

    }
Okay, so basically this method uses pVar's to store the last vehicle ID the player has entered. Then when the player dies the vehicle will be destroyed.


Re: OnPlayerDeath And OnPlayerDisconnect [+REP] - Mahde - 09.02.2014

Quote:
Originally Posted by Abagail
Посмотреть сообщение
Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
SetPVarInt(playerid, "LastCar", vehicleid);
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
SetPVarInt(playerid, "LastCar", vehicleid);
}

public OnPlayerDeath(playerid, killerid, reason)
{
	//Killingspree
    new str[ 256 ], KillerName[MAX_PLAYER_NAME];
    GetPlayerName(killerid, KillerName, sizeof(KillerName));
    //End KS
    GodMode[playerid] = 0;
    SendDeathMessage(killerid, playerid, reason);
    if(killerid != INVALID_PLAYER_ID)
    {
   	    TotalKills[killerid]++;
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
        SetPlayerWantedLevel(killerid, (GetPlayerWantedLevel(killerid) + 1));
        GameTextForPlayer(killerid,"~w~+1 Score~R~~N~+1 kill~N~ ~g~+1000$", 5000, 1);
        GivePlayerMoney(killerid, 1000);
        Streaks[killerid]++;
    if(Streaks[killerid] == 3) {
            format(str, sizeof(str), "%s {00FFEE}is on Triple Kill  {FFAF00}(3 kills +3 Score!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);
            SetPlayerScore(killerid, GetPlayerScore(killerid) + 2);
            new vehicleid = GetPVarInt(playerid, "LastCar");
            DestroyVehicle(vehicleid);
    }
    if(Streaks[killerid] == 5) {
            format(str, sizeof(str), "%s {F81414}is on Killing Spree {FFAF00}(5 Kills +5 Score!!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);
            SetPlayerScore(killerid, GetPlayerScore(killerid) + 4);
    }
    if(Streaks[killerid] == 10) {
            format(str, sizeof(str), "%s {B8FF02}is on UNSTOPPABLE {FFAF00}(10 Kills +10 Score!!!)", KillerName); 
            SendClientMessageToAll(0xADFF2FAA, str);

    }
Thanks for trying to help me ,but its not worked cuz if i was passenger also vehicle destroy


Re: OnPlayerDeath And OnPlayerDisconnect [+REP] - Abagail - 09.02.2014

It should work now.