Es gibt Gobby
Beiträge von Pille
-
-
Vergiss nicht bei Schleifen abzufragen ob der Spieler überhaupt eingeloggt oder verbunden ist.
Sonst sendest du viele unnötige Querys. -
for(new i=0; i<MAX_PLAYERS; i++)
{
GetPlayerName(i,iname,sizeof(iname));
format(query,sizeof(query),"UPDATE user SET banned='%d',adminlevel='%d',level='%d',money='%d',faction='%d',rank='%d',wanteds='%d' WHERE username='%s'",pInfo[i][Banned],pInfo[i][Adminlevel],pInfo[i][Level],GetPlayerMoney(i),pInfo[i][Fraktion],pInfo[i][Rang],pInfo[i][Wanteds],iname);
mysql_function_query(dbhandle,query,false,"","");
}
mysql_function_query(dbhandle,"Select 1;",true,"Finish","");
return 1;forward Finish();
public Finish()
{
SendRconCommand("gmx");
}Das hat den Effekt, dass erst dann der Server neugestartet wird, wenn alle Daten gespeichert sind.
Außerdem musst du in der Schleife abfragen ob der Spieler connected und eingeloggt ist.
Erst dann sollte der Query losgesendet werden. -
Werde ich probieren, mir ist aber eben aufgefallen, dass ein Kollege auf dem Server war, ich mich eingeloggt habe und er anstelle von mir gespawnt ist. Schon wieder: warum?
Weil du die Variablen nicht weitergegeben hast. -
Fehler gefunden
mysql_function_query(dbhandle,query,true,"PasswortAbfrage","");
du hast vergessen die parameter zu übergeben.
So müsste es richtig sein:mysql_function_query(dbhandle,query,true,"PasswortAbfrage","i",playerid);
-
format(query,sizeof(query),"SELECT username,password,sex,age,adminlevel,level,money,faction,rank FROM user WHERE username='%s' AND password='%s'",pname,passwort);
Du gibst hier die leere Variable "passwort" aus,
die Variable brauchst du aber garnicht. Nutze dafür einfach den inputtext:format(query,sizeof(query),"SELECT username,password,sex,age,adminlevel,level,money,faction,rank FROM user WHERE username='%s' AND password='%s'",pname,inputtext);
Wenn ich dir noch einen Tipp geben darf:
Verwende mysql_format in Kombination mit %e für strings.
So vermeidest du Query-Fehler -
Ja, das funktioniert trotzdem nicht so ganz.
-
Ist nicht zu empfehlen.
Spiel ein bisschen mit den Koordinaten rum. -
Dann hast du die Größe des selektierten Bereiches falsch gewählt.
TextDrawTextSize(Text:text, Float:x, Float:y);
-
Dafür kannst du auch Google fragen
WO und WIe mache ich das nochmal das das so leuchtet wenn man auf das Textdraw geht?
Das machst du mit
SelectTextDraw(playerid,hovercolor); -
-
for(new i = 0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(isPlayerInFrakt(killerid,1) || isPlayerInFrakt(killerid,2) || isPlayerInFrakt(killerid,3))
{
SendClientMessage(i,0x548598FF,"|---| Der Gesuchte %s wurde getötet |---|");
SendClientMessage(i,0x00489184,str);
break;
}
}
}das break gehört da definitv nicht dahin
-
public OnPlayerDeath(playerid,killerid,reason)
{
if(killerid!=INVALID_PLAYER_ID)
{
if(isPlayerInFrakt(killerid,1) || isPlayerInFrakt(killerid,2) || isPlayerInFrakt(killerid,3))
{
if(GetPVarInt(playerid,"Wanteds") > 0)
new string[128];
format(string,sizeof(string),"~w~Gesuchten getötet ~g~+%i $",GetPVarInt(playerid,"Wanteds")*150);
GameTextForPlayer(killerid,string,3000,1);
TextDrawHideForPlayer(playerid,WantedStern[playerid]);
TextDrawHideForPlayer(playerid,WantedAnzahl[playerid]);
SetPVarInt(playerid,"Wanteds",0);
SetPlayerPos(playerid,2799.8767,2757.6726,10.8203);
format(string,sizeof(string),"HQ: %s hat den Gesuchten %s getötet!",SpielerName(killerid),SpielerName(playerid));
for(new i=0; i<100; i++)
{
if(!IsPlayerConnected(i)) continue;
if(isPlayerInFrakt(killerid,1) || isPlayerInFrakt(killerid,2) || isPlayerInFrakt(killerid,3))
{
SendClientMessage(i,0x548598FF,"|---| Der Gesuchte %s wurde getötet |---|");
SendClientMessage(i,0x548598FFf,string);
}
}
}
}
}Versuch mal
-
format(query,sizeof(query), "UPDATE `accounts` SET `Besitzer` = '%s', WHERE `id` = '%e'", Hauser[i][pOwner],i);
Da ist was falsch:
- Besitzer ist ein string (%s bzw. %e)
- ID ist ein Integer (%i bzw. %d)
- %e kann man nur benutzen, wemm man statt format mysql_format benutzt
-
Du kannst den Warning mit#pragma unused M_OnPlayerUpdate unterdrücken.
-
Guten Abend,
ich habe eine kleine Frage:
Wie ist es möglich seinen Server über den Servernamen statt die Server IP erreichbar zu machen?Beispiel:
HostName: [0.3x] New Dawn (DD/DM | DD | BaseJump | CnR | DM)
Address: server.dawn-tdm.com:7777LG
Pille -
Hast du im scriptfiles-Ordner einen Ordner der "Häuser" heißt?
-
Nimm ein C und mach da zwei Striche durch.
-
-
In der Forschleife mit einer if-abfrage.
Wenn das Fahrzeug, das gerade gestreamed wird, mit der eines Busses übereinstimmt,
soll es zugeschlossen werden. Wenn nicht, dann soll er den nächsten Bus überprüfen.Lies dir am besten ein paar Antworten davor durch, da hab ich es bisschen näher erklärt.