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

Ошибка при работе с geoip

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

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

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

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

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

Ошибка при работе с geoip

Сообщение Gazon » 07 авг 2022, 00:25

Всем привет, помогите кто-нибудь исправить ошибку.
Сделал плагин для теста, залил БД стран (GeoLite2-Country.mmdb).

При включении сервера в консоли ругается на функцию geoip_country_ex:

[AMXX] Plugin "geolocation.amxx" failed to load: Plugin uses an unknown function (name "geoip_country_ex") - check your modules.ini.


meta list:
Код: Выделить всё
[ 1] AMX Mod X RUN - amxmodx_mm.dll v1.9.0.5 ini Start ANY
[ 2] dproto_EF RUN - dproto.dll v0.9.582 ini Start Never
[ 3] Ham Sandwich RUN - hamsandwich_amxx v1.9.0.5 pl1 ANY ANY
[ 4] CSX RUN - csx_amxx.dll v1.9.0.5 pl1 ANY ANY
[ 5] GeoIP RUN - geoip_amxx.dll v1.9.0.5 pl1 ANY ANY
5 plugins
, 5 running


amxx modules:
Код: Выделить всё
[ 1] Ham Sandwich 1.9.0.5294 AMX Mod X Dev Team running
[ 2] CSX 1.9.0.5294 AMX Mod X Dev Team running
[ 3] GeoIP 1.9.0.5294 AMX Mod X Dev Team running
3 modules
, 3 correct


AmxModX 1.9.0 ReHLDS :crazy:

И сам плагин:
Код: Выделить всё
#pragma semicolon 1

#include <amxmodx>
#include <geoip>


public plugin_init()
{
    register_plugin("Geolocation", "1.0", "Hozon");
    register_clcmd("get_geolocation", "func_GetMyGeolocation");
}

public func_GetMyGeolocation(id)
{
    new szIp[18];
    get_user_ip(id, szIp, charsmax(szIp), 1);
    
    new szCountry
[64];
    geoip_country_ex(szIp, szCountry, charsmax(szCountry), 0);
    
    client_print_color
(id, print_team_default, "^1[^4Geolocation^1] Игрок ^3%n^1, страна: ^4%s^1", id, szCountry);
    
    return PLUGIN_HANDLED
;
}
 


p.s. перешёл на модуль sxgeo, там всё нормально, но всё равно хотелось бы узнать способы решения данной проблемы
Аватара пользователя
Gazon
 
Сообщения: 63
Зарегистрирован: 26 авг 2019, 00:15
Благодарил (а): 6 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: JavaScript
Pawn

Re: Ошибка при работе с geoip

Сообщение Fedcomp » 14 авг 2022, 18:12

Очевидно из ошибки что amxx плагин пытается вызвать функцию из amxx модуля geoip_amxx.dll которой там не анонсировано. Говоря проще - либо вызываешь не то, либо модуль кривой.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


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


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

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

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