Deine specifer abfolge ist falsch und wenn nix ausgegeben wird geh mal sicher das du kein fehler im syntax hast
Beiträge von IPrototypeI
In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
-
-
In der Log wird nichts angezeigt, wie wäre es, wenn du versuchst das Script mal bei dir zu starten?
nächstesmal überprüfe deine queries dein INSERT -Befehl zum beispiel und ebenso wie man strings ausließt die in einem enum sind.
Hier bitte:
-
Ja, das ist es ja das klappt nicht. Es wird nix in die Datenbank geschrieben wenn ich das entferne
Das passiert normal nciht zeig mal dazu einen logauschnitt ich denke du entfernst etwas falsch dadurch hast du einen Fehler in deinem MySQL Syntax, auch den code von oben verwendet ?
-
Also ich finde beide trailer ebenfalls nicht gut auch diese RP geschichten in trailern finde ich generell scheiße, da nie die gewünschte Spannung erzeugt wird wie bei Film trailer.
Beim zweiten Trailer ist dieses ständige blinken recht nervig und verstörend -
Das kann daran liegen das keine cerbindung aufgebaut wird oder du keine tabellen hast weil du diese nichz hochgeladen bzw erstellt hast.
zeig einfach mal die mysql-log her
-
format(query,sizeof(query),"%02d.%02d.%d - %02d:%02d:%d",Tag,Monat,Jahr,Stunde,Minute,Sekunde);
mysql_format(DBHandle, query, sizeof(query),"UPDATE `Accounts` SET `pAlter` = '%d', `pBargeld` = '%d', `pKontoguthaben` = '%d', `pLastLogin` = '%s', `pLeben` = '%.1f' WHERE `pName` = '%e'",Spieler[playerid][pAlter],Spieler[playerid][pBargeld],Spieler[playerid][pKontoguthaben],query,Spieler[playerid][pLeben],Spieler[playerid][pName]);
mysql_tquery(DBHandle, query, "","");
Eddy
Ich meinte pRegData = %s und den inhalt welchen du an diesen platzhalter übergibst entfernen.geschrieben am handy
//edit
Fabi.StaR
was geht daran nicht wird dir das falsch ausgegeben
Der Name oder der gesamte string -
Für inspirationen kannst auch bei google Bilder SB eingeben
https://www.google.de/search?q…gQ_AUoAQ&biw=1009&bih=631
da wirst du genug beispiele finden.
Beispiel:
-
new string[64 * 10],besitzer[MAX_PLAYER_NAME],text[32],result[64];
mysql_query("SELECT `Besitzer`,`Text` FROM `Tickets` WHERE `Status` = 0;");
mysql_store_result();
while(mysql_fetch_row_format(result))
{
sscanf(result,"p<|>s[24]s[32]",besitzer,text);
format(str,sizeof str,"%sSpieler: %s | Text: %s\n",str,besitzer,text);
}
mysql_free_result();
ShowPlayerDialog(playerid,DLG_TICKETS,DIALOG_STYLE_MSGBOX,"Offene Tickets",str,"Schließen","");Das Query kannst du auch direkt bei mysql_query reinsetzen.
So nun dazu warum es nicht funktioniert.
Du benötigst das sscanf plugin und entferne die sscanf funktion aus deinem skript
http://forum.sa-mp.com/showthread.php?t=120356dann sollte das zu 100% funktionieren. Da wie du siehst wurde der string nicht gesplittet.
Das was MrPawn gepostet hat ist einfach nur shit. -
Eddy entferne es doch aus deinem Update-Befehl.
Da alle Spalten bei einem Update Befehl nicht angegeben werden müssen -
Kann mir mal schnell einer schreiben oder nen Link geben zur kurzen Erläuterung der bedeutung von den sscanf Variablen da.
Also i,d integer und s string aber was ist u und sowas?
- Tom
u steht für user da kannst du den namen des spielers eingeben oder die id beides wird zum integer konvertiert.
Hier sind alle specifer aufgelistet
-
dcmd_admins(playerid,params[])
{
#pragma unused params
new string[(MAX_PLAYER_NAME + 40) * 10];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))continue;
if(AccInfo[i][Level] >= 1 && AccInfo[i][Hide] == 0)
{
format(string, sizeof(string), "%sAdmin %s (ID: %i)- Level %d - %s\n",string,PlayerName2(i),i, AccInfo[i][Level],((AccInfo[i][OnDuty])?("Available"):("Busy")));
}
}
if (!string[0])return ShowPlayerDialog(playerid,NO_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins","\n\n\n\nThere are no admins online.","Close","");
return ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins",string,"Close","");
}Zum einen solltest du ShowPlayerDialog ausserhalb der schleife lassen und du musst natürlich den formatierten string bei einem treffer auch
beim nächsten treffer noch parat haben entweder nutzt ein extra string wo man den formatierten via strcat anhängt oder formatiert in mit -
Jeffry da lohnt es sich auch mal einen kleinen besuch beim wiki zu machen
-
Macht im Endeffekt keinen Unterschied, da beides den Wert in einen Bool konvertiert...
mfg.
hier ja aber es war auf die funktion bezogen
stock bool:IntToBool(int_value) return bool:int_value;
wenn du hier 10 eingibst erhältst du als rückgabe wert 10.
Daher kannst du das mit dem Operator nicht gleichsetzen -
Man kann nur Strings und Ints zurückgeben ohne das die Funktion einen anderen Header brauch
Andernfalls, also bei Floats oder Booleans in diesem Fall, kommt ein WarningDa macht es auch kein Sinn bei boolesche variablen, jedoch erscheint dann das warning aufgrund von dem Funktionsparameter.
-
Das mit den tag ist interessant jedoch mit deiner Aussage zu de, Warning da stimme ich nicht ganz zu :D.
Das sollte normal nicht erscheinen.mit dem makro meinte ich warum IntToBool nicht als als Makro sondern als funktion.
deine zusätzliche variante
stock bool:IntToBool(int_value) return bool:int_value;
funktioniert nicht
-
Das habe ich z.B. im Thread "Nützliche Codeschnipsel" gefunden.
Meine Frage ist nun, was das "!!" nach dem Return bedeutet..Außerdem habe ich dort Codes mit Inhalten wie diesen gefunden:
Wofür ist hier das "\"?
#Handy
1. Das !! konvertiert eine Ausgabe zu eine booleschen Wert.
Beispiel wie man den Rückgabewert konvertieren könnte von einer Funktion
new bool:value = !!SendClientMessage(playerid,-1,"Hallo wie gehts");
stock bool:example(str[])return !!strfind(str,"Hallo",false);
2. Für einen "Zeilenbruch" des defines, damit nicht alles in einer Zeile muss das funktioniert auch bei strings
format(str,64,"Hallo wie \
geht es dir %s ","Benjamin");//edit Kaliber hat es ja schon erwähnt ich hab es nochmal ausgeführt
warum kein makro
#define IntToBool(%0) !!%0
new bool:test;
test = IntToBool(-1); -
//Edit: Das von Prototypel ist besser
Ja...nicht nur Copy Pasten Achte doch bei SendClientMessage...auf den Usermfg.
Ich glaub das er nichtmal das sscanf plugin nutzt
-
Strfind nutzen und das zeichen an der stelle ersetzen
new Name [MAX_PLAYER_NAME];
GetPlayerName (playerid, Name, MAX_PLAYER_NAME);
new pos = strfind (Name,"."false);
if (pos != -1) Name [pos] = '\32;'; -
Du musst auch nicht mit Tangens arbeiten, sondern mit Sinus
Da solltest ihm noch dazu den Tipp geben wenn er mit Sinus arbeitet das er GetVehicleDistanceFromPoint verwenden muss jedoch ist es insgesamt ein geringerer Rechenaufwand
mit Tangents zu rechnen -
Und warum funktionieren die Pfeiltasten/W/A/S/D nicht, also warum werden die nicht erkannt und ausgegeben?
Diese funktionieren jedoch musst du das über OnPlayerUpdate lösen mit der Funktion GetPlayerKey eventuell erkennst du darüber auch die Restlichen Numpad-Tasten.Warum ist das so ?
Das liegt daran das dieses Callback sonst zu oft aufgerufen werden würde(könnte zu laggs führen), daher wurden nur bestimmte Tasten verwendet.