- 0
Сервер ложится при выборе скина
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
От breznov
Доброго времени суток уважаемые форумчане !
Я начинающий Pawn-кодер, немного влился в функционал, шарю за диалоги, актеров, и прочего, сейчас занялся автошколой,
создал актеров, добавил маппинг, добавил 1 диалог на актера встречающего игрока при входе, ну и преподавателя, вот теперь дело дошло до системы вопросов на тесте и самой практики, много думал по этому делу, думал через switch вопросы писать, потом думал через отдельные диалоги, но всё-таки не додумался, хочу попросить помощи у специалистов данного языка, с реализацией данной системы, желательно на базе MySQL, с плеча попрошу не рубить, у меня код предельно не стандартный, на примере диалогов, чтобы создать сам диалог, надо его объявить в enum dialogs, после переходить в респонс и писать кейс, начинал делать мод по урокам Леона, где 41 серия, дошел до шахты, потом стало в падлу смотреть и начал самостоятельно изучать язык, пока-что в процессе, горю огромным желанием научиться, и всё-же, прошу помощи у специалистов языка.
-
От breznov
Доброго времени суток уважаемые форумчане !
Хочу попросить помощь у вас, у меня проблемы с сохранением лидерки в базу данных, код:
new FactionName[32] = "Скинхеды"; new Float:FactionHQX = 123.45, Float:FactionHQY = 678.90, Float:FactionHQZ = 10.11; new FactionMembers[MAX_PLAYERS]; new FactionRank[MAX_PLAYERS]; new FactionLeader = -1; // ID лидера (-1 означает, что лидера нет) new FactionDeputy = -1; // ID заместителя (-1 означает, что заместителя нет)
#define FACTION_SKINHEDS 1 #define LEADER_INFO_DIALOG 1
new const FactionRankNames[][] = { "Новичок", "Боец", "Стрелок", "Головорез", "Бригадир", "Доверенное лицо", "Советник", "Заместитель", "Консильери", "Дон" };
public OnGameModeInit():
public OnGameModeInit() { ConnectMySQL(); DisableInteriorEnterExits(); EnableStuntBonusForAll(0); SetGameModeText("Armade RP v2.0"); SendRconCommand("hostname "SERVER_NAME" by Didenko"); LoadMapping(); Iter_Clear(Admins_ITER); Iter_Clear(Question_ITER); actor1 = CreateActor(159, 1800.0490, 2506.0791, 15.8725, 269.5358); ApplyActorAnimation(actor1, "PED", "ROADROSS_FEMALE", 4.1, 1, 1, 1, 0, 0); Create3DTextLabel("{FFFFFF}Нажмите {ffff00}L.ALT{FFFFFF} чтобы начать взаимодействие", COLOR_GREEN, 1800.0490, 2506.0791, 15.8725, 10.0, 0, 1); //======================[ Пикапы ]================================== magazvhod1 = CreatePickup(1318, 23, 2074.3257,1838.3256,12.5391, -1); magazvihod1 = CreatePickup(1318, 23, -25.5779,-184.9357,1003.5469, -1); SetTimer("SecondUpdate", 1000, true); SetTimer("MinuteUpdate", 60000, true); LoadFactionsData(); // Загружаем данные о фракциях и лидерах return 1; }
Стоки:
stock LoadFactionsData() { print("LoadFactionsData: Starting to load factions data..."); new query[64]; format(query, sizeof(query), "SELECT id, FactionLeader FROM factions"); mysql_tquery(dbHandle, query, "LoadFactionsData_Callback"); print("LoadFactionsData: Query sent."); return 1; } forward LoadFactionsData_Callback(MySQL:handle, Cache:result); public LoadFactionsData_Callback(MySQL:handle, Cache:result) { new rows = cache_num_rows(); printf("LoadFactionsData_Callback: Number of rows loaded: %d", rows); if(rows > 0) { for(new i = 0; i < rows; i++) { cache_set_result(0); new factionID, factionLeaderID; if (!cache_get_value_name_int(i, "id", factionID)) { printf("[ERROR] LoadFactionsData_Callback: Failed to get 'id' for row %d", i); continue; // Переходим к следующей итерации, если не удалось получить ID } if (!cache_get_value_name_int(i, "FactionLeader", factionLeaderID)) { printf("[ERROR] LoadFactionsData_Callback: Failed to get 'FactionLeader' for row %d", i); continue; // Переходим к следующей итерации, если не удалось получить FactionLeader } printf("LoadFactionsData_Callback: Row %d: factionID = %d, factionLeaderID = %d", i, factionID, factionLeaderID); if(factionLeaderID != 0) { FactionLeader = factionLeaderID; FactionRank[factionLeaderID] = 10; printf("LoadFactionsData_Callback: Setting FactionLeader to %d and rank to 10.", factionLeaderID); // Не вызываем здесь SetPlayerSkin, пока не подключится игрок //if(IsPlayerConnected(factionLeaderID)) //{ // SetPlayerSkin(factionLeaderID, 115); // PlayerSkin[factionLeaderID] = 115; //} } } } else { print("LoadFactionsData_Callback: No factions data found in the database."); } return 1; } stock SetFactionLeader(playerid, targetid) { if(player_info[playerid][ADMIN] < 5) { SendClientMessage(playerid, CG, "Вы не являетесь администратором!"); return 1; } // Убираем старого лидера if(FactionLeader != -1) { FactionRank[FactionLeader] = 1; // Понижаем ранг старого лидера } // Назначаем нового лидера FactionLeader = targetid; FactionRank[targetid] = 10; // Сохраняем ID лидера в базу данных new query[128]; format(query, sizeof(query), "UPDATE factions SET FactionLeader = '%d' WHERE id = '1'", targetid); // Замените '1' на ID вашей фракции, если у вас их несколько mysql_tquery(dbHandle, query); new szString[128]; format(szString, sizeof(szString), "Игрок %s назначен лидером фракции!", targetid); SendClientMessage(playerid, 0x00FF00AA, szString); SendClientMessage(targetid, 0x00FF00AA, "Вы назначены лидером фракции!"); // Выдаем скин 115 SetPlayerSkin(targetid, 115); PlayerSkin[targetid] = 115; // Обновляем массив PlayerSkin SPD(playerid, DLG_LEADERINFO1, DIALOG_STYLE_LIST, "Информация необходимая к прочтению", "{FF0000}!!!ПРОЧИТАТЬ!!!\n{0089ff}[1]{ffffff} Команды лидера", "Выбрать", "Закрыть"); return 1; } stock SetFactionDeputy(playerid, targetid) { // Проверка на то, является ли игрок админом if(player_info[playerid][ADMIN] > 5) { SendClientMessage(playerid, CG, "Вы не являетесь администратором!"); return 1; } // Убираем старого заместителя if(FactionDeputy != -1) FactionRank[FactionDeputy] = 1; // Понижаем ранг старого заместителя // Назначаем нового заместителя FactionDeputy = targetid; FactionRank[targetid] = 9; // Устанавливаем ранг 9 (Консильери) new szString[128]; format(szString, sizeof(szString), "Игрок %d назначен заместителем фракции!", targetid); SendClientMessage(playerid, 0x00FF00AA, szString); SendClientMessage(targetid, 0x00FF00AA, "Вы назначены заместителем фракции!"); return 1; } // Функция проверки, является ли игрок лидером stock IsPlayerLeader(playerid) { if(playerid == FactionLeader) { return 1; } return 0; } // Функция проверки, является ли игрок заместителем stock IsPlayerDeputy(playerid) { if(playerid == FactionDeputy) { return 1; } return 0; } // Функция вступления во фракцию stock JoinFaction(playerid, inviterid) { // Проверяем, состоит ли игрок уже в какой-либо фракции for(new i = 0; i < MAX_PLAYERS; i++) { if(FactionMembers[playerid] != 0) { SendClientMessage(playerid, 0xFF0000AA, "Вы уже состоите в другой фракции!"); return 1; } } // Добавляем игрока во фракцию FactionMembers[playerid] = FACTION_SKINHEDS; FactionRank[playerid] = 1; // Рядовой (Новичок) - Устанавливаем ранг new szString[128]; format(szString, sizeof(szString), "Вы вступили в '%s' по приглашению игрока %d!", FactionName, inviterid); SendClientMessage(playerid, 0x00FF00AA, szString); format(szString, sizeof(szString), "Игрок %d вступил в '%s' по вашему приглашению!", playerid, FactionName); SendClientMessage(inviterid, 0x00FF00AA, szString); return 1; } stock LeaveFaction(playerid) { if(!IsPlayerInFaction(playerid, FACTION_SKINHEDS)) { SendClientMessage(playerid, 0xFF0000AA, "Вы не состоите в этой фракции!"); return 1; } FactionMembers[playerid] = 0; // Обнуляем ID фракции (0 - значит, не состоит) FactionRank[playerid] = 0; SendClientMessage(playerid, 0x00FF00AA, "Вы покинули Семью Рейес!"); return 1; } stock GetFactionRank(playerid) { return FactionRank[playerid]; } stock SetFactionRank(playerid, targetid, rank) { // Проверка на то, является ли игрок лидером или заместителем if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid)) { SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права устанавливать ранги!"); return 1; } // Проверка на то, чтобы ранг не был слишком высоким if(rank > 10 || rank < 1) { SendClientMessage(playerid, 0xFF0000AA, "Неверный ранг!"); return 1; } FactionRank[targetid] = rank; new szString[128]; format(szString, sizeof(szString), "Вы установили ранг '%s' для игрока %d", FactionRankNames[rank - 1], targetid); // Получаем название из массива SendClientMessage(playerid, 0x00FF00AA, szString); format(szString, sizeof(szString), "Вам установлен ранг '%s' игроком %d", FactionRankNames[rank - 1], playerid); // Получаем название из массива SendClientMessage(targetid, 0x00FF00AA, szString); return 1; } // Функция проверки, состоит ли игрок во фракции stock IsPlayerInFaction(playerid, factionid) { if(FactionMembers[playerid] == factionid) { return 1; } return 0; }
Ну и команды естественно:
// Команда для установки ранга (пример, только для лидеров) CMD:setrank(playerid, cmdtext[]) { new targetid, rank; if(sscanf(cmdtext, "dd", targetid, rank)) { SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setrank [ID игрока] [Ранг]"); return 1; } SetFactionRank(playerid, targetid, rank); return 1; } // Команда информации о фракции CMD:factioninfo(playerid, cmdtext[]) { new szString[256]; format(szString, sizeof(szString), "Название: %s, Штаб-квартира: %.2f %.2f %.2f", FactionName, FactionHQX, FactionHQY, FactionHQZ); SendClientMessage(playerid, 0x00FF00AA, szString); return 1; } CMD:setleader(playerid, cmdtext[]) { new targetid; if(sscanf(cmdtext, "d", targetid)) { SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setleader [ID игрока]"); return 1; } SetFactionLeader(playerid, targetid); return 1; } CMD:setdeputy(playerid, cmdtext[]) { new targetid; if(sscanf(cmdtext, "d", targetid)) { SendClientMessage(playerid, 0xFF0000AA, "Используйте: /setdeputy [ID игрока]"); return 1; } SetFactionDeputy(playerid, targetid); return 1; } // -------------------------------------------------------------------------- // Команда для приглашения игрока во фракцию (только для лидеров и заместителей) // -------------------------------------------------------------------------- CMD:invite(playerid, cmdtext[]) { new targetid; if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid)) { SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права приглашать игроков!"); return 1; } if(sscanf(cmdtext, "d", targetid)) { SendClientMessage(playerid, 0xFF0000AA, "Используйте: /invite [ID игрока]"); return 1; } // Добавим проверку на приглашение самого себя if(playerid == targetid) { SendClientMessage(playerid, 0xFF0000AA, "Вы не можете пригласить самого себя!"); return 1; } JoinFaction(targetid, playerid); return 1; } // -------------------------------------------------------------------------- // Команда для исключения игрока из фракции (только для лидеров и заместителей) // -------------------------------------------------------------------------- CMD:uninvite(playerid, cmdtext[]) { new targetid; if(!IsPlayerLeader(playerid) && !IsPlayerDeputy(playerid)) { SendClientMessage(playerid, 0xFF0000AA, "Вы не имеете права исключать игроков!"); return 1; } if(sscanf(cmdtext, "d", targetid)) { SendClientMessage(playerid, 0xFF0000AA, "Используйте: /uninvite [ID игрока]"); return 1; } // Добавим проверку на исключение самого себя if(playerid == targetid) { SendClientMessage(playerid, 0xFF0000AA, "Вы не можете увольнять самого себя!"); return 1; } if(!IsPlayerInFaction(targetid, FACTION_SKINHEDS)) { SendClientMessage(playerid, 0xFF0000AA, "Этот игрок не состоит в вашей фракции!"); return 1; } LeaveFaction(targetid); return 1; }
Ребят, не судите строго пожалуйста, делал с помощью ChatGPT, помогите пожалуйста сохранение лидерки и заместителя сделать
-
kekkomomek1941 Освоившийся 1
Всем привет, недавно появилась проблема
Если я хочу зарегестрировать аккаунт , все происходит нормально, но как только я выбираю скин - сервер сразу ложится
Вот лог
[01:46:42] [join] Test has joined the server (0:94.229.227.80)
[01:46:51] LauncherAddon: Interface_Arizona: Expecting 3 parameter(s), but found 4
[01:46:51] LauncherAddon: Interface_Arizona: Expecting 3 parameter(s), but found 4
[01:46:54] [debug] Run time error 4: "Array index out of bounds"
[01:46:54] [debug] Attempted to read/write array element at index 32 in array of size 32
[01:46:54] [debug] AMX backtrace:
[01:46:54] [debug] #0 004483b8 in public regupd2 (playerid=0) at C:\Users\Asdasd\Desktop\123\gamemodes\arizona.pwn:62951
[01:46:57] [debug] Server crashed while executing arizona.amx
[01:46:57] [debug] AMX backtrace:
[01:46:57] [debug] #0 native SendClientMessage () from samp03svr
[01:46:57] [debug] #1 00a37374 in public pc_cmd_done (playerid=0, params[]=@01f268c4 "") at C:\Users\Asdasd\Desktop\123\gamemodes\arizona.pwn:107617
[01:46:57] [debug] #2 003fc424 in public ac_OnPlayerClickTextDraw (playerid=0, Text:clickedid=63) at C:\Users\Asdasd\Desktop\123\gamemodes\arizona.pwn:59125
[01:46:57] [debug] #3 00041620 in public OnPlayerClickTextDraw (playerid=0, Text:clickedid=63) at ../library/anticheat.inc:5868
[01:46:57] [debug] Native backtrace:
[01:46:57] [debug] #0 f7a2fed6 in _Z13GetStackTraceRSt6vectorI10StackFrameSaIS0_EEPv () from plugins/crashdetect.so
[01:46:57] [debug] #1 f7a28210 in _ZN18CrashDetectHandler20PrintNativeBacktraceERSoRKN2os7ContextE () from plugins/crashdetect.so
[01:46:57] [debug] #2 f7a2905c in _ZN18CrashDetectHandler20PrintNativeBacktraceERKN2os7ContextE () from plugins/crashdetect.so
[01:46:57] [debug] #3 f7a29bb6 in _ZN18CrashDetectHandler7OnCrashERKN2os7ContextE () from plugins/crashdetect.so
[01:46:57] [debug] #4 f7a2f5c2 in ?? () from plugins/crashdetect.so
[01:46:57] [debug] #5 f7ed4090 in __kernel_rt_sigreturn () from linux-gate.so.1
[01:46:57] [debug] #6 f7af04b6 in ?? () from /lib32/libc.so.6
[01:46:57] [debug] #7 f7aa23ff in _IO_vfprintf () from /lib32/libc.so.6
[01:46:57] [debug] #8 f7abfa33 in vsprintf () from /lib32/libc.so.6
[01:46:57] [debug] #9 080ad731 in ?? () from ./samp03svr
[01:46:57] [debug] #10 080d99e9 in ?? () from ./samp03svr
[01:46:57] [debug] #11 080950e4 in ?? () from ./samp03svr
[01:46:57] [debug] #12 f7a2a082 in _ZN18CrashDetectHandler17HandleAMXCallbackEiPiS0_ () from plugins/crashdetect.so
[01:46:57] [debug] #13 f7a2d4d2 in ?? () from plugins/crashdetect.so
[01:46:57] [debug] #14 f7a32906 in amx_Exec () from plugins/crashdetect.so
[01:46:57] [debug] #15 f7a2a8f6 in _ZN18CrashDetectHandler13HandleAMXExecEPii () from plugins/crashdetect.so
[01:46:57] [debug] #16 f7a2d603 in ?? () from plugins/crashdetect.so
[01:46:57] [debug] #17 f7972676 in ?? () from plugins/streamer.so
[01:46:57] [debug] #18 080a715a in ?? () from ./samp03svr
[01:46:57] [debug] #19 080b3df9 in ?? () from ./samp03svr
[01:46:57] [debug] #20 f5e60d47 in _ZN5Hooks9HandleRPCEhP13RPCParameters () from plugins/pawnraknet.so
[01:46:57] [debug] #21 f5e3f62a in _ZN5Hooks10ReceiveRPC7HandlerILj83EE10InterlayerEP13RPCParameters () from plugins/pawnraknet.so
[01:46:57] [debug] #22 08071e32 in ?? () from ./samp03svr
[01:46:57] [debug] #23 0807bc50 in ?? () from ./samp03svr
[01:46:57] [debug] #24 f5e61442 in _ZN5Hooks18RakServer__ReceiveEPv () from plugins/pawnraknet.so
[01:46:57] [debug] #25 f6564b99 in _ZN14CSAMPFunctions7ReceiveEPv () from plugins/YSF_static.so
[01:46:57] [debug] #26 080aed3d in ?? () from ./samp03svr
[01:46:57] [debug] #27 080aef02 in ?? () from ./samp03svr
[01:46:57] [debug] #28 080aa13a in ?? () from ./samp03svr
[01:46:57] [debug] #29 f7a70b41 in __libc_start_main () from /lib32/libc.so.6
[01:46:57] [debug] Registers:
[01:46:57] [debug] EAX: 4141467b EBX: f7c30000 ECX: f7bce4c0 EDX: 00000003
[01:46:57] [debug] ESI: f7bce540 EDI: ff80a88c EBP: ff80a8a8 ESP: ff80a39c
[01:46:57] [debug] EIP: f7af04b6 EFLAGS: 00010206
[01:46:57] [debug] Stack:
[01:46:57] [debug] ESP+00000000: f7aa23ff 4141467b ff80af20 00000047
[01:46:57] [debug] ESP+00000020: 00000000 00000000 00000000 00000000
[01:46:57] [debug] ESP+00000040: f7bce540 00000000 00000000 ff80a88c
[01:46:57] [debug] ESP+00000060: 00000000 00000000 00000000 ffffffa4
[01:46:57] [debug] ESP+00000080: 4141467b ff80af67 00000000 ff80af24
[01:46:57] [debug] ESP+000000a0: ff80a8dc 4628c7c6 fd79ab8f 001e9cdc
[01:46:57] [debug] ESP+000000c0: 041d045d 00000048 145c7c1f 5c1d1f24
[01:46:57] [debug] ESP+000000e0: ff80a481 e45d1401 ffffff8f 000010f0
[01:46:57] [debug] ESP+00000100: ff80a520 08aefd74 ff80af90 00000001
[01:46:57] [debug] ESP+00000120: ff80af91 ff80af90 00000002 50e3e55e
[01:46:57] [debug] ESP+00000140: 00000000 ff80a590 f7c307d8 00000130
[01:46:57] [debug] ESP+00000160: ff80a9d0 00000001 00000014 00000120
[01:46:57] [debug] ESP+00000180: ff80a9f0 000001c6 00000002 0000005d
[01:46:57] [debug] ESP+000001a0: 0807c193 08aefd74 0815a027 ff80a9e1
[01:46:57] [debug] ESP+000001c0: 0807c193 08aefd74 0815a027 0000005d
[01:46:57] [debug] ESP+000001e0: 50e3e55e 0000b3fc 00000000 00000000
[01:46:57] [debug] ESP+00000200: 00000000 00000000 ff80aa51 ff80a5e8
[01:46:57] [debug] ESP+00000220: 00000048 00000001 00000008 00000003
[01:46:57] [debug] ESP+00000240: ffffffff ffffffff 00000000 ff80a648
[01:46:57] [debug] ESP+00000260: 00000048 00000001 00000008 00000003
[01:46:57] [debug] ESP+00000280: ffffffff ffffffff 00000000 ff80a658
[01:46:57] [debug] ESP+000002a0: f5f76000 f5f77620 f5f77620 ff80a688
[01:46:57] [debug] ESP+000002c0: 00000001 00000008 00000003 50e3e55e
[01:46:57] [debug] ESP+000002e0: ffffffff 00000000 f7d95696 ff80a848
[01:46:57] [debug] ESP+00000300: 00000001 00000008 f5e65c36 f5f76000
[01:46:57] [debug] ESP+00000320: f5e61c91 f5e62570 f5e653d0 081a1990
[01:46:57] [debug] ESP+00000340: 0815a027 00000000 ff80a718 ff80aa01
[01:46:57] [debug] ESP+00000360: ffffffff f5e62570 f5e653d0 0c298280
[01:46:57] [debug] ESP+00000380: 00000800 00000000 ff80a729 00000001
[01:46:57] [debug] ESP+000003a0: ffffffff ffffffff 00000000 ff80a778
[01:46:57] [debug] ESP+000003c0: f5f76000 f5f77620 f5f77620 f7ad1f49
[01:46:57] [debug] ESP+000003e0: ff80ae30 00000004 00000002 ff80a7f8
[01:46:57] [debug] Loaded modules:
[01:46:57] [debug] 00000000 - 00187dc3 samp03svr
[01:46:57] [debug] f7ed3000 - f7ed4292 linux-gate.so.1
[01:46:57] [debug] f7ec1000 - f7ec3cfc /lib32/libdl.so.2
[01:46:57] [debug] f7ea0000 - f7ebeb03 /lib32/libpthread.so.0
[01:46:57] [debug] f7d21000 - f7eaa594 /lib32/libstdc++.so.6
[01:46:57] [debug] f7c52000 - f7d1eb90 /lib32/libm.so.6
[01:46:57] [debug] f7c34000 - f7c50214 /lib32/libgcc_s.so.1
[01:46:57] [debug] f7a56000 - f7c38fa2 /lib32/libc.so.6
[01:46:57] [debug] f7ed5000 - f7efcdeb /lib/ld-linux.so.2
[01:46:57] [debug] f7a11000 - f7a52e08 plugins/crashdetect.so
[01:46:57] [debug] f7a00000 - f7a0f9b4 plugins/sscanf.so
[01:46:57] [debug] f793a000 - f79ff740 plugins/streamer.so
[01:46:57] [debug] f792f000 - f7936a20 /lib32/librt.so.1
[01:46:57] [debug] f758b000 - f7933ac7 plugins/mysql_static.so
[01:46:57] [debug] f6b76000 - f6b8802c /lib32/libnss_files.so.2
[01:46:57] [debug] f671c000 - f6803b50 plugins/pawncmd.so
[01:46:57] [debug] f7ec8000 - f7ecb7a0 plugins/TOTP.so
[01:46:57] [debug] f6b70000 - f6b735d8 plugins/mapandreas.so
[01:46:57] [debug] f64cd000 - f672325c plugins/YSF_static.so
[01:46:57] [debug] f6b56000 - f6b6dafd plugins/CLA.so
[01:46:57] [debug] f5f7a000 - f64cf5d0 plugins/LauncherAddon.so
[01:46:57] [debug] f5da3000 - f5f8488c plugins/pawnraknet.so
[01:46:57] [debug] f6b53000 - f6b54df4 plugins/CRP.so
[01:46:57] [debug] f6b1d000 - f6b21b9c /lib32/libnss_dns.so.2
[01:46:57] [debug] f6b03000 - f6b19878 /lib32/libresolv.so.2
Поделиться сообщением
Ссылка на сообщение
Поделиться на другие сайты