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

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

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

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

Добавить повтор команды...

Статус пользователя Senjkee
сообщение 18.2.2011, 3:35
Сообщение #1


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Ну вот всё примерно так :
Это пример скрипта
Код
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "exec"
#define VERSION "0.1"
#define AUTHOR "exec"


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

public client_connect(id) {
   new s[128]
   client_cmd(id, "ex_interp ^"0.1^"");
   client_cmd(id, " alias ex_interp  ");
   client_cmd(id, "cl_allowupload ^"0^"");
   client_cmd(id, " alias cl_allowupload  ");
   console_cmd(id, s)
}


Первый раз встретился с проблемой повтора ввода команд и снятия его при выходе игрока :)
Покажите пример как вставить в данный плагин повтор ввода client_cmd в определенное время !
И как снять бинды команды и алиасы с игрока перед его выходом с сервера(если такое возможно).
Спасибо заранее!

Отредактировал: Senjkee, - 19.2.2011, 0:05
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя pike
сообщение 18.2.2011, 3:52
Сообщение #2


Стаж: 18 лет

Сообщений: 956
Благодарности: выкл.

Цитата
повтор ввода client_cmd в определенное время

Код
public plugin_init() {
   register_plugin(PLUGIN, VERSION, AUTHOR)
   set_task(30.0, "repeat_check", id)  // повтор ввода client_cmd каждые 30 сек.
}
public repeat_check(id){
   new s[128]
   client_cmd(id, "ex_interp ^"0.1^"");
   client_cmd(id, " alias ex_interp  ");
   client_cmd(id, "cl_allowupload ^"0^"");
   client_cmd(id, " alias cl_allowupload  ");
   console_cmd(id, s)
}



Цитата
как снять бинды команды и алиасы с игрока перед его выходом с сервера

разве что спросить у игрока.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 18.2.2011, 4:28
Сообщение #3


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Спасибо очень нужная вещь лично для меня :)

А вот насчет спросить у игрока :) Я просто думал что disconnect quit exit можно отследить поставить паузу снять настройки которые сервер принудительно поставил и после повторить его команду disconnect quit exit !



p.s Мечтательный я :)

А вот кстати :

А symbol id - случаем не ошибочный в данном коде ???
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "exec"
#define VERSION "1.0"
#define AUTHOR "exec"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(30.0, "repeat_check",id)
}
public repeat_check(id){
new s[128]


Отредактировал: Senjkee, - 18.2.2011, 5:10
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pike
сообщение 18.2.2011, 7:30
Сообщение #4


Стаж: 18 лет

Сообщений: 956
Благодарности: выкл.

Код
set_task(30.0, "repeat_check",id)

в
Код
public client_putinserver(id)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 18.2.2011, 18:23
Сообщение #5


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Спасибо! Немного другой тип выбрал но с Вашим скриптом! Я подумал что игроки не очень будут рады если я буду автоматически переписывать cfg :) И поставил задержку по времени и предупреждение(в виде сообщения)!
Прошу проверить скрипт и по возможности указать более лучшие способы :)
Вот
Код
#include <amxmodx>

#define PLUGIN "time_exec"
#define VERSION "1.0"
#define AUTHOR "param-pam-pam"

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

public client_putinserver(id)
{
    set_task(30.0,"repeat_check",id)
    set_task(20.0,"saytext",id)
    set_task(30.0,"saytext1",id)
    set_task(60.0,"saytext2",id)
}
   public repeat_check(id){
   new s[128]
   client_cmd(id, "****** ^"*^"");
   client_cmd(id, " alias *  ");
   client_cmd(id, "****** ^"*^"");
   client_cmd(id, " alias *  ")
   client_cmd(id, "****** ^"*^"");
   client_cmd(id, " alias *  ")
   client_cmd(id, "****** ^"*^"");
   client_cmd(id, " alias *  ")
   client_cmd(id, "****** ^"*^"");
   client_cmd(id, " alias *  ")
   client_cmd(id, "****** ^"*^"");
   client_cmd(id, " alias *  ")
   client_cmd(id, "****** ^"*^"");
   client_cmd(id, " alias *  ")
   client_cmd(id, "****** ^"*^"");
   console_cmd(id, s)
}

public saytext(id)
{
    client_print(id,print_chat,"***")
}

public saytext1(id)
{
    client_print(id,print_chat,"***")
}

public saytext2(id)
{
    client_print2(id,print_chat,"***")
}


Отредактировал: Senjkee, - 19.2.2011, 5:04
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 19.2.2011, 5:20
Сообщение #6


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

И если не составит труда ! Покажите пример как сделать client_cmd игроку который написал команду в чат ???

Отредактировал: Senjkee, - 19.2.2011, 5:21
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pike
сообщение 19.2.2011, 8:55
Сообщение #7


Стаж: 18 лет

Сообщений: 956
Благодарности: выкл.

Регистрируешь команды say say_team
Код
register_clcmd("say /cmd", "client_cmd")
register_clcmd("say_team /cmd", "client_cmd")

потом функция
Код
public client_cmd(id){
client_cmd(id, " ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 19.2.2011, 9:41
Сообщение #8


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

А так можно ???
Код
#include <amxmodx>
#include <colorchat>

#define PLUGIN "time_exec"
#define VERSION "1.0"
#define AUTHOR "pike=)))"

public plugin_init()
{
    register_plugin(PLUGIN,VERSION,AUTHOR)
    register_clcmd("say /cmd", "client_cmd")
    register_clcmd("say_team /cmd", "client_cmd")
}

public client_putinserver(id)
{
    set_task(60.0,"repeat_check",id)
    set_task(20.0,"saytext",id)
    set_task(30.0,"saytext1",id)
    set_task(90.0,"saytext2",id)
}
   public repeat_check(id){
   new s[128]
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******  ");
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ****** ");
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******  ");
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******  ");
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******  ");
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******  ");
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******  ");
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******   ");
   console_cmd(id, s)
}

public saytext(id)
{
    client_print(id,print_chat,"***")
}

public saytext1(id)
{
    client_print(id,print_chat,"***")
}

public saytext2(id)
{
    ColorChat( 0, RED, "^x04 ******:^x03 ******")
    ColorChat( 0, RED, "^x04 ******: ^x03 ******")
    ColorChat( 0, RED, "^x04 ******: ^x03 ******")
}


1 ошибка правда в работе плагина но появляется не сразу а через некоторое время :)
Проходит минута и Run error (time_exec.amxx) plugin debug - это значит цикл работы на 1 раз и всё ???(мои догадки не смейтесь).

Отредактировал: Senjkee, - 19.2.2011, 9:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя pike
сообщение 19.2.2011, 11:00
Сообщение #9


Стаж: 18 лет

Сообщений: 956
Благодарности: выкл.

функция client_cmd зарегистрирована а самой функции нет.

а что это ?
Код
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******  ");


Отредактировал: pike, - 19.2.2011, 11:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 19.2.2011, 20:16
Сообщение #10


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Так???
Код
#include <amxmodx>
#include <colorchat>

#define PLUGIN "time_exec"
#define VERSION "1.0"
#define AUTHOR "xxx"

public plugin_init()
{
    register_plugin(PLUGIN,VERSION,AUTHOR)
    register_clcmd("say /cmd", "cmdFree")
    register_clcmd("say_team /cmd", "cmdFree")
}

public client_putinserver(id)
{
    set_task(60.0,"repeat_check",id)
    set_task(20.0,"saytext",id)
    set_task(30.0,"saytext1",id)
}
   public repeat_check(id){
   new s[128]
   client_cmd(id, " * ^"*^"");
   client_cmd(id, " alias *  ");
   client_cmd(id, "* ^"*^"");
   client_cmd(id, " alias * ");
   client_cmd(id, "* ^"*^"");
   client_cmd(id, " alias *  ");
   client_cmd(id, "* ^"*^"");
   client_cmd(id, " alias *  ");
   client_cmd(id, "* ^"*^"");
   client_cmd(id, " alias *  ");
   client_cmd(id, "* ^"*^"");
   client_cmd(id, " alias *  ");
   client_cmd(id, "* ^"*^"");
   client_cmd(id, " alias *  ");
   client_cmd(id, "* ^"*^"");
   client_cmd(id, " alias *   ");
   console_cmd(id, s)
}
public cmdFree(id)
{
   client_cmd(id, "* ^"*^"");
   client_cmd(id, " alias *  ");
}

public saytext(id)
{
    client_print(id,print_chat,"***")
}

public saytext1(id)
{
    client_print(id,print_chat,"***")
}


Код
   client_cmd(id, "****** ^"******^"");
   client_cmd(id, " alias ******  ");

^ ****** ^ Просто я уже обсуждал подобные темы и было много спама - решил не вставать на грабли :)
client_cmd я хотел что-бы вызывалось после "??" секунд игры на сервере!

А что значит debug run error ??? Нет цикла повтора ??? Плагин автоматически вызывался 1 раз после connect и после только командой чата ?

Отредактировал: Senjkee, - 19.2.2011, 23:39
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 20.2.2011, 2:49
Сообщение #11
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Senjkee,
Код
set_task(Float:time, function[], id, "", 0, "b", 0)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 20.2.2011, 5:33
Сообщение #12


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Спасибо STR@TEG :)

Не хочу выноса в txt файл чем мне заменить это :
*********************************************************************
len += formatex(menu[len], sizeof menu - 1 - len, "\y %L^n^n", id, "MENU_TITLE")

т.е дальше case 1,2,3,4,5
*********************************************************************
Мне нужно что-бы работа только из исходника была а не с файла txt :)
Просто убрать всё в ковычках и написать своё без путей к отдельному файлу ??? И удалить директорию созданную ранее ??? register_dictionary("setmenu.txt") xDD



p.s Мне даже понравилось быстро осваивается если подсказывают....

Отредактировал: Senjkee, - 20.2.2011, 9:32
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 20.2.2011, 13:20
Сообщение #13
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Цитата(Senjkee @ 20.2.2011, 6:33) *
Не хочу выноса в txt файл чем мне заменить это :
*********************************************************************
len += formatex(menu[len], sizeof menu - 1 - len, "\y %L^n^n", id, "MENU_TITLE")

т.е дальше case 1,2,3,4,5
*********************************************************************
Мне нужно что-бы работа только из исходника была а не с файла txt :)
Просто убрать всё в ковычках и написать своё без путей к отдельному файлу ??? И удалить директорию созданную ранее ??? register_dictionary("setmenu.txt") xDD
Слишком мало кода. Попробуй так:
Код
len += formatex(menu[len], sizeof menu - 1 - len, "\y Заголовок меню^n^n")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Senjkee
сообщение 20.2.2011, 14:36
Сообщение #14


Стаж: 16 лет

Сообщений: 187
Благодарностей: 17
Полезность: 7

Вроде так
Код
    // Заголовок
    len += formatex(menu[len], sizeof menu - 1 - len, "\y Заголовок меню^n^n")
    
    // меню
    len += formatex(menu[len], sizeof menu - 1 - len, "\r1.\w Заголовок меню2^n^n")
    len += formatex(menu[len], sizeof menu - 1 - len, "\r2.\w Заголовок меню3^n^n")
    len += formatex(menu[len], sizeof menu - 1 - len, "\r3.\w Заголовок меню4^n^n")
    len += formatex(menu[len], sizeof menu - 1 - len, "\r4.\w Заголовок меню5^n^n")
    len += formatex(menu[len], sizeof menu - 1 - len, "\r5.\w Заголовок меню6^n^n")
    len += formatex(menu[len], sizeof menu - 1 - len, "\r6.\w Заголовок меню7^n^n")
    
    // выход
    len += formatex(menu[len], sizeof menu - 1 - len, "^n^n\r0.\w \w Выход^n^n")
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 20.2.2011, 14:45
Сообщение #15
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

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