Hallo meine Lieben,
ich benutze das MySQL Include von maddinat0r und seine letzte Version R41-4. (https://github.com/pBlueG/SA-MP-MySQL/releases)
Ich vermisse Abfragen wie cache_get_result_count(), ich kriege mit den Verfügbaren Funktionen es nicht hin, aus einem Insert direkt danach die Datenbank ID raus zu holen.
mysql_num_rows() und mysql_store_result() sowie mysql_free_result() fehlen alternativ auch.
Habe ich was verpasst, gibt es mittlerweile bessere MySQL Includes?
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Schau mal ins Wiki: https://sampwiki.blast.hk/wiki/MySQL (Auch wenn hier nur die Rede von R40 ist, sind das die aktuellen Funktionen)

Vieles wurde einfach umbenannt:
mysql_num_rows() = cache_num_rows()
mysql_free_result brauchst du nicht mehr.
cache_get_value_name
cache_get_value_name_int
cache_get_value_name_float
Damit holst du die Einträge raus.
Wobei ich dir empfehlen würde, direkt ORM zu nutzen, dann kannst dir das alles schenken 😄
-
Ich habe bei meinem Insert Teil eine Rückruffunktion eingebunden, allerdings frage ich mich, woher kriege ich die cacheid für die Funktion cache_get_value_name_int?
Müsste ja theoretisch 0 sein, da es nur ein row gibt...
cache_get_value_name_int(0,"dbID",PCar[playerid][i][P_dbID]);
schmeißt mir aber nur -1 raus... i ist in dem Fall die "Fahrzeugschlüssel"-Nummer die soweit korrekt ist.
Der Wurm ist jetzt schon seit 8 Stunden bei mir drin
-
-
Genau diese Funktion habe ich gesucht, oh man...
-
Guten Morgen
Kann man das hier (code) noch auf die neue Dropbox version noch anpassen ?
Code
Alles anzeigenstock DropBoxAudio(playerid,const FileHash[],const file[],Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0, Float:distance = 50.0, usepos = 0) { new stream[300] = "https://dl.dropboxusercontent.com/s/"; strcat(stream,FileHash); new i = strlen(stream),x; stream[i++] = '/'; for(;;++i,++x) { switch(file[x]) { case '\32;':stream[i] = '%',stream[++i] = '2',stream[++i] = '0'; case EOS:break; default:stream[i] = file[x]; } } return PlayAudioStreamForPlayer(playerid, stream, posX, posY, posZ, distance, usepos); }Leider haben die alles umgeworfen so dass der link nicht mehr so erstellt wird wie es mal wahr mit /s/
habe das dazu gefunden https://www.dropboxforum.com/t…o-quot-s-quot/td-p/689070
-
Ich kann dir die Funktion anpassen, wenn du mir einen DropBox mp3 Link per PN als Referenz schickst, hab leider keine DropBox 😅
-
Beitrag von DJSatrox ()
Dieser Beitrag wurde vom Autor gelöscht (). -
Hi ich bin grade Jemanden am Helfen, und zwar bekommt er die Sperren aus dem Singleplayer nicht weg habe auch alles abgesucht kein filterscript keine Maps und denoch sind die da auch
CodeRemoveBuildingForPlayer(playerid, 4521, -84.6797, -909.3438, 18.2422, 0.25); RemoveBuildingForPlayer(playerid, 4504, 56.3828, -1531.4531, 6.7266, 0.25); RemoveBuildingForPlayer(playerid, 4514, 440.0469, 587.4453, 19.7344, 0.25); RemoveBuildingForPlayer(playerid, 4515, 604.5234, 352.5391, 19.7344, 0.25); RemoveBuildingForPlayer(playerid, 4518, 1694.3203, 395.1094, 31.1641, 0.25); RemoveBuildingForPlayer(playerid, 4519, 2766.8359, 323.8594, 9.1563, 0.25); RemoveBuildingForPlayer(playerid, 4520, 2766.7188, 603.6250, 9.1406, 0.25); RemoveBuildingForPlayer(playerid, 4507, 53.9609, -1018.9922, 23.3359, 0.25);hilft nicht ist das ein Client Bug ? oder fehlt da noch was, was ich bei OnGameModeInit setzen muss ?
LG
-
Hi ich bin grade Jemanden am Helfen, und zwar bekommt er die Sperren aus dem Singleplayer nicht weg habe auch alles abgesucht kein filterscript keine Maps und denoch sind die da auch
CodeRemoveBuildingForPlayer(playerid, 4521, -84.6797, -909.3438, 18.2422, 0.25); RemoveBuildingForPlayer(playerid, 4504, 56.3828, -1531.4531, 6.7266, 0.25); RemoveBuildingForPlayer(playerid, 4514, 440.0469, 587.4453, 19.7344, 0.25); RemoveBuildingForPlayer(playerid, 4515, 604.5234, 352.5391, 19.7344, 0.25); RemoveBuildingForPlayer(playerid, 4518, 1694.3203, 395.1094, 31.1641, 0.25); RemoveBuildingForPlayer(playerid, 4519, 2766.8359, 323.8594, 9.1563, 0.25); RemoveBuildingForPlayer(playerid, 4520, 2766.7188, 603.6250, 9.1406, 0.25); RemoveBuildingForPlayer(playerid, 4507, 53.9609, -1018.9922, 23.3359, 0.25);hilft nicht ist das ein Client Bug ? oder fehlt da noch was, was ich bei OnGameModeInit setzen muss ?
LG
Kannst die Objekte unter OnPlayerConnect entfernen lassen
-
Kannst die Objekte unter OnPlayerConnect entfernen lassen
hab den fehler gefunden jemand der mapper hatte diese mit in der map erstellt.......
danke dir denoch für deine zeit -
Im Multiplayer sind die Client Sperren gar nicht vorhanden?!

Wurde das ggfs nach gescriptet?
Kann er ja mal mit dem empty mode testen...evtl hat er auch n Quatsch Mod o.ä.
-
Im Multiplayer sind die Client Sperren gar nicht vorhanden?!

Wurde das ggfs nach gescriptet?
Kann er ja mal mit dem empty mode testen...evtl hat er auch n Quatsch Mod o.ä.
Ich weiß es auch nicht mehr, eig sind die nicht drin, wenn man mit ein neuen Script anfängt. Aber naja Quelle gefunden, eine Map war dran schuld die versteckt war, wie auch immer die Sperren da rein gekommen sind, nun sind die weg

-
Aloha miteinander,
ich habe wiedermal ein jahrealtes Script ausgegraben, welches mit einer sehr sehr altem MySQL Version läuft.
Das habe ich natürlich auf den neusten Stand gebracht.
Jetzt habe ich folgende Fehlermeldung
bei folgender Zeile:
Codemysql_tquery(MySqlConnection,query,"OnQueryFinish","siii",query,_SQL_GANGZONE_INSERT,gw,MySqlConnection);Der Ausschnitt von OnQueryFinish:
Code
Alles anzeigenpublic OnQueryFinish(index[],sqlresultid,extraid,SconnectionHandle) { new query[3250],result[64],rows,fields; if(SconnectionHandle != MySqlConnection || mysql_ping() == 0) { getdate(tag,monat,jahr); gettime(stunde,minute,sekunde); ForEachPlayer(i) { if(IsPlayerConnected(i) && !IsPlayerNPC(i) && GetPVarInt(i,"Eingeloggt") == 1) { SaveAccount(i); } } Log("Restartssqllog","Admin: System hat den Server gerestartet(Dead MySql Connection)!"); OnGameModeSave(); GameModeExit(); return 1; } cache_get_data(rows,fields); switch(sqlresultid) { case _SQL_GANGZONE_INSERT: { cache_get_data(rows,fields); if(!rows) { format(query,sizeof(query),"INSERT INTO "#SERVERTAG"_gangwar (GangZoneID,GangWarZoneOwner) VALUES ('%d','0')",extraid); mysql_function_query(MySqlConnection,query,false,"",""); } return 1; } -
Weil der Tag vermutlich auf dem SQLConnection Query ist, deshalb den entfernen:
mysql_tquery(MySqlConnection,query,"OnQueryFinish","siii",query,_SQL_GANGZONE_INSERT,gw,_:MySqlConnection);
#Handy
-
Weil der Tag vermutlich auf dem SQLConnection Query ist, deshalb den entfernen:
mysql_tquery(MySqlConnection,query,"OnQueryFinish","siii",query,_SQL_GANGZONE_INSERT,gw,_:MySqlConnection);
#Handy
Danke dir für die schnelle Antwort.
Es hat funktioniert.

Jetzt habe ich noch eine kleine Frage und zwar bekomme ich jetzt die "undefined symbol" Meldung auch bei anderen mysql Funktionen.
Meine Frage wäre ob eine Liste oder sowas ähnliches existiert in der drin steht welche neue Funktion, an Stelle der alten, verwendet werden kann.
Will euch nämlich nicht dauerhaft nerven hier

-
-
Danke, aber habe da schon reingeschaut gehabt und leider nicht gefunden wonach ich gesucht habe.
Aber die Seite war mir auf jeden Fall eine Hilfe um die neuen Funktionen zu versttehen.
Es ging nämlich, unteranderem, um die Funktion "mysql_free_result".
Die soll ja nur verwendet werden, wenn auch die Funktion "mysql_store_result" verwendet wird.
Zumindest steht das so auf diversen Seiten.
Nachdem aber die Funktion "mysql_store_result" im Script nicht ein Mal zu finden ist habe ich die "mysql_free_result"-Funktion auch entfernt.
Eine kleine zusätzliche Frage:
habe das so im code stehen und bekomme folgende Meldung, die für mich keinen Sinn ergibt:
und das bei jedem Mal in dem ich eine der Funktionen "cache_get_value_name", "cache_get_value_name_int" etc verwende.
-
Es ging nämlich, unteranderem, um die Funktion "mysql_free_result".
Die soll ja nur verwendet werden, wenn auch die Funktion "mysql_store_result" verwendet wird.
Zumindest steht das so auf diversen Seiten.
Nachdem aber die Funktion "mysql_store_result" im Script nicht ein Mal zu finden ist habe ich die "mysql_free_result"-Funktion auch entfernt.
Richtig, früher musste mysql_free_result genutzt werden, wenn man mysql_query verwendet hat. Aber das sollte man nicht nutzen, dann brauch man das free auch nicht, das geht inzwischen automatisch

habe das so im code stehen und bekomme folgende Meldung, die für mich keinen Sinn ergibt:
Kannst du etwas mehr Code zeigen, auch wie du result deklariert hast?
Vermutlich liegt es einfach daran, dass result kein integer, sondern ein String ist.
Du solltest es einfach direkt in die Variable packen oder ORM nutzen, dann kannst du dir die Querys und das read/write direkt sparen

-
Richtig, früher musste mysql_free_result genutzt werden, wenn man mysql_query verwendet hat. Aber das sollte man nicht nutzen, dann brauch man das free auch nicht, das geht inzwischen automatisch

Kannst du etwas mehr Code zeigen, auch wie du result deklariert hast?
Vermutlich liegt es einfach daran, dass result kein integer, sondern ein String ist.
Du solltest es einfach direkt in die Variable packen oder ORM nutzen, dann kannst du dir die Querys und das read/write direkt sparen

Danke dir für deine Hilfe.
Es lag, wie du gesagt hast, an der result Variable.
Werde es tatsächlich so machen, dass ich es einfach direkt in die Zielvariable schreibe.

