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

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

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

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

Заменить colorchat на обычный

Статус пользователя fr0x
сообщение 19.8.2013, 17:14
Сообщение #1


Стаж: 18 лет

Сообщений: 334
Благодарностей: 125
Полезность: 624

Приветствую.

Имеется плагин, который меняет карту (создаёт голосование) при N-количестве человек.
Там вывод сообщений происходит при помощи ColorChat. Мне он не нужен, хотел бы заменить его на стандартный CS-овский чат (print_chat или как-то так), но т.к. нету никаких знаний Pawn-языка прошу помощи.

Код:
/* 
No player Map 1.2.1

Карта, за которую идет голосование
Default: "de_dust2_2x2"
npm_map <карта>

Кол-во игроков, при котором вызывается голосование
Default: "4"
npm_players <целое число>

Через сколько секунд после ухода/коннекта игрока появится голосование
Default: "30.0"
npm_wait <число с точкой>

На сколько продлится данная карта
Default: "10"
npm_extendmap_step <целое число>
*/

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new npm_map, npm_players, npm_wait, npm_extendmap_step
new vote_yes, vote_no
new bool:npm_on = true

#define PLUGIN "No Players Map"
#define VERSION "1.2.1"
#define AUTHOR "SKAJIbnEJIb"

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

npm_map = register_cvar("npm_map", "de_dust2_2x2")
npm_players = register_cvar("npm_players", "4")
npm_wait = register_cvar("npm_wait","30.0")
npm_extendmap_step = register_cvar("npm_extendmap_step", "10")

npm_task()
}

public client_authorized() {
npm_task()
}

public client_disconnect() {
npm_task()
}

public npm_task() {
new Map[32], cv_Map[32]
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)
if(get_playersnum() <= get_pcvar_num(npm_players) && npm_on && (!equal(Map, cv_Map)) && !task_exists(331)) {
set_task(get_pcvar_float(npm_wait), "npm", 331)
}
}

public npm() {
new iPlayers[32], iNum, iPlayer, Map[32], cv_Map[32]
get_players(iPlayers, iNum, "h")
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)

if(iNum <= 1 ) {
npm_changelevel()

return PLUGIN_HANDLED
}
if(get_playersnum() <= get_pcvar_num(npm_players) && npm_on && (!equal(Map, cv_Map))) {
for(new i = 0; i < iNum; i++) {
iPlayer = iPlayers[i]
npm_menu(iPlayer)
}
}
return PLUGIN_HANDLED
}

public npm_menu(id) {
new cv_Map[32], MenuTitle[64], arg[2]
get_pcvar_string(npm_map, cv_Map, 31)
format(MenuTitle, 63, "Сменить карту на \r%s?", cv_Map)

new menu = menu_create(MenuTitle, "npm_menu_handler")

menu_additem(menu,"\wДа","1")
menu_additem(menu,"\wНЕТ","2")

menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)

menu_display(id, menu, 0)

if(!task_exists(332)) {
arg[0] = menu
set_task(get_cvar_float("amx_vote_time"), "npm_result", 332, arg, 1)
}

return PLUGIN_HANDLED
}

public npm_menu_handler(id, menu, item) {
if(item==MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6],iName[64],access, callback, Name[32]
menu_item_getinfo(menu,item,access,data,5,iName,63,callback)

get_user_name(id, Name, 31)

new key = str_to_num(data)

switch(key) {
case 1:{
vote_yes++
ColorChat(0, BLUE, "^04%s ^01проголосовал ^03За", Name)
}
case 2:{
vote_no++
ColorChat(0, RED, "^04%s ^01проголосовал ^03Против", Name)
}
}
return PLUGIN_HANDLED
}

public npm_result(arg[]) {
menu_destroy(arg[0])
new Map[32], cv_Map[32]
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)
if(vote_yes >= vote_no) {
ColorChat(0, NORMAL, "Голосование завершено. Следующая карта ^04%s", cv_Map)
set_task(5.0, "npm_changelevel")
}
else {
ColorChat(0, RED, "^01Голосование завершено. Карта продлена на ^03%d^01 минут", get_pcvar_num(npm_extendmap_step))
vote_yes = 0
vote_no = 0
npm_on = false
set_task((get_pcvar_float(npm_extendmap_step)*60), "npm_extend")
}
}

public npm_changelevel() {
new cv_Map[32]
get_pcvar_string(npm_map, cv_Map, 31)
server_cmd("changelevel %s", cv_Map)
}

public npm_extend() {
npm_on = true
}


Был бы премного благодарен за помощь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 19.8.2013, 17:16
Сообщение #2


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Где должно быть сообщение?


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя fr0x
сообщение 19.8.2013, 17:17
Сообщение #3


Стаж: 18 лет

Сообщений: 334
Благодарностей: 125
Полезность: 624

vovan4ik1997, выводится оно внизу, где чат.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 19.8.2013, 17:19
Сообщение #4


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Код:
/* 
No player Map 1.2.1

Карта, за которую идет голосование
Default: "de_dust2_2x2"
npm_map <карта>

Кол-во игроков, при котором вызывается голосование
Default: "4"
npm_players <целое число>

Через сколько секунд после ухода/коннекта игрока появится голосование
Default: "30.0"
npm_wait <число с точкой>

На сколько продлится данная карта
Default: "10"
npm_extendmap_step <целое число>
*/

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

new npm_map, npm_players, npm_wait, npm_extendmap_step
new vote_yes, vote_no
new bool:npm_on = true

#define PLUGIN "No Players Map"
#define VERSION "1.2.1"
#define AUTHOR "SKAJIbnEJIb"

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

npm_map = register_cvar("npm_map", "de_dust2_2x2")
npm_players = register_cvar("npm_players", "4")
npm_wait = register_cvar("npm_wait","30.0")
npm_extendmap_step = register_cvar("npm_extendmap_step", "10")

npm_task()
}

public client_authorized() {
npm_task()
}

public client_disconnect() {
npm_task()
}

public npm_task() {
new Map[32], cv_Map[32]
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)
if(get_playersnum() <= get_pcvar_num(npm_players) && npm_on && (!equal(Map, cv_Map)) && !task_exists(331)) {
set_task(get_pcvar_float(npm_wait), "npm", 331)
}
}

public npm() {
new iPlayers[32], iNum, iPlayer, Map[32], cv_Map[32]
get_players(iPlayers, iNum, "h")
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)

if(iNum <= 1 ) {
npm_changelevel()

return PLUGIN_HANDLED
}
if(get_playersnum() <= get_pcvar_num(npm_players) && npm_on && (!equal(Map, cv_Map))) {
for(new i = 0; i < iNum; i++) {
iPlayer = iPlayers[i]
npm_menu(iPlayer)
}
}
return PLUGIN_HANDLED
}

public npm_menu(id) {
new cv_Map[32], MenuTitle[64], arg[2]
get_pcvar_string(npm_map, cv_Map, 31)
format(MenuTitle, 63, "Сменить карту на \r%s?", cv_Map)

new menu = menu_create(MenuTitle, "npm_menu_handler")

menu_additem(menu,"\wДа","1")
menu_additem(menu,"\wНЕТ","2")

menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)

menu_display(id, menu, 0)

if(!task_exists(332)) {
arg[0] = menu
set_task(get_cvar_float("amx_vote_time"), "npm_result", 332, arg, 1)
}

return PLUGIN_HANDLED
}

public npm_menu_handler(id, menu, item) {
if(item==MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6],iName[64],access, callback, Name[32]
menu_item_getinfo(menu,item,access,data,5,iName,63,callback)

get_user_name(id, Name, 31)

new key = str_to_num(data)

switch(key) {
case 1:{
vote_yes++
client_print(0,print_chat, "%s проголосовал За", Name)
}
case 2:{
vote_no++
client_print(0,print_chat, "%s ^проголосовал Против", Name)

}
}
return PLUGIN_HANDLED
}

public npm_result(arg[]) {
menu_destroy(arg[0])
new Map[32], cv_Map[32]
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)
if(vote_yes >= vote_no) {
client_print(0,print_chat, "Голосование завершено. Следующая карта %s", cv_Map)
set_task(5.0, "npm_changelevel")
}
else {
client_print(0,print_chat,"Голосование завершено. Карта продлена на %d минут", get_pcvar_num(npm_extendmap_step))
vote_yes = 0
vote_no = 0
npm_on = false
set_task((get_pcvar_float(npm_extendmap_step)*60), "npm_extend")
}
}

public npm_changelevel() {
new cv_Map[32]
get_pcvar_string(npm_map, cv_Map, 31)
server_cmd("changelevel %s", cv_Map)
}

public npm_extend() {
npm_on = true
}

тестируй


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Yaroslav
сообщение 19.8.2013, 17:25
Сообщение #5


Стаж: 12 лет

Сообщений: 296
Благодарностей: 247
Полезность: 1084

Цитата(vovan4ik1997 @ 19.8.2013, 19:19) *
тестируй


Ошибка:

Код:

client_print(0,print_chat, "%s ^проголосовал Против", Name)


^ - уберите.

И это уберите:

Код:

#include <colorchat>


Отредактировал: Yaroslav, - 19.8.2013, 17:26
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя fr0x
сообщение 19.8.2013, 17:27
Сообщение #6


Стаж: 18 лет

Сообщений: 334
Благодарностей: 125
Полезность: 624

vovan4ik1997, благодарю, скомпилировалось без ошибок. Ещё убрал инклуд colorchat :)

UPD:
Yaroslav, упс, спасибо за подсказку, убрал из кода ^03 и т.п.

Код:
/* 
No player Map 1.2.1

Карта, за которую идет голосование
Default: "de_dust2_2x2"
npm_map <карта>

Кол-во игроков, при котором вызывается голосование
Default: "4"
npm_players <целое число>

Через сколько секунд после ухода/коннекта игрока появится голосование
Default: "30.0"
npm_wait <число с точкой>

На сколько продлится данная карта
Default: "10"
npm_extendmap_step <целое число>
*/

#include <amxmodx>
#include <amxmisc>

new npm_map, npm_players, npm_wait, npm_extendmap_step
new vote_yes, vote_no
new bool:npm_on = true

#define PLUGIN "No Players Map"
#define VERSION "1.2.1"
#define AUTHOR "SKAJIbnEJIb"

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

npm_map = register_cvar("npm_map", "de_dust2_2x2")
npm_players = register_cvar("npm_players", "4")
npm_wait = register_cvar("npm_wait","30.0")
npm_extendmap_step = register_cvar("npm_extendmap_step", "10")

npm_task()
}

public client_authorized() {
npm_task()
}

public client_disconnect() {
npm_task()
}

public npm_task() {
new Map[32], cv_Map[32]
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)
if(get_playersnum() <= get_pcvar_num(npm_players) && npm_on && (!equal(Map, cv_Map)) && !task_exists(331)) {
set_task(get_pcvar_float(npm_wait), "npm", 331)
}
}

public npm() {
new iPlayers[32], iNum, iPlayer, Map[32], cv_Map[32]
get_players(iPlayers, iNum, "h")
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)

if(iNum <= 1 ) {
npm_changelevel()

return PLUGIN_HANDLED
}
if(get_playersnum() <= get_pcvar_num(npm_players) && npm_on && (!equal(Map, cv_Map))) {
for(new i = 0; i < iNum; i++) {
iPlayer = iPlayers[i]
npm_menu(iPlayer)
}
}
return PLUGIN_HANDLED
}

public npm_menu(id) {
new cv_Map[32], MenuTitle[64], arg[2]
get_pcvar_string(npm_map, cv_Map, 31)
format(MenuTitle, 63, "Сменить карту на \r%s?", cv_Map)

new menu = menu_create(MenuTitle, "npm_menu_handler")

menu_additem(menu,"\wДа","1")
menu_additem(menu,"\wНЕТ","2")

menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)

menu_display(id, menu, 0)

if(!task_exists(332)) {
arg[0] = menu
set_task(get_cvar_float("amx_vote_time"), "npm_result", 332, arg, 1)
}

return PLUGIN_HANDLED
}

public npm_menu_handler(id, menu, item) {
if(item==MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_HANDLED
}

new data[6],iName[64],access, callback, Name[32]
menu_item_getinfo(menu,item,access,data,5,iName,63,callback)

get_user_name(id, Name, 31)

new key = str_to_num(data)

switch(key) {
case 1:{
vote_yes++
client_print(0, print_chat, "%s проголосовал За", Name)
}
case 2:{
vote_no++
client_print(0, print_chat, "%s проголосовал Против", Name)
}
}
return PLUGIN_HANDLED
}

public npm_result(arg[]) {
menu_destroy(arg[0])
new Map[32], cv_Map[32]
get_mapname(Map, 31)
get_pcvar_string(npm_map, cv_Map, 31)
if(vote_yes >= vote_no) {
client_print(0, print_chat, "Голосование завершено. Следующая карта %s", cv_Map)
set_task(5.0, "npm_changelevel")
}
else {
client_print(0, print_chat, "Голосование завершено. Карта продлена на %d минут", get_pcvar_num(npm_extendmap_step))
vote_yes = 0
vote_no = 0
npm_on = false
set_task((get_pcvar_float(npm_extendmap_step)*60), "npm_extend")
}
}

public npm_changelevel() {
new cv_Map[32]
get_pcvar_string(npm_map, cv_Map, 31)
server_cmd("changelevel %s", cv_Map)
}

public npm_extend() {
npm_on = true
}


Отредактировал: fr0x, - 19.8.2013, 17:27
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 19.8.2013, 18:25
Сообщение #7


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Yaroslav, ошибки нет просто не заметил) сделал быстренько просто. Спасибо , что указал !


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