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

Не считывается значение квара из конфига  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

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

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

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Не считывается значение квара из конфига  [Решено]

Сообщение EbGiK » 10 сен 2017, 11:53

Не считывается значение квара из конфига в flag, что не так?

test.cfg
TEST "k"
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#define FILE_CFG "addons/amxmodx/data/test.cfg"

new iTest

public plugin_init
() {
    iTest = register_cvar( "TEST", "h");
    
    start
()
}



public start(){
    new flag[2]
// и так пробывал 
//server_cmd("FILE_CFG")
    server_cmd("exec %s", FILE_CFG)
    get_pcvar_string(iTest, flag, charsmax(flag))
    log_amx("flag = %s", flag)
}
Аватара пользователя
EbGiK
 
Сообщения: 180
Зарегистрирован: 05 фев 2016, 16:40
Предупреждения: 1
Благодарил (а): 40 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Не считывается значение квара из конфига

Сообщение Subb98 » 10 сен 2017, 12:11

Попробуйте перенести функцию start в plugin_cfg
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 4843
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1273 раз.
Поблагодарили: 2186 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Не считывается значение квара из конфига

Сообщение Dart_Begep » 10 сен 2017, 12:21

EbGiK, есть два варианта:
1) После server_cmd поставьте команду server_exec() :
Код: Выделить всё
public start(){
    new flag[2]
    server_cmd("exec %s", FILE_CFG)
    server_exec() // форсирует исполнение server_cmd
    get_pcvar_string(iTest, flag, charsmax(flag))
    log_amx("flag = %s", flag)

2) Считывайте переменную позже, например определяйте cvar и запускайте конфиг в plugin_init, а считывайте в plugin_cfg. Или позже, в процессе игры.
Последний раз редактировалось Dart_Begep 10 сен 2017, 21:10, всего редактировалось 1 раз.
Аватара пользователя
Dart_Begep
 
Сообщения: 83
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript

Re: Не считывается значение квара из конфига

Сообщение EbGiK » 10 сен 2017, 12:55

Попробуйте перенести функцию start в plugin_cfg

странно, я делал в своей программе тоже самое, не работало, думаю спрошу, может что не так делаю, написал сразу на форум не проверяя тестовый файл, как обычно, все работает :(
Ладно спасибо, значит просто где то что то по невнимательности не то написал

Без server_exec() не работает в программе(не про тестовую), а тут почему то норм
2) Считывайте переменную позже, например определяйте cvar и запускайте конфиг в plugin_cfg, а считывайте в plugin_init. Или позже, в процессе игры.

Что то наоборот написали помойму
пишите считывайте в plugin_init, а запускать конфиг в plugin_cfg, так plugin_init раньше вызывается, чем plugin_cfg
Я наоборот сделал, заработало без server_exec()

Так почему в программе, которую я выложил работает БЕЗ server_exec()?
Аватара пользователя
EbGiK
 
Сообщения: 180
Зарегистрирован: 05 фев 2016, 16:40
Предупреждения: 1
Благодарил (а): 40 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Не считывается значение квара из конфига

Сообщение RevCrew » 10 сен 2017, 15:30

EbGiK,
Так почему в программе, которую я выложил работает БЕЗ server_exec()?

Надеюсь вы тестили тоже только на одном кваре, как в тестовой проге?
Skype revcrew77
https://vk.com/cssuite
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1354
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 240 раз.
Поблагодарили: 276 раз.
Языки программирования: Unkown

Re: Не считывается значение квара из конфига

Сообщение Dart_Begep » 10 сен 2017, 21:10

EbGiK, верно, я наоборот написал, поспешил... Спасибо!
А без server_exec работает, потому-что запуск конфига и считывание cvar-а разделены во времени.
Аватара пользователя
Dart_Begep
 
Сообщения: 83
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 10 раз.
Поблагодарили: 21 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript

Re: Не считывается значение квара из конфига

Сообщение EbGiK » 11 сен 2017, 02:51

Надеюсь вы тестили тоже только на одном кваре, как в тестовой проге?

да, норм тестил
А без server_exec работает, потому-что запуск конфига и считывание cvar-а разделены во времени.

так вот именно не разделены, они в одной функции выполняются друг за другом
Код: Выделить всё
    server_cmd("exec %s", FILE_CFG)
    get_pcvar_string(iTest, flag, charsmax(flag))
Аватара пользователя
EbGiK
 
Сообщения: 180
Зарегистрирован: 05 фев 2016, 16:40
Предупреждения: 1
Благодарил (а): 40 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead


Вернуться в Скриптинг

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

Сейчас этот форум просматривают: Bing [Bot] и гости: 6