AMX MOD X
Суббота, 27.04.2024, 03:46:45



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

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

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Как сделать чтоб определённую команду можно было юзать (только первые например 20 секунд раунда)
Как сделать чтоб определённую команду можно было юзать
Bl0kcДата: Вторник, 12.01.2010, 20:01:15 | Сообщение # 1
Полковник
Группа: Пользователи
Сообщений: 152
Репутация: 1
Статус: Не в сети
Что нужно вписать? Вот например эта команда
Code
public cmdFree(id) {
  if (get_pcvar_num(g_cvar_t_only) && get_user_team(id) != 1) {
   client_print(id, print_center, "Only T can Use it!")
   return
  }

  new players[32], plNum
  get_players(players, plNum, "ace", "TERRORIST")

  g_free = true
  set_hudmessage(0, 255, 255, 0.02, -1.0, 0, 6.0, 12.0, 0.1, 0.2, 4)
  show_hudmessage(id, "Free and knife!")

  new i
  get_players(players, plNum, "ah")
  for (i = 0; i < plNum; i++) {
   fm_strip_user_weapons(players[i])
   fm_give_item(players[i], "weapon_knife")
  }
}


 
CLLlAgOBДата: Вторник, 12.01.2010, 21:14:01 | Сообщение # 2
Полковник
Группа: Скриптеры
Сообщений: 217
Репутация: 14
Статус: Не в сети
Code
сделай переменную
new bool:acces[33] \\bool Значит то она может быть только истиной или ложью, acces просто название )))

пихаеш register_logevent("event_start", 2, "1=Round_Start") в public plugin_init()

public fwEvGameWillRestartIn() {
  static iPlayers[32], iPlayersNum, i
  get_players(iPlayers, iPlayersNum, "a")
  for (i = 0; i <= iPlayersNum; ++i) {
   acces[iPlayers[i]] = true
   set_task(20.0,"delay",iPlayers[i]) /// тут задержка почле чего значине будет отрицательным
  }
}

public delay(id){
  acces[id] = false
}

client_connect(id){
  acces[id] = false
}
ну а в функцие в начале ставиш
public cmdFree(id) {
  if(!acces[id]) return PLUGIN_HANDLED
..... // твой код  
}


Сообщение отредактировал CLLlAgOB - Вторник, 12.01.2010, 21:15:07
 
Bl0kcДата: Вторник, 12.01.2010, 21:19:01 | Сообщение # 3
Полковник
Группа: Пользователи
Сообщений: 152
Репутация: 1
Статус: Не в сети
я что-то ничё не понял... я просто нуб в этом деле
Code
#include <amxmodx>
#include <hamsandwich>
#include <fakemeta_util>

#define PLUGIN "FreeRun"
#define VERSION "0.1.0"
#define AUTHOR "PomanoB"

new g_free
new g_cvar_t_only

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

  g_cvar_t_only = register_cvar("dh_free_run_t_only", "1")

  register_clcmd("say free", "cmdFree")
  register_clcmd("say /free", "cmdFree")
   
  register_event("HLTV", "eventRoundStart", "a", "1=0", "2=0")

  RegisterHam(Ham_Touch, "armoury_entity", "fwdTouch")
  RegisterHam(Ham_Touch, "weaponbox", "fwdTouch")
  RegisterHam(Ham_Use, "func_button", "fwdUse")
}

public eventRoundStart() {
  g_free = false
}

public cmdFree(id) {
  if (get_pcvar_num(g_cvar_t_only) && get_user_team(id) != 1) {
   client_print(id, print_center, "Only T can Use it!")
   return
  }

  new players[32], plNum
  get_players(players, plNum, "ace", "TERRORIST")

  g_free = true
  set_hudmessage(0, 255, 255, 0.02, -1.0, 0, 6.0, 12.0, 0.1, 0.2, 4)
  show_hudmessage(id, "Free and knife!")

  new i
  get_players(players, plNum, "ah")
  for (i = 0; i < plNum; i++) {
   fm_strip_user_weapons(players[i])
   fm_give_item(players[i], "weapon_knife")
  }
}

public fwdTouch(ent, id) {
  if (is_user_alive(id) && g_free)
   return HAM_SUPERCEDE

  return HAM_IGNORED
}   

public fwdUse(ent, idcaller, idactivator, use_type, Float:value) {
  if (is_user_alive(idactivator) && g_free && get_user_team(idactivator) == 1) {
   client_print(idactivator, print_center, "You choose FreeRun!")
   return HAM_SUPERCEDE   
  }

  return HAM_IGNORED
}

вот весь скрипт куда это вставлять или что делать?


 
FreeKILLДата: Вторник, 12.01.2010, 21:35:03 | Сообщение # 4
Подполковник
Группа: Пользователи
Сообщений: 143
Репутация: 4
Статус: Не в сети
поробуй так
Code

#include <amxmodx>  
#include <hamsandwich>  
#include <fakemeta_util>  

#define PLUGIN "FreeRun"  
#define VERSION "0.1.0"  
#define AUTHOR "PomanoB"  

new g_free  
new g_cvar_t_only  
new bool:timer[33] = false
public plugin_init() {  
   register_plugin(PLUGIN, VERSION, AUTHOR)  

   g_cvar_t_only = register_cvar("dh_free_run_t_only", "1")  

   register_clcmd("say free", "cmdFree")  
   register_clcmd("say /free", "cmdFree")  
     
   register_event("HLTV", "eventRoundStart", "a", "1=0", "2=0")  
   register_event("HLTV", "eventRS", "a", "1=0", "2=0")  
   RegisterHam(Ham_Touch, "armoury_entity", "fwdTouch")  
   RegisterHam(Ham_Touch, "weaponbox", "fwdTouch")  
   RegisterHam(Ham_Use, "func_button", "fwdUse")  
}  

public eventRoundStart() {  
   g_free = false  
    
}  
public eventRS(id) {
  timer[id] = false
  set_task(20.0, "functask", id)
}
public cmdFree(id) {  
   if(timer[id] == false) {
    if (get_pcvar_num(g_cvar_t_only) && get_user_team(id) != 1) {  
     client_print(id, print_center, "Only T can Use it!")  
     return  
    }  

    new players[32], plNum  
    get_players(players, plNum, "ace", "TERRORIST")  

    g_free = true  
    set_hudmessage(0, 255, 255, 0.02, -1.0, 0, 6.0, 12.0, 0.1, 0.2, 4)  
    show_hudmessage(id, "Free and knife!")  

    new i  
    get_players(players, plNum, "ah")  
    for (i = 0; i < plNum; i++) {  
     fm_strip_user_weapons(players[i])  
     fm_give_item(players[i], "weapon_knife")  
    }  
   }
   else {
    client_print(id,print_chat, "only 20 sek you can call this func")
   }
     
}  

public fwdTouch(ent, id) {  
   if (is_user_alive(id) && g_free)  
    return HAM_SUPERCEDE  

   return HAM_IGNORED  
}    

public fwdUse(ent, idcaller, idactivator, use_type, Float:value) {  
   if (is_user_alive(idactivator) && g_free && get_user_team(idactivator) == 1) {  
    client_print(idactivator, print_center, "You choose FreeRun!")  
    return HAM_SUPERCEDE    
   }  

   return HAM_IGNORED  
}
public functask(id) {
  timer[id] = true
}

Добавлено (12.01.2010, 21:35:03)
---------------------------------------------
я нестал трогать твой код, но у тебя переменная g_free -это бул (так как ты присваеваешь её значения правда или ложь, true or false) но у тебя в первой строке new g_free а если это бул то должно быть new bool:g_free[33] = false приблизительно так. но так как тебе код делал Романов, то я в правильности не сомниваюсь, может ты лучше скинешь полный код, чтобы мы могли нормально сделать?

 
Bl0kcДата: Вторник, 12.01.2010, 21:45:27 | Сообщение # 5
Полковник
Группа: Пользователи
Сообщений: 152
Репутация: 1
Статус: Не в сети
я полный скинул

 
FreeKILLДата: Вторник, 12.01.2010, 21:48:24 | Сообщение # 6
Подполковник
Группа: Пользователи
Сообщений: 143
Репутация: 4
Статус: Не в сети
и что он работает при компиляции? ну вот я тебе кинул скрипт проверь его
 
Bl0kcДата: Вторник, 12.01.2010, 21:49:52 | Сообщение # 7
Полковник
Группа: Пользователи
Сообщений: 152
Репутация: 1
Статус: Не в сети
ну компилится, но не работает, всё как было так и осталось

 
FreeKILLДата: Вторник, 12.01.2010, 21:54:19 | Сообщение # 8
Подполковник
Группа: Пользователи
Сообщений: 143
Репутация: 4
Статус: Не в сети
пробуй так
Code

#include <amxmodx>    
#include <hamsandwich>    
#include <fakemeta_util>    

#define PLUGIN "FreeRun"    
#define VERSION "0.1.0"    
#define AUTHOR "PomanoB"    

new g_free    
new g_cvar_t_only    
new bool:timer[33] = false   
public plugin_init() {    
     register_plugin(PLUGIN, VERSION, AUTHOR)    

     g_cvar_t_only = register_cvar("dh_free_run_t_only", "1")    

     register_clcmd("say free", "cmdFree")    
     register_clcmd("say /free", "cmdFree")    
         
     register_event("HLTV", "eventRoundStart", "a", "1=0", "2=0")    
       
     RegisterHam(Ham_Touch, "armoury_entity", "fwdTouch")    
     RegisterHam(Ham_Touch, "weaponbox", "fwdTouch")    
     RegisterHam(Ham_Use, "func_button", "fwdUse")    
}    

public eventRoundStart(id) {    
     g_free = false   
     new i
     new maxplayers = get_maxplayers()
     for(i=1;i<= maxplayers;i++) {
      if(is_user_connected(i))
       set_task(20.0, "functask", i)
     }
}    
     
public cmdFree(id) {    
     if(timer[id] == false) {   
      if (get_pcvar_num(g_cvar_t_only) && get_user_team(id) != 1) {    
       client_print(id, print_center, "Only T can Use it!")    
       return    
      }    

      new players[32], plNum    
      get_players(players, plNum, "ace", "TERRORIST")    

      g_free = true    
      set_hudmessage(0, 255, 255, 0.02, -1.0, 0, 6.0, 12.0, 0.1, 0.2, 4)    
      show_hudmessage(id, "Free and knife!")    

      new i    
      get_players(players, plNum, "ah")    
      for (i = 0; i < plNum; i++) {    
       fm_strip_user_weapons(players[i])    
       fm_give_item(players[i], "weapon_knife")    
      }    
     }   
     else {   
      client_print(id,print_chat, "only 20 sek you can call this func")   
     }   
         
}    

public fwdTouch(ent, id) {    
     if (is_user_alive(id) && g_free)    
      return HAM_SUPERCEDE    

     return HAM_IGNORED    
}      

public fwdUse(ent, idcaller, idactivator, use_type, Float:value) {    
     if (is_user_alive(idactivator) && g_free && get_user_team(idactivator) == 1) {    
      client_print(idactivator, print_center, "You choose FreeRun!")    
      return HAM_SUPERCEDE      
     }    

     return HAM_IGNORED    
}   
public functask(id) {   
    timer[id] = true   
}


Сообщение отредактировал FreeKILL - Вторник, 12.01.2010, 21:55:38
 
Bl0kcДата: Вторник, 12.01.2010, 21:55:44 | Сообщение # 9
Полковник
Группа: Пользователи
Сообщений: 152
Репутация: 1
Статус: Не в сети
не компилится - ошибка

 
FreeKILLДата: Вторник, 12.01.2010, 22:00:00 | Сообщение # 10
Подполковник
Группа: Пользователи
Сообщений: 143
Репутация: 4
Статус: Не в сети
пробуй ещё, я исправил. тот же код

Добавлено (12.01.2010, 22:00:00)
---------------------------------------------
там же при компиляции сразу выдает строку и ошибку, и там написано что скобка непоставлена. сам немог дописать?)

 
Bl0kcДата: Вторник, 12.01.2010, 22:04:07 | Сообщение # 11
Полковник
Группа: Пользователи
Сообщений: 152
Репутация: 1
Статус: Не в сети
а теперь просто сначала раунда уже нельзя юзать =)

 
ExtasyДата: Вторник, 12.01.2010, 22:45:37 | Сообщение # 12
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 3
Статус: Не в сети
Quote (FreeKILL)
сам немог дописать?)

Есть такой контингент людей "Мне лень; Вы обязаны; Я нуб" =) Многим попрасту это не надо... печально конечно.. люди обленились..)

Добавлено (12.01.2010, 22:45:37)
---------------------------------------------

Quote (FreeKILL)
пробуй ещё, я исправил. тот же код

а это ты не дописал? а то мне в последнее время кажется, что укоз "разъедает" частично код huh ..
 
Bl0kcДата: Вторник, 12.01.2010, 22:46:03 | Сообщение # 13
Полковник
Группа: Пользователи
Сообщений: 152
Репутация: 1
Статус: Не в сети
Quote (Extasy)
Есть такой контингент людей "Мне лень; Вы обязаны; Я нуб" =) Многим попрасту это не надо... печально конечно.. люди обленились..)

нуб я в этом и что? все по началу нубы ведь


 
ExtasyДата: Вторник, 12.01.2010, 22:47:33 | Сообщение # 14
Лейтенант
Группа: Пользователи
Сообщений: 61
Репутация: 3
Статус: Не в сети
Quote (Bl0kc)
нуб я в этом и что?

Да я ни чего такого в твой адрес обидного вроде не сказал, пояснил человеку ситуацию просто
 
CLLlAgOBДата: Среда, 13.01.2010, 14:08:37 | Сообщение # 15
Полковник
Группа: Скриптеры
Сообщений: 217
Репутация: 14
Статус: Не в сети
Bl0kc, Ну тут тема помощь по скриптингу а не написание переписывание плагинов под заказ за спасибо. Если не можешь или не хочешь ничего делать пиши здачу и тебе за $ сделают.
А так я расписал что нужно сделать начинающий скриптер поймет


Сообщение отредактировал CLLlAgOB - Среда, 13.01.2010, 14:10:02
 
AMX Mod X Форум » Скриптинг » Помощь по скриптингу » Как сделать чтоб определённую команду можно было юзать (только первые например 20 секунд раунда)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024