Русское сообщество по скриптингу

Какие недочёты есть в выполнении кода?  [Решено]

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Какие недочёты есть в выполнении кода?

Сообщение [N][E][M][E][C] » 19 мар 2021, 11:50

Добрый день, подскажите правильно ли все в построении кода
Код: Выделить всё
#include <amxmodx> 
#include <ChatColor> 
 
#define PLUGIN "Advertisement" 
#define VERSION "1.0" 
#define AUTHOR "INKOGNITO" 
 
#define TASKID 555 
#define TASK_TIME 60
 
new const messeges
[][] = { 
 
"^4%s ^3- messege 1", 
 
"^3messege 2", 
 
"^4messege 3", 
 
"^3messege 4" 
} 
 
static num 
= -1; 
new IndeX
[1]; 
 
public plugin_init
() { 
 register_plugin
(PLUGIN, VERSION, AUTHOR); 
 
 set_task
(TASK_TIME.0, "task_messeges", TASKID, _, _, "b"); 
 register_message
(get_user_msgid("MOTD"), "hook_motd"); 
 server_print
("плагин PLUGIN - %s, AUTHOR : %s", PLUGIN, AUTHOR); 
} 
 
public hook_motd
(const MsgId, const MsgDest, const MsgEntity) 
 return PLUGIN_HANDLED
; 
 
public client_putinserver
(id) { 
 IndeX
[0] = id; 
 set_task
(0.1, "METOMOD", id + TASKID, IndeX, 1, "a", 1); 
} 
 
public METOMOD 
(taskID) { 
 new ID 
= IndeX[0]; 
 show_motd
(ID,"pravila.txt","VELCOM FROM SERVER"); 
} 
 
public task_messeges
(TASKid) { 
 
++num; 
 
 if
(num>charsmax(messeges)) num = 0; 
 
 new MAXPLAYRS
; 
 MAXPLAYRS 
= get_playersnum()+1; 
 
 for
(new i=1; i<MAXPLAYRS; ++i) { 
 if
(!is_user_connected(i) || is_user_bot(i) || is_user_hltv(i)) 
 return PLUGIN_HANDLED
; 
 
 new player_name
[32]; 
 get_user_name
(i, player_name, 31); 
 
 num 
== 0 ? ChatColor(i, messeges[num], player_name) : ChatColor(i, messeges[num]); 
 
} 
 return PLUGIN_CONTINUE
; 
}
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Какие недочёты есть в выполнении кода?

Сообщение RevCrew » 19 мар 2021, 15:53

код гавно
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Какие недочёты есть в выполнении кода?

Сообщение [N][E][M][E][C] » 19 мар 2021, 16:30

Это все что ты можешь написать?) С учетом, что первый раз букварь открыл недели три назад, а ты 8 лет))
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Какие недочёты есть в выполнении кода?

Сообщение RSO_ » 19 мар 2021, 17:30

от него гавной вонаэт

я не чего не понял просто так написал
вроде бы чуть перемудрено. а нельзя по проще сделать например игрок выбрал команду или заспавнелся и show_motd(ID,"pravila.txt","VELCOM FROM SERVER");
если ошибки не вызывает то не страшно. нужно тестит и будет понятно естественно с людьми или ботов приспособить
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Какие недочёты есть в выполнении кода?

Сообщение [N][E][M][E][C] » 19 мар 2021, 18:02

Да все работает, просто интересно как не говно писать, учусь же

Добавлено спустя 2 минуты 57 секунд:
А зачем при спавне мне каждый раз мод окно? Я заблочил стандартное и подставил свое, через таск сделал потому что , оно не срабатывает сразу после путинсервер, срабатывает через 0, 1 секунду
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Какие недочёты есть в выполнении кода?

Сообщение RSO_ » 19 мар 2021, 18:12

а этому RevCrew гражданину возможно это get_playersnum не нравится Вы должны зарегистрироваться, чтобы видеть ссылки.


Добавлено спустя 7 минут 19 секунд:
можно например при спавне 1-н раз открывать "булевы переменные используют для этого часто"

new on_off[32] = 1

if(on_off[id] == 1)
{
on_of[id] = 0
show_motd(ID,"pravila.txt","VELCOM FROM SERVER");
}

и под тестом я имел веду хорошо подумать в какой момент плагин может сломаться
любой мод найди и посмотри сколько там исправлений. чем больше кода тем больше ошибок
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Какие недочёты есть в выполнении кода?

Сообщение [N][E][M][E][C] » 19 мар 2021, 18:39

вы просто ответ дайте, чем то что я написал плохо

Добавлено спустя 2 минуты 3 секунды:
И как я могу откпыть свое мод окно, если открывает стандартное, если как вариант изменить мод окно на месте, не вписывать код
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Какие недочёты есть в выполнении кода?

Сообщение RSO_ » 19 мар 2021, 22:17

я тоже учусь
просто это глянь и всё Вы должны зарегистрироваться, чтобы видеть ссылки.
слава великой сонтаранской империи !
Аватара пользователя
RSO_
 
Сообщения: 280
Зарегистрирован: 20 окт 2019, 21:40
Откуда: от верблюда
Благодарил (а): 45 раз.
Поблагодарили: 20 раз.
Опыт программирования: Меньше недели
Языки программирования: . . . 100 ISQ

Re: Какие недочёты есть в выполнении кода?

Сообщение [N][E][M][E][C] » 19 мар 2021, 22:52

Можно конечно заменить get_playersnum на get_players, что бы потом в цикле не делать проверки на ботов шлтв и коннект.
А на счет MOD.... , оно и так таском выпонит раз и все, я искал другие варианты на форуме, но что то не нашел
Аватара пользователя
[N][E][M][E][C]
 
Сообщения: 641
Зарегистрирован: 14 фев 2021, 10:48
Благодарил (а): 50 раз.
Поблагодарили: 89 раз.
Опыт программирования: Около года
Языки программирования: Нуждаюсь в помощи

Re: Какие недочёты есть в выполнении кода?  [Решено]

Сообщение liFe iS GoOD » 20 мар 2021, 20:58

vitalik19842105, ну нельзя get_playersnum использовать для цикла по игрокам. Данная функция возвращает количество игроков в данный момент на сервере.

Предоставьте, что на сервере 24 слота и в один прекрасный момент они заполнились.
Каждый игрок уже получил свой идентификатор от 1 до 24, после чего , например, сервер покинуло 8 игроков с идентификаторами в интервале от 1 до 8. В результате мы имеем на сервере 16 игроков, диапазон идентификаторов у которых от 9 до 24.

Внимание вопрос: как Вы пройдетесь по ним циклом, если get_playersnum вернет значение в 16 и цикл будет от 1 до 16 ?

Ответ: Никак. Для решения проблемы можно использовать функцию get_maxplayers , она вернет максимально допустимое количество игроков на сервере , в нашем случае 24.
Аватара пользователя
liFe iS GoOD
Модератор
 
Сообщения: 1416
Зарегистрирован: 24 май 2012, 19:48
Благодарил (а): 116 раз.
Поблагодарили: 472 раз.

След.

Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5