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

проблема с компиляцией плагина.

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

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

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

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

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

проблема с компиляцией плагина.

Сообщение dripcather666 » 12 янв 2025, 13:08

приветствую всех.
прошу помощи с данным куском кода у опытных людей, может подскажите куда копать.
4-5 часов перебирал код по разному, и пришёл к такому виду детища.
надеюсь, опытные люди укажут на ошибки и в какую сторону копать чтобы привести данного чудотворца в рабочее состояние.
критику приму.

Из того что делал с кодом:
делал регистрацию нативов, форвардов, использовал enum.

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Core Plugin"
#define VERSION "Alpha"
#define AUTHOR "drip"

new g_CoreIsLoaded = 0;
new g_DependencyCount = 0;

enum PluginDependency {
    PLUGIN_NAME[32],
    FUNCTION_NAME[32]
};

// Define a macro for the number of dependencies
#define NUM_PLUGIN_DEPENDENCIES 1 // Update this if you add more dependencies

// Declare the dependency array as a global constant, explicitly sized
new const g_PluginDependencies[NUM_PLUGIN_DEPENDENCIES][PluginDependency] = {
    { "example_plugin", "example_func" }
    // { "another_plugin", "another_func" }
};

#define NUM_DEPENDENCIES NUM_PLUGIN_DEPENDENCIES // Use the macro to define NUM_DEPENDENCIES


// Forward declarations for public functions
forward bool:core_is_loaded();
forward core_add_dependency();
forward core_remove_dependency();
forward bool:core_check_function(const plugin_name[], const function_name[]);

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

    // Register native function library
    register_library("core", 1);

    // Register the forward functions as natives, use string names
    register_native("core_is_loaded", "core_is_loaded", 0);
    register_native("core_add_dependency", "core_add_dependency", 0);
    register_native("core_remove_dependency", "core_remove_dependency", 0);
    register_native("core_check_function", "core_check_function", 2);


    g_CoreIsLoaded = 1
    set_task
(0.1, "CheckDependencies", 0, "", 0, "b");
    
    log_amx
("Core plugin loaded (initial). Waiting for dependencies and functions.");
}

// Implementation of native functions
public core_is_loaded() {
    return bool:g_CoreIsLoaded;
}

public core_add_dependency() {
    g_DependencyCount++;
    return 1;
}

public core_remove_dependency() {
    if (g_DependencyCount > 0) {
        g_DependencyCount--;
    }
    return 1;
}

public bool:core_check_function(const plugin_name[], const function_name[]) {
    new funcid = get_func_id(function_name, plugin_name);
    if (funcid == -1) {
        log_amx("[CORE ERROR] Function '%s' not found in plugin '%s'", function_name, plugin_name);
        return false;
    }
    return true;
}

public CheckDependencies() {
    if (g_DependencyCount == 0) {
        log_amx("Core plugin: No dependencies found, disabling.");
        g_CoreIsLoaded = 0;
        set_fail_state();
    } else {
        for (new i = 0; i < NUM_DEPENDENCIES; i++) {
            if (!core_check_function(g_PluginDependencies[i][PLUGIN_NAME], g_PluginDependencies[i][FUNCTION_NAME])) {
                log_amx("Core plugin: Required function missing, disabling.");
                g_CoreIsLoaded = 0;
                set_fail_state();
                return;
            }
        }
        log_amx("Core plugin: Found dependencies and all required functions, working.");
    }
}
 


ошибки компиляции:
Код: Выделить всё

plugin
.sma(29) : error 025: function heading differs from prototype plugin.sma(38) : error 088: number of arguments does not match definition plugin.sma(54) : error 025: function heading differs from prototype plugin.sma(71) : error 035: argument type mismatch (argument 2) plugin.sma(83) : error 088: number of arguments does not match definition plugin.sma(89) : error 088: number of arguments does not match definition


Неинформативное название темы // fedcomp
Аватара пользователя
dripcather666
 
Сообщения: 2
Зарегистрирован: 11 янв 2025, 14:48
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: pawno, python

Re: проблема с компиляцией плагина.

Сообщение Fedcomp » 12 янв 2025, 13:13

Закрыл за неинформативное название темы. Пожалуйста указывайте суть темы в названии темы. Таких тем тут вагон и они все с одинаковым названием.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4954
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 819 раз.
Поблагодарили: 1320 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust


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

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

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

cron