Tutaj zamieszczam kod funkcji Death() (więcej chyba nie potrzeba):
w plugin init: register_event("DeathMsg", "Death", "a");
public Death()
{
new iAttacker = read_data(1);
new iVictim = read_data(2);
new iHeadshot = read_data(3);
if(!is_user_alive(iAttacker) || !is_user_connected(iVictim))
return PLUGIN_CONTINUE;
if(g_PlayerClass[iAttacker])
return PLUGIN_CONTINUE;
if(iAttacker == iVictim)
return PLUGIN_CONTINUE;
if(get_user_team(iAttacker) == get_user_team(iVictim))
{
g_PlayerExp[iAttacker]-=KILL_XP;
set_hudmessage(255, 212, 0, -1.0, 0.30, 1, 3.0, 3.0);
ShowSyncHudMsg(iAttacker, g_SyncHudObj, " Zdrada!^n+%i", -1*KILL_XP);
}
else
{
if(get_user_team(iAttacker) == 2 && g_CtFrags < 150)
{
g_CtFrags += 1;
}
else if(get_user_team(iAttacker) == 1 && g_CtFrags < 150)
{
g_TtFrags += 1;
}
new ExpAmount = 0;
if(iHeadshot)
ExpAmount+=HS_XP;
else
ExpAmount+=KILL_XP;
for(new iAttackerID=1; iAttackerID<=32; iAttackerID++)
{
if(g_PlayerAssist[iAttackerID][iVictim] && iAttacker != iAttackerID && is_user_connected(iAttackerID) && g_PlayerClass[iAttackerID])
{
g_PlayerExp[iAttackerID] += ASSIST_XP;
set_hudmessage(255, 212, 0, -1.0, 0.30, 1, 3.0, 3.0);
ShowSyncHudMsg(iAttackerID, g_SyncHudObj2, " Asysta!^n+%i", ASSIST_XP);
}
g_PlayerAssist[iAttackerID][iVictim] = false;
SprawdzPoziom(iAttackerID);
}
if(iAttacker && iVictim)
{
g_PlayerPayback[iVictim] = iAttacker;
if(g_PlayerPayback[iAttacker] && g_PlayerPayback[iAttacker] == iVictim)
{
ExpAmount += PAYBACK_XP;
g_PlayerPayback[iAttacker] = 0;
}
}
if(g_PlayerRole[iVictim] == HOSTAGE_RESCUER)
{
ExpAmount += KILL_XP+15;
ColorChat(iAttacker, GREEN, "[%s] Otrzymales^x03 %d^x01 doswiadczenia za zabicie ratownika.", TAG, KILL_XP+15);
}
else if(g_PlayerRole[iVictim] == BOMB_DEFUSER)
{
ExpAmount += KILL_XP+15;
ColorChat(iAttacker, GREEN, "[%s] Otrzymales^x03 %d^x01 doswiadczenia za zabicie rozbrajajacego.", TAG, KILL_XP+15);
}
else if(g_PlayerRole[iVictim] == BOMB_PLANTER)
{
ExpAmount += KILL_XP+15;
ColorChat(iAttacker, GREEN, "[%s] Otrzymales^x03 %d^x01 doswiadczenia za zabicie podkladajacego.", TAG, KILL_XP+15);
}
else if(g_PlayerRole[iVictim] == BOMB_CARRIER)
{
ExpAmount += KILL_XP+15;
ColorChat(iAttacker, GREEN, "[%s] Otrzymales^x03 %d^x01 doswiadczenia za zabicie niosacego bombe.", TAG, KILL_XP+15);
}
g_PlayerRole[iVictim] = 0;
if(g_PlayerIsVip[iAttacker])
{
g_PlayerExp[iAttacker]+=ExpAmount*2;
set_hudmessage(255, 212, 0, -1.0, 0.30, 1, 3.0, 3.0);
if(g_PlayerPayback[iAttacker] == 1)
ShowSyncHudMsg(iAttacker, g_SyncHudObj," Zemsta^n+%i", ExpAmount*2);
else if(g_PlayerPayback[iAttacker] == 0)
ShowSyncHudMsg(iAttacker, g_SyncHudObj, " %s^n+%i", iHeadshot ? "Headshot!" : "Zabojstwo!", ExpAmount*2);
}
else
{
g_PlayerExp[iAttacker]+=ExpAmount;
if(g_PlayerPayback[iAttacker] == 1)
ShowSyncHudMsg(iAttacker, g_SyncHudObj," Zemsta^n+%i", ExpAmount);
else if(g_PlayerPayback[iAttacker] == 0)
ShowSyncHudMsg(iAttacker, g_SyncHudObj, " %s^n+%i", iHeadshot ? "Headshot!" : "Zabojstwo!", ExpAmount);
}
}
Sprawdz();
SprawdzPoziom(iAttacker);
return PLUGIN_CONTINUE;
}