Anonimus24 0 Odesláno: 28. Červen, 2021 Share Odesláno: 28. Červen, 2021 Ahoj potřeboval bych poradit přešel jsem na MySQL jak mohu vyřešit že uživatel v DTB neexistuje? CMD:setadmin(playerid, params[]) { if(IsPlayerAdmin(playerid) || Player[playerid][AdminLevelHL] == 1) { format(MAX_STR,sizeof(MAX_STR),""); new ID, NICK[MAX_PLAYER_NAME]; if(isNumeric(params)) { if(sscanf(params,"i",ID)) return SendErrorMessage(playerid,"Použití: /SetAdmin (ID/NICK)"); else if(IsPlayerNPC(ID)) return SendErrorMessage(playerid,"Zadané ID má NPC!"); else if(!IsPlayerConnected(ID)) return SendErrorMessage(playerid,"Hráč se zadaným ID není připojený na serveru!"); //------------------------------------------------------------------ if(IsPlayerAdmin(playerid) == 0) { if( strcmp(PlayerName(ID), "Anonimus24",true) == 0 || strcmp(PlayerName(ID), "aDk0SK",true) == 0 || strcmp(PlayerName(ID), "Adam20",true) == 0 || strcmp(PlayerName(ID), "Qvosty_",true) == 0) return SendErrorMessage(playerid,"Nelze nastavit hlavního administrátora."); } new Data[80]; format(Data, sizeof(Data), "Server/Hraci/%s.cfg", PlayerName(ID)); if(fexist(Data)) { new way[32], str[1000],MAX_SetAdmin[1000]; strcat(MAX_SetAdmin,"Položka\tNastaveno\n"); format(way,32,"Server/Hraci/%s.cfg",PlayerName(ID)); SetPVarString(playerid, "NastaveniAdmina", PlayerName(ID));//uložení hráče id format(str, sizeof(str), "Hodnost:\t%s\n",dini_Get(way, "AdminLevelHodnost")); strcat(MAX_SetAdmin, str); format(str, sizeof(str), "IP:\t\n",str); strcat(MAX_SetAdmin, str); format(str, sizeof(str), "Admin Práva\n"); strcat(MAX_SetAdmin, str); ShowPlayerDialogEx(playerid, Dialog_SetAdminHodnost, DIALOG_STYLE_TABLIST_HEADERS, "Nastavení Admin Práv", MAX_SetAdmin, "Potvrdit", "Zavřít"); }else SendErrorMessage(playerid,"Tento hráč neexistuje"); } }else SCM(playerid,0xFFFFFFAA,"{FF0000}[ ! ]{FFFFFF} Pro tento příkaz nemáte dostatečné oprávnění."); return 1; } Link to comment Share on other sites More sharing options...
0 Lukasz 336 Odesláno: 28. Červen, 2021 Share Odesláno: 28. Červen, 2021 Ten kód nemá nic společného s mysql. Link to comment Share on other sites More sharing options...
2 DuFF 83 Odesláno: 28. Červen, 2021 Share Odesláno: 28. Červen, 2021 (upraveno) Ak chápem správne, že tento kód si používal pôvodne a teraz ťa zaujíma, ako v mysql zistiť, či je hráč (ne)registrovaný, môžeš to skúsiť touto funkciou. Nezabudni si upraviť názov tabuľky (players) a názov stĺpca (nick) tak, aby to sedelo s tvojou databázou. stock IsNickRegistered(MySQL:dbHandle, const nick[]) { new query[128]; mysql_format(dbHandle, query, sizeof(query), "SELECT COUNT(*) FROM `players` WHERE `nick`='%s'", nick); mysql_query(dbHandle, query); new found; cache_get_value_index_int(0, 0, found); return found; } Edited 28. Červen, 2021 by DuFF 1 Link to comment Share on other sites More sharing options...
0 Anonimus24 0 Odesláno: 29. Červen, 2021 Author Share Odesláno: 29. Červen, 2021 před 9hodinami, DuFF said: Ak chápem správne, že tento kód si používal pôvodne a teraz ťa zaujíma, ako v mysql zistiť, či je hráč (ne)registrovaný, môžeš to skúsiť touto funkciou. Nezabudni si upraviť názov tabuľky (players) a názov stĺpca (nick) tak, aby to sedelo s tvojou databázou. stock IsNickRegistered(MySQL:dbHandle, const nick[]) { new query[128]; mysql_format(dbHandle, query, sizeof(query), "SELECT COUNT(*) FROM `players` WHERE `nick`='%s'", nick); mysql_query(dbHandle, query); new found; cache_get_value_index_int(0, 0, found); return found; } Děkuji měl bych rovnou otázku pokud mám v DTB Potřeboval bych to do Hodnost Kód mám zde: format(str, sizeof(str), "Hodnost:\t%s\n",Player[playerid][AdminLevelHodnost]); U IP adresi mi to funguje normálně ale u hodnosti ne proč? Link to comment Share on other sites More sharing options...
0 Globální moderátor HighPrint 177 Odesláno: 29. Červen, 2021 Globální moderátor Share Odesláno: 29. Červen, 2021 Jak vypada deklarace Player[playerid][AdminLevelHodnost] Link to comment Share on other sites More sharing options...
0 Anonimus24 0 Odesláno: 29. Červen, 2021 Author Share Odesláno: 29. Červen, 2021 před 3hodinami, HighPrint said: Jak vypada deklarace Player[playerid][AdminLevelHodnost] new querya[500]; GetPlayerIp(ID,Player[ID][AdminLevelIP], MAX_PLAYER_IP); mysql_format(g_SQL, querya, sizeof(querya), "INSERT INTO `admins`(`ID`, `IP`,`Username`,`AdminLevelHodnost`) VALUES (%i, '%e', '%e', '%e')",Player[ID][IDDB],Player[ID][AdminLevelIP],Player[ID][NickName],Player[ID][NickName]); mysql_tquery(g_SQL, querya, "OnSetAdmin", "d",ID); Link to comment Share on other sites More sharing options...
0 KyBLKuBA 2 Odesláno: 29. Červen, 2021 Share Odesláno: 29. Červen, 2021 V sql příkazu co jsi zaslal doplňuješ "Player[ID][NickName]" do sloupce "AdminLevelHodnost" HighPrint pravděpodobně myslel, jakým způsobem deklaruješ tuto proměnnou - vytváříš, nebo doplňuješ daty.. Pravděpodobně to bude něco ve stylu enum Neco { .., AdminLevelHodnost[26] } new Player[MAX_PLAYERS][Neco]; pak tedy můžeš hodnotu dosadit klasicky přes format(Player[ID][AdminLevelHodnost], 26, "hodnost"); A pak by mělo jít bez problémů dosadit v dialogu za %s nebo v INSERT sql příkazu za %e. Otázka tedy zní, kde a co dosazuješ do "Player[ID][AdminLevelHodnost]"? 1 Link to comment Share on other sites More sharing options...
0 DuFF 83 Odesláno: 29. Červen, 2021 Share Odesláno: 29. Červen, 2021 před 21minutami, Anonimus24 said: new querya[500]; GetPlayerIp(ID,Player[ID][AdminLevelIP], MAX_PLAYER_IP); mysql_format(g_SQL, querya, sizeof(querya), "INSERT INTO `admins`(`ID`, `IP`,`Username`,`AdminLevelHodnost`) VALUES (%i, '%e', '%e', '%e')",Player[ID][IDDB],Player[ID][AdminLevelIP],Player[ID][NickName],Player[ID][NickName]); mysql_tquery(g_SQL, querya, "OnSetAdmin", "d",ID); Kód, ktorý si poslal, má na starosti vkladanie dát do databázy a vyzerá to tak, že tam máš preklep. V poslednom argumente si použil Player[ID][NickName] a myslím si, že tam chceš skôr Player[ID][AdminLevelHodnost]. HighPrint chcel vidieť ten enum, v ktorom máš AdminLevelHodnost a riadok new Player... Okrem tohto by si mohol poslať ešte kód, v ktorom máš načítavanie dát z databázy. Link to comment Share on other sites More sharing options...
0 Anonimus24 0 Odesláno: 29. Červen, 2021 Author Share Odesláno: 29. Červen, 2021 před 35minutami, KyBLKuBA said: V sql příkazu co jsi zaslal doplňuješ "Player[ID][NickName]" do sloupce "AdminLevelHodnost" HighPrint pravděpodobně myslel, jakým způsobem deklaruješ tuto proměnnou - vytváříš, nebo doplňuješ daty.. Pravděpodobně to bude něco ve stylu enum Neco { .., AdminLevelHodnost[26] } new Player[MAX_PLAYERS][Neco]; pak tedy můžeš hodnotu dosadit klasicky přes format(Player[ID][AdminLevelHodnost], 26, "hodnost"); A pak by mělo jít bez problémů dosadit v dialogu za %s nebo v INSERT sql příkazu za %e. Otázka tedy zní, kde a co dosazuješ do "Player[ID][AdminLevelHodnost]"? Toto funguje ale pokud chci poté změnit hodnost na jinačí v DTB se mi to přepíše ale bohužel se mi stále ukazuje "hodnost" kterou jsem tam zadal potřeboval bych při změně hodnosti aby se ukazovala hodnost kterou jsem nastavil. Link to comment Share on other sites More sharing options...
0 Globální moderátor HighPrint 177 Odesláno: 30. Červen, 2021 Globální moderátor Share Odesláno: 30. Červen, 2021 No tak priloz kod kde tu hodnotu updatujes Link to comment Share on other sites More sharing options...
Dotaz
Anonimus24 0
Ahoj potřeboval bych poradit přešel jsem na MySQL jak mohu vyřešit že uživatel v DTB neexistuje?
Link to comment
Share on other sites
9 odpovědí na tuto otázku
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now