Es gibt keine Möglichkeit, das weiter so "in einer Scriptzeile" durchzuführen?
Schade, naja danke trotzdem!
[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
-
-
Du kannst weiterhin mysql_query verwenden, und dann die cache Funktionen direkt danach, ohne Callback, allerdings ist das nicht empfohlen, da der Server eben auf die Antwort wartet, und somit solange steht, bis die Antwort im Cache ist.
-
Hi, wollte eine % Anzeige erstellen von 0% bis 100% Timer geht 10 sek heißt er soll in 10 sek 100% erreicht haben, nur leider zeigt er mir nur nach 10 sek 100% an die Schritte davor aber nicht.
SetTimerEx("Ladebalken", 10000, true, "d", playerid);
public Ladebalken(playerid)
{
ladebalken++;
if(ladebalken == 1)
{
ladebalken++;
TextDrawSetString(Textdraw68, "0%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 2)
{
ladebalken++;
TextDrawSetString(Textdraw68, "6%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 3)
{
ladebalken++;
TextDrawSetString(Textdraw68, "18%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 4)
{
ladebalken++;
TextDrawSetString(Textdraw68, "32%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 5)
{
ladebalken++;
TextDrawSetString(Textdraw68, "54%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 6)
{
ladebalken++;
TextDrawSetString(Textdraw68, "62%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 7)
{
ladebalken++;
TextDrawSetString(Textdraw68, "79%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 8)
{
ladebalken++;
TextDrawSetString(Textdraw68, "86%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 9)
{
ladebalken++;
TextDrawSetString(Textdraw68, "93%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
if(ladebalken == 10)
{
TextDrawSetString(Textdraw68, "100%");
TextDrawShowForPlayer(playerid, Textdraw68);
TextDrawHideForPlayer(playerid, Textdraw47), TextDrawHideForPlayer(playerid, Textdraw48), TextDrawHideForPlayer(playerid, Textdraw49),
TextDrawHideForPlayer(playerid, Textdraw50), TextDrawHideForPlayer(playerid, Textdraw0);
}
return 1;
}Mfg
-
Nimm einen switch: http://wiki.sa-mp.com/wiki/Control_Structures#switch_2
Oder die if-else-if Struktur darunter.Oder setze einen return in die jeweiligen if-Abschnitte.
Außerdem solltest du den Ladebalken-Wert spielerspezifisch machen:
ladebalken[playerid] -
Warum updatet er das nicht richtig:
stock SaveWP()
{
new query[250];
for(new wp=0;wp<MAX_WPS;wp++)
{
format(query,sizeof(query),"UPDATE "#DATENBANK"_produktion_load SET besitzer = '%d', M4 = '%d', MP5 = '%d', Deagle = '%d', Rifle = '%d', Pistole = '%d', Shotgun = '%d',AK47 = '%d', gekauft = '%d'",
WPInfo[wp][wpbesitzer],WPInfo[wp][wpM4],WPInfo[wp][wpMP5],WPInfo[wp][wpDeagle],WPInfo[wp][wpRifle],WPInfo[wp][wpPistole],WPInfo[wp][wpShotgun],WPInfo[wp][wpAK47],WPInfo[wp][wpgekauft]);
mysql_function_query(MYSQLVerbindung,query,false,"","");
}
return true;
}Mysql Log
[17:50:58] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE db_produktion_load SET besitzer = '0', M4 = '0', MP5 = '0", callback: "(null)", format: "(null)"
[17:50:58] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE db_produktion_load SET besitzer = '0', M4 = '0', MP5 = '0", callback: "(null)", format: "(null)" -
Es fehlt der WHERE Teil am Ende. Du sagst nicht, in welcher Zeile er es updaten soll.
-
Hab das nun so:
stock SaveWP()
{
new query[250];
for(new wp=0;wp<MAX_WPS;wp++)
{
format(query,sizeof(query),"UPDATE "#DATENBANK"_produktion_load SET frakid = '%d', besitzer = '%d', M4 = '%d', MP5 = '%d', Deagle = '%d', Rifle = '%d', Pistole = '%d', Shotgun = '%d',AK47 = '%d', gekauft = '%d' WHERE id'%d'",
WPInfo[wp][wpfid],WPInfo[wp][wpbesitzer],WPInfo[wp][wpM4],WPInfo[wp][wpMP5],WPInfo[wp][wpDeagle],WPInfo[wp][wpRifle],WPInfo[wp][wpPistole],WPInfo[wp][wpShotgun],WPInfo[wp][wpAK47],WPInfo[wp][wpgekauft]);
mysql_function_query(MYSQLVerbindung,query,false,"","");
}
return true;
}und was kommt:
[18:15:34] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE db_produktion_load SET frakid = '-1', besitzer = '11', M4", callback: "(null)", format: "(null)"
[18:15:34] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE db_produktion_load SET frakid = '-1', besitzer = '0', M4 ", callback: "(null)", format: "(null)"
[18:15:34] [DEBUG] mysql_tquery - connection: 1, query: "UPDATE db_produktion_load SET frakid = '-1', besitzer = '0', M4 ", callback: "(null)", format: "(null)"
[18:15:34] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[18:15:34] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 1
[18:15:34] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
[18:15:34] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[18:15:34] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 1
[18:15:34] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
[18:15:34] [DEBUG] CMySQLQuery::Execute[] - starting query execution
[18:15:34] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 1
[18:15:34] [DEBUG] CMySQLQuery::Execute[] - error will be triggered in OnQueryError
[18:15:34] [DEBUG] Calling callback "OnQueryError"..
[18:15:34] [DEBUG] Calling callback "OnQueryError"..
[18:15:34] [DEBUG] Calling callback "OnQueryError".. -
Danke, nun hab ich das problem das er nicht bis 100% kommt sondern nur bis 93% aber die Textdraws verschwinden. Und der Balken überdeckt die % Anzahl kann man das irgendwie ändern?
Kann man vllt. das erstellen der Textdraws kürzen?public Ladebalken(playerid)
{
ladebalken[playerid]++;
if(ladebalken[playerid] == 1)
{
ladebalken[playerid]++;
Textdraw67 = TextDrawCreate(231.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "3%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 2)
{
ladebalken[playerid]++;
Textdraw67 = TextDrawCreate(245.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "11%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 3)
{
ladebalken[playerid]++;
Textdraw67 = TextDrawCreate(270.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "18%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 4)
{
ladebalken[playerid]++;
Textdraw67 = TextDrawCreate(290.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "32%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 5)
{
ladebalken[playerid]++;
Textdraw67 = TextDrawCreate(310.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "54%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 6)
{
ladebalken[playerid]++;
Textdraw67 = TextDrawCreate(340.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "62%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 7)
{
ladebalken[playerid]++;
Textdraw67 = TextDrawCreate(360.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "79%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 8)
{
ladebalken[playerid]++;
TextDrawDestroy(Textdraw67);
Textdraw67 = TextDrawCreate(380.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "86%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 9)
{
ladebalken[playerid]++;
TextDrawDestroy(Textdraw67);
Textdraw67 = TextDrawCreate(400.714447, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "93%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 10)
{
ladebalken[playerid]++;
TextDrawDestroy(Textdraw67);
Textdraw67 = TextDrawCreate(414.571472, 371.846679, "usebox");
TextDrawLetterSize(Textdraw67, 0.000000, 1.075927);
TextDrawTextSize(Textdraw67, 227.714355, 0.000000);
TextDrawAlignment(Textdraw67, 1);
TextDrawColor(Textdraw67, 0);
TextDrawUseBox(Textdraw67, true);
TextDrawBoxColor(Textdraw67, 65535);
TextDrawSetShadow(Textdraw67, 0);
TextDrawSetOutline(Textdraw67, 0);
TextDrawFont(Textdraw67, 0);
TextDrawShowForPlayer(playerid, Textdraw67);
TextDrawSetString(Textdraw68, "100%");
TextDrawShowForPlayer(playerid, Textdraw68);
}
else if(ladebalken[playerid] == 11)
{
TextDrawHideForPlayer(playerid, Textdraw47), TextDrawHideForPlayer(playerid, Textdraw48), TextDrawHideForPlayer(playerid, Textdraw49),
TextDrawHideForPlayer(playerid, Textdraw50), TextDrawHideForPlayer(playerid, Textdraw0), TextDrawShowForPlayer(playerid, Textdraw68),
TextDrawShowForPlayer(playerid, Textdraw67), TextDrawShowForPlayer(playerid, Textdraw66), TextDrawShowForPlayer(playerid, Textdraw65);
}
return 1;
} -
Entferne das
ladebalken[playerid]++;
welches jeweils im if-Teil steht. Du hast es über allen einmal oben stehen, das reicht. -
Was?
Ich denke mal er Meint damit eine Animation wo der Char jemanden Anmacht also Provoziert -
-
Jetzt klappt es aber am Ende wo die Textdraws verschwinden bleibt der Ladebalken. Und die Prozentzahl wird vom Balken überdeckt.
-
TextDrawShowForPlayer(playerid, Textdraw67)
zu:
TextDrawHideForPlayer(playerid, Textdraw67)Allerdings, wenn du das so machst, wirst du Probleme bekommen, wenn mehrere Spieler online sind.
Ich rate dir, das ganze Zeug weg zu machen (oder komplett neu) und stattdessen das zu nutzen: http://forum.sa-mp.com/showthread.php?t=537468Dass der Text unter der Box ist liegt an der Reihenfolge wie die Textdraws erstellt werden.
-
Guten Abend ,
ich bin sehr neu was das Scripting betrifft und haben mir mal einen einfachen Ban by realdeal"> Befehl gescriptet , das ganzee läuft auf Dini da ich Mysql nicht Durchchecke
Allerding speichert er den Ban ganz normal mit SetPVarInt(playerid,"Banned",1); nun die abfrage lautet: " if(GetPVarInt(playerid,"Banned") ==1) " dies will er irgendwie aus einem Grund nicht wahr haben er zeigt weder eine SendClientMessage an noch kickt er dem by realdeal"> Spieler vom Server.. Ich wäre Dankbar wenn mir einer helfen könnteMit Freundlichen Grüßen ,
Toastiie1337
-
Guten Abend ,
ich bin sehr neu was das Scripting betrifft und haben mir mal einen einfachen Ban by realdeal"> Befehl gescriptet , das ganzee läuft auf Dini da ich Mysql nicht Durchchecke
Allerding speichert er den Ban ganz normal mit SetPVarInt(playerid,"Banned",1); nun die abfrage lautet: " if(GetPVarInt(playerid,"Banned") ==1) " dies will er irgendwie aus einem Grund nicht wahr haben er zeigt weder eine SendClientMessage an noch kickt er dem by realdeal"> Spieler vom Server.. Ich wäre Dankbar wenn mir einer helfen könnteMit Freundlichen Grüßen ,
Toastiie1337
pawncode?
-
pawncode?
Ich weiss nicht wie das Funktioniert mit dem Pawn Code Sorry vielleicht könntest du es mir erklären
-
Der Pawn BB Code - Die richtige Anwendung?
Am besten du erstellst einen extra Thread, da es wahrscheinlich nicht auf eine kleine Frage hinausläuft.
-
Besteht ein Unterschied zwischen return 1; und return true;?
-
Beitrag von AroX ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar. -
Hi, ich habe eine kleine Logikfrage zu der MySQL R39-3:
Wenn ich folgenden Query ausführen lasse:
mysql_format(dbHandle, q,sizeof q,"SELECT `KleinBurger` FROM `BSprices` WHERE `BizID` = '%d'",bid);Und dann aus einer Row via "cache_get_field_content" auslesen lassen möchte, kann ich dann nur die Rows auslesen, wo "BizID" = bid ist?
Jeffry: :3
-
Besteht ein Unterschied zwischen return 1; und return true;?
Neinkann ich dann nur die Rows auslesen, wo "BizID" = bid ist?
Ja - aber nur das Feld KleinBurger