- 0
Войдите для возможности подписаться
Подписчики
0
-
Последние посетители 0 пользователей онлайн
Ни одного зарегистрированного пользователя не просматривает данную страницу
-
Похожий контент
-
-
От 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, помогите пожалуйста сохранение лидерки и заместителя сделать
-
Perfect231 Освоившийся 0
При запуске сервера, у мня выдаёт такие ошибки:
[11:10:32] [debug] Server crashed due to an unknown error [11:10:32] [debug] Native backtrace: [11:10:32] [debug] #0 f7c31180 in _Z13GetStackTraceRSt6vectorI10StackFrameSaIS0_EEPv () from plugins/crashdetect.so [11:10:32] [debug] #1 f7c29064 in _ZN11CrashDetect20PrintNativeBacktraceERSoRKN2os7ContextE () from plugins/crashdetect.so [11:10:32] [debug] #2 f7c29d64 in _ZN11CrashDetect20PrintNativeBacktraceERKN2os7ContextE () from plugins/crashdetect.so [11:10:32] [debug] #3 f7c2bcdb in _ZN11CrashDetect7OnCrashERKN2os7ContextE () from plugins/crashdetect.so [11:10:32] [debug] #4 f7c304d5 in ?? () from plugins/crashdetect.so [11:10:32] [debug] #5 f7fa5bf0 in __kernel_rt_sigreturn () from linux-gate.so.1 [11:10:32] [debug] #6 f7da3ed6 in ?? () from /lib/i386-linux-gnu/i686/cmov/libc.so.6 [11:10:32] [debug] #7 f7c66a5b in subhook_remove () from plugins/anti-crasher.so [11:10:32] [debug] #8 f7c657e4 in _Z16FUNC_ReceiveHookPv () from plugins/anti-crasher.so [11:10:32] [debug] #9 f68d3c9d in _ZN5Hooks23HOOK_RakServer__ReceiveEPv () from plugins/RNM.so [11:10:32] [debug] #10 0807d736 in ?? () from ./samp03svr-cr [11:10:32] [debug] #11 0807d962 in ?? () from ./samp03svr-cr [11:10:32] [debug] #12 08077c23 in ?? () from ./samp03svr-cr [11:10:32] [debug] #13 f7c8aa63 in __libc_start_main () from /lib/i386-linux-gnu/i686/cmov/libc.so.6 [11:10:32] [debug] #14 0804b4c1 in __gxx_personality_v0 () from ./samp03svr-cr [11:10:32] [debug] Registers: [11:10:32] [debug] EAX: ec81e589 EBX: f7da3ed0 ECX: 81e58955 EDX: 080b79a5 [11:10:32] [debug] ESI: 08197ac8 EDI: 080b7000 EBP: ff944808 ESP: ff944638 [11:10:32] [debug] EIP: f7da3ed6 EFLAGS: 00010283 [11:10:32] [debug] Stack: [11:10:32] [debug] ESP+00000000: f7c6c2b0 f7c66a5b 080b79a0 08197af0 [11:10:32] [debug] ESP+00000020: 081afdc4 f7c657e4 08197ac8 00000005 [11:10:32] [debug] ESP+00000040: 01143a8c 00825be8 00000014 08369768 [11:10:32] [debug] ESP+00000060: ff9447a4 00000000 ff944754 f7fc7000 [11:10:32] [debug] ESP+00000080: 08267de8 f7c2f48c 08267de8 ffffffff [11:10:32] [debug] ESP+000000a0: ff94476c f61e48ec 00000000 00000002 [11:10:32] [debug] ESP+000000c0: f7c2f3d9 08369768 ffffffff 00000000 [11:10:32] [debug] ESP+000000e0: ff9449a8 00000000 00000000 081973a4 [11:10:32] [debug] ESP+00000100: 00000018 01143a84 00000000 01143a98 [11:10:32] [debug] ESP+00000120: 00000000 f7c22408 00000005 00000000 [11:10:32] [debug] ESP+00000140: 08369768 f7c55ff4 f7c55ff4 08267de8 [11:10:32] [debug] ESP+00000160: ff9449c8 f7ce6bb1 00000000 ffffffff [11:10:32] [debug] ESP+00000180: 00000011 f7ecc084 00000011 f7faf9aa [11:10:32] [debug] ESP+000001a0: f7e1a420 f7f2fef6 00000011 f7f94000 [11:10:32] [debug] ESP+000001c0: f7c657cb f69b1000 081afdc4 080b7000 [11:10:32] [debug] ESP+000001e0: 00000005 f7ec9e68 00000000 08369768 [11:10:32] [debug] ESP+00000200: f7f6b000 f7f30ef8 096d9820 081afde4 [11:10:32] [debug] ESP+00000220: 096d9820 0805d974 096d9820 ff944880 [11:10:32] [debug] ESP+00000240: ff944948 08196718 0819eb60 081a6320 [11:10:32] [debug] ESP+00000260: 081a66a4 f6e4dff4 096d982c 081a5908 [11:10:32] [debug] ESP+00000280: 00000000 00000000 00000000 00000000 [11:10:32] [debug] ESP+000002a0: 00000000 00000000 00000000 00000000 [11:10:32] [debug] ESP+000002c0: 00000000 00000000 00000000 00000000 [11:10:32] [debug] ESP+000002e0: 00000000 00000000 00000000 00000000 [11:10:32] [debug] ESP+00000300: 00000000 00000000 00000000 00000000 [11:10:32] [debug] ESP+00000320: 00000000 00000000 00000000 f7ca2f40 [11:10:32] [debug] ESP+00000340: f7d192b6 081a6a30 081a6a30 081495b4 [11:10:32] [debug] ESP+00000360: ff9449a8 0807af32 081a6a30 081495b9 [11:10:32] [debug] ESP+00000380: ff944b18 00000000 5ee72cf8 f7e1a3cc [11:10:32] [debug] ESP+000003a0: ff944b18 08077c23 081a6a30 081495b9 [11:10:32] [debug] ESP+000003c0: 00000000 f7f71ad8 00000006 00000000 [11:10:32] [debug] ESP+000003e0: ff944ab8 01005076 00010100 000005c4 [11:10:32] [debug] Loaded modules: [11:10:32] [debug] 00000000 - 0014fdb9 samp03svr-cr [11:10:32] [debug] f7fa5000 - f7fa5d82 linux-gate.so.1 [11:10:32] [debug] f7f90000 - f7f9281b /lib/i386-linux-gnu/i686/cmov/libdl.so.2 [11:10:32] [debug] f7f74000 - f7f8ed2b /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 [11:10:32] [debug] f7e81000 - f7f7ad0e /usr/lib/i386-linux-gnu/libstdc++.so.6 [11:10:32] [debug] f7e3b000 - f7e7fb43 /lib/i386-linux-gnu/i686/cmov/libm.so.6 [11:10:32] [debug] f7e1e000 - f7e3a3c4 /lib/i386-linux-gnu/libgcc_s.so.1 [11:10:32] [debug] f7c71000 - f7e2622f /lib/i386-linux-gnu/i686/cmov/libc.so.6 [11:10:32] [debug] f7fa6000 - f7fc6d6c /lib/ld-linux.so.2 [11:10:32] [debug] f7c57000 - f7c6ccb9 plugins/anti-crasher.so [11:10:32] [debug] f7f98000 - f7f9db2b plugins/anti-freeze.so [11:10:32] [debug] f7c13000 - f7c55ac4 plugins/crashdetect.so [11:10:32] [debug] f7f95000 - f7f96df4 plugins/CRP.so [11:10:32] [debug] f7870000 - f7c18257 plugins/mysql_static.so [11:10:32] [debug] f785c000 - f786309f /lib/i386-linux-gnu/i686/cmov/librt.so.1 [11:10:32] [debug] f6e4f000 - f6e5a3ef /lib/i386-linux-gnu/i686/cmov/libnss_files.so.2 [11:10:32] [debug] f786c000 - f786df70 plugins/nativechecker.so [11:10:32] [debug] f6a19000 - f6b07504 plugins/pawncmd.so [11:10:32] [debug] f6e26000 - f6e4dd0c plugins/profiler.so [11:10:32] [debug] f69b4000 - f6a18e6e plugins/regex.so [11:10:32] [debug] f6874000 - f69bbe20 plugins/RNM.so [11:10:32] [debug] f6e16000 - f6e2540c plugins/sscanf.so [11:10:32] [debug] f67b6000 - f687439a plugins/streamer.so [11:10:32] [debug] f7866000 - f78697a0 plugins/TOTP.so [11:10:32] [debug] f6e04000 - f6e0897b /lib/i386-linux-gnu/i686/cmov/libnss_dns.so.2 [11:10:32] [debug] f3c53000 - f3c6b2fb /lib/i386-linux-gnu/i686/cmov/libresolv.so.2
Поделиться сообщением
Ссылка на сообщение
Поделиться на другие сайты