Ich möchte mir ein eigenes Forum heranschaffen. Es soll codiert werden und ein eigenes Style haben. Wie wo und was kommt an dem Teil der Beratung. Ich habe nicht so viel Erfahrung und hoffe hier auf jemanden der mit Vor und Nachteile unterschiedlicher Foren zeigen kann. Vom Preis habe ich leider keine Ahung. Daher bin ich offen für jedes Angebot!
Beiträge von Keine_Person
-
-
Kann man noch was am Preis machen?
-
Ich checke das einfach nicht richtig. Habe hier einen eigentlich ganz simplen Code, hatte es auch schon hinbekommen aber einfach nicht verstanden wie. So ist es beim Umschreiben wieder kaputt gegangen. Wär jemand so nett und erklärt was genau da passiert?
Code
Alles anzeigenstock LadeGang(){ new query[256]; for(new i = 0; i<MAX_GANGS; i++) { mysql_format(handle, query, sizeof(query), "SELECT * FROM `gang` WHERE `GangID` = '%d'", i); mysql_pquery(handle, query, "OnGangCheck"); OnGangCheck(i); } return false; } forward OnGangCheck(id); public OnGangCheck(id){ new string[128]; cache_get_value_name_int(id, "GangID", GangID); cache_get_value_name(id, "GangName", GangnameScript[id]); format(string,sizeof(string),"Gang Name geladen: %s %d GangID",GangnameScript[id], GangID); print(string); return 1; }
-
Habe jetzt rumprobiert aber bin nicht weitergekommen. Das ich da Ganze noch anders regeln muss ist mir klar. Möchte nur erstmal verstanden haben wie Mysql klappt bevor ich das System erneut angehe.
Was kommt denn in diese Zeile?
"Du verwendest im Query schon die Variablen, die eigentlich erst durch das Query geladen werden sollen...."
Oder kann mir jemand eine einfache Ladung hier scheiben. Also einfach nur das was ich dazu brauche kein Schnick Schnack drum rum. Wenn ich etwas sehe kapier ich es am ehsten. Finde aber nirgends ein Tutorial das einfach gehlaten ist.
Falls man den Code benötigt um zu helfen:
Code
Alles anzeigenstock LadeGang(){ new query[256]; for(new i = 0; i<MAX_GANGS; i++) { mysql_format(handle, query, sizeof(query), "SELECT `GangID` FROM `gang` WHERE `GangID` = '%d'", i); mysql_pquery(handle, query, "OnGangCheck","d",i); OnGangCheck(i); } return false; } forward OnGangCheck(id); public OnGangCheck(id){ new string[128]; //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben //Wir lesen nun die erste Zeile des Caches aus (ID 0) cache_get_value_name(id, "GangMemberName", GangMemberNameScript[id]); cache_get_value_name(id, "GangName", GangnameScript[id]); format(string,sizeof(string),"Gang Member Name geladen: %s GangName %s geladen! %d GangID",GangMemberNameScript[id],GangnameScript[GangID], id); print(string); return 1; }
-
Ich steige da irgendwie immer noch nicht richtig hinter. Habe es jetzt so gemacht wie im Tutorial beschrieben, aber irgendwo scheint da der Wurm drin zu sein. Wäre nett wenn man mir noch einmal hilft :p
Der User soll geladen werden aber irgendwie funzt das nicht:
Code
Alles anzeigenhook OnPlayerConnect(playerid){ print("OnPlayerConect hooked!"); LadeGang(playerid); return true; } stock LadeGang(playerid){ new query[256]; mysql_format(handle, query, sizeof(query), "SELECT * FROM gang WHERE GangID = '%e' AND GangName = '%e'", GangIDScript[playerid], GangnameScript[playerid]); //Das Query wird abgesendet und die playerid an OnUserLogin übergeben mysql_pquery(handle, query, "OnUserLogin", "d", playerid); return true; } forward OnUserLogin(playerid); public OnUserLogin(playerid) { new string[128]; //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben //Wir lesen nun die erste Zeile des Caches aus (ID 0) cache_get_value_name_int(0, "GangID", GangIDScript[playerid]); cache_get_value_name(0, "GangName", GangnameScript[playerid]); format(string,sizeof(string),"GangID geladen: %d GangNamse %s geladen!",GangIDScript[playerid],GangnameScript[playerid]); print(string); return 1; }
-
Ich weiß ja wie das mit dem format klappt eine ausgelesene Datei zu speichern. Da hat man ja das query als string und fertig.
Jetzt meine Frage:
Wie schaffe ich das über einen cache? Oder kann ich auf einfach wieder mysql_format nehmen? Das würde mir mehr gefallen. Finde aber im Wiki keine Liste mit den ganzen Befehlen wie zB. "Insert Into". -
Naja im print wird nichts angezeigt von den gelesen Daten. Daher dachte ich das ein Befehl oder so fehlt oder wo dran liegt es?
-
Ich wollte keinen neuen Thread starten, daher hier das Thema.
Ich möchte meine Daten auslesen und denke ich bin da auf einem guten Kurs. Bestimmt fehlt nur wieder ein Befehl zur Ladung. Wenn ja sorry aber ich sehe da nicht richtig durch in den Tutorials.
Hier der Code:
Code
Alles anzeigenstock LadeGang(playerid){ new int_dest, string[128]; new dest[128]; cache_get_value_name(0, "GangName", string); printf("The value in the column 'gangname' is '%s'.",string); cache_get_value_name(0, "GangMemberName", dest); printf("The value in the column 'name' is '%s'.", dest); cache_get_value_name_int(0, "GangID", int_dest); printf("The value in the vierte row and in the column 'Gang ID' is '%d'.", int_dest); return true; }
Wenn mit 0 die erste Zeile gemeint ist müsste es ja so gehen vom Auslesen. Die in den "" stehenden Namen sind die jeweiligen Spallten.
-
Ich finde bei den verschiedenen Versionen nicht so richtig zu recht. Wenn ich ein gescheihtes Tutorial finde ist es schon wieder zu tief im Thema Registrierungs/Loginsystem das ich nichts eigenes draus machen kann. Hier mal das was ich so verstanden habe. Wäre nett wenn mir jemand den Rest erklärt.
Code
Alles anzeigennew MySQL:handle; public OnGameModeInit() { MySQL_SetupConnection(); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); SetGameModeText("Blank Script"); return 1; } public OnPlayerDisconnect(playerid, reason) { mysql_close(handle); return 1; } stock MySQL_SetupConnection(ttl = 3) { print("[MySQL] Verbindungsaufbau..."); //mysql_log(); //<- Kommentar vor mysql_log entfernen um den MySQL Debug-Modus zu aktivieren handle = mysql_connect(db_host, db_user, "", db_datenbank); //Prüfen und gegebenenfalls wiederholen if(mysql_errno(handle) != 0) { //Fehler im Verbindungsaufbau, prüfe ob ein weiterer Versuch gestartet werden soll if(ttl > 1) { //Versuche erneut eine Verbindung aufzubauen print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1); return MySQL_SetupConnection(ttl-1); } else { //Abbrechen und Server schließen print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden."); print("[MySQL] Bitte prüfen Sie die Verbindungsdaten."); print("[MySQL] Der Server wird heruntergefahren."); return SendRconCommand("exit"); } } printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle); return 1; }
Codeocmd:gang(playerid,params[]){ new query[256]; new string[128]; new neuername[128]; GetPlayerName(playerid,neuername,sizeof(neuername)); mysql_format(handle, query, sizeof(query), "INSERT INTO gang (GangName, GangMemberName) VALUES ('%s', '%s')", neuername, neuername); format(string,sizeof(string),"%s und %s sollten gesetzt werden!",neuername, neuername); print(string); return true; }
Steht das mysql_format schon als Speicherung?
-
In dem Include Ordner von Pawno
Include über #include <foreach> ganz oben unter den anderen includes. Weiter oben über den anderen Includes bringt auch nichts.
-
Ich öffne erst die Pawno.exe und lade dann das Script.
-
Habe es erneut runtergeladne und eingefügt. Die Zeile mit dem Fehler ist die selbe. Pawno geschlossen / neu geöffnet und XXAMP ausgeschalten. Klappt immer noch nicht.
-
C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas\pawno\include\foreach.inc(193) : error 017: undefined symbol "_FOREACH_CUR_VERSION"
Code
Alles anzeigen#define _FOREACH_LOCAL_VERSION 19 // Foreach is testing us. #if defined _FOREACH_INC_TEST #define _FOREACH_CUR_VERSION _FOREACH_LOCAL_VERSION #endinput #endif #if !defined _FOREACH_NO_TEST #define _FOREACH_INC_TEST #tryinclude <YSI\y_iterate> #undef _FOREACH_INC_TEST // <foreach> exists - test which is newer. #if defined _inc_y_iterate #if _FOREACH_CUR_VERSION > _FOREACH_LOCAL_VERSION // Foreach is newer. #undef _inc_y_iterate #define _FOREACH_NO_TEST #include <YSI\y_iterate> #endinput #endif #endif #endif
Es handelt sich um die Zeile:#if _FOREACH_CUR_VERSION > _FOREACH_LOCAL_VERSION
-
Mit der Version klappt es auch nicht.
-
C:\Program Files\Rockstar Games\Grand Theft Auto San Andreas\pawno\include\foreach.inc(193) : error 017: undefined symbol "_FOREACH_CUR_VERSION"
Ich denke das ist das neuste Include, aber auch bei den anderen Includes kommt dieser Error. Muss ich da noch ein anderes Include einfügen?
-
Und wie und wo?Unter Prozesse finde ich auch nichts weiter. Mysql als cmd habe ich auch nur einmal.
-
Ich hatte vorher schon eine ältere Version drauf aber die habe ich eigentlich gelöscht. Port 3306 wie vom Systen angegeben klappt ebenfalls nicht. Deinstallieren und Installieren ebenfalls nicht.
-
modules/server/gangcreator.pwn(32) : error 035: argument type mismatch (argument 1)
Code
Alles anzeigenenum Player_Data{ //player_ID, player_Name[MAX_PLAYER_NAME], bool:player_Login /*player_Admin, player_Warns, player_Level, player_cSkin, player_fSkin, player_hMoney*/ } new PlayerInfo[MAX_PLAYERS][Player_Data]; new Gangname[MAX_PLAYERS][128];
Codemysql_query("INSERT INTO `gangmember` (`GangMemberName`, `DBGangName`) VALUES ('%s', '%s')", PlayerInfo[playerid][player_Name], Gangname[playerid]);
Hat jemand eine Ahnung?
-
Komme hier irgendwie einfach nicht weiter:
sscanf warning: Strings without a length are derpecated, please add a destination size
Code
Alles anzeigenhook OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){ switch(dialogid){ case DIALOG_CREATE_GANG:{ if(response==0){ SendClientMessage(playerid,COLOR_WHITE,"Gangerschaffung abgebrochen!"); } else{ new string[128], name[128]; print("Angekommen 1"); if(!sscanf(inputtext,"s",Gangname) && !isnull(inputtext) || !isnull(Gangname)){ if(!strlen(inputtext)){ switch (EingeladenePerson[playerid]){ case 0:{ SendClientMessage(playerid,COLOR_WHITE,"Abgebrochen!"); EingeladenePerson[playerid] = 0; } case 1:{ print("Angekommen 2"); format(string,sizeof(string),"Gründung von: %s",Gangname); EingeladenePerson[playerid] ++; ShowPlayerDialog(playerid,DIALOG_CREATE_GANG,DIALOG_STYLE_INPUT,string,"Gebe die zweite Personen an zur Gründung:","Bestätigen","Cancel"); } case 2:{ print("3"); for(new i=0; i<MAX_PLAYERS; i++){ GetPlayerName(i,name,sizeof(name)); if(!strcmp(name,Gangname)){ format(string,sizeof(string),"Gründung von: %s",Gangname); ShowPlayerDialog(playerid,DIALOG_CREATE_GANG,DIALOG_STYLE_INPUT,string,"Gebe die dritte Personen an zur Gründung:","Bestätigen","Cancel"); EingeladenePerson[playerid] ++; print("2"); } if(i == MAX_PLAYERS){ SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler wurde nicht gefunden!"); ShowPlayerDialog(playerid,DIALOG_CREATE_GANG,DIALOG_STYLE_INPUT,string,"Gebe die zweite Personen an zur Gründung:","Bestätigen","Cancel"); print("3"); } } } case 3:{ print("1"); for(new i=0; i<MAX_PLAYERS; i++){ if(!strcmp(name,Gangname)){ GetPlayerName(i,name,sizeof(name)); format(string,sizeof(string),"Gründung von: %s",Gangname); EingeladenePerson[playerid] ++; ShowPlayerDialog(playerid,DIALOG_CREATE_GANG_2,DIALOG_STYLE_MSGBOX,string,string,"Ja","Nein"); } if(i == MAX_PLAYERS){ SendClientMessage(playerid,COLOR_WHITE,"Dieser Spieler wurde nicht gefunden!"); ShowPlayerDialog(playerid,DIALOG_CREATE_GANG,DIALOG_STYLE_INPUT,string,"Gebe die zweite Personen an zur Gründung:","Bestätigen","Cancel"); } } } } } else{ switch (EingeladenePerson[playerid]){ case 0:{ SendClientMessage(playerid,COLOR_WHITE,"Abgebrochen!"); EingeladenePerson[playerid] = 0; } case 1:{ ShowPlayerDialog(playerid,DIALOG_CREATE_GANG,DIALOG_STYLE_INPUT,string,"Gebe die zweite Personen an zur Gründung:","Bestätigen","Cancel"); } case 2:{ ShowPlayerDialog(playerid,DIALOG_CREATE_GANG_2,DIALOG_STYLE_MSGBOX,string,string,"Ja","Nein"); } } } } else{ SendClientMessage(playerid,COLOR_WHITE,"Ganggründung Abgebrochen! else"); EingeladenePerson[playerid] = 0; } } } case DIALOG_CREATE_GANG_2:{ if(response==1){ switch (EingeladenePerson[playerid]){ case 0:{ EingeladenePerson[playerid] ++; ShowPlayerDialog(playerid,DIALOG_CREATE_GANG,DIALOG_STYLE_INPUT,"Gang erschaffen","Gib den Namen der Gang ein:","Bestätigen","Abbrechen"); } case 1:{ SendClientMessage(playerid,COLOR_WHITE,"Abgebrochen!"); SendClientMessage(playerid,COLOR_WHITE,"Case 1!"); } case 2:{ SendClientMessage(playerid,COLOR_WHITE,"Abgebrochen!"); SendClientMessage(playerid,COLOR_WHITE,"Case 2!"); } case 3:{ SendClientMessage(playerid,COLOR_WHITE,"Abgebrochen!"); SendClientMessage(playerid,COLOR_WHITE,"Case 3!"); } case 4:{ Ganggruendung(playerid,Gangname); SendClientMessage(playerid,COLOR_WHITE,"Case 4!"); } } } else{ SendClientMessage(playerid,COLOR_WHITE,"Gangerschaffung abgebrochen"); } } } return true; }
-
Kann man ja noch eine Variable setzen, danke für den Tipp.