Du musst die Zahl über Format formatieren:
new str[32];
format(str, sizeof(str), "Preis: $%d", SportAutos[ahID[playerid]][cpreis]);
PlayerTextDrawSetString(playerid,AutoHPreis[playerid],str);
Beiträge von Jeffry
-
-
sowie den Preis in das Textdraw schreiben.
Das kannst du mit http://wiki.sa-mp.com/wiki/PlayerTextDrawSetString machen.
werde ich mich wohl erst beschäftigen wenn die Fahrzeugnamen und der Preis passt.
Falls weitere Fragen auftreten kannst du gerne weiter hier oder in einem neuen Thread nachfragen.
-
Dann würde ich es dir per enum empfehlen:
enum autoEnum {
autohaus,
model,
preis
}new SportAutos[][autoEnum]={
{0, 411, 50000},
{0, 520, 1000},
{0, 419, 999999},
{0, 400, 15000},
{1, 415, 50000},
{1, 411, 60000},
{1, 423, 70000},
{1, 555, 10000},
{1, 444, 44444} //An letzter Stelle kein Komma
//...
};Auf die ModelID kommst du dann z.B. so:
AutohausAutos[ahID[playerid]][model]Was hier wichtig ist:
Beim Start am Autohaus musst du die richtige Stelle für das erste Fahrzeug finden (Schleife und Autohaus ID ablgeichen, für den ersten Index).
Bei der Prüfung ob das letzte Auto erreicht ist, musst du abfragen, ob das Array am Ende angekommen ist (sizeof) oder ob die nächste Index-ID zu einem anderen Autohaus gehört. -
Aber, wie stelle ich jetzt die Preise für die einzelnen Fahrzeuge ein
Entweder über einen zweiten Eintrag im Array, sprich hinter der Model ID, und dann greifst du über ein enum darauf zu (Model/Preis).
Oder über ein zweites Array, das die Preise zum Model enthält, in gleicher Reihenfolge.wie baue mit diesem System verschiedene Autohäuser ein?
Kommt darauf an was die verschiedenen Autohäuser verschieden macht. Preise, Modelle, ...?
Eventuell ebenfalls im gleichen Array, mit einer ID für das Autohaus im enum.Falls du Hilfe zum Code brauchst, sag Bescheid.
-
SportAutos[ahID[playerid]]++;
zu:
ahID[playerid]++;Sonst zählst du die Werte im Array hoch, anstatt nur dem Index-Zähler.
-
So würde dann das Array aussehen, richtig?
Korrekt.
Wie ändere ich eigentlich das Model in der TextDrawPreview?
http://wiki.sa-mp.com/wiki/PlayerTextDrawSetPreviewModel
Eventuell musst du danach nochmal PlayerTextDrawShow aufrufen. -
ich würde gerne meine /admin - Liste nach Rang sortieren, doch habe absolut keine Ahnung wie ich anfangen soll.
Zwei Möglichkeiten:
1.
Eine Schleife durch alle Ränge machen, und dann für alle Spieler jeweils prüfen ob der Spieler den Rang hat, wenn ja, ausgeben.2.
Die Ränge der Spieler jeweils zwischenspeichern und in ein Array sortieren.Von der Einfachkeit her würde ich dir die erste Version empfehlen. Von der Performance ist wahrscheinlich die zweite Variante besser, das spielt bei einem solchen Befehl aber keine Rolle, da das nicht mal Millisekunden aus macht, sofern du keine 10000 Ränge hast.
Poste deinen Befehl, falls du Hilfe am Code brauchst.
-
Ändere dann überall
healamount[healpickup[playerid]]
zu:
healamount[playerid]Und
new healamount[MAX_PICKUPS];
zu:
new healamount[MAX_PLAYERS];Außerdem darf bei SendClientMessage kein \n im Format stehen, das kann im Chat nicht als Zeilenumbruch angezeigt werden.
-
SendClientMessage(playerid, 0xEBFF00FF, "Du hast ein Pickup erstellt, womit man %d HP kriegt.", strval(inputtext));
zu:
new str[145];
format(str, sizeof(str), "Du hast ein Pickup erstellt, womit man %d HP kriegt.", strval(inputtext));
SendClientMessage(playerid, 0xEBFF00FF, str); -
if(strval(inputtext) >=0 || strval(inputtext) <=100)
zu:
if(strval(inputtext) > 0 && strval(inputtext) <=100)Was genau gibst du ein? "50" oder sowas wie "50.0"?
-
Vorab:
Erstelle die Textdraws, die einen veränderlichen Wert haben (Fahrzeuganzeige, Preis) als Player-Textdraws, sonst sieht jeder Spieler das Gleiche, es könnten ja auch mal zwei Leute dort sein.
Die Textdraws wie die Pfeile und die Texte, die immer gleich sind, erstellst du als normale Textdraws.Dann nimmst du dir ein Array für alle Spieler:
new ahID[MAX_PLAYERS];Beim Öffnen des Menüs setzt du dann ahID auf den Startwert, also zum Beispiel die 400:
ahID[playerid] = 400;
Falls du nicht alle Fahrzeuge dort haben willst, dann hier die ID des Array-Indexes (wahrscheinlich 0) an dem es anfangen soll.Und dann an den Pfeilen:
ahID[playerid]++;
bzw:
ahID[playerid]--;Entsprechend der ahID kannst du dann das Fahrzeug-Model anzeigen lassen, und da dies eine globale Variable ist, kannst du beim Bestätigen den Wert von ahID auslesen und das Fahrzeug spawnen lassen:
CreateVehicle(ahID[playerid], x, y, z, /*etc...*/);
Oder wenn du es über ein Array machst, dann wäre es die Index-Referenz, also:CreateVehicle(deinArray[ahID[playerid]], x, y, z, /*etc...*/);
In dem Array stehen dann die Model IDs.
Falls du ein Array hast und damit so nicht klar kommst, poste das Array bitte.
-
new healamount[MAX_PICKUPS];
Nach CreatePickup:
healamount[healpickup[playerid]] = strval(inputtext);Und dann bei OnPlayerPickUpPickup:
new Float:health;
GetPlayerHealth(playerid, health);
SetPlayerHealth(playerid, health + healamount[pickupid]); -
Wenn man in ein Interior reingeht, oder ein Fahrzeug
betritt. Buggt das System.Kannst du das genauer beschreiben? Was passiert, wenn dieser Fall eintrifft?
-
Da musst du nichts rein schreiben, das kannst du genau so lassen.
Das heißt, dass alle Indizes von 0 bis MAX_PLAYERS-1 auf den Wert -1 gesetzt werden, anstatt 0.Gleich wie:
new x = -1;
Nur eben für das ganze Array. -
new healpickup[MAX_PLAYERS];
zu:
new healpickup[MAX_PLAYERS]; = {-1,...};
So werden alle IDs auf -1 instanziiert, damit man sie von der ID 0 unterscheiden kann.Und dann dort, wo das Pickup gelöscht werden soll:
if(healpickup[playerid] != -1) DestroyPickup(healpickup[playerid]);
healpickup[playerid] = -1; -
Alle Informationen, die du benötigst, um die MySQL Verbindung einzurichten, findest du hier:
[jTuT] MySQL R39-3 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)Gehe das Tutorial entsprechend den Schritten und Beschreibungen durch.
-
Poste bitte deinen /admins Befehl nochmal korrekt.
Poste außerdem bitte den Befehl mit dem ein Report bearbeitet wird, also der Befehl, der die Anzahl der durch den Spieler bearbeiteten Reports um eines nach oben setzen soll. -
Kannst du den Befehl bitte nochmal korrekt leserlich posten?
Soll der Countdown für beide Spieler angezeigt werden, oder nur für einen (welchen?)? -
Alle Informationen, die du benötigst, findest du in diesem Tutorial:
[jTuT] MySQL R39-3 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System)Arbeite dich dort Schritt für Schritt durch.
-
Ja, 256 pro Spieler. Damit solltest du in keine Probleme geraten.