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

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

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

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

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

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

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

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

Admin Prefixes

Статус пользователя verizon
сообщение 27.8.2013, 9:53
Сообщение #1


Стаж: 13 лет

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

Всем привет.

У меня такой вот вопрос по такому плагину http://forums.alliedmods.net/showthread.php?t=183491

Я ставлю приставку на 2 флага, выклядит это так

Код:
"f" "bt" "[VIP]"


Получается випка идет на флаги "bt", но приставка на 2 флага работать не хочет, скажите в чем может быть проблема?

И я хочу сделать что бы допустим VIP на флаг "bt" а если "mbt" то было ADMIN + VIP?

Может я что-то не так делаю ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя winzh1
сообщение 27.8.2013, 9:58
Сообщение #2


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Попробуйте так
Код:
"f" "t" "[VIP]"
"f" "b" "[VIP]"


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя verizon
сообщение 27.8.2013, 9:59
Сообщение #3


Стаж: 13 лет

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

Цитата(winzh1 @ 27.8.2013, 10:58) *
Попробуйте так
Код:
"f" "t" "[VIP]"
"f" "b" "[VIP]"



Пробовал, результата ноль.

Так если ставишь "f" "g" "[Гл. Админ]" то "f" "b" "[VIP]" все равно перекрывает.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 27.8.2013, 10:03
Сообщение #4


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(verizon @ 27.8.2013, 14:59) *
Пробовал, результата ноль.

Так если ставишь "f" "g" "[Гл. Админ]" то "f" "b" "[VIP]" все равно перекрывает.

Плагин рассчитан на показ только одного префикса.

Отредактировал: winzh1, - 27.8.2013, 10:04


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя verizon
сообщение 27.8.2013, 10:10
Сообщение #5


Стаж: 13 лет

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

Цитата(winzh1 @ 27.8.2013, 11:03) *
Плагин рассчитан на показ только одного префикса.


А если такой заюзать. Прикрепленный файл  prefix.sma ( 6,99 килобайт ) Кол-во скачиваний: 18


Отредактировал: verizon, - 27.8.2013, 10:15
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 27.8.2013, 10:11
Сообщение #6


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Неа, можно и больше, у меня например 3. Плагин вообще бредовый, легче новый написать
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя verizon
сообщение 27.8.2013, 10:12
Сообщение #7


Стаж: 13 лет

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

Цитата(Nebo @ 27.8.2013, 11:11) *
Неа, можно и больше, у меня например 3. Плагин вообще бредовый, легче новый написать


К сожалению мне на дано писать плагины, сколько я читал статей на amx-x и все равно, не получается у меня. Поэтому и обращаюсь за помощью к аудитории.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 27.8.2013, 10:15
Сообщение #8


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

verizon, лично у меня так:
"f" "[Гл. Админ]" "k"
"f" "[Админ]" "n"
"f" "[*VIP*]" "t"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя verizon
сообщение 27.8.2013, 10:16
Сообщение #9


Стаж: 13 лет

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

Цитата(Nebo @ 27.8.2013, 11:15) *
verizon, лично у меня так:
"f" "[Гл. Админ]" "k"
"f" "[Админ]" "n"
"f" "[*VIP*]" "t"


Ну я выставлял так, плагин все равно перебивает флаг "t" в итоге у всех админов и випов приставка только "VIP"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 27.8.2013, 10:21
Сообщение #10


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

У игрока с флагами "bt" приставка VIP, у кого флаги "btm" приставка Admin+Vip
Скрытый текст
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "VipAdmin Marker_NormChat"
#define VERSION "1.6"
#define AUTHOR "S0m3Th1nG_AwFul!"
#define USER_VIP ( ADMIN_RESERVATION | ADMIN_LEVEL_H )
#define USER_ADMIN ADMIN_LEVEL_A

new message[192]
new sayText
new teamInfo
new maxPlayers

new Status

new strName[191]
new strText[191]
new alive[11]

public plugin_init()
{
register_plugin (PLUGIN, VERSION, AUTHOR)

sayText = get_user_msgid ("SayText")
teamInfo = get_user_msgid ("TeamInfo")
maxPlayers = get_maxplayers()

register_message(get_user_msgid("SayText"),"MessageNameChange")

register_clcmd ("say", "hook_say")
register_clcmd ("say_team", "hook_teamsay")
}

public MessageNameChange()
{

new szInfo[64]
get_msg_arg_string(2,szInfo,63)

if(!equali(szInfo,"#Cstrike_Name_Change"))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public hook_say(id)
{

if (!is_user_connected(id))
{
return PLUGIN_CONTINUE
}

read_args (message, 191)
remove_quotes (message)

if (message[0] == '@' || message[0] == '/' || equal (message, "")) // Ignores admin Hud, empty, cmds messages
return PLUGIN_CONTINUE

new name[32]
get_user_name (id, name, 31)

new bool:vip = false
new bool:adm = false

if (get_user_flags(id) & USER_VIP)
vip = true
if (get_user_flags(id) & USER_ADMIN)
adm = true

if (!vip)
Status=1
if (vip)
Status=2
if (adm)
Status=3
if (adm && vip)
Status=4


new isAlive
new playerTeam = _:cs_get_user_team(id)

if(is_user_alive(id))
{
isAlive = 1
alive = "^x01"
}
else
{
if(playerTeam == 3)
{
isAlive = 0
alive = "^x01*SPEC* "
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
}

static color[10]

switch (Status)
{
case 1: //no VIP, no admin
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 2: //VIP user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[VIP] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 3: //admin user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[ADMIN] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 4: //admin & vip user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[ADMIN+VIP] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

}

format (message, 191, "%s^x01 : %s", strName, strText)

sendMessage (color, isAlive) // Sends the colored message

return PLUGIN_CONTINUE
}


public hook_teamsay(id)
{

if (!is_user_connected(id))
{
return PLUGIN_CONTINUE
}

new playerTeam = _:cs_get_user_team(id)
new playerTeamName[19]

switch (playerTeam)
{
case 1:
copy(playerTeamName, 10, "Terrorist")
case 2:
copy(playerTeamName, 17, "Counter-Terrorist")
case 3:
copy(playerTeamName, 9, "Spectator")
case 0:
copy(playerTeamName, 10, "Unassigned")
}

read_args (message, 191)
remove_quotes (message)

if (message[0] == '@' || message[0] == '/' || equal (message, "")) // Ignores admin Hud, empty, cmd messages
return PLUGIN_CONTINUE

new name[32]
get_user_name (id, name, 31)

new bool:vip = false
new bool:adm = false

if (get_user_flags(id) & USER_VIP)
vip = true
if (get_user_flags(id) & USER_ADMIN)
adm = true

if (!vip && !adm)
Status=1
if (vip && !adm)
Status=2
if (adm && !vip)
Status=3
if (adm && vip)
Status=4

new isAlive

if(is_user_alive(id))
{
isAlive = 1
alive = "^x01"
}
else
{
if(playerTeam == 3)
{
isAlive = 0
alive = "^x01*SPEC* "
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
}

static color[10]


switch (Status)
{
case 1: //no VIP, no admin
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 2: //VIP user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[VIP] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 3: //admin user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[ADMIN] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 4: //admin & vip user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[ADMIN+VIP] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

}

format (message, 191, "%s ^x01: %s", strName, strText)

sendTeamMessage (color, isAlive, playerTeam) // Sends the colored message

return PLUGIN_CONTINUE
}



public sendMessage (color[], alive)
{
new teamName[10]

for (new player = 1; player <= maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || alive && !is_user_alive(player) || alive && !is_user_hltv(player) || !alive && is_user_hltv(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}


public sendTeamMessage (color[], alive, playerTeam)
{
new teamName[10]

for (new player = 1; player <= maxPlayers; player++)
{
if (!is_user_connected(player))
continue

if (_:cs_get_user_team(player) == playerTeam)
{
if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || alive && !is_user_alive(player) || alive && !is_user_hltv(player) || !alive && is_user_hltv(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}
}

public changeTeamInfo (player, team[])
{
message_begin (MSG_ONE, teamInfo, _, player) // Tells to to modify teamInfo (Which is responsable for which time player is)
write_byte (player) // Write byte needed
write_string (team) // Changes player's team
message_end() // Also Needed
}

public writeMessage (player, message[])
{
message_begin (MSG_ONE, sayText, _, player) // Tells to modify sayText (Which is responsable for writing colored messages)
write_byte (player) // Write byte needed
write_string (message) // Effectively write the message, finally, afterall
message_end () // Needed as always
}


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя verizon
сообщение 27.8.2013, 10:24
Сообщение #11


Стаж: 13 лет

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

Цитата(winzh1 @ 27.8.2013, 11:21) *
У игрока с флагами "bt" приставка VIP, у кого флаги "btm" приставка Admin+Vip
Скрытый текст
Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "VipAdmin Marker_NormChat"
#define VERSION "1.6"
#define AUTHOR "S0m3Th1nG_AwFul!"
#define USER_VIP ( ADMIN_RESERVATION | ADMIN_LEVEL_H )
#define USER_ADMIN ADMIN_LEVEL_A

new message[192]
new sayText
new teamInfo
new maxPlayers

new Status

new strName[191]
new strText[191]
new alive[11]

public plugin_init()
{
register_plugin (PLUGIN, VERSION, AUTHOR)

sayText = get_user_msgid ("SayText")
teamInfo = get_user_msgid ("TeamInfo")
maxPlayers = get_maxplayers()

register_message(get_user_msgid("SayText"),"MessageNameChange")

register_clcmd ("say", "hook_say")
register_clcmd ("say_team", "hook_teamsay")
}

public MessageNameChange()
{

new szInfo[64]
get_msg_arg_string(2,szInfo,63)

if(!equali(szInfo,"#Cstrike_Name_Change"))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public hook_say(id)
{

if (!is_user_connected(id))
{
return PLUGIN_CONTINUE
}

read_args (message, 191)
remove_quotes (message)

if (message[0] == '@' || message[0] == '/' || equal (message, "")) // Ignores admin Hud, empty, cmds messages
return PLUGIN_CONTINUE

new name[32]
get_user_name (id, name, 31)

new bool:vip = false
new bool:adm = false

if (get_user_flags(id) & USER_VIP)
vip = true
if (get_user_flags(id) & USER_ADMIN)
adm = true

if (!vip)
Status=1
if (vip)
Status=2
if (adm)
Status=3
if (adm && vip)
Status=4


new isAlive
new playerTeam = _:cs_get_user_team(id)

if(is_user_alive(id))
{
isAlive = 1
alive = "^x01"
}
else
{
if(playerTeam == 3)
{
isAlive = 0
alive = "^x01*SPEC* "
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
}

static color[10]

switch (Status)
{
case 1: //no VIP, no admin
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 2: //VIP user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[VIP] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 3: //admin user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[ADMIN] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 4: //admin & vip user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[ADMIN+VIP] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

}

format (message, 191, "%s^x01 : %s", strName, strText)

sendMessage (color, isAlive) // Sends the colored message

return PLUGIN_CONTINUE
}


public hook_teamsay(id)
{

if (!is_user_connected(id))
{
return PLUGIN_CONTINUE
}

new playerTeam = _:cs_get_user_team(id)
new playerTeamName[19]

switch (playerTeam)
{
case 1:
copy(playerTeamName, 10, "Terrorist")
case 2:
copy(playerTeamName, 17, "Counter-Terrorist")
case 3:
copy(playerTeamName, 9, "Spectator")
case 0:
copy(playerTeamName, 10, "Unassigned")
}

read_args (message, 191)
remove_quotes (message)

if (message[0] == '@' || message[0] == '/' || equal (message, "")) // Ignores admin Hud, empty, cmd messages
return PLUGIN_CONTINUE

new name[32]
get_user_name (id, name, 31)

new bool:vip = false
new bool:adm = false

if (get_user_flags(id) & USER_VIP)
vip = true
if (get_user_flags(id) & USER_ADMIN)
adm = true

if (!vip && !adm)
Status=1
if (vip && !adm)
Status=2
if (adm && !vip)
Status=3
if (adm && vip)
Status=4

new isAlive

if(is_user_alive(id))
{
isAlive = 1
alive = "^x01"
}
else
{
if(playerTeam == 3)
{
isAlive = 0
alive = "^x01*SPEC* "
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
}

static color[10]


switch (Status)
{
case 1: //no VIP, no admin
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 2: //VIP user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[VIP] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 3: //admin user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[ADMIN] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 4: //admin & vip user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[ADMIN+VIP] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

}

format (message, 191, "%s ^x01: %s", strName, strText)

sendTeamMessage (color, isAlive, playerTeam) // Sends the colored message

return PLUGIN_CONTINUE
}



public sendMessage (color[], alive)
{
new teamName[10]

for (new player = 1; player <= maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || alive && !is_user_alive(player) || alive && !is_user_hltv(player) || !alive && is_user_hltv(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}


public sendTeamMessage (color[], alive, playerTeam)
{
new teamName[10]

for (new player = 1; player <= maxPlayers; player++)
{
if (!is_user_connected(player))
continue

if (_:cs_get_user_team(player) == playerTeam)
{
if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || alive && !is_user_alive(player) || alive && !is_user_hltv(player) || !alive && is_user_hltv(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}
}

public changeTeamInfo (player, team[])
{
message_begin (MSG_ONE, teamInfo, _, player) // Tells to to modify teamInfo (Which is responsable for which time player is)
write_byte (player) // Write byte needed
write_string (team) // Changes player's team
message_end() // Also Needed
}

public writeMessage (player, message[])
{
message_begin (MSG_ONE, sayText, _, player) // Tells to modify sayText (Which is responsable for writing colored messages)
write_byte (player) // Write byte needed
write_string (message) // Effectively write the message, finally, afterall
message_end () // Needed as always
}



Ну это я понял, мне надо еще 3-й. Что бы было Типа Gl. Admin
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 27.8.2013, 10:39
Сообщение #12


Стаж: 14 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(verizon @ 27.8.2013, 15:24) *
Ну это я понял, мне надо еще 3-й. Что бы было Типа Gl. Admin

У игрока с флагами "bt" приставка ВИП, у кого флаги "btm" приставка Админ+ВИП, у кого "m" Админ, у кого "l" Гл.Админ
Скрытый текст

Код:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "VipAdmin Marker_NormChat"
#define VERSION "1.6"
#define AUTHOR "S0m3Th1nG_AwFul!"
#define USER_VIP ( ADMIN_RESERVATION | ADMIN_LEVEL_H )
#define USER_ADMIN ADMIN_LEVEL_A
#define USER_GLADMIN ADMIN_RCON

new message[192]
new sayText
new teamInfo
new maxPlayers

new Status

new strName[191]
new strText[191]
new alive[11]

public plugin_init()
{
register_plugin (PLUGIN, VERSION, AUTHOR)

sayText = get_user_msgid ("SayText")
teamInfo = get_user_msgid ("TeamInfo")
maxPlayers = get_maxplayers()

register_message(get_user_msgid("SayText"),"MessageNameChange")

register_clcmd ("say", "hook_say")
register_clcmd ("say_team", "hook_teamsay")
}

public MessageNameChange()
{

new szInfo[64]
get_msg_arg_string(2,szInfo,63)

if(!equali(szInfo,"#Cstrike_Name_Change"))
return PLUGIN_HANDLED

return PLUGIN_CONTINUE
}

public hook_say(id)
{

if (!is_user_connected(id))
{
return PLUGIN_CONTINUE
}

read_args (message, 191)
remove_quotes (message)

if (message[0] == '@' || message[0] == '/' || equal (message, "")) // Ignores admin Hud, empty, cmds messages
return PLUGIN_CONTINUE

new name[32]
get_user_name (id, name, 31)

new bool:vip = false
new bool:adm = false
new bool:gladm = false

if (get_user_flags(id) & USER_VIP)
vip = true
if (get_user_flags(id) & USER_ADMIN)
adm = true
if (get_user_flags(id) & USER_GLADMIN)
gladm = true

if (!vip)
Status=1
if (vip)
Status=2
if (adm)
Status=3
if (adm && vip)
Status=4
if (gladm)
Status=5

new isAlive
new playerTeam = _:cs_get_user_team(id)

if(is_user_alive(id))
{
isAlive = 1
alive = "^x01"
}
else
{
if(playerTeam == 3)
{
isAlive = 0
alive = "^x01*SPEC* "
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
}

static color[10]

switch (Status)
{
case 1: //no VIP, no admin
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 2: //VIP user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[ВИП] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 3: //admin user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[Админ] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 4: //admin & vip user
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[Админ+ВИП] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

case 5: //gladmin
{
get_user_team (id, color, 9)
format (strName, 191, "%s^x04[Гл.Админ] ^x03%s", alive, name)
format (strText, 191, "%s", message)
}

}

format (message, 191, "%s^x01 : %s", strName, strText)

sendMessage (color, isAlive) // Sends the colored message

return PLUGIN_CONTINUE
}


public hook_teamsay(id)
{

if (!is_user_connected(id))
{
return PLUGIN_CONTINUE
}

new playerTeam = _:cs_get_user_team(id)
new playerTeamName[19]

switch (playerTeam)
{
case 1:
copy(playerTeamName, 10, "Terrorist")
case 2:
copy(playerTeamName, 17, "Counter-Terrorist")
case 3:
copy(playerTeamName, 9, "Spectator")
case 0:
copy(playerTeamName, 10, "Unassigned")
}

read_args (message, 191)
remove_quotes (message)

if (message[0] == '@' || message[0] == '/' || equal (message, "")) // Ignores admin Hud, empty, cmd messages
return PLUGIN_CONTINUE

new name[32]
get_user_name (id, name, 31)

new bool:vip = false
new bool:adm = false
new bool:gladm = false

if (get_user_flags(id) & USER_VIP)
vip = true
if (get_user_flags(id) & USER_ADMIN)
adm = true

if (!vip && !adm)
Status=1
if (vip && !adm)
Status=2
if (adm && !vip)
Status=3
if (adm && vip)
Status=4
if (gladm)
Status=5

new isAlive

if(is_user_alive(id))
{
isAlive = 1
alive = "^x01"
}
else
{
if(playerTeam == 3)
{
isAlive = 0
alive = "^x01*SPEC* "
}
else
{
isAlive = 0
alive = "^x01*DEAD* "
}
}

static color[10]


switch (Status)
{
case 1: //no VIP, no admin
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 2: //VIP user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[ВИП] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 3: //admin user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[Админ] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

case 4: //admin & vip user
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[Админ+ВИП] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}
case 5: //gladmin
{
get_user_team (id, color, 9)
format (strName, 191, "%s(%s) ^x04[Гл.Админ] ^x03%s", alive, playerTeamName, name)
format (strText, 191, "%s", message)
}

}

format (message, 191, "%s ^x01: %s", strName, strText)

sendTeamMessage (color, isAlive, playerTeam) // Sends the colored message

return PLUGIN_CONTINUE
}



public sendMessage (color[], alive)
{
new teamName[10]

for (new player = 1; player <= maxPlayers; player++)
{
if (!is_user_connected(player))
continue
if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || alive && !is_user_alive(player) || alive && !is_user_hltv(player) || !alive && is_user_hltv(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}


public sendTeamMessage (color[], alive, playerTeam)
{
new teamName[10]

for (new player = 1; player <= maxPlayers; player++)
{
if (!is_user_connected(player))
continue

if (_:cs_get_user_team(player) == playerTeam)
{
if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || alive && !is_user_alive(player) || alive && !is_user_hltv(player) || !alive && is_user_hltv(player))
{
get_user_team (player, teamName, 9) // Stores user's team name to change back after sending the message
changeTeamInfo (player, color) // Changes user's team according to color choosen
writeMessage (player, message) // Writes the message on player's chat
changeTeamInfo (player, teamName) // Changes user's team back to original
}
}
}
}

public changeTeamInfo (player, team[])
{
message_begin (MSG_ONE, teamInfo, _, player) // Tells to to modify teamInfo (Which is responsable for which time player is)
write_byte (player) // Write byte needed
write_string (team) // Changes player's team
message_end() // Also Needed
}

public writeMessage (player, message[])
{
message_begin (MSG_ONE, sayText, _, player) // Tells to modify sayText (Which is responsable for writing colored messages)
write_byte (player) // Write byte needed
write_string (message) // Effectively write the message, finally, afterall
message_end () // Needed as always
}


Отредактировал: winzh1, - 27.8.2013, 10:42


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: