W wielkim skrocie:
Mam taki prosty plugin a w nim funkcje ktora liczy kto zadal ile obrazen przeciwnikowi i w sytuacji ze Gracz1 zadal 99 obrazen Graczowi3, a Gracz2 dobil Gracza3, wyswietla sie informacja (w prawym gornym rogu) Gracz1 + Gracz2 (M4A1) Gracz3
Problem mam taki ze wyswietla sie ten "nowy" wpis oraz ten "stary"
Czyli efekt jest mniejwiecej taki:
Gracz2 (M4A1) Gracz3 Gracz1 + Gracz2 (M4A1) Gracz3
jak widzicie, wpis sie podwaja...
Jak moge zablokowac ten standardowy wpis ?
kawalek mojej funkcji:
public event_deathmsg()
{
if( !get_pcvar_num(p_Enabled) )
return PLUGIN_CONTINUE;
new counted_triple = get_pcvar_num(xp_kill) + get_pcvar_num(xp_triple)
new counted_ultra = get_pcvar_num(xp_kill) + get_pcvar_num(xp_ultra)
new iVictim = read_data(2)
new iKiller = read_data(1)
new iHS = read_data(3)
new szWeapon[24]
read_data(4, szWeapon, 23)
g_kills[iKiller]++;
if(!is_player(iVictim))
{
do_deathmsg(iKiller, iVictim, iHS, szWeapon)
return PLUGIN_CONTINUE
}
g_bAlive[iVictim] = false
if(!is_player(iKiller))
{
do_deathmsg(iKiller, iVictim, iHS, szWeapon)
return PLUGIN_CONTINUE
}
new iKillerTeam = g_iTeam[iKiller]
if(iKiller != iVictim && g_iTeam[iVictim] != iKillerTeam)
{
new iKiller2 = 0
new iDamage2 = 0
for(new p = 1; p <= g_maxplayers; p++)
{
if(p != iKiller && g_bOnline[p] && (ch_pCVar_onlyAlive && g_bAlive[p] || !ch_pCVar_onlyAlive) && iKillerTeam == g_iTeam[p] && g_iDamage[p][iVictim] >= ch_pCVar_minDamage && g_iDamage[p][iVictim] > iDamage2)
{
iKiller2 = p
iDamage2 = g_iDamage[p][iVictim]
}
g_iDamage[p][iVictim] = 0
}
if(iKiller2 > 0 && iDamage2 > ch_pCVar_minDamage)
{
new iFrags = get_user_frags(iKiller2)+1
g_kills[iKiller2]++;
message_begin(MSG_ALL, msgID_scoreInfo)
write_byte(iKiller2)
write_short(iFrags)
write_short(get_user_deaths(iKiller2))
write_short(0)
write_short(iKillerTeam)
message_end()
new szName1[32], iName1Len, szName2[32], iName2Len, szNames[32], szWeaponLong[32]
iName1Len = get_user_name(iKiller, szName1, 31)
iName2Len = get_user_name(iKiller2, szName2, 31)
g_szName[iKiller] = szName1
if(iName1Len < 14)
{
formatex(szName1, iName1Len, "%s", szName1)
formatex(szName2, 28-iName1Len, "%s", szName2)
}
else if(iName2Len < 14)
{
formatex(szName1, 28-iName2Len, "%s", szName1)
formatex(szName2, iName2Len, "%s", szName2)
}
else
{
formatex(szName1, 13, "%s", szName1)
formatex(szName2, 13, "%s", szName2)
}
formatex(szNames, 31, "%s + %s", szName1, szName2)
set_msg_block(msgID_sayText, BLOCK_ONCE)
set_user_info(iKiller, "name", szNames)
if(equali(szWeapon, "grenade"))
szWeaponLong = "weapon_hegrenade"
else
formatex(szWeaponLong, 31, "weapon_%s", szWeapon)
new args[4]
args[0] = iVictim
args[1] = iKiller
args[2] = iHS
args[3] = get_weaponid(szWeaponLong)
set_task(0.1, "player_diePost", 0, args, 4)
}
}
return PLUGIN_CONTINUE;
}
public player_diePost(arg[])
{
new szWeapon[24]
new iKiller = arg[1]
get_weaponname(arg[3], szWeapon, 23)
replace(szWeapon, 23, "weapon_", "")
do_deathmsg(iKiller, arg[0], arg[2], szWeapon)
set_msg_block(msgID_sayText, BLOCK_ONCE)
set_user_info(iKiller, "name", g_szName[iKiller])
return PLUGIN_CONTINUE
}
proszę o pomoc jezeli wiecie o co mi chodzi


Dodatki SourceMod



Temat jest zamknięty









