pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
foreach(new i: Player) if(GetPlayerState(i) == PLAYER_STATE_SPECTATING && JugadorInfo[i][pSpecID] == playerid) AdvanceSpectate(i);
if(IsPlayerConnected(playerid) &&playerid != INVALID_PLAYER_ID)
{
JugadorInfo[playerid][pDeaths] = JugadorInfo[playerid][pDeaths]+1;
JugadorInfo[playerid][pSpawneado] = false;
JugadorInfo[playerid][pEnMinijuego] = 0;
if(JugadorInfo[playerid][pCash] > 500)
{
JugadorInfo[playerid][pCash] = JugadorInfo[playerid][pCash]- QUITAR_DINERO;
}
ActualizarYGuardarCash(playerid);
ActualizarTextoBarraDato(playerid);
GuardarMuertes(playerid);
SendDeathMessage(killerid,playerid,reason);
SetPlayerChatBubble(playerid,"eliminado",COLOR_ROJO,50,4000);
}
if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
{
JugadorInfo[killerid][pKills] = JugadorInfo[killerid][pKills]+1;
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
JugadorInfo[killerid][pCash] = JugadorInfo[killerid][pCash]+ DAR_DINERO;
ActualizarYGuardarCash(killerid);
GuardarKills(killerid);
DarPlayerVip(killerid);
ActualizarTextoBarraDato(killerid);
GameTextForPlayer(killerid,KSMensajes[random(sizeof(KSMensajes))], 4000, 6);
if(JugadorInfo[killerid][pKills] == 5 && JugadorInfo[killerid][pLogueado] == true) ShowPlayerDialog(killerid, DIALOG_SINUSO, DIALOG_STYLE_MSGBOX, "|| Cuenta confirmada ||", "Su cuenta fue confirmada y asegurada\nrecuerde no perder tus datos.", "Aceptar", "");
switch(JugadorInfo[killerid][pNivel])
{
case 1..10: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+7;
case 11..20: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+4;
case 21..30: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+2;
case 31..50: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+0.5;
case 51..70: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+0.1;
case 71..80: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+0.07;
case 81..90: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+0.05;
case 91..98: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+0.03;
case 99: JugadorInfo[killerid][pExp] = JugadorInfo[killerid][pExp]+0.02;
}
if(JugadorInfo[killerid][pNivel] < 100 && JugadorInfo[killerid][pLogueado] == true)
{
new Query[150];
format(Query,sizeof(Query),"UPDATE `USERS` SET Exp = '%f' WHERE `Nick` = '%s' COLLATE NOCASE",
JugadorInfo[killerid][pExp],
DB_Escape(pName(killerid)));
db_query(MxFDB, Query);
ActualizarNivel(killerid);
ActualizarTextoBarraDato(killerid);
}
if(JugadorInfo[playerid][pEnDuelo] == true && JugadorInfo[killerid][pEnDuelo] == true)
{
for(new i=1; i<= ARENAS; i++)
{
if ((Duelos[i][DesaId] == playerid || Duelos[i][DesaId] == killerid) && (Duelos[i][DesafiadoId] == playerid) || (Duelos[i][DesafiadoId] == killerid))
{
new Query[150];
new Float:healthkiller, Float:armourkiller;
GetPlayerHealth(killerid,healthkiller);
GetPlayerArmour(killerid,armourkiller);
if(healthkiller > 90.0 && armourkiller > 90.0)
{
SendClientMessageToAllEx(COLOR_AZULCLARO,"* %s [%d] obtiene >> OWNED << contra %s [%d] en el duelo [Con %0.0f de vida y %0.0f de chaleco]",pName(killerid),killerid,pName(playerid),playerid,healthkiller,armourkiller);
} else {
SendClientMessageToAllEx(COLOR_AZULCLARO,"* %s [%d] a ganado el duelo contra %s [%d] [Con %0.0f de vida y %0.0f de chaleco]",pName(killerid),killerid,pName(playerid),playerid,healthkiller,armourkiller);
}
SendClientMessageEx(playerid,COLOR_DUELO,"* Has perdido el duelo contra %s [%d] suerte en la prуxima.",pName(killerid),killerid);
SendClientMessageEx(killerid,COLOR_DUELO,"* Has ganado el duelo contra %s [%d] felicidades.",pName(playerid),playerid);
JugadorInfo[playerid][pEnDuelo] = false;
JugadorInfo[killerid][pEnDuelo] = false;
Duelos[i][DesafiadoId] = -1;
Duelos[i][DesaId] = -1;
Duelos[i][ArmasId] = -1;
Duelos[i][Libre] = 0;
JugadorInfo[killerid][pDueloWin] = JugadorInfo[killerid][pDueloWin]+ 1;
JugadorInfo[playerid][pDueloLose] = JugadorInfo[playerid][pDueloLose]+ 1;
SetPlayerVirtualWorld(killerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerInterior(killerid,0);
SetPlayerInterior(playerid,0);
ActualizarTextoBarraDato(playerid);
ActualizarTextoBarraDato(killerid);
format(Query,sizeof(Query),"UPDATE `USERS` SET Dwin = '%d' WHERE `Nick` = '%s' COLLATE NOCASE",
JugadorInfo[killerid][pDueloWin],
DB_Escape(pName(killerid)));
db_query(MxFDB, Query);
format(Query,sizeof(Query),"UPDATE `USERS` SET Dlose = '%d' WHERE `Nick` = '%s' COLLATE NOCASE",
JugadorInfo[playerid][pDueloLose],
DB_Escape(pName(playerid)));
db_query(MxFDB, Query);
SpawnPlayer(killerid);
foreach(new j: Player) {
if(JugadorInfo[j][ViendoDuelo] == i)
{
SpawnPlayer(j);
JugadorInfo[j][ViendoDuelo] = -1;
SetPlayerVirtualWorld(j,0);
}
}
return 1;
}
}
}
}
if(Joined[playerid] == true)
{
JoinCount--;
Joined[playerid] = false;
DestruirVehiculo(playerid,CreatedRaceVeh[playerid]);
DisablePlayerRaceCheckpoint(playerid);
CPProgess[playerid] = 0;
SetPlayerVirtualWorld(playerid, 0);
DisableRemoteVehicleCollisions(playerid,0);
}
if(reason == 50) SendClientMessageToAllEx(COLOR_AMARILLO,"* %s [%d] ha sido eliminado por matar en helicуptero a %s [%d]",pName(killerid),killerid,pName(playerid),playerid), SetPlayerHealth(killerid,0);
return 1;
}