Danke
[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
-
-
[19:30:42] Failed (libmysqlclient_r.so.16: cannot open shared object file: No such file or directory)
Was bedeutet das ?
Server lässt sich leider nicht starten.. -
Nutze die mysql_static.so anstatt die mysql.so, diese hat die Library bereits eingebaut.
-
danke !
-
HuHu, da ich sowas noch nie gemacht habe, und garnicht weiß ob sowas überhaupt geht, wollte ich mal fragen ob ich einen String (unter anderem) in einen Dialog packen kann.
Also sowas:format(string1,sizeof(string1),"%s",geheim);
ShowPlayerDialog(playerid,DIALOG_ACHIEVMENT2,DIALOG_STYLE_LIST,""#HTML_GOLD23"Achievments",""string1"\n{FFB471}?????\n{FFB471}?????","Weiter","Schließen");Also SO gehts auf jedenfall nicht (Sagt mir der Compiler) aber wie denn dann?
Liebe Grüße
Moersy -
Du musst wenn schon, den gesamten String welcher im Listdialog steht, in das format packen.
-
format(string1,sizeof(string1),"%s\n{FFB471}?????\n{FFB471}?????",geheim);
ShowPlayerDialog(playerid,DIALOG_ACHIEVMENT2,DIALOG_STYLE_LIST,""#HTML_GOLD23"Achievments",string1,"Weiter","Schließen"); -
Kleine Frage welche Farbe zeigt die user nicht auf der karte ?
SetPlayerColor(Farbe) ?
-
-
Beitrag von SoulMan ()
Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: hier bekommt man irgendwie nie hilfe in letzter zeit..früher war das anders (). -
Code
Alles anzeigenocmd:laden(playerid,params[]) { SendClientMessage(playerid,TEAM_GREEN_COLOR,"Fahrzeug wurde aus der Datenbank geladen"); new num_fields,num_rows,strl[500]; format(strl,sizeof(strl),"SELECT * FROM `vehicles`"); mysql_function_query(dbhandle,strl,true,"",""); cache_get_data(num_rows,num_fields,dbhandle); for(new i;i<num_rows;i++) { print("1"); new id = getfreecar(); VT[id][ModelID] = cache_get_field_content_int(1,"ID",dbhandle); VT[id][X] = cache_get_field_content_int(i,"X",dbhandle); VT[id][Y] = cache_get_field_content_float(i,"Y",dbhandle); VT[id][Z] = cache_get_field_content_float(i,"Z",dbhandle); VT[id][R] = cache_get_field_content_float(i,"R",dbhandle); CreateVehicle(VT[id][ModelID],VT[id][X],VT[id][Y],VT[id][Z],VT[id][R],0,0,-1); printf("SsS %i %f %f %f %f",VT[id][ModelID],VT[id][X],VT[id][Y],VT[id][Z],VT[id][R]); print("2"); printf("Rows: %i",num_rows); } return 1; }
Wie setzt man nochmal richtig an? Bekomme gar keine Prints sodass ich schon die normale num row Abfrage entfernt habe.
Kann mich bitte jemand kurz aufklären? -
Du musst mysql_query nutzen, oder, und das wäre besser, den Cache im Callback auslesen, das du in mysql_function_query angibst.
-
Du musst mysql_query nutzen, oder, und das wäre besser, den Cache im Callback auslesen, das du in mysql_function_query angibst.
Wenn ich mysql_query / tquery verwende sagt er mir number of arguments does not match definition.
Per callback habe ich kein Problem, würde es aber gerne direkt im CMD versuchen umzusetzen weil ich es dort nicht hin kriege. -
mysql_tquery ruft ebenso ein Callback auf.
Mit mysql_query würde es so aussehen:
mysql_query(dbhandle, query); -
mysql_tquery ruft ebenso ein Callback auf.
Mit mysql_query würde es so aussehen:
mysql_query(dbhandle, query);Code
Alles anzeigenocmd:laden(playerid,params[]) { SendClientMessage(playerid,TEAM_GREEN_COLOR,"Fahrzeug wurde aus der Datenbank geladen"); new num_fields,num_rows,strl[500]; format(strl,sizeof(strl),"SELECT * FROM `vehicles`"); mysql_query(dbhandle, strl); cache_get_data(num_rows,num_fields,dbhandle); for(new i;i<num_rows;i++) { new id = getfreecar(); new id_x = cache_get_field_content_int(1,"VID",dbhandle); VT[id][X] = cache_get_field_content_float(i,"X",dbhandle); VT[id][Y] = cache_get_field_content_float(i,"Y",dbhandle); VT[id][Z] = cache_get_field_content_float(i,"Z",dbhandle); VT[id][R] = cache_get_field_content_float(i,"R",dbhandle); CreateVehicle(id_x,VT[id][X],VT[id][Y],VT[id][Z],VT[id][R],0,0,-1); printf("SsS %i %f %f %f %f",VT[id][ModelID],VT[id][X],VT[id][Y],VT[id][Z],VT[id][R]); printf("Rows: %i",num_rows); VT[id][ModelID] = -1; } return 1; }
So funktionierts einigermaßen, allerdings werden alle modelid's mit der ID des Fahrzeugs mit dem Eintrag 2 erstellt. Sprich alles wird seperat geladen außer die ModelID, die wird jedem Fahrzeug gesetzt.(560)
Erkennst du den Fehler? Habe jetzt provisorisch die neue vari definiert.DB Einträge: https://gyazo.com/655f3cc04912047c251135a54dfa7943
-
new id_x = cache_get_field_content_int(1,"VID",dbhandle);
Zu
new id_x = cache_get_field_content_int(i,"VID",dbhandle); -
Hey, wieso löscht sich nach 30 Sekunden mein PickUp nicht?
forward RespawnPickUp(playerid);
public RespawnPickUp(playerid)
{
DestroyPickup(pHP);
return 1;
}public OnPlayerDeath(playerid, killerid, reason) {
//Health System
new Float:hPos[3];
GetPlayerPos(playerid, hPos[0], hPos[1], hPos[2]); //24
pHP = CreatePickup(1240, 2, hPos[0], hPos[1], hPos[2]);
SetTimerEx("Respawnpickup", 30000, false, "playerid",playerid);
//Health System -
Du musst bei SetTimerEx nach false ein "d" oder ein "i" angeben (Integer).
Mache es aber besser so:
forward RespawnPickUp(pickup);
public RespawnPickUp(pickup)
{
DestroyPickup(pickup);
return 1;
}public OnPlayerDeath(playerid, killerid, reason)
{
//Health System
new Float:hPos[3];
GetPlayerPos(playerid, hPos[0], hPos[1], hPos[2]); //24
new pickup = CreatePickup(1240, 2, hPos[0], hPos[1], hPos[2]);
SetTimerEx("RespawnPickup", 30000, false, "d",pickup); -
-
Dann musst du es anders machen, und zwar so:
new hPickup[MAX_PLAYERS] = {-1,...};forward RespawnPickUp(playerid);
public RespawnPickUp(playerid)
{
if(hPickup[playerid] != -1) DestroyPickup(hPickup[playerid]);
hPickup[playerid] = -1;
return 1;
}public OnPlayerPickUpPickup(playerid, pickupid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(hPickup[i] == pickupid)
{
new Float:health;
GetPlayerHealth(playerid,health);
DestroyPickup(hPickup[i]);
hPickup[i] = -1;
SetPlayerHealth(playerid, health+30);
return 1;
}
}
return 1;
}public OnPlayerDeath(playerid, killerid, reason)
{
//Health System
new Float:hPos[3];
GetPlayerPos(playerid, hPos[0], hPos[1], hPos[2]); //24
if(hPickup[playerid] != -1) DestroyPickup(hPickup[playerid]);
hPickup[playerid] = CreatePickup(1240, 2, hPos[0], hPos[1], hPos[2]);
SetTimerEx("Respawnpickup", 30000, false, "d",playerid); -