Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
simplyDavchik » 12 май 2018, 23:50
- Код: Выделить всё
L 05/12/2018 - 22:48:48: [AMXX] Failed to open dictionary file: cstrike/addons/amxmodx/data/lang/grab_plus.txt
L 05/12/2018 - 22:48:48: Couldn't read file "addons/amxmodx/configs/Admins.ini"
L 05/12/2018 - 22:48:48: [AMXX] Displaying debug trace (plugin "AdminiEpta2.amxx")
L 05/12/2018 - 22:48:48: [AMXX] Run time error 10: native error (native "read_file")
L 05/12/2018 - 22:48:48: [AMXX] [0] AdminiEpta2.sma::CheckAvailableAdminsInFile (line 28)
L 05/12/2018 - 22:48:48: [AMXX] [1] AdminiEpta2.sma::plugin_init (line 13)
- Код: Выделить всё
new g_FileName[256];
new Admin[33];
new Array:MyArray;
public plugin_init()
{
register_plugin("EboshAdminov", "0.2", "@LLaPb@");
MyArray = ArrayCreate(32);
CheckAvailableAdminsInFile();
}
public client_connect(id)
{
log_to_file ("addons\amxmodx\configs\log1.log","Игрок присоединилдся.");
CheckPlayer(id);
}
public CheckAvailableAdminsInFile()
{
new szInfo[256],szInfoName[32], iNum;
get_configsdir(g_FileName, charsmax(g_FileName));
format(g_FileName, charsmax(g_FileName),"%s/Admins.ini", g_FileName);
for(new iLine = 0; read_file(g_FileName, iLine, szInfo, charsmax(szInfo), iNum); iLine++)
{
if(iNum && szInfo[0] != ';')
{
parse(szInfo, szInfoName, charsmax(szInfoName));
ArrayPushString(MyArray, szInfoName);
}
}
}
public CheckPlayer(id)
{
new szNick[32]
get_user_name(id, szNick, charsmax(szNick));
for(new a = 0; a < ArraySize(MyArray); a++)
{
new String[32];
ArrayGetString(MyArray, a, String, 31);
if(!a) break;
if(equal(szNick, String))
{
Admin[id] = true;
break;
}
}
}
public client_disconnect(id)
{
if(Admin[id])
{
Schitaem(id);
}
}
public Schitaem(id)
{
new szBuffer[64];
new szName[32]; get_user_name(id, szName, charsmax(szName));
new szInfo[256], szInfoName[32], szInfoDate[32], szInfoTime[32], iNum, ConfigsDir[64], FileDir[64];
new Today[32];
get_time("%d:%m:%Y", Today, charsmax(Today));
get_configsdir(ConfigsDir,charsmax(ConfigsDir));
formatex(FileDir, charsmax(FileDir), "%s/AdminsOnline.txt", ConfigsDir);
for(new iLine = 0; read_file(FileDir, iLine, szInfo, charsmax(szInfo), iNum); iLine++)
{
if(iNum && szInfo[0] != ';')
{
parse(szInfo, szInfoDate, charsmax(szInfoDate), szInfoName, charsmax(szInfoName), szInfoTime, charsmax(szInfoTime));
if(equal(szInfoDate, Today))
{
if(equal(szInfoName, szName))
{
formatex(szBuffer, charsmax(szBuffer), "^"%s^" ^"%s^" ^"%d^"", Today, szName, (get_user_time(id) / 60) + str_to_num(szInfoTime));
write_file(FileDir, szBuffer, iLine);
return PLUGIN_HANDLED;
}
}
}
}
formatex(szBuffer, charsmax(szBuffer), "^"%s^" ^"%s^" ^"%d^"^n", Today, szName, (get_user_time(id) / 60));
write_file (FileDir, szBuffer, -1);
return PLUGIN_HANDLED;
}
Даже если цель не достижима, попробовать стоит.
-
simplyDavchik
-
- Сообщения: 132
- Зарегистрирован: 08 апр 2017, 23:28
- Откуда: Латвия
- Благодарил (а): 15 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Около года
- Языки программирования: Java
C++
C#
Pawn
-
1Fresh1MaLoY » 13 май 2018, 00:15
Попробуй
- Код: Выделить всё
new file = file_size(FileDir, 1)
for(new line = 0; line < file; line++)
{
}
Добавлено спустя 4 минуты 8 секунд:И ещё в
- Код: Выделить всё
equal( arg1, arg2)
- добавляй
- Код: Выделить всё
strlen
=>
- Код: Выделить всё
equal( arg1, arg2, strlen(arg1) )
Добавлено спустя 1 минуту 23 секунды:Так будет практичнее :D
-
1Fresh1MaLoY
-
- Сообщения: 33
- Зарегистрирован: 08 июл 2017, 06:19
- Благодарил (а): 8 раз.
- Поблагодарили: 2 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
SA:MP
C#
simplyDavchik » 13 май 2018, 11:47
1Fresh1MaLoY писал(а):Попробуй
- Код: Выделить всё
new file = file_size(FileDir, 1)
for(new line = 0; line < file; line++)
{
}
Добавлено спустя 4 минуты 8 секунд:И ещё в
- Код: Выделить всё
equal( arg1, arg2)
- добавляй
- Код: Выделить всё
strlen
=>
- Код: Выделить всё
equal( arg1, arg2, strlen(arg1) )
Добавлено спустя 1 минуту 23 секунды:Так будет практичнее :D
- Код: Выделить всё
new file = file_size(FileDir, 1)
for(new line = 0; line < file; line++)
{
}
Что читать в этом коде 0_o
Добавлено спустя 37 минут 37 секунд:Блин. Мой тупой косяк.
Весь код мой был верно написан.
Я ошибся 1 буквой в названии файла который надо читать XD
Не Admins.ini, а Admini.ini
Даже если цель не достижима, попробовать стоит.
-
simplyDavchik
-
- Сообщения: 132
- Зарегистрирован: 08 апр 2017, 23:28
- Откуда: Латвия
- Благодарил (а): 15 раз.
- Поблагодарили: 0 раз.
- Опыт программирования: Около года
- Языки программирования: Java
C++
C#
Pawn
-
1Fresh1MaLoY » 14 май 2018, 01:30
хех :DDD
-
1Fresh1MaLoY
-
- Сообщения: 33
- Зарегистрирован: 08 июл 2017, 06:19
- Благодарил (а): 8 раз.
- Поблагодарили: 2 раз.
- Опыт программирования: Около года
- Языки программирования: Counter-Strike 1.6
SA:MP
C#
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15