Препработка на плъгина kill assist
-
Destro
Извън линия - Потребител
- Мнения: 65
- Регистриран на: 06 Яну 2019, 21:37
- Се отблагодари: 6 пъти
- Получена благодарност: 4 пъти
Препработка на плъгина kill assist
Здравейте използвам плъгина който , добавя асистенции в играта примерно ако някой хитне някого с над 40дмг получава асистенция и горе при убиййствата го пише като асситенция , сега въпроса ми е КАК МОЖЕ да се направи ново поле като натискаме таб-а и да има нов ред Assist ? Също и асистите да участват по някъкв начин в топ-а ако може
-
hackera457
Извън линия - Потребител
- Мнения: 768
- Регистриран на: 01 Ное 2016, 09:46
- Местоположение: София
- Се отблагодари: 1 път
- Получена благодарност: 124 пъти
- Обратна връзка:
Препработка на плъгина kill assist
Това, което искаш за ново поле в scoreboard-а няма как да стане
Последно промяна от OciXCrom на 13 Яну 2019, 00:34, променено общо 1 път.
Причина: Нарушена т. 9 от Правилата на форума!
Причина: Нарушена т. 9 от Правилата на форума!
Моите плъгини
Код за потвърждение: Избери целия код
#include <hambeer>
RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);
public GivePlayerBeer(Pl){
if(!is_user_alive(Pl)){
ham_give_beer(Pl, 5)
client_print(Pl, print_chat, "Go Go Go"){
}
-
Destro
Извън линия - Потребител
- Мнения: 65
- Регистриран на: 06 Яну 2019, 21:37
- Се отблагодари: 6 пъти
- Получена благодарност: 4 пъти
Препработка на плъгина kill assist
А има ли как да се направи класация за assisti ? Примерно /assists и да излезе топа по асисти ?
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Препработка на плъгина kill assist
Качи плъгина за да видим как и дали изобщо се запазват тези assist-и.
-
Destro
Извън линия - Потребител
- Мнения: 65
- Регистриран на: 06 Яну 2019, 21:37
- Се отблагодари: 6 пъти
- Получена благодарност: 4 пъти
Препработка на плъгина kill assist
Заповядай , ако не се записва може ли да се направи по някакъв начин
Код за потвърждение: Избери целия код
/* --------------------------------------------------------------------------
Kill assist (for CS) v1.2b
by Digi (a.k.a. Hunter-Digital)
www.thehunters.ro
-----------------------------------------------------------------
Description:
When a player gets killed, this plugin checks if another player, from the same team,
did enough damage to the victim so that he could be an accomplice to the kill and
the assister will also receive a frag
(all of these are cvar controlled)
CVars and default values:
- amx_killassist_enable 0/1/2 (default: 1)
Enable modes: 0 = Disable / 1 = Enable with DeathMsg / 2 = Enable with HUD message
- amx_killassist_mindamage 1-9999 (default: 50)
Minimum amount of damage to deal to be nominated for an assisted kill
- amx_killassist_givefrags 0/1 (default: 1)
Give or not give the assister frags
- amx_killassist_givemoney 0-16000 (default: 300)
Give or not give the assister some money, 0 disables, 1 or more sets how much money
- amx_killassist_onlyalive 0/1 (default: 0)
Only alive players can be of assistance in killing other players
Credits and thanks:
- ConnorMcLeod - for helping with quick name changing
- arkshine - for helping with name squeeze
- joaquimandrade - code improvements
- anakin_cstrike - code improvements
- Nextra - more code improvements
- ajvn - some ideas
- Dores - and more code improvements
- frearmer - hud message sugestion
Changelog:
v1.2b - modified public variable to "killassist_version" and fixed deathmsg not showing when you suicide with worldspawn or an entity
v1.2 - added no-name-changing support, prints HUD message, to activate, set enabled to 2
v1.1b - simplified cvar checking using clamp()
v1.1 - converted to CS only, new cvars: amx_killassist_onlyalive, amx_killassist_givemoney, enriched cvar handling, added team cache and fixed some bugs
v1.0d - Removed useless stuff xD, added pcvar on amx_mode and used formatex()
v1.0c - Some modifications and added g_bOnline
v1.0b - Fixed admin name bug
v1.0 - Release
-------------------------------------------------------------- */
/* Feel free to modify these HUD message values */
#define HUD_colorR 255 // default: 255
#define HUD_colorG 155 // default: 155
#define HUD_colorB 0 // default: 0
#define HUD_posX 0.6 // default: 0.6
#define HUD_posY 0.2 // default: 0.2
#define HUD_fx 0 // default: 0
#define HUD_fxTime 0.0 // default: 0.0
#define HUD_holdTime 1.0 // default: 1.0
#define HUD_fadeInTime 0.3 // default: 0.3
#define HUD_fadeOutTime 2.0 // default: 2.0
#define HUD_channel -1 // default: -1
/* -------------------------------------------------------------------------
Nothing to edit below this point */
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#define PLUGIN_TITLE "Kill assist (for CS)"
#define PLUGIN_VERSION "1.2b"
#define PLUGIN_AUTHOR "Digi (www.thehunters.ro)"
#define PLUGIN_PUBLICVAR "killassist_version"
#define MAXPLAYERS 32 + 1
#define TEAM_NONE 0
#define TEAM_TE 1
#define TEAM_CT 2
#define TEAM_SPEC 3
#define is_player(%1) (1 <= %1 <= g_iMaxPlayers)
new msgID_sayText
new msgID_deathMsg
new msgID_scoreInfo
new msgID_money
new pCVar_amxMode
new pCVar_enabled
new pCVar_minDamage
new pCVar_giveFrags
new pCVar_giveMoney
new pCVar_onlyAlive
new ch_pCVar_enabled
new ch_pCVar_minDamage
new ch_pCVar_giveFrags
new ch_pCVar_giveMoney
new ch_pCVar_onlyAlive
new g_szName[MAXPLAYERS][32]
new g_iTeam[MAXPLAYERS]
new g_iDamage[MAXPLAYERS][MAXPLAYERS]
new bool:g_bAlive[MAXPLAYERS] = {false, ...}
new bool:g_bOnline[MAXPLAYERS] = {false, ...}
new g_iLastAmxMode
new g_iMaxPlayers = 0
new bool:g_bAmxModeExists = false
public plugin_init()
{
register_plugin(PLUGIN_TITLE, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_PUBLICVAR, PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY)
pCVar_enabled = register_cvar("amx_killassist_enabled", "1")
pCVar_minDamage = register_cvar("amx_killassist_mindamage", "50")
pCVar_giveFrags = register_cvar("amx_killassist_givefrags", "1")
pCVar_giveMoney = register_cvar("amx_killassist_givemoney", "300")
pCVar_onlyAlive = register_cvar("amx_killassist_onlyalive", "0")
if(cvar_exists("amx_mode"))
{
pCVar_amxMode = get_cvar_pointer("amx_mode")
g_bAmxModeExists = true
}
msgID_money = get_user_msgid("Money")
msgID_sayText = get_user_msgid("SayText")
msgID_deathMsg = get_user_msgid("DeathMsg")
msgID_scoreInfo = get_user_msgid("ScoreInfo")
register_message(msgID_deathMsg, "msg_deathMsg")
register_logevent("event_roundStart", 2, "1=Round_Start")
register_event("Damage", "player_damage", "be", "2!0", "3=0", "4!0")
register_event("DeathMsg", "player_die", "ae")
register_event("TeamInfo", "player_joinTeam", "a")
RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
g_iMaxPlayers = get_maxplayers()
}
public plugin_cfg() event_roundStart()
public event_roundStart()
{
ch_pCVar_enabled = clamp(get_pcvar_num(pCVar_enabled), 0, 2)
ch_pCVar_minDamage = clamp(get_pcvar_num(pCVar_minDamage), 0, 9999)
ch_pCVar_giveFrags = clamp(get_pcvar_num(pCVar_giveFrags), 0, 1)
ch_pCVar_giveMoney = clamp(get_pcvar_num(pCVar_giveMoney), 0, 16000)
ch_pCVar_onlyAlive = clamp(get_pcvar_num(pCVar_onlyAlive), 0, 1)
}
public client_putinserver(iPlayer)
{
g_bOnline[iPlayer] = true
get_user_name(iPlayer, g_szName[iPlayer], 31)
}
public client_disconnect(iPlayer)
{
g_iTeam[iPlayer] = TEAM_NONE
g_bAlive[iPlayer] = false
g_bOnline[iPlayer] = false
}
public player_joinTeam()
{
new iPlayer, szTeam[2]
iPlayer = read_data(1)
read_data(2, szTeam, 1)
switch(szTeam[0])
{
case 'T': g_iTeam[iPlayer] = TEAM_TE
case 'C': g_iTeam[iPlayer] = TEAM_CT
default: g_iTeam[iPlayer] = TEAM_SPEC // since you can't transfer yourself to unassigned team...
}
return PLUGIN_CONTINUE
}
public player_spawn(iPlayer)
{
if(!is_user_alive(iPlayer))
return HAM_IGNORED
g_bAlive[iPlayer] = true // he's alive !
new szName[32]
get_user_name(iPlayer, szName, 31)
if(!equali(szName, g_szName[iPlayer])) // make sure he has his name !
{
set_msg_block(msgID_sayText, BLOCK_ONCE)
set_user_info(iPlayer, "name", g_szName[iPlayer])
}
// reset damage meters
for(new p = 1; p <= g_iMaxPlayers; p++)
g_iDamage[iPlayer][p] = 0
return HAM_IGNORED
}
public player_damage(iVictim)
{
if(!ch_pCVar_enabled || !is_player(iVictim))
return PLUGIN_CONTINUE
new iAttacker = get_user_attacker(iVictim)
if(!is_player(iAttacker))
return PLUGIN_CONTINUE
g_iDamage[iAttacker][iVictim] += read_data(2)
return PLUGIN_CONTINUE
}
public player_die()
{
if(!ch_pCVar_enabled)
return PLUGIN_CONTINUE
new iVictim = read_data(2)
new iKiller = read_data(1)
new iHS = read_data(3)
new szWeapon[24]
read_data(4, szWeapon, 23)
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_iMaxPlayers; 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)
{
if(ch_pCVar_giveFrags)
{
new iFrags = get_user_frags(iKiller2)+1
set_user_frags(iKiller2, iFrags)
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()
}
if(ch_pCVar_giveMoney)
{
new iMoney = cs_get_user_money(iKiller2) + ch_pCVar_giveMoney
if(iMoney > 16000)
iMoney = 16000
cs_set_user_money(iKiller2, iMoney)
if(g_bAlive[iKiller2]) // no reason to send a money message when the player has no hud :}
{
message_begin(MSG_ONE_UNRELIABLE, msgID_money, _, iKiller2)
write_long(iMoney)
write_byte(1)
message_end()
}
}
if(ch_pCVar_enabled == 2)
{
new szName1[32], szName2[32], szName3[32], szMsg[128]
get_user_name(iKiller, szName1, 31)
get_user_name(iKiller2, szName2, 31)
get_user_name(iVictim, szName3, 31)
formatex(szMsg, 63, "%s killed %s assisted by %s", szName1, szName3, szName2)
set_hudmessage(HUD_colorR, HUD_colorG, HUD_colorB, HUD_posX, HUD_posY, HUD_fx, HUD_fxTime, HUD_holdTime, HUD_fadeInTime, HUD_fadeOutTime, HUD_channel)
show_hudmessage(0, szMsg)
}
else
{
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(g_bAmxModeExists)
{
g_iLastAmxMode = get_pcvar_num(pCVar_amxMode)
set_pcvar_num(pCVar_amxMode, 0)
}
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)
}
}
else if(ch_pCVar_enabled == 1)
do_deathmsg(iKiller, iVictim, iHS, szWeapon)
}
else if(ch_pCVar_enabled == 1)
do_deathmsg(iVictim, iVictim, iHS, szWeapon)
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])
if(g_bAmxModeExists)
set_pcvar_num(pCVar_amxMode, g_iLastAmxMode)
return PLUGIN_CONTINUE
}
public msg_deathMsg()
return ch_pCVar_enabled == 1 ? PLUGIN_HANDLED : PLUGIN_CONTINUE
/* originally from messages_stocks.inc, but simplified */
stock do_deathmsg(iKiller, iVictim, iHS, const szWeapon[])
{
message_begin(MSG_ALL, msgID_deathMsg)
write_byte(iKiller)
write_byte(iVictim)
write_byte(iHS)
write_string(szWeapon)
message_end()
}
/* --------------------------------------------------------------------------
EOF
-------------------------------------------------------------- */
Последно промяна от OciXCrom на 13 Яну 2019, 01:29, променено общо 1 път.
Причина: Премахнат .amxx файл!
Причина: Премахнат .amxx файл!
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 3 Отговори
- 1051 Преглеждания
-
Последно мнение от rago12
-
- 2 Отговори
- 590 Преглеждания
-
Последно мнение от Gmilanov
-
- 3 Отговори
- 2506 Преглеждания
-
Последно мнение от antonstoqnovv
-
- 2 Отговори
- 370 Преглеждания
-
Последно мнение от HeatoN
-
- 0 Отговори
- 1334 Преглеждания
-
Последно мнение от Ricardo01
-
- 21 Отговори
- 5668 Преглеждания
-
Последно мнение от USA_CA
-
- 1 Отговори
- 835 Преглеждания
-
Последно мнение от Siska
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 26 госта