Dazu noch als Hinweis, das kannst du auch so schreiben, da sparst du dir den ganzen Aufwand:
stock UpdatePlayerMoneyTextdraw(playerid)
{
new str[50];
format(str, sizeof str, "~g~%08d euro", GetPlayerMoney(playerid));
TextDrawSetString(Geld2[playerid], str);
return 1;
}
Beiträge von Jeffry
-
-
Hast du die Microsoft NET Framework 4.5.1 installiert?
http://www.microsoft.com/en-us…oad/details.aspx?id=40773Wenn nein, mach das.
Steht hier, ganz unten im ersten Post: http://forum.sa-mp.com/showthread.php?t=102865 -
Poste bitte den Code mit dem du die Codes aus der Datenbank lädst.
-
Schau mal, hier das du ein Beispiel, wie es komplett auszusehen hat:
http://wiki.sa-mp.com/wiki/OnPlayerClickTextDrawDamit solltest du klar kommen.
-
Ok, und MAX_FRAKS hat welchen Wert? Das ist immer wichtig, dass du sowas mit postest.
-
Ich kann es auch nur abschätzen. Probieren musst du es selbst.
Du nimmst einfach die erste Koordinate, machst die +50 und schreibst das als erstes bei TextDrawTextSize hin. Als zweites dann 20 oder so.
TextDrawTextSize(Textdraw1 , 375.666656, 20.0);
Das ist eben eine Probiererei.
-
Nein, nur der X Wert, plus die Größe natürlich.
TextDrawTextSize(Textdraw0 , 537.333435, 20.0);
So zum Beispiel für das erste Textdraw.
-
TextDrawTextSize
Beachte aber, dass beim X Wert du die Koordinate mit draufrechnen musst, also 375 bei dir.
-
Das dürfte dir helfen:
Herausfinden, ob Vehicle mit der Rückseite zu Koordinate XXX stehtMusst eben die Koordinaten des Objekts noch mit GetObjectPos abfragen, aber das sollte kein Problem sein.
-
1.)
Das ist ein Fehler von Pawnfox und hat nichts mit den Includes an sich zu tun. Ich habe nur diese jeweiligen Fehlermeldungen gefunden, allerdings steht beides mal keine Lösung dabei (auch nicht vom Ersteller von Pawnfox, was ziemlich schwach ist):
http://forum.sa-mp.de/gta-mult…ve-zu-pawno-9#post1263447
http://forum.sa-mp.de/gta-mult…e-zu-pawno-25#post1421342
Im Englischen Forum noch einmal etwas dazu: http://forum.sa-mp.com/showthread.php?t=484770
Aber das wird dir auch nicht wirklich helfen.Das Beste wird wohl sein, wenn du das mal in dem Thread ansprichst, oder den Ersteller direkt anschreibst. Oder die normale pawno.exe nutzt, da hast du solche Probleme nicht.
2.)
Da würde ich zuerst folgendes versuchen:
public OnPlayerSpawn(playerid)
{
SetPlayerWorldBounds(playerid, 20000.0, -20000.0, 20000.0, -20000.0);
return 1;
} -
Dann poste das doch alles mal. Wenn ich nicht weiß wie du es gemacht hast, kann ich dir auch nicht sagen wie du es machen sollst.
-
Hast du überhaupt schon etwas an dem PayDay System gemacht, oder hast du noch gar nichts? Bekommen die Spieler schon irgendwo durch den PayDay Geld, oder ist das Textdraw das einzigste was du in Sachen PayDay bis jetzt hast?
-
ocmd:usegutschein(playerid, params[])
{
new gutscheinid, string[256];
if(sscanf(params, "d", gutscheinid)) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Benutze: /usegutschein [GutscheinCode]");
for(new g = 0; g <MAX_GUTSCHEINE; g++)
{
if(gutscheinid != Gutschein[g][gCode]) continue;
if(Gutschein[g][gUsed] == 1) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code wurde bereits aktiviert.");
if(Gutschein[g][gAktion] == 1)
{
ShowPlayerDialog(playerid, DIALOG_GNAMECHANGE, DIALOG_STYLE_INPUT, "Gutschein einlösen: Namenschange", "Bitte gib deinen neuen Wunschnamen ein:", "Change", "Abbrechen");
SetPVarInt(playerid, "g", g);
/*Gutschein[g][gUsed] = 1;
SendClientMessage(playerid, COLOR_WHITE, "Namensänderung");
format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid), Gutschein[g][gCode]);
self_mysql_query(string);*/
}
return 1;
}
return SendClientMessage(playerid, COLOR_ERRORTEXT, "Dieser Code existiert nicht!");
}if(dialogid == DIALOG_GNAMECHANGE)
{
if(strlen(inputtext) > 24) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Der Name darf nicht mehr als 24 Zeichen und nur Zeichen von A-Z, 0-9 besitzen!");
if(mysql_CheckAccount(inputtext) == 1) return SendClientMessage(playerid, COLOR_ERRORTEXT, "Der Name ist bereits in der Datenbank vorhanden!");
new g = GetPVarInt(playerid, "g");
if(strcmp(PlayerInfo[playerid][pOldName], "Niemand", true) == 0) return strmid(PlayerInfo[playerid][pOldName], giveplayer, 0, strlen(giveplayer), 255);
Gutschein[g][gUsed] = 1;
SetPlayerName(playerid, inputtext);
format(string, sizeof(string), "Du hast deinen Namen von %s auf %s geändert.", giveplayer, SpielerName(playerid));
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
SendClientMessage(playerid, COLOR_WHITE, "Wichtig: Ändere nach dem Logout deinen Namen im Multiplayer Clienten zu deinem neuen Namen.");
format(string, sizeof(string), "UPDATE `users` SET `Name`='%s' WHERE `Name`='%s'", SpielerName(playerid), giveplayer);
self_mysql_query(string);
format(string, sizeof(string), "UPDATE `gutscheine` SET `gUsed` = '1', `gUsedBy` = '%s' WHERE gCode = '%d'", SpielerName(playerid), Gutschein[g][gCode]);
self_mysql_query(string);
return 1;
}Das kannst du dir wie einen Koffer vorstellen, in den Koffer "g" wird der Wert von g gepackt, und den nehmen wir zum Dialog mit, und schreiben ihn praktischerweise wieder in die Variable g, aus dem Koffer "g".
-
Schon klar, aber wie kommst du zu dem Dialog. Der Teil fehlt.
Ich muss wissen wie du das machst, sonst kann ich es dir nicht verbinden. -
EDIT: Richtige Zeilen eingefügt
Ich hab es grade mal bei mir getestet. So wie es aussieht wirst du das mit dem Flughörnchen nicht realisieren können. Das langsamer Fallen ist kein Problem, aus 400 Meter bin ich nicht gestorben, aber das mit der Fluganimation klappt nicht, und ich weiß da auch keine möglichkeit das zu beheben.Richtig wäre dein Code so:
SetPlayerVelocity(playerid, VX, VY, VZ - 0.6);
zu:
SetPlayerVelocity(playerid, VX, VY, -0.3);Teste es aus, dann weißt du was ich meine. Er stellt sich immer wieder auf und wackelt dann so rum. Er fällt zwar langsam, aber als Flughörnchen bekommst du ihn so wahrscheinlich nicht hin.
-
In welchem Zusammenhang greifst du denn auf den Gutschein zu?
Du startest zwar die Schleife, aber die endet in jedem Fall im ersten Durchlauf, es findest keine Prüfung auf irgendwas statt.Dem Code fehlt der Zusammenhang zum restlichen System, deshalb geht es nicht. Den Zusammenhang kann ich dir auch nicht herstellen, da ich nicht weiß was du vor hast.
Poste mal den Codezusammenhang (von Anfang der Prozedur (Befehl?) bis hierhin. -
Ohja stimmt. Die hab ich nie verwendet, weil ich immer mit Echtzeit arbeite.
new string2[145];
new hour, minutes;
GetPlayerTime(playerid, hour, minutes);
format(string2, sizeof(string2), "Code RED: %s [%02d:%02d]", SpielerInfo[playerid][pName], hour, minutes);So sollte es klappen.
-
Du hast den "codes" Ordner in "scriptfiles" nicht erstellt, oder?
-
Ok.
Hast du denn einen PayDay Timer? Poste den mal, dann kann man das da einbauen.
Poste auch dazu wie du den startest (SetTimer). -
Poste bitte die GetPlayerTime-Funktion. Liegt dann wohl daran.
Zwecks der voranstehenden 0 musst du noch
format(string2, 256, "Code RED: %s [%d:%d]", SpielerInfo[playerid][pName], hour, minutes);
zu:
format(string2, 256, "Code RED: %s [%02d:%02d]", SpielerInfo[playerid][pName], hour, minutes);
machen.