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

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

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

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

Ошибка при компиляции плагина

Статус пользователя ex3m777
сообщение 1.3.2014, 17:37
Сообщение #1


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Ошибка при компиляции плагина VSTranslateAdminFlags

Скрин


Код плагина
Код:
/* VSTranslateAdminFlags v1.5

Description:
Translates admins flags in the flags of VS
Cvars:
vs_translate_flags - Defines the rules translate flags
Notes:
Format rule: <admin flags> <system flags>;
You can register multiple rules.
*/

#include <amxmodx>
#include <VIPSystem>

new cvarTranslateFlags;

new Array:adminFlagsArray;
new Array:vsFlagsArray;
new translateNumber = 0;

public plugin_init()
{
register_plugin("VSTranslateAdminFlags", "1.5", "ZETA [M|E|N]");

cvarTranslateFlags = register_cvar("vs_translate_flags", "m a;sqrt abcdefghijklmnopqrstuvwxyz;");
}

public plugin_precache()
{
adminFlagsArray = ArrayCreate(1, 1);
vsFlagsArray = ArrayCreate(1, 1);
}

public plugin_cfg()
{
new left[200], right[200];
get_pcvar_string(cvarTranslateFlags, right, charsmax(right));

new adminFlags[27], vsFlags[27];
do
{
strtok(right, left, charsmax(left), right, charsmax(right), ';');

parse(left, adminFlags, charsmax(adminFlags), vsFlags, charsmax(vsFlags));
ArrayPushCell(adminFlagsArray, read_flags(adminFlags));
ArrayPushCell(vsFlagsArray, VSStrToFlags(vsFlags));
++translateNumber;

}
while(strlen(right) > 0)
}

public client_putinserver(id)
{
set_task(1.0, "TranslateFlags", id);
}

public client_infochanged(id)
{
new newname[32], oldname[32];
get_user_name(id, oldname, charsmax(oldname));
get_user_info(id, "name", newname, charsmax(newname));

if (!equal(newname, oldname))
{
TranslateFlags(id);
}
}

public TranslateFlags(id)
{
new adminFlags, vsFlags;
for (new i = 0; i < translateNumber; i++)
{
adminFlags = ArrayGetCell(adminFlagsArray, i);
vsFlags = ArrayGetCell(vsFlagsArray, i);

if (get_user_flags(id) & adminFlags)
{
VSAddVipFlags(id, vsFlags);
}
}
}


VIPSystem
Код:
/* Флаги доступа */
#define VIP_FLAG_ALL 0 // Любой флаг
#define VIP_FLAG_A (1<<0) // Флаг "a"
#define VIP_FLAG_B (1<<1) // Флаг "b"
#define VIP_FLAG_C (1<<2) // Флаг "c"
#define VIP_FLAG_D (1<<3) // Флаг "d"
#define VIP_FLAG_E (1<<4) // Флаг "e"
#define VIP_FLAG_F (1<<5) // Флаг "f"
#define VIP_FLAG_G (1<<6) // Флаг "g"
#define VIP_FLAG_H (1<<7) // Флаг "h"
#define VIP_FLAG_I (1<<8) // Флаг "i"
#define VIP_FLAG_J (1<<9) // Флаг "j"
#define VIP_FLAG_K (1<<10) // Флаг "k"
#define VIP_FLAG_L (1<<11) // Флаг "l"
#define VIP_FLAG_M (1<<12) // Флаг "m"
#define VIP_FLAG_N (1<<13) // Флаг "n"
#define VIP_FLAG_O (1<<14) // Флаг "o"
#define VIP_FLAG_P (1<<15) // Флаг "p"
#define VIP_FLAG_Q (1<<16) // Флаг "q"
#define VIP_FLAG_R (1<<17) // Флаг "r"
#define VIP_FLAG_S (1<<18) // Флаг "s"
#define VIP_FLAG_T (1<<19) // Флаг "t"
#define VIP_FLAG_U (1<<20) // Флаг "u"
#define VIP_FLAG_V (1<<21) // Флаг "v"
#define VIP_FLAG_W (1<<22) // Флаг "w"
#define VIP_FLAG_X (1<<23) // Флаг "x"
#define VIP_FLAG_Y (1<<24) // Флаг "y"
#define VIP_FLAG_Z (1<<25) // Флаг "z"

/* Возвращает 1, если игрок вип, в противном случае 0 */
native VSGetUserVip(id)

/* Возвращает 1, если игрок имеет указанный флаг, в противном случае 0 */
native VSGetVipFlag(id, flag)

/* Возвращает флаги игрока в виде битовой последовательности */
native VSGetVipFlags(id)

/* Регистрирует новую возможность
Параметры:
name - название возможности
flag - флаг доступа
Возвращает:
id возможности
*/
native VSRegisterItem(name[], flag)

/* Возвращает 1, если привилегия активна, в противном случае 0 */
native VSGetItemState(id)

/* Активирует привилегию в меню */
native VSEnableItem(id)

/* Отключает привилегию в меню */
native VSDisableItem(id)

/* Устанавливает название привилегии в меню */
native VSSetItemName(id, name[])

/* Событие выбора возможности */
forward VSItemSelected(id, itemid)

/* Событие подключения випа */
forward VSVipConnect(id)

/* Событие открытия меню */
forward VSOpeningMenu(id)


В чем может быть проблема?


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя TarikYuzkiv
сообщение 1.3.2014, 17:40
Сообщение #2
Стаж: 13 лет

Сообщений: 509
Благодарностей: 196
Полезность: 635

Инклюд закинули?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 1.3.2014, 17:42
Сообщение #3


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Цитата(TarikYuzkiv @ 1.3.2014, 19:40) *
Инклюд закинули?

если ты про VIPSystem.inc то да


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fintok
сообщение 1.3.2014, 17:50
Сообщение #4


Стаж: 16 лет

Сообщений: 756
Благодарностей: 294
Полезность: 638

На, вот новый инклюд
VIPSystem.inc
Код:
/* VIPSystem API v1.5 */

/* Флаги доступа */
#define VIP_FLAG_ALL 0 // Любой флаг
#define VIP_FLAG_A (1<<0) // Флаг "a"
#define VIP_FLAG_B (1<<1) // Флаг "b"
#define VIP_FLAG_C (1<<2) // Флаг "c"
#define VIP_FLAG_D (1<<3) // Флаг "d"
#define VIP_FLAG_E (1<<4) // Флаг "e"
#define VIP_FLAG_F (1<<5) // Флаг "f"
#define VIP_FLAG_G (1<<6) // Флаг "g"
#define VIP_FLAG_H (1<<7) // Флаг "h"
#define VIP_FLAG_I (1<<8) // Флаг "i"
#define VIP_FLAG_J (1<<9) // Флаг "j"
#define VIP_FLAG_K (1<<10) // Флаг "k"
#define VIP_FLAG_L (1<<11) // Флаг "l"
#define VIP_FLAG_M (1<<12) // Флаг "m"
#define VIP_FLAG_N (1<<13) // Флаг "n"
#define VIP_FLAG_O (1<<14) // Флаг "o"
#define VIP_FLAG_P (1<<15) // Флаг "p"
#define VIP_FLAG_Q (1<<16) // Флаг "q"
#define VIP_FLAG_R (1<<17) // Флаг "r"
#define VIP_FLAG_S (1<<18) // Флаг "s"
#define VIP_FLAG_T (1<<19) // Флаг "t"
#define VIP_FLAG_U (1<<20) // Флаг "u"
#define VIP_FLAG_V (1<<21) // Флаг "v"
#define VIP_FLAG_W (1<<22) // Флаг "w"
#define VIP_FLAG_X (1<<23) // Флаг "x"
#define VIP_FLAG_Y (1<<24) // Флаг "y"
#define VIP_FLAG_Z (1<<25) // Флаг "z"

/* Возвращает 1, если игрок вип, в противном случае 0 */
native VSGetUserVip(id)

/* Возвращает 1, если игрок имеет указанный флаг, в противном случае 0 */
native VSGetVipFlag(id, flag)

/* Возвращает флаги игрока, в виде битовой последовательности */
native VSGetVipFlags(id)

/* Регистрирует новую возможность
Параметры:
name - название возможности
flag - флаг доступа
Возвращает:
id возможности
*/
native VSRegisterItem(name[], flag)

/* Возвращает 1, если привилегия активна, в противном случае 0 */
native VSGetItemState(id)

/* Активирует привилегию в меню */
native VSEnableItem(id)

/* Отключает привилегию в меню */
native VSDisableItem(id)

/* Устанавливает название привилегии в меню */
native VSSetItemName(id, name[])

/* Добавляет флаги игроку */
native VSAddVipFlags(id, flags)

/* Событие выбора возможности */
forward VSItemSelected(id, itemid)

/* Событие подключения випа */
forward VSVipConnect(id)

/* Событие открытия меню */
forward VSOpeningMenu(id)

/* Преобразует строку во флаги, в виде битовой последовательности */
stock VSStrToFlags(const str[])
{
new bin = 0;
new len = strlen(str);

for (new i = 0; i < len; ++i)
{
bin |= (1<<(str[i] - 'a'));
}

return bin;
}

/* Преобразует флаги в строку */
stock VSFlagsToStr(const bits, str[])
{
new ch[2];

for (new i = 0, len = 0; i < 27; ++i)
{
if (bits & (1<<i))
{
format(ch, charsmax(ch), "%c", (i + 'a'));
strcat(str, ch, ++len);
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 1.3.2014, 18:12
Сообщение #5


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Такое так же бывает, если пытаешь скомпилировать в amx под win исходник в кодировке UTF-8 без BOM.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 2.3.2014, 17:00
Сообщение #6


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Теперь новая проблема, плагин не запускается из-за отсутствующей функции



Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Fintok
сообщение 4.3.2014, 18:24
Сообщение #7


Стаж: 16 лет

Сообщений: 756
Благодарностей: 294
Полезность: 638

grishka444, смею предположить вы используете VIPSystem v1.4, а для этого плагина нужно v1.5
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ex3m777
сообщение 4.3.2014, 22:09
Сообщение #8


Стаж: 13 лет
Город: Москва

Сообщений: 2037
Благодарностей: 1135
Полезность: 968

Меценат Меценат

Цитата(Fintok @ 4.3.2014, 20:24) *
grishka444, смею предположить вы используете VIPSystem v1.4, а для этого плагина нужно v1.5

искал в гугле версию 1.5 не нашел, может кто-то знает в чем проблема?

Цитата("ex3m777")
Цитата("ZETA")
Некоторые люди хотели, чтобы админы имели вип привилегии без регистрации випа. Этот плагин дает опеределенные VS флаги по определенным флагам админов.

Например, по умолчанию стоит vs_translate_flags "m a;sqrt abcdefghijklmnopqrstuvwxyz;"

Если админ имеет флаг m, то у него будет VS флаг a
Если админ имеет флаги sqrt, то у него будут флаги abcdefghijklmnopqrstuvwxyz системы.

Формат правила: <флаги админа> <флаги системы>;


Код
[AMXX] Plugin "VSTranslateAdminFlags.amxx" failed to load: Plugin uses an unknown function (name "VSAddVipFlags") - check your modules.ini.


Код
L 03/02/2014 - 16:31:10: LoadVipList(): Invalid format registration (vs_translate_flags "m a;sqrt abcdefghijklmnopqrstuvwxyz;").


VIPSystem.inc
Код:
/* VIPSystem API v1.5 */

/* Флаги доступа */
#define VIP_FLAG_ALL 0 // Любой флаг
#define VIP_FLAG_A (1<<0) // Флаг "a"
#define VIP_FLAG_B (1<<1) // Флаг "b"
#define VIP_FLAG_C (1<<2) // Флаг "c"
#define VIP_FLAG_D (1<<3) // Флаг "d"
#define VIP_FLAG_E (1<<4) // Флаг "e"
#define VIP_FLAG_F (1<<5) // Флаг "f"
#define VIP_FLAG_G (1<<6) // Флаг "g"
#define VIP_FLAG_H (1<<7) // Флаг "h"
#define VIP_FLAG_I (1<<8) // Флаг "i"
#define VIP_FLAG_J (1<<9) // Флаг "j"
#define VIP_FLAG_K (1<<10) // Флаг "k"
#define VIP_FLAG_L (1<<11) // Флаг "l"
#define VIP_FLAG_M (1<<12) // Флаг "m"
#define VIP_FLAG_N (1<<13) // Флаг "n"
#define VIP_FLAG_O (1<<14) // Флаг "o"
#define VIP_FLAG_P (1<<15) // Флаг "p"
#define VIP_FLAG_Q (1<<16) // Флаг "q"
#define VIP_FLAG_R (1<<17) // Флаг "r"
#define VIP_FLAG_S (1<<18) // Флаг "s"
#define VIP_FLAG_T (1<<19) // Флаг "t"
#define VIP_FLAG_U (1<<20) // Флаг "u"
#define VIP_FLAG_V (1<<21) // Флаг "v"
#define VIP_FLAG_W (1<<22) // Флаг "w"
#define VIP_FLAG_X (1<<23) // Флаг "x"
#define VIP_FLAG_Y (1<<24) // Флаг "y"
#define VIP_FLAG_Z (1<<25) // Флаг "z"

/* Возвращает 1, если игрок вип, в противном случае 0 */
native VSGetUserVip(id)

/* Возвращает 1, если игрок имеет указанный флаг, в противном случае 0 */
native VSGetVipFlag(id, flag)

/* Возвращает флаги игрока, в виде битовой последовательности */
native VSGetVipFlags(id)

/* Регистрирует новую возможность
Параметры:
name - название возможности
flag - флаг доступа
Возвращает:
id возможности
*/
native VSRegisterItem(name[], flag)

/* Возвращает 1, если привилегия активна, в противном случае 0 */
native VSGetItemState(id)

/* Активирует привилегию в меню */
native VSEnableItem(id)

/* Отключает привилегию в меню */
native VSDisableItem(id)

/* Устанавливает название привилегии в меню */
native VSSetItemName(id, name[])

/* Добавляет флаги игроку */
native VSAddVipFlags(id, flags)

/* Событие выбора возможности */
forward VSItemSelected(id, itemid)

/* Событие подключения випа */
forward VSVipConnect(id)

/* Событие открытия меню */
forward VSOpeningMenu(id)

/* Преобразует строку во флаги, в виде битовой последовательности */
stock VSStrToFlags(const str[])
{
new bin = 0;
new len = strlen(str);

for (new i = 0; i < len; ++i)
{
bin |= (1<<(str[i] - 'a'));
}

return bin;
}

/* Преобразует флаги в строку */
stock VSFlagsToStr(const bits, str[])
{
new ch[2];

for (new i = 0, len = 0; i < 27; ++i)
{
if (bits & (1<<i))
{
format(ch, charsmax(ch), "%c", (i + 'a'));
strcat(str, ch, ++len);
}
}
}


сам плагин
Код:
/* VSTranslateAdminFlags v1.5

Description:
Translates admins flags in the flags of VS
Cvars:
vs_translate_flags - Defines the rules translate flags
Notes:
Format rule: <admin flags> <system flags>;
You can register multiple rules.
*/

#include <amxmodx>
#include <VIPSystem>

new cvarTranslateFlags;

new Array:adminFlagsArray;
new Array:vsFlagsArray;
new translateNumber = 0;

public plugin_init()
{
register_plugin("VSTranslateAdminFlags", "1.5", "ZETA [M|E|N]");

cvarTranslateFlags = register_cvar("vs_translate_flags", "m a;sqrt abcdefghijklmnopqrstuvwxyz;");
}

public plugin_precache()
{
adminFlagsArray = ArrayCreate(1, 1);
vsFlagsArray = ArrayCreate(1, 1);
}

public plugin_cfg()
{
new left[200], right[200];
get_pcvar_string(cvarTranslateFlags, right, charsmax(right));

new adminFlags[27], vsFlags[27];
do
{
strtok(right, left, charsmax(left), right, charsmax(right), ';');

parse(left, adminFlags, charsmax(adminFlags), vsFlags, charsmax(vsFlags));
ArrayPushCell(adminFlagsArray, read_flags(adminFlags));
ArrayPushCell(vsFlagsArray, VSStrToFlags(vsFlags));
++translateNumber;

}
while(strlen(right) > 0)
}

public client_putinserver(id)
{
set_task(1.0, "TranslateFlags", id);
}

public client_infochanged(id)
{
new newname[32], oldname[32];
get_user_name(id, oldname, charsmax(oldname));
get_user_info(id, "name", newname, charsmax(newname));

if (!equal(newname, oldname))
{
TranslateFlags(id);
}
}

public TranslateFlags(id)
{
new adminFlags, vsFlags;
for (new i = 0; i < translateNumber; i++)
{
adminFlags = ArrayGetCell(adminFlagsArray, i);
vsFlags = ArrayGetCell(vsFlagsArray, i);

if (get_user_flags(id) & adminFlags)
{
VSAddVipFlags(id, vsFlags);
}
}
}


Отредактировал: grishka444, - 4.3.2014, 22:10


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