AMX MOD X
Пятница, 02.01.2026, 04:31:32



Приветствую Вас Гость | RSS
[ Главная ] [ проверте плагин - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
проверте плагин
fukanДата: Понедельник, 10.12.2007, 16:05:39 | Сообщение # 1
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Не в сети
я на днях написал маленький плагин который делает knife round посте команды say /knife

но при компиле каккаято ошибка, проверте плиз на правильность кода

Code
#include <amxmodx>
#include <amxmisc>
#include <fun>

new name[18]

public plugin_init() {
  register_plugin("KnifeRound", "1.0", "xPaw")
  register_clcmd("say /knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round")
  register_concmd("amx_knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round")
}

public cmd_knives(id) {  
   get_user_name(id, name, 17)  
    
   client_cmd(0,"spk ^"fvox/five four three two one ^"")
   set_task(1.0, "restart_round", 0, "1", 1)
   client_print(0, print_chat, "ADMIN %s: executed knife round", name)
   set_task(3.0, "strip_weapons")
   set_task(4.0, "knife_msg")
  return PLUGIN_CONTINUE
}

public strip_weapons() {
  new plist_public[32], pnum_public
  get_players(plist_public, pnum_public)
  for (new i = 0; i < pnum_public; i++) {
   if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){
    strip_user_weapons(plist_public[i])
    give_item(plist_public[i], "weapon_knife")
   }
  }
}

public restart_round(seconds[]) {
  server_cmd("sv_restartround %s", seconds)

  return PLUGIN_CONTINUE
}

public knife_msg() {  
  set_hudmessage(0, 255, 100, -1.0, 0.2, 0, 6.0, 6.0)  
  show_hudmessage(0, "--- Knife round - Knife round - Knife round ---")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_cmd(0,"speak ^"barney/letsgo^"")
  return PLUGIN_CONTINUE  
}

он ругается на 21 строку, а на ней return PLUGIN_CONTINUE

Сообщение отредактировал fukan - Понедельник, 10.12.2007, 16:39:11
 
slogicДата: Понедельник, 10.12.2007, 16:39:01 | Сообщение # 2
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
нет там ошибок
 
fukanДата: Понедельник, 10.12.2007, 16:41:17 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Не в сети
одна всетаки есть, вот скрин

и проверь плиз на правильность кода, может чето лишнее написал

Прикрепления: 0526450.png (7.9 Kb)
 
slogicДата: Понедельник, 10.12.2007, 16:42:17 | Сообщение # 4
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
еще раз говорю - ошибок нет. это не ошибка, а предупреждение, что всего-лишь кривой отступ.
 
fukanДата: Понедельник, 10.12.2007, 17:01:46 | Сообщение # 5
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Не в сети
и еще когда в консоли пишеш amx_knife, он выполняет функцию но в консоли выдает
Unknown command: amx_knife

--------
и как зделать чтобы у всех деньги стали 0$

каккая функция отвечает за деньги на плеере

Добавлено (2007-12-10, 5:01 Pm)
---------------------------------------------
все с деньгами разобрался, теперь бы разобратся с Unknown command

Сообщение отредактировал fukan - Понедельник, 10.12.2007, 16:49:30
 
AlModДата: Понедельник, 10.12.2007, 18:07:44 | Сообщение # 6
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Я вижу ты совсем не понимаешь чо делает return PLUGIN_HANDLED и return PLUGIN_CONTINUE. ты их лепишь везде где ни попади, причем зря

Щас объясню.

Хэндлед ставится если тебе нужно прервать выполнение, континью - если оставить без изменений. Обычно это все ставится в хуках эвентах и юзер-командах. т.е. н-р в конце процедуры, которая у тебя отвечает за amx_knife надо нарисовать в конце return PLUGIN_HANDLED.

Воообщем смотри, твой код из 1го поста с комментариями:

Quote

#include <amxmodx>
#include <amxmisc>
#include <fun>

new name[18] // эту переменную надо задавать локально, там где она используется.

public plugin_init() {
register_plugin("KnifeRound", "1.0", "xPaw")
register_clcmd("say /knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round")
register_concmd("amx_knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round")
}

public cmd_knives(id) {
get_user_name(id, name, 17)

client_cmd(0,"spk ^"fvox/five four three two one ^"")
set_task(1.0, "restart_round", 0, "1", 1) // Имхо, тут вообще бред написан. Учи параметры у set_task
client_print(0, print_chat, "ADMIN %s: executed knife round", name)
set_task(3.0, "strip_weapons") // Аналогично
set_task(4.0, "knife_msg") // Аналогично
return PLUGIN_CONTINUE // Заменить на return PLUGIN_HANDLED
}

public strip_weapons() {
new plist_public[32], pnum_public
get_players(plist_public, pnum_public)
for (new i = 0; i < pnum_public; i++) {
if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){ // Это булевы функции, писать ==1 не обязательно
strip_user_weapons(plist_public[i])
give_item(plist_public[i], "weapon_knife")
}
}
}

public restart_round(seconds[]) { // Имхо, лучше передавать цифрой или единичным массивом параметров
server_cmd("sv_restartround %s", seconds)

return PLUGIN_CONTINUE // Это лишнее, не нужно здесь
}

public knife_msg() {
set_hudmessage(0, 255, 100, -1.0, 0.2, 0, 6.0, 6.0)
show_hudmessage(0, "--- Knife round - Knife round - Knife round ---")
client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")
client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")
client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")
client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")
client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")
client_cmd(0,"speak ^"barney/letsgo^"")
return PLUGIN_CONTINUE // Это лишнее, не нужно здесь
}



 
fukanДата: Вторник, 11.12.2007, 16:11:44 | Сообщение # 7
Рядовой
Группа: Пользователи
Сообщений: 8
Репутация: 0
Статус: Не в сети
ну вот я немного проправил, и зделал как ты писал, спасибо за подробное обьяснение, а как место settask зделать ?

вот как я щас зделал

Code
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

new name[18]

public plugin_init() {
  register_plugin("KnifeRound", "1.0", "xPaw")
  register_clcmd("say /knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round")
  register_concmd("amx_knife", "cmd_knives", ADMIN_MENU, "- Execute Knife round")
}

public cmd_knives(id) {  
  get_user_name(id, name, 17)  
    
   log_amx("%s executes kniferound", name)
   client_print(0, print_chat, "ADMIN %s: executed knife round", name)
   server_cmd("sv_restartround 5")
   client_cmd(0,"spk ^"fvox/five four three two one ^"")
   set_task(3.0, "strip_weapons")
   set_task(4.0, "knife_msg")
  return PLUGIN_HANDLED  
}

public strip_weapons() {
  new plist_public[32], pnum_public
  get_players(plist_public, pnum_public)
  for (new i = 0; i < pnum_public; i++) {
   if (is_user_connected(plist_public[i]) == 1 && is_user_alive(plist_public[i]) == 1){
    strip_user_weapons(plist_public[i])
    give_item(plist_public[i], "weapon_knife")
    cs_set_user_money(plist_public[i], 0)
   }
  }
}

public restart_round() {
  server_cmd("sv_restartround 1")
}

public knife_msg() {  
  set_hudmessage(0, 255, 100, -1.0, 0.2, 0, 6.0, 6.0)  
  show_hudmessage(0, "--- Knife round - Knife round - Knife round ---")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_print(0, print_chat, "[AMXX] Knife round - Knife round - Knife round")  
  client_cmd(0,"speak ^"barney/letsgo^"")
}


Сообщение отредактировал fukan - Вторник, 11.12.2007, 16:16:09
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2026