Eh mudn warum die Meldung kommt, da sscanf 0 returnd, wenn es richtig ist, und 1 return wenn es falsch ist als:
if(!sscanf(...))
Beiträge von RunAway
-
-
klein bisschen ressourcneschonender, den wieso erstmal sachen durchführen, die eventuell nicht gebraucht werden?
new einsatz;
if(sscanf(params, "i", einsatz)) return SendClientMessage(playerid, COLOR_GREY, "Benutze: /cdice [Einsatz]");
if(!IsPlayerInRangeOfPoint(playerid, 5, 2187.9375,1676.8564,11.1101)) return SendClientMessage(playerid, COLOR_GREY, "Hier kannst du nicht Würfeln!");
if(einsatz >= 10001 || einsatz <= 999) return SendClientMessage(playerid, COLOR_GREY, "Der mindest Einsatz ist $1000 und der maximale Einsatz $10000");
new spieleraugen = random(6);
new computeraugen = random(6);
new string[128];
if(spieleraugen < computeraugen){format(string, sizeof(string), "Du verlierst mit einer %d gegen eine %d - Verlust: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, -einsatz);}
if(spieleraugen > computeraugen){format(string, sizeof(string), "Du gewinnst mit einer %d gegen eine %d - Gewinn: %d", spieleraugen, computeraugen, einsatz); SendClientMessage(playerid, COLOR_WHITE, string); GivePlayerMoney(playerid, einsatz);}
if(spieleraugen == computeraugen){SendClientMessage(playerid, COLOR_WHITE, "Niemand gewinnt - es wurde ein Unentschieden gewürfelt!");}
return 1;
} -
Dann sollte er erstmal die Grundlagen lernen!
-
Ah, danke das sieht doch schon mal nützlich aus, ich schau mal obs funktioniert
//edit vielen dank, hat funktioniert. -
Oh, das weiß ich doch,
nur hab damit ein Problem, ich muss praktisch aus einer Tabelle mehrere Einträge auslesen und diese dann in eine andere schreiben, sprich ich kann nicht innerhalb der Schleife den query ausführen, sonst würde der Schleifen-Query überschrieben, code siehe oben.//edit korregturen vorgenommen
//push --> ich kann dadurch nicht weiter arbeiten, da einige systeme darauf aufbauen
//edit der gedachte code ist so:
new query[512],preis,str[512],string[1028],pid;
format(query,512,"SELECT Preis,ProduktID FROM produkte WHERE Typ = 2");
mysql_query(query);
mysql_store_result();
while(mysql_fetch_row_format(str))
{
sscanf(str,"p<|>ii",preis,pid);
format(query,sizeof(query),"INSERT INTO produkt (ProduktID,BizID,Preis) VALUES (%d,%d,%d)",pid,lastid,preis);
mysql_query(query);
} -
Das ist die erste grundlage die man eigentlich lernt und du editierst interessant, du hast kp was du da machst
-
Grundlagen lernen, sonst brauchste hier gar nicht anfagen ist ja schrecklich diese woche
-
es ist ein Editiertes GF und da GF Relativ Gut
Wenn ich sowas lese, dein weiß ich, das du gar keine ahnung hast was du tust. -
@ L3uX Mit GetPlayerPos und Timer ist es aber ressourcenlastiger.
@RunAway Wie meinst du das, mit den 500*500? Du brauchst doch nciht für jeden ein eigenes Label... du setzt einfach so ein weiteres Label, falls es nötig ist, und dann sehen es alle.
Oder willst du, dass sie nur für bestimmte Spieler sichtbar sind?
Das sist es eben, es sind 2 die für alle sichtbar sind, und eins das für manche user nur sichtbar sein soll^^/push
-
stock IsAtATM(playerid)
{
if(IsPlayerInRangeOfPoint(playerid, 5.0, 1505.3571,-1706.5531,14.0469) || IsPlayerInRangeOfPoint(playerid, 5.0, 1223.6383,-1743.6448,13.5971) || IsPlayerInRangeOfPoint(playerid, 5.0, 491.4543,-1733.9115,11.2632) || IsPlayerInRangeOfPoint(playerid, 5.0, 380.7548,-2022.3887,7.8359)))
{
return 1;
}
if (IsPlayerInRangeOfPoint(playerid, 5.0, 1000.1720,-922.7279,42.3281) || IsPlayerInRangeOfPoint(playerid, 5.0, 1196.0596,-919.2913,43.1502) || IsPlayerInRangeOfPoint(playerid, 5.0, 1036.0769,-1025.1725,32.1016) || IsPlayerInRangeOfPoint(playerid, 5.0, 926.2456,-1355.0319,13.3783))
{
return 1;
}
if (IsPlayerInRangeOfPoint(playerid, 5.0, 811.2282,-1623.7705,13.5547) || IsPlayerInRangeOfPoint(playerid, 5.0, 1929.2842,-1771.2465,13.5469) || IsPlayerInRangeOfPoint(playerid, 5.0, 2104.7717,-1809.2222,13.5547) || IsPlayerInRangeOfPoint(playerid, 5.0, 2072.7190,-1836.9708,13.5545))
{
return 1;
}
if (IsPlayerInRangeOfPoint(playerid, 5.0, 1957.3990,-2186.2932,13.5469) || IsPlayerInRangeOfPoint(playerid, 5.0, 2779.4229,-1822.4525,10.2743) || IsPlayerInRangeOfPoint(playerid, 5.0, 2394.5190,-1915.5287,13.5469))
{
return 1;
}
return 0;
} -
autsch strtok ist eine Funktion .....
google mal dannach.
-
Wieso erstellst du 1000 Textdraws anstatt von 2, du brauchst nur 2, da in beiden dann nur der selbe Wert für jeden Spieler steht, sprich, wenn du es in einer For(new Schleife hast, würde ich das ändern^^
-
Vielen Dank, nur leider hab ich das nicht ganz verstanden, könntest du vllt ein Query mit einem Colum als Beispiel machen?
mfg
//edit
Du musst bei SELECT auch ALLES aufführen wo du in WHERE benutzt
heißt:
SQLSELECT produkte.ID,produkt.BizID,produkt.Preis,produkt.ProduktID,produkte.Name FROM produkt as produkt,produkte as produkte WHERE produkt.BizID = %d AND produkte.ID = produkt.ProduktID
SELECT produkte.ID,produkt.BizID,produkt.Preis,produkt.ProduktID,produkte.Name FROM produkt as produkt,produkte as produkte WHERE produkt.BizID = %d AND produkte.ID = produkt.ProduktID
Der dick gedruckte Teil
Wieso sollte ich BizID aus einer Tabelle auslesen, wenn ich nur etwas aus einer Tabelle auslesen will, was ich mit BizID heraussuche, Solche Möchtegern-Pro-Scripter sollte man echt mal entsorgen... -
if (!IsPlayerConnected(giveplayerid))
Hier kommt nen ! davor.. -.-
Nein, da der den ausführenden code in der if abfrage hat. -
GetPlayerState
hilft dir dabei, schlag mal im Wiki nach -
Ja bei dialogresponse fehlt }
-
Wie wärs mal mit mysql_free_result() ?
Ändert nichts am Problem, da man innerhalb einer Schleife keinen Query verwenden kann, da sonst die Schleife abgebrochen wird, bzw in der Schleife falsche Daten stehenmfg
-
Wenn eins ändertsollte man anderes auch ändern!
Vielen Dank//edit wie ich an die 3 ran komme? Gibt mir mein Bizsystem zurück?
//edit² ehm Jetzt hab ich noch ein Problem, da man in einer MySQL Schleife kein Query ausführen kann.
So ich möchte praktisch etwas aus der Tabelle "produkte" auslesen und das in "produkt" eintragen, da es mehr als ein Eintrag sein wird und ist, funktioniert dies mit einer klassichen Schleife wie diese hier nicht.
format(query,512,"SELECT Preis,ProduktID FROM produkte WHERE Typ = 2");
mysql_query(query);
mysql_store_result();
while(mysql_fetch_row_format(str))
{
sscanf(str,"p<|>ii",preis,pid);
format(query,sizeof(query),"INSERT INTO produkt (ProduktID,BizID,Preis) VALUES (%d,%d,%d)",pid,lastid,preis);
mysql_query(query);
} -
MYSQL Log:
[13:45:45] CMySQLHandler::Query(SELECT produkt.Preis,produkt.ProduktID,produkte.Name FROM produkt,produkte WHERE produkt.BizID = 3 AND produkte.Name = produkt.ProduktID) - Successfully executed.SAMP-Code:
format(query,512,"SELECT produkt.Preis,produkt.ProduktID,produkte.Name FROM produkt as produkt,produkte as produkte WHERE produkt.BizID = %d AND produkte.ID = produkt.ProduktID",biz);
mysql_query(query);
mysql_store_result();
while(mysql_fetch_row_format(str))
{
sscanf(str,"p<|>iis",preis,pid,name);
new id[10];
format(id,sizeof(id),"%d",pid);
format(string,sizeof(string),"%s\n%s %d$/Einheit",string,name,preis);
}mfg
-
@Dorf Leider hilft das nicht, ich denke eher, dass es and den WHERE's liegt.
Gold
Also MySQL-Debug sagt, dass es richtig ist, jedoch gibt es nichts wieder, wie ich schon sagte denke ich es liegt an den WHERE'S