Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

next21_kill_assist

, Помогите с плагином
Статус пользователя amatory1230
сообщение 26.3.2021, 20:40
Сообщение #1


Стаж: 7 лет 11 месяцев

Сообщений: 83
Благодарностей: 12
Полезность: 115

Всем привет!
Помогите пожалуйста с плагином помощь в убийстве.
Какую строку нужно удалить в исходнике что бы не было ника как указано на картинке...
Прикрепленные файлы:
Прикрепленное изображение

Прикрепленные файлы:
Прикрепленный файл  next21_kill_assist.sma ( 10,31 килобайт ) Кол-во скачиваний: 45


☆ Твори Добро ☆
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 26.3.2021, 21:51
Сообщение #2
Стаж: 6 лет 8 месяцев
Город: Киев

Сообщений: 703
Благодарностей: 64
Полезность: < 0

Цитата(amatory1230 @ 26.3.2021, 21:40) *
Всем привет!
Помогите пожалуйста с плагином помощь в убийстве.
Какую строку нужно удалить в исходнике что бы не было ника как указано на картинке...

Я ничего не пойму что ты хочешь конечно, но если ты хочешь убрать ник то просто убери плагин. Подробнее расскажи пожалуйста) thank_you2.gif


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 26.3.2021, 22:20
Сообщение #3


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

TheArtemMaps,
Скорее всего,так как плагин делает добавку убийства клиенту в Скоре для 2х человек по 1 фрагу,то ТС'у нужно просто + имя ника второго помощника скрыть


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя amatory1230
сообщение 26.3.2021, 22:25
Сообщение #4


Стаж: 7 лет 11 месяцев

Сообщений: 83
Благодарностей: 12
Полезность: 115

TheArtemMaps,
В скриншоте я обвел того человека который якобы мне помог (якобы это потому что я в спекторах сидел)
Мне нужно что бы этот ник который мне помог в убийстве не высвечивался в том месте где я обвел на скрине. (как это место называется я хз подскажите если знаете, давно не играл все забыл)
А все остальное должно быть как есть, то есть письмо в чат тому игроку который кого то убил и ему кто то помог, что бы плагин работай в своем обычном режиме но кто ме этого + НИК
Думаю в исходнике есть пару строк отвечающие за вывод ника который помог в верхнем правом углу)
Не знаю как еще можно подробнее объяснить, но думаю будет понятно,
Помогите пожалуйста!)

Цитата($@NyA @ 26.3.2021, 22:20) *
TheArtemMaps,
Скорее всего,так как плагин делает добавку убийства клиенту в Скоре для 2х человек по 1 фрагу,то ТС'у нужно просто + имя ника второго помощника скрыть

Как это сделать, можете подсказать по моему исходнику, какая строка отвечает за это...


☆ Твори Добро ☆
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя $@NyA
сообщение 26.3.2021, 22:28
Сообщение #5


Иконка группы

Стаж: 18 лет

Сообщений: 987
Благодарностей: 529
Полезность: 1050

amatory1230,
Даю наводку
Код:
formatex(g_szDeathString, charsmax(g_szDeathString), "%s + %s", szName[0], szName[1])


МультиМод CS
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя amatory1230
сообщение 26.3.2021, 22:32
Сообщение #6


Стаж: 7 лет 11 месяцев

Сообщений: 83
Благодарностей: 12
Полезность: 115

$@NyA [b]$@NyA,

Её просто скрыть или удалить, если скрыто как
1) ;;
2) //
Точно не помню как скрывать)


☆ Твори Добро ☆
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 26.3.2021, 22:37
Сообщение #7
Стаж: 6 лет 8 месяцев
Город: Киев

Сообщений: 703
Благодарностей: 64
Полезность: < 0

Код:
#include <amxmodx>
#include <reapi>
#tryinclude <aes_v>

#define CONFIG_FILE "adv_kill_assist.cfg"

#define NAMES_LENGTH 28
#define is_user_valid(%0) (0 < %0 && %0 < g_iMaxPlayers)

#if AMXX_VERSION_NUM < 183
#define client_disconnected client_disconnect
#endif

#if REAPI_VERSION < 52121
#error This plugin supports ReAPI >=5.2.0.121
#endif

//#define DEBUG

enum
{
ALGORITHM_CSSTATSX,
ALGORITHM_ADVANCED
}

enum _:CVARS_DATA
{
CVAR_FRAG,
CVAR_MONEY,
CVAR_EXP,
CVAR_DAMAGE,
CVAR_ALGORITHM,
CVAR_MESSAGE
}

enum _:PLAYER_DATA
{
DAMAGE_ON[33],
Float:DAMAGE_ON_TIME[33],
NAME[32]
}
new g_ePlayerData[33][PLAYER_DATA], g_pCvars[CVARS_DATA], g_iMaxPlayers, g_iMsgScoreInfo
new HookChain:g_pSV_WriteFullClientUpdate, HookChain:g_pCBasePlayer_Killed_Post, g_szDeathString[32], g_iAssistKiller
new g_pCvarAssistHp

public plugin_natives()
{
set_native_filter("plugin_native_filter")
}

public plugin_native_filter(szNative[], iIndex, bool:bTrap)
{
return PLUGIN_HANDLED
}

public plugin_init()
{
register_plugin("Advanced Kill Assists", "1.3c", "Xelson")

RegisterHookChain(RG_CBasePlayer_Spawn, "CBasePlayer_Spawn_Post", true)
RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Pre", false)
RegisterHookChain(RG_CBasePlayer_TakeDamage, "CBasePlayer_TakeDamage_Pre", false)
DisableHookChain((g_pCBasePlayer_Killed_Post = RegisterHookChain(RG_CBasePlayer_Killed, "CBasePlayer_Killed_Post", true)))
DisableHookChain((g_pSV_WriteFullClientUpdate = RegisterHookChain(RH_SV_WriteFullClientUpdate, "SV_WriteFullClientUpdate", false)))
register_message(get_user_msgid("DeathMsg"), "Message_DeathMsg")

#if defined DEBUG
register_clcmd("assist", "ClCmd_Assist")
#endif

g_pCvarAssistHp = get_cvar_pointer("csstats_sql_assisthp")
g_iMsgScoreInfo = get_user_msgid("ScoreInfo")
g_iMaxPlayers = get_maxplayers() + 1
}

public plugin_cfg()
{
g_pCvars[CVAR_FRAG] = register_cvar("aka_frag", "1")
g_pCvars[CVAR_MONEY] = register_cvar("aka_money", "100")
g_pCvars[CVAR_EXP] = register_cvar("aka_exp", "0")
g_pCvars[CVAR_DAMAGE] = register_cvar("aka_damage", "30.0")
g_pCvars[CVAR_ALGORITHM] = register_cvar("aka_algorithm", "1")
g_pCvars[CVAR_MESSAGE] = register_cvar("aka_message", "!g[AKA]!y Вы получили !g[award]$!y за помощь !t[killer]!y в убийстве !t[victim]!y!")

new szConfigFile[256]
get_localinfo("amxx_configsdir", szConfigFile, charsmax(szConfigFile))
formatex(szConfigFile, charsmax(szConfigFile), "%s/%s", szConfigFile, CONFIG_FILE)
server_cmd("exec ^"%s^"", szConfigFile)
}

public client_infochanged(id)
{
get_user_info(id, "name", g_ePlayerData[id][NAME], charsmax(g_ePlayerData[][NAME]))
}

public client_disconnected(id)
{
arrayset(g_ePlayerData[id][DAMAGE_ON], 0, sizeof g_ePlayerData[][DAMAGE_ON])
for(new i = 1; i < g_iMaxPlayers; i++) g_ePlayerData[i][DAMAGE_ON][id] = 0
}

public CBasePlayer_Spawn_Post(id)
{
arrayset(g_ePlayerData[id][DAMAGE_ON], 0, sizeof g_ePlayerData[][DAMAGE_ON])
for(new i = 1; i < g_iMaxPlayers; i++) g_ePlayerData[i][DAMAGE_ON][id] = 0
}

public CBasePlayer_TakeDamage_Pre(iVictim, iWeapon, iAttacker, Float:fDamage)
{
if(is_user_valid(iAttacker) && iVictim != iAttacker && rg_is_player_can_takedamage(iVictim, iAttacker))
{
if(get_pcvar_num(g_pCvars[CVAR_ALGORITHM]) == ALGORITHM_ADVANCED)
{
new Float:fHealth; get_entvar(iVictim, var_health, fHealth)
if(fDamage > fHealth) fDamage = fHealth
}
g_ePlayerData[iAttacker][DAMAGE_ON][iVictim] += floatround(fDamage)
g_ePlayerData[iAttacker][DAMAGE_ON_TIME][iVictim] = get_gametime()
}
}

public CBasePlayer_Killed_Pre(iVictim, iKiller)
{
new iAssistant, iMaxDamage
new Float:fDamageForAssist = get_pcvar_float(g_pCvars[CVAR_DAMAGE])

switch(get_pcvar_num(g_pCvars[CVAR_ALGORITHM]))
{
case ALGORITHM_ADVANCED:
{
new iTotalDamage
for(new id = 1; id < g_iMaxPlayers; id++)
{
if(is_user_connected(id))
{
if(id != iKiller && g_ePlayerData[id][DAMAGE_ON][iVictim] > 0)
{
if(g_ePlayerData[id][DAMAGE_ON][iVictim] > iMaxDamage)
{
iAssistant = id
iMaxDamage = g_ePlayerData[id][DAMAGE_ON][iVictim]
}
else if(g_ePlayerData[id][DAMAGE_ON][iVictim] == iMaxDamage)
iAssistant = g_ePlayerData[id][DAMAGE_ON_TIME][iVictim] > g_ePlayerData[iAssistant][DAMAGE_ON_TIME][iVictim] ? id : iAssistant
}
iTotalDamage += g_ePlayerData[id][DAMAGE_ON][iVictim]
}
}
if((float(iMaxDamage) / float(iTotalDamage)) * 100.0 < fDamageForAssist) iAssistant = 0
}
case ALGORITHM_CSSTATSX:
{
new iNeedDamage = g_pCvarAssistHp ? get_pcvar_num(g_pCvarAssistHp) : floatround(fDamageForAssist)
for(new id = 1; id < g_iMaxPlayers; id++)
{
if(is_user_connected(id) && id != iKiller && g_ePlayerData[id][DAMAGE_ON][iVictim] > iMaxDamage)
{
if(g_ePlayerData[id][DAMAGE_ON][iVictim] > iNeedDamage)
{
iAssistant = id
iMaxDamage = g_ePlayerData[id][DAMAGE_ON][iVictim]
}
else if(g_ePlayerData[id][DAMAGE_ON][iVictim] == iNeedDamage)
iAssistant = g_ePlayerData[id][DAMAGE_ON_TIME][iVictim] > g_ePlayerData[iAssistant][DAMAGE_ON_TIME][iVictim] ? id : iAssistant
}
}
}
}

if(!iAssistant || iKiller == iVictim) return HC_CONTINUE

new szName[2][32], iLen[2], iExcess
copy(szName[1], charsmax(szName[]), g_ePlayerData[iAssistant][NAME])
iLen[1] = strlen(szName[1])

EnableHookChain(g_pSV_WriteFullClientUpdate)

static const szWorldName[] = "world"
new bool:bIsAssistantConnected = bool:is_user_connected(iAssistant)

if(!is_user_valid(iKiller))
{
if(bIsAssistantConnected)
{
iExcess = iLen[1] - NAMES_LENGTH - (sizeof szWorldName)
if(iExcess > 0) strclip(szName[1], iExcess)
formatex(g_szDeathString, charsmax(g_szDeathString), "%s + %s", szWorldName, szName[1])

g_iAssistKiller = iAssistant
rh_update_user_info(iAssistant)
}
}
if(bIsAssistantConnected)
{
g_ePlayerData[iAssistant][DAMAGE_ON][iVictim] = 0

new iAddMoney = get_pcvar_num(g_pCvars[CVAR_MONEY])
new iAddExp = get_pcvar_num(g_pCvars[CVAR_EXP])

if(iAddMoney > 0 || iAddExp > 0)
{
if(iAddMoney > 0) rg_add_account(iAssistant, iAddMoney)
#if defined aes_add_player_exp_f
if(iAddExp > 0) aes_add_player_exp_f(iAssistant, float(iAddExp))
#endif

new szMessage[192], szMoney[16], szExp[16], szKillerName[32]
get_pcvar_string(g_pCvars[CVAR_MESSAGE], szMessage, charsmax(szMessage))
if(szMessage[0])
{
num_to_str(iAddMoney, szMoney, charsmax(szMoney))
num_to_str(iAddExp, szExp, charsmax(szExp))
if(is_user_valid(iKiller)) copy(szKillerName, charsmax(szKillerName), g_ePlayerData[iKiller][NAME])

replace_all(szMessage, charsmax(szMessage), "[award]", szMoney)
replace_all(szMessage, charsmax(szMessage), "[exp]", szExp)
replace_all(szMessage, charsmax(szMessage), "[killer]", szKillerName)
replace_all(szMessage, charsmax(szMessage), "[victim]", g_ePlayerData[iVictim][NAME])

UTIL_SayText(iAssistant, szMessage)
}
}

if(get_pcvar_num(g_pCvars[CVAR_FRAG]))
{
new Float:fNewFrags; get_entvar(iAssistant, var_frags, fNewFrags)
fNewFrags++
set_entvar(iAssistant, var_frags, fNewFrags)

message_begin(MSG_ALL, g_iMsgScoreInfo)
write_byte(iAssistant)
write_short(floatround(fNewFrags))
write_short(get_member(iAssistant, m_iDeaths))
write_short(0)
write_short(get_member(iAssistant, m_iTeam))
message_end()
}
}

DisableHookChain(g_pSV_WriteFullClientUpdate)
if(g_iAssistKiller) EnableHookChain(g_pCBasePlayer_Killed_Post)

return HC_CONTINUE
}

public SV_WriteFullClientUpdate(id, pBuffer)
{
if(id == g_iAssistKiller)
set_key_value(pBuffer, "name", g_szDeathString)
}

public Message_DeathMsg()
{
new iWorld = get_msg_arg_int(1)
if(iWorld == 0 && g_iAssistKiller)
set_msg_arg_int(1, ARG_BYTE, g_iAssistKiller)
}

public CBasePlayer_Killed_Post(iVictim, iKiller)
{
DisableHookChain(g_pCBasePlayer_Killed_Post)

new iAssistKiller = g_iAssistKiller; g_iAssistKiller = 0
rh_update_user_info(iAssistKiller)
}

strclip(szString[], iClip, szEnding[] = "..")
{
new iLen = strlen(szString) - 1 - strlen(szEnding) - iClip
format(szString[iLen], iLen, szEnding)
}

UTIL_SayText(id, const szMessage[], any:...)
{
new szBuffer[190];
static iMsgSayText
if(!iMsgSayText) iMsgSayText = get_user_msgid("SayText")
if(numargs() > 2) vformat(szBuffer, charsmax(szBuffer), szMessage, 3);
else copy(szBuffer, charsmax(szBuffer), szMessage);
while(replace(szBuffer, charsmax(szBuffer), "!y", "^1")) {}
while(replace(szBuffer, charsmax(szBuffer), "!t", "^3")) {}
while(replace(szBuffer, charsmax(szBuffer), "!g", "^4")) {}
switch(id)
{
case 0:
{
for(new i = 1; i < g_iMaxPlayers; i++)
{
if(!is_user_connected(i)) continue
message_begin(MSG_ONE_UNRELIABLE, iMsgSayText, .player = i)
write_byte(i);
write_string(szBuffer);
message_end();
}
}
default:
{
message_begin(MSG_ONE_UNRELIABLE, iMsgSayText, .player = id)
write_byte(id);
write_string(szBuffer);
message_end();
}
}
return 0
}

#if defined DEBUG
#include <hamsandwich>
public ClCmd_Assist()
{
new id[4], szArg[64]
for(new i; i < 4; i++)
{
read_argv(i + 1, szArg, charsmax(szArg))
id[i] = str_to_num(szArg)
}
g_ePlayerData[id[1]][DAMAGE_ON][id[2]] = id[3] ? id[3] : 100
ExecuteHamB(Ham_Killed, id[2], id[0], 0)
ExecuteHamB(Ham_CS_RoundRespawn, id[2])
}
#endif


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя amatory1230
сообщение 26.3.2021, 22:42
Сообщение #8


Стаж: 7 лет 11 месяцев

Сообщений: 83
Благодарностей: 12
Полезность: 115

TheArtemMaps,
Компиляция прошла без ошибок, залил на сервер, завтра я уезжаю на пару дней (отпуск-отдохнуть), как приеду проверю и отпишусь.
Спасибо!- после проверки напишу ok.gif


☆ Твори Добро ☆
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя TheArtemMaps
сообщение 26.3.2021, 22:43
Сообщение #9
Стаж: 6 лет 8 месяцев
Город: Киев

Сообщений: 703
Благодарностей: 64
Полезность: < 0

amatory1230,
Приятно слышать что помог человеку удачи)


Register System <== Register System от m0skVi4a ;]
45.137.155.4:45265 <== сервер зомби
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя amatory1230
сообщение 4.4.2021, 14:10
Сообщение #10


Стаж: 7 лет 11 месяцев

Сообщений: 83
Благодарностей: 12
Полезность: 115

Цитата(TheArtemMaps @ 26.3.2021, 22:43) *
amatory1230,
Приятно слышать что помог человеку удачи)

Доброго дня!
Извиняюсь за задержку (отпуск)
В общем плагин работает так как я и хотел, получается уже полторы недели сервер работает без каких либо ошибок!
Большое Вам спасибо за помощь!!!


☆ Твори Добро ☆
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: