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

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

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

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

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

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

Подскажите что за ошибка?

Статус пользователя Yashaka
сообщение 22.3.2014, 5:49
Сообщение #1


Стаж: 12 лет

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

Подскажите что за ошибка? первый раз такую вижу, точнее её ни когда у меня не было.
Скрытый текст
Dropped Dekster from server
Reason: Server shutting down
L 03/20/2014 - 02:15:12: Server shutdown
L 03/20/2014 - 02:15:12: Log file closed
L 03/20/2014 - 02:15:12: FATAL ERROR (shutting down): Host_Error: PF_MessageEnd_I: Refusing to send user message SayText of 193 bytes to client, user message size limit is 192 bytes


FATAL ERROR (shutting down): Host_Error: PF_MessageEnd_I: Refusing to send user message SayText of 193 bytes to client, user message size limit is 192 bytes
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Adidasman
сообщение 22.3.2014, 5:52
Сообщение #2


Стаж: 12 лет

Сообщений: 305
Благодарностей: 186
Полезность: 859

Цитата(Yashaka @ 22.3.2014, 9:49) *
Подскажите что за ошибка? первый раз такую вижу, точнее её ни когда у меня не было.
Скрытый текст
Dropped Dekster from server
Reason: Server shutting down
L 03/20/2014 - 02:15:12: Server shutdown
L 03/20/2014 - 02:15:12: Log file closed
L 03/20/2014 - 02:15:12: FATAL ERROR (shutting down): Host_Error: PF_MessageEnd_I: Refusing to send user message SayText of 193 bytes to client, user message size limit is 192 bytes


FATAL ERROR (shutting down): Host_Error: PF_MessageEnd_I: Refusing to send user message SayText of 193 bytes to client, user message size limit is 192 bytes


вина плагина, в чат выдает большой текст, лимит 192 символа.

P.s смотри что ставил последние и что связано с чатом, ну типо армии-ранг или колоред траслит.

Отредактировал: Adidasman, - 22.3.2014, 5:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Yashaka
сообщение 22.3.2014, 6:00
Сообщение #3


Стаж: 12 лет

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

Цитата(Adidasman @ 22.3.2014, 5:52) *
вина плагина, в чат выдает большой текст, лимит 192 символа.

P.s смотри что ставил последние и что связано с чатом, ну типо армии-ранг или колоред траслит.

Lite_Rank_System ставил последнее! из-за него ошибки идут? он вроде нормально работал,а тут на ошибка
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Adidasman
сообщение 22.3.2014, 6:01
Сообщение #4


Стаж: 12 лет

Сообщений: 305
Благодарностей: 186
Полезность: 859

Цитата(Yashaka @ 22.3.2014, 10:00) *
Lite_Rank_System ставил последнее! из-за него ошибки идут? он вроде нормально работал,а тут на ошибка


прикрепи исходник гляну. (само собой там же есть функции с чатом)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Yashaka
сообщение 22.3.2014, 6:06
Сообщение #5


Стаж: 12 лет

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

Цитата(Adidasman @ 22.3.2014, 6:01) *
прикрепи исходник гляну. (само собой там же есть функции с чатом)

Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csstats>
#include <fakemeta>
#include <fun>

new g_AdminGMsg, g_Prefix, g_NoSlesh, g_AllChat

#define MAX_PLAYERS 32
new g_oldrank[MAX_PLAYERS+1]

new gMessage[256]
new gSayText

#define PLUGIN "Lite Rank System"
#define VERSION "1.3"
#define AUTHOR "xoymiii"

#define TASKID_INFO 7777
#define ACCESS_DENIED_BONUS ADMIN_LEVEL_H // Если у игрока имеется флаг t, то бонусы для него не выдаются
#define ADMIN_PREFIX ADMIN_BAN // Флаг для префикса админа (по умолчанию флаг d)
#define VIP_PREFIX ADMIN_LEVEL_F // Флаг для префикса випа (по умолчанию флаг r)

new MaxPlayers
new PlayerXP[33], PlayerLevel[33], g_MsgHud, g_HudSync, levelUp[33]
new g_XPvalue, g_XPheadshot, g_Bomb, g_XPc4def, g_XPc4pl, g_MinPlayers
new g_Levels
new bonus, g_Smoke, g_Flash, g_He, g_Armor, g_Bonus_Smoke, g_Bonus_Flash, g_Bonus_Flash2, g_Bonus_He, g_Bonus_Armor, g_Money, g_Bonus_Money, g_Lvl_Money, g_Damage, g_Bonus_Damage, g_Health, g_Bonus_Health, g_Block_Map

new Array:g_array_block_bonus
new bool:bonus_blocked

new LEVELS[31]
new const CLASSES[][] = { "I_1", "I_1", "I_2", "I_3", "I_4", "I_5", "I_6", "I_7", "I_8", "I_9", "I_10", "I_11", "I_12", "I_13", "I_14", "I_15", "I_16", "I_17", "I_18", "I_19", "I_20", "I_21", "I_22", "I_23", "I_24", "I_25", "I_26", "I_27", "I_28", "I_29", "I_30" }

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_dictionary("Lite_Rank_System.txt" )

register_logevent( "EventRoundStart", 2, "1=Round_Start" )
register_event( "DeathMsg","EventDeath", "a")
register_event("Damage", "damage_message", "b", "2!0", "3=0", "4!0")

set_task(1.0, "Info", TASKID_INFO, "", 0, "b")
g_MsgHud = CreateHudSyncObj()
g_HudSync = CreateHudSyncObj()

g_array_block_bonus = ArrayCreate(32, 1)

g_Prefix = register_cvar("lrs_prefix","1")
g_AdminGMsg = register_cvar("lrs_adminchat", "1")
g_NoSlesh = register_cvar("lrs_noslesh","1")
g_AllChat = register_cvar("lrs_chat","1")

g_XPvalue = register_cvar("lrs_xp_value", "1")
g_Bomb = register_cvar("lrs_bomb", "1")
g_MinPlayers = register_cvar("lrs_min_players", "3")
g_XPc4def = register_cvar("lrs_xp_c4def", "3")
g_XPc4pl = register_cvar("lrs_xp_c4pl", "3")
g_XPheadshot = register_cvar("lrs_xp_hs", "1")
g_Levels = register_cvar("lrs_levels", "0 10 20 30 50 100 150 200 250 300 350 400 500 600 700 800 1000 1200 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000")
bonus = register_cvar("lrs_bonus", "1")
g_Block_Map = register_cvar("lrs_block_map", "1")
g_Smoke = register_cvar("lrs_smoke", "1")
g_Flash = register_cvar("lrs_flash", "1")
g_He = register_cvar("lrs_he", "1")
g_Armor = register_cvar("lrs_armor", "1")
g_Money = register_cvar("lrs_money", "1")
g_Damage = register_cvar("lrs_damage", "1")
g_Health = register_cvar("lrs_health", "1")
g_Bonus_Smoke = register_cvar("lrs_b_smoke", "10")
g_Bonus_Flash = register_cvar("lrs_b_flash", "15")
g_Bonus_Flash2 = register_cvar("lrs_b_flash2", "17")
g_Bonus_He = register_cvar("lrs_b_he", "20")
g_Bonus_Armor = register_cvar("lrs_b_armor", "22")
g_Lvl_Money = register_cvar("lrs_lvl_money", "25")
g_Bonus_Money = register_cvar("lrs_b_money", "1000")
g_Bonus_Damage = register_cvar("lrs_b_damage", "27")
g_Bonus_Health = register_cvar("lrs_b_health", "28")
register_concmd("lrs_lockmap", "MapConst", ADMIN_RCON, "Lock Map. <map>")

gSayText = get_user_msgid ("SayText")
register_clcmd("say", "hookSay")
register_clcmd("say_team", "hookSayTeam")

new configsDir[64]
get_configsdir(configsDir, 63)
server_cmd("exec %s/Lite_Rank_System.cfg", configsDir)

MaxPlayers = get_maxplayers()

set_task(0.1, "BlockMapBonus")
set_task(0.1, "LoadSettings")
set_task(9.0, "regen", _, _, _, "b")
}

public BlockMapBonus()
{
if(get_pcvar_num(g_Block_Map))
{
new Map[32]
get_mapname(Map, 31)
for(new i = 0; i < ArraySize(g_array_block_bonus); i++)
{
new block_bonus[32]
ArrayGetString(g_array_block_bonus, i, block_bonus, 31)

if(equal(Map, block_bonus))
{
bonus_blocked = true
break
}
else
bonus_blocked = false
}
}
}

public MapConst(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new arg[32]
read_argv(1, arg, 31)
ArrayPushString(g_array_block_bonus, arg)

return PLUGIN_HANDLED
}

public LoadSettings() {
new i
new cvLevels[256], LVL[31][16]
get_pcvar_string(g_Levels, cvLevels, 255)
trim(cvLevels)
parse(cvLevels,
LVL[0], 15, LVL[1], 15, LVL[2], 15, LVL[3], 15, LVL[4], 15, LVL[5], 15, LVL[6], 15, LVL[7], 15, LVL[8], 15, LVL[9], 15,
LVL[10], 15, LVL[11], 15, LVL[12], 15, LVL[13], 15, LVL[14], 15, LVL[15], 15, LVL[16], 15, LVL[17], 15, LVL[18], 15, LVL[19], 15,
LVL[20], 15, LVL[21], 15, LVL[22], 15, LVL[23], 15, LVL[24], 15, LVL[25], 15, LVL[26], 15, LVL[27], 15, LVL[28], 15, LVL[29], 15, LVL[30], 15
)
for (i = 0; i < 30; i++)
LEVELS[i+1] = str_to_num(LVL[i])

return PLUGIN_HANDLED
}

public hookSay(id)
{
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
return PLUGIN_CONTINUE;

new message[192],Len
read_args(message, 191)
remove_quotes(message)
if(is_admin_msg(message))
return PLUGIN_CONTINUE

if(is_empty_message(message))
{
ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
return PLUGIN_HANDLED
}
if(get_pcvar_num(g_NoSlesh))
{
if(is_has_slash(message))
return PLUGIN_HANDLED_MAIN
}
new szName[32]
get_user_name(id,szName,31)
if(get_user_flags(id) & ADMIN_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^4%L^1] ", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]])
switch(get_pcvar_num(g_AdminGMsg))
{
case 1:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
}
case 2:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
}
default:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
}
}
Chat(id,0,get_pcvar_num(g_AllChat))
}
else if(get_user_flags(id) & VIP_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^4%L^1] ", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,0,get_pcvar_num(g_AllChat))
}
else
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] ", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,0,get_pcvar_num(g_AllChat))
}
return PLUGIN_HANDLED_MAIN
}

public hookSayTeam(id)
{
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
return PLUGIN_CONTINUE;

new message[192],Len
read_args(message, 191)
remove_quotes(message)
if(is_admin_msg(message))
return PLUGIN_CONTINUE

if(is_empty_message(message))
{
ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
return PLUGIN_HANDLED
}
if(get_pcvar_num(g_NoSlesh))
{
if(is_has_slash(message))
return PLUGIN_HANDLED_MAIN
}
new szName[32]
get_user_name(id,szName,31)
if(get_user_flags(id) & ADMIN_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^4%L^1] ^3%s^1 : ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]],szName)
switch(get_pcvar_num(g_AdminGMsg))
{
case 1:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
}
case 2:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
}
default:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
}
}
Chat(id,1,get_pcvar_num(g_AllChat))
}
else if(get_user_flags(id) & VIP_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^4%L^1] ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,1,get_pcvar_num(g_AllChat))
}
else
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L ^1[^4%L^1] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,1,get_pcvar_num(g_AllChat))
}
return PLUGIN_HANDLED_MAIN
}

stock is_admin_msg(const Message[])
{
if(Message[0] == '@')
return true

return false
}

stock is_empty_message(const Message[])
{
if(equal(Message, "") || !strlen(Message))
return true

return false
}

stock Chat(id,team,chat_type)
{
if(team)
{
if(chat_type)
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i))
continue

if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
} else {
if(is_user_alive(id))
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || !is_user_alive(i))
continue

if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
} else if(!is_user_alive(id)){
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || is_user_alive(i))
continue

if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
}
}
} else{
if(chat_type)
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i))
continue

send_message(gMessage, id, i)
}
} else {
if(is_user_alive(id))
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || !is_user_alive(i))
continue

send_message(gMessage, id, i)
}
} else if(!is_user_alive(id)){
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || is_user_alive(i))
continue

send_message(gMessage, id, i)
}
}
}
}
}

stock send_message(const message[], const id, const i)
{
message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)
write_byte(id)
write_string(message)
message_end()
}

stock is_has_slash(const Message[])
{
if(Message[0] == '/')
return true

return false
}

public checkLvl(id) {
if(id > 0 && id < 33) {
if (PlayerLevel[id] <= 0)
PlayerLevel[id] = 1
if (PlayerLevel[id] < 30) {
while(PlayerXP[id] >= LEVELS[PlayerLevel[id]+1]) {
PlayerLevel[id]++
levelUp[id] = 1
new Name[32]
get_user_name(id, Name, 31)
if(cs_get_user_team(id) == CS_TEAM_T)
ChatColor(0, "%L %L", LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"NEW_LEVEL", Name, LANG_PLAYER,CLASSES[PlayerLevel[id]])
else
ChatColor(0, "%L %L", LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"NEW_LEVEL", Name, LANG_PLAYER,CLASSES[PlayerLevel[id]])
}
}
}
}

public EventDeath() {
new iVictim = read_data(2)
new iTeam = get_user_team(iVictim)
new iKiller = read_data(1)
new headshot = read_data(3)
if(iKiller != iVictim && get_user_team(iKiller) != iTeam && is_user_connected(iKiller) && PlayerLevel[iKiller] < 30) {
if (get_pcvar_num(g_XPheadshot)) {
if(headshot)
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue) * 2
else
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)
}
else
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)

checkLvl(iKiller)
}
return PLUGIN_CONTINUE
}

public EventRoundStart()
{
for(new id = 1; id <= MaxPlayers; id++)
{
if(!is_user_alive(id) || !is_user_connected(id) || !get_pcvar_num(bonus) || bonus_blocked || get_user_flags(id) & ACCESS_DENIED_BONUS)
return

if(get_pcvar_num(g_Smoke) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Smoke))
give_item(id,"weapon_smokegrenade")

if(get_pcvar_num(g_Flash) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Flash))
give_item(id,"weapon_flashbang")

if(get_pcvar_num(g_Flash) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Flash2))
give_item(id,"weapon_flashbang")

if(get_pcvar_num(g_He) && PlayerLevel[id] > get_pcvar_num(g_Bonus_He))
give_item(id,"weapon_hegrenade")

if(get_pcvar_num(g_Armor) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Armor))
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)

if(get_pcvar_num(g_Money) && PlayerLevel[id] > get_pcvar_num(g_Lvl_Money))
{
if(cs_get_user_money(id) < 8000)
{
cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(g_Bonus_Money))
ChatColor(id, "%L %L", LANG_PLAYER, "LRS_TAG", LANG_PLAYER, "BONUS_MONEY", get_pcvar_num(g_Bonus_Money))
}
}
}
}

public damage_message(id)
{
new attacker = get_user_attacker(id)
new damage = read_data(2)

if(!get_pcvar_num(bonus) || !get_pcvar_num(g_Damage) || get_user_flags(id) & ACCESS_DENIED_BONUS)
return

if (is_user_connected(attacker) && PlayerLevel[attacker] > get_pcvar_num(g_Bonus_Damage))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
}
}

public regen(id)
{
for(new id = 1; id <= MaxPlayers; id ++)
{
if(!get_pcvar_num(bonus) || !get_pcvar_num(g_Health) || bonus_blocked || get_user_flags(id) & ACCESS_DENIED_BONUS)
return

if(is_user_alive(id) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Health))
{
new Float:health; pev(id, pev_health, health)
if(health < 100.0)
set_pev(id, pev_health, health + 3.0)
}
}
}

public bomb_explode(id)
{
if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 1 || get_pcvar_num(g_XPc4pl) < 1 || get_pcvar_num(g_Bomb) != 1)
return

if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
{
ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
} else {
PlayerXP[id] += get_pcvar_num(g_XPc4pl)
}
}

public bomb_defused(id)
{
if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 2 || get_pcvar_num(g_XPc4def) < 1 || get_pcvar_num(g_Bomb) != 1)
return

if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
{
ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
} else {
PlayerXP[id] += get_pcvar_num(g_XPc4def)
}
}

public Info() {
for(new id = 1; id <= MaxPlayers; id++) {
if(!is_user_bot(id) && is_user_connected(id)) {
static buffer[192], len

new osef[8]
g_oldrank[id] = get_user_stats(id, osef, osef)
new maxrank = get_statsnum()

if(!is_user_alive(id)) {
new id2 = pev(id, pev_iuser2)
if(id2 > 0) {
new Name2[32]
get_user_name(id2, Name2, 31)
if(PlayerLevel[id2] < 30) {
len = format(buffer, charsmax(buffer), "%L: %s", LANG_PLAYER,"A_NAME", Name2)
len += format(buffer[len], charsmax(buffer) - len, "^n%L:", LANG_PLAYER,"ZVANIE")
len += format(buffer[len], charsmax(buffer) - len, " %L", LANG_PLAYER,CLASSES[PlayerLevel[id2]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"PL_XP",PlayerXP[id2])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id2])
}
else {
len = format(buffer, charsmax(buffer), "%L: %s", LANG_PLAYER,"A_NAME", Name2)
len += format(buffer[len], charsmax(buffer) - len, "^n%L:",LANG_PLAYER,"ZVANIE")
len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,CLASSES[PlayerLevel[id2]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %L",LANG_PLAYER,"PL_XP", LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id2])
}
}
else {
if(PlayerLevel[id] < 30) {
len = format(buffer, charsmax(buffer) - len, "%L: %L", LANG_PLAYER,"ZVANIE", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d",LANG_PLAYER,"PL_XP",PlayerXP[id])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id])
}
else {
len = format(buffer, charsmax(buffer) - len, "%L: %L", LANG_PLAYER,"ZVANIE", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id])
}
}
}
else {
if((PlayerLevel[id] < 30) && (is_user_alive(id))) {
len = format(buffer, charsmax(buffer), "%L", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"PL_XP",PlayerXP[id], LANG_PLAYER,"IZ", LEVELS[PlayerLevel[id]+1])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"RANK", g_oldrank[id], LANG_PLAYER,"IZ", maxrank)
}
else {
len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %L",LANG_PLAYER,"PL_XP", LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"RANK", g_oldrank[id], LANG_PLAYER,"IZ", maxrank)
}
}
set_hudmessage(255, 255, 255, 0.01, 0.19, 0, 0.0, 1.0, _, _, -1)
ShowSyncHudMsg(id, g_MsgHud, "%s", buffer)
}
}
return PLUGIN_CONTINUE
}

public client_putinserver(id) {
set_task(0.1, "load_client_data", id)
}

public load_client_data(id) {
if(!is_user_connected(id))
return PLUGIN_HANDLED

new stats[8], bodyhits[8], stats2[4]
get_user_stats(id, stats, bodyhits)

if (get_pcvar_num(g_XPc4def))
get_user_stats2(id, stats2)

if (get_pcvar_num(g_XPheadshot))
PlayerXP[id] = ((stats[2]*2 + (stats[0] - stats[2])) + (stats2[1]*3 + stats2[3]*3)) * get_pcvar_num(g_XPvalue)
else
PlayerXP[id] = (stats2[1]*3 + stats2[3]*3 + stats[0]) * get_pcvar_num(g_XPvalue)

for(new i = 1; i <= 30; i++) {
if (i < 30) {
if (PlayerXP[id] >= LEVELS[i] && PlayerXP[id] < LEVELS[i+1])
PlayerLevel[id] = i
}
else {
if (PlayerXP[id] >= LEVELS[30])
PlayerLevel[id] = 30
}
}
return PLUGIN_HANDLED
}

/*public plugin_natives()
register_native("get_user_lvl", "native_get_user_lvl", 1)

public native_get_user_lvl(id)
return PlayerLevel[id]
*/
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Adidasman
сообщение 22.3.2014, 6:13
Сообщение #6


Стаж: 12 лет

Сообщений: 305
Благодарностей: 186
Полезность: 859

Цитата(Yashaka @ 22.3.2014, 10:06) *
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csstats>
#include <fakemeta>
#include <fun>

new g_AdminGMsg, g_Prefix, g_NoSlesh, g_AllChat

#define MAX_PLAYERS 32
new g_oldrank[MAX_PLAYERS+1]

new gMessage[256]
new gSayText

#define PLUGIN "Lite Rank System"
#define VERSION "1.3"
#define AUTHOR "xoymiii"

#define TASKID_INFO 7777
#define ACCESS_DENIED_BONUS ADMIN_LEVEL_H // Если у игрока имеется флаг t, то бонусы для него не выдаются
#define ADMIN_PREFIX ADMIN_BAN // Флаг для префикса админа (по умолчанию флаг d)
#define VIP_PREFIX ADMIN_LEVEL_F // Флаг для префикса випа (по умолчанию флаг r)

new MaxPlayers
new PlayerXP[33], PlayerLevel[33], g_MsgHud, g_HudSync, levelUp[33]
new g_XPvalue, g_XPheadshot, g_Bomb, g_XPc4def, g_XPc4pl, g_MinPlayers
new g_Levels
new bonus, g_Smoke, g_Flash, g_He, g_Armor, g_Bonus_Smoke, g_Bonus_Flash, g_Bonus_Flash2, g_Bonus_He, g_Bonus_Armor, g_Money, g_Bonus_Money, g_Lvl_Money, g_Damage, g_Bonus_Damage, g_Health, g_Bonus_Health, g_Block_Map

new Array:g_array_block_bonus
new bool:bonus_blocked

new LEVELS[31]
new const CLASSES[][] = { "I_1", "I_1", "I_2", "I_3", "I_4", "I_5", "I_6", "I_7", "I_8", "I_9", "I_10", "I_11", "I_12", "I_13", "I_14", "I_15", "I_16", "I_17", "I_18", "I_19", "I_20", "I_21", "I_22", "I_23", "I_24", "I_25", "I_26", "I_27", "I_28", "I_29", "I_30" }

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_dictionary("Lite_Rank_System.txt" )

register_logevent( "EventRoundStart", 2, "1=Round_Start" )
register_event( "DeathMsg","EventDeath", "a")
register_event("Damage", "damage_message", "b", "2!0", "3=0", "4!0")

set_task(1.0, "Info", TASKID_INFO, "", 0, "b")
g_MsgHud = CreateHudSyncObj()
g_HudSync = CreateHudSyncObj()

g_array_block_bonus = ArrayCreate(32, 1)

g_Prefix = register_cvar("lrs_prefix","1")
g_AdminGMsg = register_cvar("lrs_adminchat", "1")
g_NoSlesh = register_cvar("lrs_noslesh","1")
g_AllChat = register_cvar("lrs_chat","1")

g_XPvalue = register_cvar("lrs_xp_value", "1")
g_Bomb = register_cvar("lrs_bomb", "1")
g_MinPlayers = register_cvar("lrs_min_players", "3")
g_XPc4def = register_cvar("lrs_xp_c4def", "3")
g_XPc4pl = register_cvar("lrs_xp_c4pl", "3")
g_XPheadshot = register_cvar("lrs_xp_hs", "1")
g_Levels = register_cvar("lrs_levels", "0 10 20 30 50 100 150 200 250 300 350 400 500 600 700 800 1000 1200 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000")
bonus = register_cvar("lrs_bonus", "1")
g_Block_Map = register_cvar("lrs_block_map", "1")
g_Smoke = register_cvar("lrs_smoke", "1")
g_Flash = register_cvar("lrs_flash", "1")
g_He = register_cvar("lrs_he", "1")
g_Armor = register_cvar("lrs_armor", "1")
g_Money = register_cvar("lrs_money", "1")
g_Damage = register_cvar("lrs_damage", "1")
g_Health = register_cvar("lrs_health", "1")
g_Bonus_Smoke = register_cvar("lrs_b_smoke", "10")
g_Bonus_Flash = register_cvar("lrs_b_flash", "15")
g_Bonus_Flash2 = register_cvar("lrs_b_flash2", "17")
g_Bonus_He = register_cvar("lrs_b_he", "20")
g_Bonus_Armor = register_cvar("lrs_b_armor", "22")
g_Lvl_Money = register_cvar("lrs_lvl_money", "25")
g_Bonus_Money = register_cvar("lrs_b_money", "1000")
g_Bonus_Damage = register_cvar("lrs_b_damage", "27")
g_Bonus_Health = register_cvar("lrs_b_health", "28")
register_concmd("lrs_lockmap", "MapConst", ADMIN_RCON, "Lock Map. <map>")

gSayText = get_user_msgid ("SayText")
register_clcmd("say", "hookSay")
register_clcmd("say_team", "hookSayTeam")

new configsDir[64]
get_configsdir(configsDir, 63)
server_cmd("exec %s/Lite_Rank_System.cfg", configsDir)

MaxPlayers = get_maxplayers()

set_task(0.1, "BlockMapBonus")
set_task(0.1, "LoadSettings")
set_task(9.0, "regen", _, _, _, "b")
}

public BlockMapBonus()
{
if(get_pcvar_num(g_Block_Map))
{
new Map[32]
get_mapname(Map, 31)
for(new i = 0; i < ArraySize(g_array_block_bonus); i++)
{
new block_bonus[32]
ArrayGetString(g_array_block_bonus, i, block_bonus, 31)

if(equal(Map, block_bonus))
{
bonus_blocked = true
break
}
else
bonus_blocked = false
}
}
}

public MapConst(id, level, cid)
{
if(!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new arg[32]
read_argv(1, arg, 31)
ArrayPushString(g_array_block_bonus, arg)

return PLUGIN_HANDLED
}

public LoadSettings() {
new i
new cvLevels[256], LVL[31][16]
get_pcvar_string(g_Levels, cvLevels, 255)
trim(cvLevels)
parse(cvLevels,
LVL[0], 15, LVL[1], 15, LVL[2], 15, LVL[3], 15, LVL[4], 15, LVL[5], 15, LVL[6], 15, LVL[7], 15, LVL[8], 15, LVL[9], 15,
LVL[10], 15, LVL[11], 15, LVL[12], 15, LVL[13], 15, LVL[14], 15, LVL[15], 15, LVL[16], 15, LVL[17], 15, LVL[18], 15, LVL[19], 15,
LVL[20], 15, LVL[21], 15, LVL[22], 15, LVL[23], 15, LVL[24], 15, LVL[25], 15, LVL[26], 15, LVL[27], 15, LVL[28], 15, LVL[29], 15, LVL[30], 15
)
for (i = 0; i < 30; i++)
LEVELS[i+1] = str_to_num(LVL[i])

return PLUGIN_HANDLED
}

public hookSay(id)
{
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
return PLUGIN_CONTINUE;

new message[192],Len
read_args(message, 191)
remove_quotes(message)
if(is_admin_msg(message))
return PLUGIN_CONTINUE

if(is_empty_message(message))
{
ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
return PLUGIN_HANDLED
}
if(get_pcvar_num(g_NoSlesh))
{
if(is_has_slash(message))
return PLUGIN_HANDLED_MAIN
}
new szName[32]
get_user_name(id,szName,31)
if(get_user_flags(id) & ADMIN_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^4%L^1] ", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]])
switch(get_pcvar_num(g_AdminGMsg))
{
case 1:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
}
case 2:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
}
default:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
}
}
Chat(id,0,get_pcvar_num(g_AllChat))
}
else if(get_user_flags(id) & VIP_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^4%L^1] ", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,0,get_pcvar_num(g_AllChat))
}
else
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] ", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,0,get_pcvar_num(g_AllChat))
}
return PLUGIN_HANDLED_MAIN
}

public hookSayTeam(id)
{
if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
return PLUGIN_CONTINUE;

new message[192],Len
read_args(message, 191)
remove_quotes(message)
if(is_admin_msg(message))
return PLUGIN_CONTINUE

if(is_empty_message(message))
{
ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
return PLUGIN_HANDLED
}
if(get_pcvar_num(g_NoSlesh))
{
if(is_has_slash(message))
return PLUGIN_HANDLED_MAIN
}
new szName[32]
get_user_name(id,szName,31)
if(get_user_flags(id) & ADMIN_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^4%L^1] ^3%s^1 : ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]],szName)
switch(get_pcvar_num(g_AdminGMsg))
{
case 1:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
}
case 2:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
}
default:
{
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
}
}
Chat(id,1,get_pcvar_num(g_AllChat))
}
else if(get_user_flags(id) & VIP_PREFIX)
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^4%L^1] ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,1,get_pcvar_num(g_AllChat))
}
else
{
Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L ^1[^4%L^1] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER, CLASSES[PlayerLevel[id]])
Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
Chat(id,1,get_pcvar_num(g_AllChat))
}
return PLUGIN_HANDLED_MAIN
}

stock is_admin_msg(const Message[])
{
if(Message[0] == '@')
return true

return false
}

stock is_empty_message(const Message[])
{
if(equal(Message, "") || !strlen(Message))
return true

return false
}

stock Chat(id,team,chat_type)
{
if(team)
{
if(chat_type)
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i))
continue

if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
} else {
if(is_user_alive(id))
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || !is_user_alive(i))
continue

if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
} else if(!is_user_alive(id)){
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || is_user_alive(i))
continue

if(get_user_team(id) == get_user_team(i))
send_message(gMessage, id, i)
}
}
}
} else{
if(chat_type)
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i))
continue

send_message(gMessage, id, i)
}
} else {
if(is_user_alive(id))
{
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || !is_user_alive(i))
continue

send_message(gMessage, id, i)
}
} else if(!is_user_alive(id)){
for(new i = 0; i <= MaxPlayers; i++)
{
if(!is_user_connected(i) || is_user_alive(i))
continue

send_message(gMessage, id, i)
}
}
}
}
}

stock send_message(const message[], const id, const i)
{
message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)
write_byte(id)
write_string(message)
message_end()
}

stock is_has_slash(const Message[])
{
if(Message[0] == '/')
return true

return false
}

public checkLvl(id) {
if(id > 0 && id < 33) {
if (PlayerLevel[id] <= 0)
PlayerLevel[id] = 1
if (PlayerLevel[id] < 30) {
while(PlayerXP[id] >= LEVELS[PlayerLevel[id]+1]) {
PlayerLevel[id]++
levelUp[id] = 1
new Name[32]
get_user_name(id, Name, 31)
if(cs_get_user_team(id) == CS_TEAM_T)
ChatColor(0, "%L %L", LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"NEW_LEVEL", Name, LANG_PLAYER,CLASSES[PlayerLevel[id]])
else
ChatColor(0, "%L %L", LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"NEW_LEVEL", Name, LANG_PLAYER,CLASSES[PlayerLevel[id]])
}
}
}
}

public EventDeath() {
new iVictim = read_data(2)
new iTeam = get_user_team(iVictim)
new iKiller = read_data(1)
new headshot = read_data(3)
if(iKiller != iVictim && get_user_team(iKiller) != iTeam && is_user_connected(iKiller) && PlayerLevel[iKiller] < 30) {
if (get_pcvar_num(g_XPheadshot)) {
if(headshot)
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue) * 2
else
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)
}
else
PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)

checkLvl(iKiller)
}
return PLUGIN_CONTINUE
}

public EventRoundStart()
{
for(new id = 1; id <= MaxPlayers; id++)
{
if(!is_user_alive(id) || !is_user_connected(id) || !get_pcvar_num(bonus) || bonus_blocked || get_user_flags(id) & ACCESS_DENIED_BONUS)
return

if(get_pcvar_num(g_Smoke) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Smoke))
give_item(id,"weapon_smokegrenade")

if(get_pcvar_num(g_Flash) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Flash))
give_item(id,"weapon_flashbang")

if(get_pcvar_num(g_Flash) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Flash2))
give_item(id,"weapon_flashbang")

if(get_pcvar_num(g_He) && PlayerLevel[id] > get_pcvar_num(g_Bonus_He))
give_item(id,"weapon_hegrenade")

if(get_pcvar_num(g_Armor) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Armor))
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)

if(get_pcvar_num(g_Money) && PlayerLevel[id] > get_pcvar_num(g_Lvl_Money))
{
if(cs_get_user_money(id) < 8000)
{
cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(g_Bonus_Money))
ChatColor(id, "%L %L", LANG_PLAYER, "LRS_TAG", LANG_PLAYER, "BONUS_MONEY", get_pcvar_num(g_Bonus_Money))
}
}
}
}

public damage_message(id)
{
new attacker = get_user_attacker(id)
new damage = read_data(2)

if(!get_pcvar_num(bonus) || !get_pcvar_num(g_Damage) || get_user_flags(id) & ACCESS_DENIED_BONUS)
return

if (is_user_connected(attacker) && PlayerLevel[attacker] > get_pcvar_num(g_Bonus_Damage))
{
set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
}
}

public regen(id)
{
for(new id = 1; id <= MaxPlayers; id ++)
{
if(!get_pcvar_num(bonus) || !get_pcvar_num(g_Health) || bonus_blocked || get_user_flags(id) & ACCESS_DENIED_BONUS)
return

if(is_user_alive(id) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Health))
{
new Float:health; pev(id, pev_health, health)
if(health < 100.0)
set_pev(id, pev_health, health + 3.0)
}
}
}

public bomb_explode(id)
{
if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 1 || get_pcvar_num(g_XPc4pl) < 1 || get_pcvar_num(g_Bomb) != 1)
return

if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
{
ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
} else {
PlayerXP[id] += get_pcvar_num(g_XPc4pl)
}
}

public bomb_defused(id)
{
if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 2 || get_pcvar_num(g_XPc4def) < 1 || get_pcvar_num(g_Bomb) != 1)
return

if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
{
ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
} else {
PlayerXP[id] += get_pcvar_num(g_XPc4def)
}
}

public Info() {
for(new id = 1; id <= MaxPlayers; id++) {
if(!is_user_bot(id) && is_user_connected(id)) {
static buffer[192], len

new osef[8]
g_oldrank[id] = get_user_stats(id, osef, osef)
new maxrank = get_statsnum()

if(!is_user_alive(id)) {
new id2 = pev(id, pev_iuser2)
if(id2 > 0) {
new Name2[32]
get_user_name(id2, Name2, 31)
if(PlayerLevel[id2] < 30) {
len = format(buffer, charsmax(buffer), "%L: %s", LANG_PLAYER,"A_NAME", Name2)
len += format(buffer[len], charsmax(buffer) - len, "^n%L:", LANG_PLAYER,"ZVANIE")
len += format(buffer[len], charsmax(buffer) - len, " %L", LANG_PLAYER,CLASSES[PlayerLevel[id2]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"PL_XP",PlayerXP[id2])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id2])
}
else {
len = format(buffer, charsmax(buffer), "%L: %s", LANG_PLAYER,"A_NAME", Name2)
len += format(buffer[len], charsmax(buffer) - len, "^n%L:",LANG_PLAYER,"ZVANIE")
len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,CLASSES[PlayerLevel[id2]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %L",LANG_PLAYER,"PL_XP", LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id2])
}
}
else {
if(PlayerLevel[id] < 30) {
len = format(buffer, charsmax(buffer) - len, "%L: %L", LANG_PLAYER,"ZVANIE", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d",LANG_PLAYER,"PL_XP",PlayerXP[id])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id])
}
else {
len = format(buffer, charsmax(buffer) - len, "%L: %L", LANG_PLAYER,"ZVANIE", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id])
}
}
}
else {
if((PlayerLevel[id] < 30) && (is_user_alive(id))) {
len = format(buffer, charsmax(buffer), "%L", LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"PL_XP",PlayerXP[id], LANG_PLAYER,"IZ", LEVELS[PlayerLevel[id]+1])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"RANK", g_oldrank[id], LANG_PLAYER,"IZ", maxrank)
}
else {
len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,CLASSES[PlayerLevel[id]])
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %L",LANG_PLAYER,"PL_XP", LANG_PLAYER,"PL_MAX")
len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"RANK", g_oldrank[id], LANG_PLAYER,"IZ", maxrank)
}
}
set_hudmessage(255, 255, 255, 0.01, 0.19, 0, 0.0, 1.0, _, _, -1)
ShowSyncHudMsg(id, g_MsgHud, "%s", buffer)
}
}
return PLUGIN_CONTINUE
}

public client_putinserver(id) {
set_task(0.1, "load_client_data", id)
}

public load_client_data(id) {
if(!is_user_connected(id))
return PLUGIN_HANDLED

new stats[8], bodyhits[8], stats2[4]
get_user_stats(id, stats, bodyhits)

if (get_pcvar_num(g_XPc4def))
get_user_stats2(id, stats2)

if (get_pcvar_num(g_XPheadshot))
PlayerXP[id] = ((stats[2]*2 + (stats[0] - stats[2])) + (stats2[1]*3 + stats2[3]*3)) * get_pcvar_num(g_XPvalue)
else
PlayerXP[id] = (stats2[1]*3 + stats2[3]*3 + stats[0]) * get_pcvar_num(g_XPvalue)

for(new i = 1; i <= 30; i++) {
if (i < 30) {
if (PlayerXP[id] >= LEVELS[i] && PlayerXP[id] < LEVELS[i+1])
PlayerLevel[id] = i
}
else {
if (PlayerXP[id] >= LEVELS[30])
PlayerLevel[id] = 30
}
}
return PLUGIN_HANDLED
}

/*public plugin_natives()
register_native("get_user_lvl", "native_get_user_lvl", 1)

public native_get_user_lvl(id)
return PlayerLevel[id]
*/
stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}



Код
new gMessage[256]

>
Код
new gMessage[192]



Код
stock send_message(const message[], const id, const i)
{
   message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)

>
Код
stock send_message(message[], const id, const i)
{
   message[191] = '^0'
   message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)


P.s send_message эта функция валила серв.

Отредактировал: Adidasman, - 22.3.2014, 7:03
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Yashaka
сообщение 22.3.2014, 6:51
Сообщение #7


Стаж: 12 лет

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

что-на что заменить надо я так и не понял!

Цитата(Adidasman @ 22.3.2014, 6:13) *
Код
new gMessage[256]

>
Код
new gMessage[192]



Код
stock send_message(const message[], const id, const i)
{
   message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)

>
Код
stock send_message(const message[], const id, const i)
{
   message[191] = '^0'
   message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)


P.s send_message эта функция валила серв.

send_message эту функцию удалить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Adidasman
сообщение 22.3.2014, 6:54
Сообщение #8


Стаж: 12 лет

Сообщений: 305
Благодарностей: 186
Полезность: 859

Цитата(Yashaka @ 22.3.2014, 10:51) *
что-на что заменить надо я так и не понял!


send_message эту функцию удалить?


собственно что не понятно из моего сообщения?!

P.s вот исходник фикс

sma
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csstats>
#include <fakemeta>
#include <fun>

new g_AdminGMsg, g_Prefix, g_NoSlesh, g_AllChat

#define MAX_PLAYERS 32
new g_oldrank[MAX_PLAYERS+1]

new gMessage[192]
new gSayText

#define PLUGIN "Lite Rank System"
#define VERSION "1.3"
#define AUTHOR "xoymiii"

#define TASKID_INFO 7777
#define ACCESS_DENIED_BONUS ADMIN_LEVEL_H   // Если у игрока имеется флаг t, то бонусы для него не выдаются
#define ADMIN_PREFIX ADMIN_BAN   // Флаг для префикса админа (по умолчанию флаг d)
#define VIP_PREFIX ADMIN_LEVEL_F   // Флаг для префикса випа (по умолчанию флаг r)

new MaxPlayers
new PlayerXP[33], PlayerLevel[33], g_MsgHud, g_HudSync, levelUp[33]
new g_XPvalue, g_XPheadshot, g_Bomb, g_XPc4def, g_XPc4pl, g_MinPlayers
new g_Levels
new bonus, g_Smoke, g_Flash, g_He, g_Armor, g_Bonus_Smoke, g_Bonus_Flash, g_Bonus_Flash2, g_Bonus_He, g_Bonus_Armor, g_Money, g_Bonus_Money, g_Lvl_Money, g_Damage, g_Bonus_Damage, g_Health, g_Bonus_Health, g_Block_Map

new Array:g_array_block_bonus
new bool:bonus_blocked

new LEVELS[31]
new const CLASSES[][] = { "I_1", "I_1", "I_2", "I_3", "I_4", "I_5", "I_6", "I_7", "I_8", "I_9", "I_10", "I_11", "I_12", "I_13", "I_14", "I_15", "I_16", "I_17", "I_18", "I_19", "I_20", "I_21", "I_22", "I_23", "I_24", "I_25", "I_26", "I_27", "I_28", "I_29", "I_30" }

public plugin_init() {
   register_plugin(PLUGIN, VERSION, AUTHOR)
   register_dictionary("Lite_Rank_System.txt" )
    
   register_logevent( "EventRoundStart", 2, "1=Round_Start" )
   register_event( "DeathMsg","EventDeath", "a")
   register_event("Damage", "damage_message", "b", "2!0", "3=0", "4!0")

   set_task(1.0, "Info", TASKID_INFO, "", 0, "b")
   g_MsgHud = CreateHudSyncObj()
   g_HudSync = CreateHudSyncObj()
    
   g_array_block_bonus = ArrayCreate(32, 1)
    
   g_Prefix = register_cvar("lrs_prefix","1")
   g_AdminGMsg   = register_cvar("lrs_adminchat", "1")
   g_NoSlesh = register_cvar("lrs_noslesh","1")  
   g_AllChat = register_cvar("lrs_chat","1")
    
   g_XPvalue = register_cvar("lrs_xp_value", "1")
   g_Bomb = register_cvar("lrs_bomb", "1")
   g_MinPlayers = register_cvar("lrs_min_players", "3")
   g_XPc4def = register_cvar("lrs_xp_c4def", "3")
   g_XPc4pl = register_cvar("lrs_xp_c4pl", "3")
   g_XPheadshot = register_cvar("lrs_xp_hs", "1")
   g_Levels = register_cvar("lrs_levels", "0 10 20 30 50 100 150 200 250 300 350 400 500 600 700 800 1000 1200 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000")
   bonus = register_cvar("lrs_bonus", "1")
   g_Block_Map = register_cvar("lrs_block_map", "1")
   g_Smoke = register_cvar("lrs_smoke", "1")
   g_Flash = register_cvar("lrs_flash", "1")
   g_He = register_cvar("lrs_he", "1")
   g_Armor = register_cvar("lrs_armor", "1")
   g_Money = register_cvar("lrs_money", "1")
   g_Damage = register_cvar("lrs_damage", "1")
   g_Health = register_cvar("lrs_health", "1")
   g_Bonus_Smoke = register_cvar("lrs_b_smoke", "10")
   g_Bonus_Flash = register_cvar("lrs_b_flash", "15")
   g_Bonus_Flash2 = register_cvar("lrs_b_flash2", "17")
   g_Bonus_He = register_cvar("lrs_b_he", "20")
   g_Bonus_Armor = register_cvar("lrs_b_armor", "22")
   g_Lvl_Money = register_cvar("lrs_lvl_money", "25")
   g_Bonus_Money = register_cvar("lrs_b_money", "1000")
   g_Bonus_Damage = register_cvar("lrs_b_damage", "27")
   g_Bonus_Health = register_cvar("lrs_b_health", "28")
   register_concmd("lrs_lockmap", "MapConst", ADMIN_RCON, "Lock Map. <map>")

   gSayText = get_user_msgid ("SayText")
   register_clcmd("say", "hookSay")
   register_clcmd("say_team", "hookSayTeam")
      
   new configsDir[64]
   get_configsdir(configsDir, 63)
   server_cmd("exec %s/Lite_Rank_System.cfg", configsDir)

   MaxPlayers = get_maxplayers()

   set_task(0.1, "BlockMapBonus")
   set_task(0.1, "LoadSettings")
   set_task(9.0, "regen", _, _, _, "b")
}

public BlockMapBonus()
{
    if(get_pcvar_num(g_Block_Map))
    {
        new Map[32]
        get_mapname(Map, 31)
        for(new i = 0; i < ArraySize(g_array_block_bonus); i++)
        {
            new block_bonus[32]
            ArrayGetString(g_array_block_bonus, i, block_bonus, 31)
            
            if(equal(Map, block_bonus))
            {
                bonus_blocked = true
                break
            }
            else
                bonus_blocked = false
        }
    }
}

public MapConst(id, level, cid)
{
    if(!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
        
    new arg[32]
    read_argv(1, arg, 31)
    ArrayPushString(g_array_block_bonus, arg)
    
    return PLUGIN_HANDLED
}
    
public LoadSettings() {
   new i
   new cvLevels[256], LVL[31][16]
   get_pcvar_string(g_Levels, cvLevels, 255)
   trim(cvLevels)
   parse(cvLevels,
      LVL[0], 15, LVL[1], 15, LVL[2], 15, LVL[3], 15, LVL[4], 15, LVL[5], 15, LVL[6], 15, LVL[7], 15, LVL[8], 15, LVL[9], 15,
      LVL[10], 15, LVL[11], 15, LVL[12], 15, LVL[13], 15, LVL[14], 15, LVL[15], 15, LVL[16], 15, LVL[17], 15, LVL[18], 15, LVL[19], 15,
      LVL[20], 15, LVL[21], 15, LVL[22], 15, LVL[23], 15, LVL[24], 15, LVL[25], 15, LVL[26], 15, LVL[27], 15, LVL[28], 15, LVL[29], 15, LVL[30], 15
   )
   for (i = 0; i < 30; i++)
      LEVELS[i+1] = str_to_num(LVL[i])

   return PLUGIN_HANDLED
}

public hookSay(id)
{
   if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
      return PLUGIN_CONTINUE;

   new message[192],Len
   read_args(message, 191)
   remove_quotes(message)
   if(is_admin_msg(message))
      return PLUGIN_CONTINUE
    
   if(is_empty_message(message))
   {
      ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
      return PLUGIN_HANDLED
   }
   if(get_pcvar_num(g_NoSlesh))
   {
      if(is_has_slash(message))
         return PLUGIN_HANDLED_MAIN
   }
   new szName[32]
   get_user_name(id,szName,31)
   if(get_user_flags(id) & ADMIN_PREFIX)
   {
      Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^4%L^1] ", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]])
      switch(get_pcvar_num(g_AdminGMsg))
      {
         case 1:
         {
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
         }
         case 2:
         {
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
         }
         default:
         {
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
         }
      }
      Chat(id,0,get_pcvar_num(g_AllChat))
   }
   else   if(get_user_flags(id) & VIP_PREFIX)
   {
      Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^4%L^1] ", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
      Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
      Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
      Chat(id,0,get_pcvar_num(g_AllChat))
   }
   else
   {
      Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] ", LANG_PLAYER, CLASSES[PlayerLevel[id]])
      Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
      Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
      Chat(id,0,get_pcvar_num(g_AllChat))
   }
   return PLUGIN_HANDLED_MAIN
}

public hookSayTeam(id)
{
   if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
      return PLUGIN_CONTINUE;

   new message[192],Len
   read_args(message, 191)
   remove_quotes(message)
   if(is_admin_msg(message))
      return PLUGIN_CONTINUE
      
   if(is_empty_message(message))
   {
      ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
      return PLUGIN_HANDLED
   }
   if(get_pcvar_num(g_NoSlesh))
   {
      if(is_has_slash(message))
         return PLUGIN_HANDLED_MAIN
   }
   new szName[32]
   get_user_name(id,szName,31)
   if(get_user_flags(id) & ADMIN_PREFIX)
   {
      Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^4%L^1] ^3%s^1 : ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]],szName)      
      switch(get_pcvar_num(g_AdminGMsg))
      {
         case 1:
         {
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
         }
         case 2:
         {
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
         }
         default:
         {
            Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
         }
      }
      Chat(id,1,get_pcvar_num(g_AllChat))
   }
   else if(get_user_flags(id) & VIP_PREFIX)
   {
      Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^4%L^1] ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
      Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
      Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
      Chat(id,1,get_pcvar_num(g_AllChat))
   }
   else
   {
      Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L ^1[^4%L^1] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER, CLASSES[PlayerLevel[id]])
      Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
      Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
      Chat(id,1,get_pcvar_num(g_AllChat))
   }
   return PLUGIN_HANDLED_MAIN
}

stock is_admin_msg(const Message[])
{
   if(Message[0] == '@')
      return true
      
   return false
}

stock is_empty_message(const Message[])
{
   if(equal(Message, "") || !strlen(Message))
      return true
      
   return false
}

stock Chat(id,team,chat_type)
{
   if(team)
   {
      if(chat_type)
      {
         for(new i = 0; i <= MaxPlayers; i++)
         {
            if(!is_user_connected(i))
               continue
          
            if(get_user_team(id) == get_user_team(i))
               send_message(gMessage, id, i)
         }
      } else {
         if(is_user_alive(id))
         {
            for(new i = 0; i <= MaxPlayers; i++)
            {
               if(!is_user_connected(i) || !is_user_alive(i))
                  continue
            
               if(get_user_team(id) == get_user_team(i))
                  send_message(gMessage, id, i)
            }
         } else if(!is_user_alive(id)){
            for(new i = 0; i <= MaxPlayers; i++)
            {
               if(!is_user_connected(i) || is_user_alive(i))
                  continue
            
               if(get_user_team(id) == get_user_team(i))
                  send_message(gMessage, id, i)
            }
         }
      }
   } else{
      if(chat_type)
      {
         for(new i = 0; i <= MaxPlayers; i++)
         {
            if(!is_user_connected(i))
               continue
          
            send_message(gMessage, id, i)
         }
      } else {
         if(is_user_alive(id))
         {
            for(new i = 0; i <= MaxPlayers; i++)
            {
               if(!is_user_connected(i) || !is_user_alive(i))
                  continue
            
               send_message(gMessage, id, i)
            }
         } else if(!is_user_alive(id)){
            for(new i = 0; i <= MaxPlayers; i++)
            {
               if(!is_user_connected(i) || is_user_alive(i))
                  continue
            
               send_message(gMessage, id, i)
            }
         }
      }
   }
}

stock send_message(message[], const id, const i)
{
   message[191] = '^0'
   message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)
   write_byte(id)
   write_string(message)
   message_end()
}

stock is_has_slash(const Message[])
{
   if(Message[0] == '/')
      return true
      
   return false
}

public checkLvl(id) {
   if(id > 0 && id < 33) {
      if (PlayerLevel[id] <= 0)
         PlayerLevel[id] = 1
      if (PlayerLevel[id] < 30) {
         while(PlayerXP[id] >= LEVELS[PlayerLevel[id]+1]) {
            PlayerLevel[id]++
            levelUp[id] = 1
            new Name[32]
            get_user_name(id, Name, 31)
            if(cs_get_user_team(id) == CS_TEAM_T)
               ChatColor(0, "%L %L", LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"NEW_LEVEL", Name, LANG_PLAYER,CLASSES[PlayerLevel[id]])
            else
               ChatColor(0, "%L %L", LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"NEW_LEVEL", Name, LANG_PLAYER,CLASSES[PlayerLevel[id]])
         }
      }
   }
}

public EventDeath() {
   new iVictim = read_data(2)
   new iTeam = get_user_team(iVictim)
   new iKiller = read_data(1)
   new headshot = read_data(3)
   if(iKiller != iVictim && get_user_team(iKiller) != iTeam && is_user_connected(iKiller) && PlayerLevel[iKiller] < 30) {
      if (get_pcvar_num(g_XPheadshot)) {
         if(headshot)
            PlayerXP[iKiller] += get_pcvar_num(g_XPvalue) * 2
         else
            PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)
      }
      else
         PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)

      checkLvl(iKiller)
   }
   return PLUGIN_CONTINUE
}

public EventRoundStart()
{
   for(new id = 1; id <= MaxPlayers; id++)
   {
      if(!is_user_alive(id) || !is_user_connected(id) || !get_pcvar_num(bonus) || bonus_blocked || get_user_flags(id) & ACCESS_DENIED_BONUS)
            return
            
      if(get_pcvar_num(g_Smoke) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Smoke))
            give_item(id,"weapon_smokegrenade")
            
      if(get_pcvar_num(g_Flash) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Flash))
            give_item(id,"weapon_flashbang")
            
      if(get_pcvar_num(g_Flash) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Flash2))
            give_item(id,"weapon_flashbang")
            
      if(get_pcvar_num(g_He) && PlayerLevel[id] > get_pcvar_num(g_Bonus_He))
            give_item(id,"weapon_hegrenade")
            
      if(get_pcvar_num(g_Armor) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Armor))
            cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
            
      if(get_pcvar_num(g_Money) && PlayerLevel[id] > get_pcvar_num(g_Lvl_Money))
      {
         if(cs_get_user_money(id) < 8000)
         {
            cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(g_Bonus_Money))
            ChatColor(id, "%L %L", LANG_PLAYER, "LRS_TAG", LANG_PLAYER, "BONUS_MONEY", get_pcvar_num(g_Bonus_Money))
         }
      }
   }
}
    
public damage_message(id)
{
   new attacker = get_user_attacker(id)
   new damage = read_data(2)
    
   if(!get_pcvar_num(bonus) || !get_pcvar_num(g_Damage) || get_user_flags(id) & ACCESS_DENIED_BONUS)
       return
    
   if (is_user_connected(attacker) && PlayerLevel[attacker] > get_pcvar_num(g_Bonus_Damage))
   {
      set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
      ShowSyncHudMsg(attacker, g_HudSync, "%i", damage)
   }
}

public regen(id)
{  
   for(new id = 1; id <= MaxPlayers; id ++)
   {      
      if(!get_pcvar_num(bonus) || !get_pcvar_num(g_Health) || bonus_blocked || get_user_flags(id) & ACCESS_DENIED_BONUS)
         return
      
      if(is_user_alive(id) && PlayerLevel[id] > get_pcvar_num(g_Bonus_Health))
        {
                new Float:health; pev(id, pev_health, health)        
                if(health < 100.0)
                set_pev(id, pev_health, health + 3.0)
        }
   }
}

public bomb_explode(id)
{
   if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 1 || get_pcvar_num(g_XPc4pl) < 1 || get_pcvar_num(g_Bomb) != 1)
      return

   if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
   {  
         ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
   } else {
         PlayerXP[id] += get_pcvar_num(g_XPc4pl)
   }
}

public bomb_defused(id)
{
   if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 2 || get_pcvar_num(g_XPc4def) < 1 || get_pcvar_num(g_Bomb) != 1)
      return

   if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
   {  
         ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
   } else {
         PlayerXP[id] += get_pcvar_num(g_XPc4def)
   }
}

public Info() {
   for(new id = 1; id <= MaxPlayers; id++) {
      if(!is_user_bot(id) && is_user_connected(id)) {
         static buffer[192], len
                  
         new osef[8]
         g_oldrank[id] = get_user_stats(id, osef, osef)
         new maxrank = get_statsnum()
    
         if(!is_user_alive(id)) {
            new id2 = pev(id, pev_iuser2)
            if(id2 > 0) {
               new Name2[32]
               get_user_name(id2, Name2, 31)
               if(PlayerLevel[id2] < 30) {
                  len = format(buffer, charsmax(buffer), "%L: %s", LANG_PLAYER,"A_NAME", Name2)
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L:", LANG_PLAYER,"ZVANIE")
                  len += format(buffer[len], charsmax(buffer) - len, " %L", LANG_PLAYER,CLASSES[PlayerLevel[id2]])
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"PL_XP",PlayerXP[id2])
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id2])
               }
               else {
                  len = format(buffer, charsmax(buffer), "%L: %s", LANG_PLAYER,"A_NAME", Name2)
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L:",LANG_PLAYER,"ZVANIE")
                  len += format(buffer[len], charsmax(buffer) - len, " %L",LANG_PLAYER,CLASSES[PlayerLevel[id2]])
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L: %L",LANG_PLAYER,"PL_XP", LANG_PLAYER,"PL_MAX")
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id2])
               }              
            }
            else {
               if(PlayerLevel[id] < 30) {
                  len = format(buffer, charsmax(buffer) - len, "%L: %L", LANG_PLAYER,"ZVANIE", LANG_PLAYER,CLASSES[PlayerLevel[id]])
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d",LANG_PLAYER,"PL_XP",PlayerXP[id])
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id])
               }
               else {
                  len = format(buffer, charsmax(buffer) - len, "%L: %L", LANG_PLAYER,"ZVANIE", LANG_PLAYER,CLASSES[PlayerLevel[id]])
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L",LANG_PLAYER,"PL_MAX")
                  len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d", LANG_PLAYER,"RANK", g_oldrank[id])
               }
            }
         }
         else {
            if((PlayerLevel[id] < 30) && (is_user_alive(id))) {
               len = format(buffer, charsmax(buffer), "%L", LANG_PLAYER,CLASSES[PlayerLevel[id]])
               len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"PL_XP",PlayerXP[id], LANG_PLAYER,"IZ", LEVELS[PlayerLevel[id]+1])
               len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"RANK", g_oldrank[id], LANG_PLAYER,"IZ", maxrank)
            }
            else {
               len = format(buffer, charsmax(buffer), "%L",LANG_PLAYER,CLASSES[PlayerLevel[id]])
               len += format(buffer[len], charsmax(buffer) - len, "^n%L: %L",LANG_PLAYER,"PL_XP", LANG_PLAYER,"PL_MAX")
               len += format(buffer[len], charsmax(buffer) - len, "^n%L: %d %L %d", LANG_PLAYER,"RANK", g_oldrank[id], LANG_PLAYER,"IZ", maxrank)
            }
         }
         set_hudmessage(255, 255, 255, 0.01, 0.19, 0, 0.0, 1.0, _, _, -1)
         ShowSyncHudMsg(id, g_MsgHud, "%s", buffer)
      }
   }
   return PLUGIN_CONTINUE
}

public client_putinserver(id) {
   set_task(0.1, "load_client_data", id)
}

public load_client_data(id) {
   if(!is_user_connected(id))
      return PLUGIN_HANDLED

   new stats[8], bodyhits[8], stats2[4]
   get_user_stats(id, stats, bodyhits)

   if (get_pcvar_num(g_XPc4def))
      get_user_stats2(id, stats2)
    
   if (get_pcvar_num(g_XPheadshot))
      PlayerXP[id] = ((stats[2]*2 + (stats[0] - stats[2])) + (stats2[1]*3 + stats2[3]*3)) * get_pcvar_num(g_XPvalue)
   else
      PlayerXP[id] = (stats2[1]*3 + stats2[3]*3 + stats[0]) * get_pcvar_num(g_XPvalue)

   for(new i = 1; i <= 30; i++) {
      if (i < 30) {
         if (PlayerXP[id] >= LEVELS[i] && PlayerXP[id] < LEVELS[i+1])
            PlayerLevel[id] = i
      }
      else {
         if (PlayerXP[id] >= LEVELS[30])
            PlayerLevel[id] = 30
      }
   }
   return PLUGIN_HANDLED
}

/*public plugin_natives()
   register_native("get_user_lvl", "native_get_user_lvl", 1)

public native_get_user_lvl(id)
   return PlayerLevel[id]
*/  
stock ChatColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)
    
    replace_all(msg, 190, "!g", "^4") // Green Color
    replace_all(msg, 190, "!y", "^1") // Default Color
    replace_all(msg, 190, "!t", "^3") // Team Color
    
    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}


Отредактировал: Adidasman, - 22.3.2014, 7:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Yashaka
сообщение 22.3.2014, 7:08
Сообщение #9


Стаж: 12 лет

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

Цитата(Adidasman @ 22.3.2014, 6:13) *
Код
new gMessage[256]

>
Код
new gMessage[192]



Код
stock send_message(const message[], const id, const i)
{
   message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)

>
Код
stock send_message(message[], const id, const i)
{
   message[191] = '^0'
   message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)


P.s send_message эта функция валила серв.

Мне это ни понятно! я ни селен в этом, меня надо носом тыкать!((

Отредактировал: Yashaka, - 22.3.2014, 7:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Adidasman
сообщение 22.3.2014, 7:16
Сообщение #10


Стаж: 12 лет

Сообщений: 305
Благодарностей: 186
Полезность: 859

Цитата(Yashaka @ 22.3.2014, 11:08) *
Мне это ни понятно!


смотри выше я сделал исходник. надеюсь компилировать умеешь.

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