wie kann ich bei nem sethp befehl den Floatwert auslesen lassen?
Also das im format die eingegebene hp zahl steht? Bei mir kommen nur zahlen wie 188292782 o.ä.
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
wenn du sscanf nutzt einfach dein Eingabewert auf f setzen
oder du nutzt die Funktion [wiki]float[/wiki] -
Wieso wird hier die vehicle id von 257(korrekt) zu 99?
RefuelTimer[playerid] = SetTimerEx("Refuel", 500, true, "pid", "vid", "cp", "bid", playerid,vehicleid,bsInfo[i][bs_compp],businessid);
forward Refuel(pid, vid, cp, bid); // tankenpublic Refuel(pid, vid, cp, bid){ new Float:gasleft, Float:gasneeded; gasleft = GetFuelSize(vid) - Fuel[vid]; gasneeded = GetFuelSize(vid) - gasleft; printf("gas needed= %f", gasneeded); printf("vehicleid %d", vid);
muss ich "i" übergeben? geht das nicht mit "vid"?
-
Ehm ich bin nicht ganz sicher, ob ich dich richtig verstehe aber für einen Integer musst du "d" oder "i" verwenden. http://wiki.sa-mp.com/wiki/SetTimerEx
-
Okay, wie nenne ich den zweiten und dritten wert? willkürliche buchstaben?
SetTimerEx("Refuel", 500, true, "i", "j", "k", "l", playerid,vehicleid,bsInfo[i][bs_compp],businessid); ?
oder immerwieder "i"? Vorallem ist i kurz zuvor schon in benutzung, stört das?
-
Einfach SetTimerEx("Refuel", 500, true, "iiii", playerid, vehicleid, bsInfo[i][bs_compp],businessid);
-
wenn du sscanf nutzt einfach dein Eingabewert auf f setzen
oder du nutzt die Funktion [wiki]float[/wiki]hab den wert auf f gesetzt bekomme aber trotzdem als zahlen nur bei 100hp 100.00000000 ausgegeben
-
Hey wie ich hier vor kurzem mal anmerkte gehen bei mir einige TextDraws nicht, anscheinend gehen die manchmal?
Mir ist aufgefallen ein paar Pickups verschwinden manchmal für reallife Tage und sind dann nach 50 Server restarts wieder da, genau so wie mit dem Textdraws wie behebe ich das?

Wäre gut wenn mir dabei mal einer helfen könnte da ich mittlerweile echt kein Plan habe wieso das so stark verbuggt ist obwohl ich sogar Streamer plugin habe was angeblich helfen soll
-
bill[pid] = bill[pid] + cp;Ömm, ist das falsch? Ist in einem timer public. cp ist einfach 2.
Der Endwert ist immer genau das doppelte, wie es sein sollte. Witzigerweise ist bill = 0 wenn ich mit printf abfrage. -
bill[pid] = bill[pid] + cp;
Ömm, ist das falsch? Ist in einem timer public. cp ist einfach 2.
Der Endwert ist immer genau das doppelte, wie es sein sollte. Witzigerweise ist bill = 0 wenn ich mit printf abfrage.dazu müsste man schonmal mehr code sehen, so sehen wir praktisch nichts
-
-
bill[pid] = bill[pid] + cp;
Ömm, ist das falsch? Ist in einem timer public. cp ist einfach 2.
Der Endwert ist immer genau das doppelte, wie es sein sollte. Witzigerweise ist bill = 0 wenn ich mit printf abfrage.das ist erstmal nicht falsch... Dieser Code sagt aus:
Ich fülle die Variable mit mir selbst + einer anderen Variable neu...Quasi wenn bill[pid] = 5 und cp = 3
Dann hat die neue Variable bill[pid] nach diesem Code den Wert 8 da bill[pid] = 5 + 3 = 8Anders könnte man das selbe auch so lösen;
bill[pid] += cp;
... Wäre genau das selbe
-
Alles anzeigen
das ist erstmal nicht falsch... Dieser Code sagt aus:Ich fülle die Variable mit mir selbst + einer anderen Variable neu...
Quasi wenn bill[pid] = 5 und cp = 3
Dann hat die neue Variable bill[pid] nach diesem Code den Wert 8 da bill[pid] = 5 + 3 = 8Anders könnte man das selbe auch so lösen;
bill[pid] += cp;
... Wäre genau das selbe
Das ist einfach Mathe ab der 7. Klasse
5 + x = 8
Wie viel ist x?
(Mit Variablen bzw. Formeln rechnen)Oder Pythagoras
a² + b² = c²
6² +10² = 14²Ich glaube aber er hat verstanden wie man dort rechnet, nur irgendwo im vorherigen Code einen Fehler.
Achja und wenn du bill[pid] mit cp addieren willst kannst du es ganz einfach so schreiben:
bill[pid] += cp Dann nimmt er den vorherigen Wert von bill[pid] und addiert einfach cp hinzu.
-
Okay ich hatte den faktor cp verdödelt, da ich jeden liter mal preis genommen habe und dann am ende nochmal.. :s
-
Hey ich bekomme zum ersten Mal den Error "Array index out of bonds" (variable "PropertyOwner") ich hab probiert und versucht und kriege es einfach nicht hin das es klappt.
Im moment sieht der Code so aus:
Code
Alles anzeigen#define MAX_PROPERTIES 100 new PropertyOwner[MAX_PROPERTIES][MAX_PLAYER_NAME]; new Property[MAX_PROPERTIES]; new nstr[64]; for(new i;i<sizeof(Property);i++) { format(path, sizeof(path), "/Server/Häuser/%d.ini", i); if(!dini_Exists(path)) continue; format(nstr, sizeof(nstr), "%s", dini_Get(path, "Owner")); PropertyOwner[i][MAX_PLAYER_NAME] = nstr; } -
Wirso nutzt du die Stringlänge von Player Name? Reicht wenn du den Playernamen, in der PropertyOwner [propertyid] speicherst.

-
PropertyOwner[i] = nstr;
-
jetzt kommt error 006: must be assigned to an array
-
Zeig noch mal, wie dein Code jetzt aussieht. Das einzige, was du wahrscheinlich ändern musst ist die Größe von nstr (new nstr[MAX_PLAYER_NAME];), aber das führt zu einem anderen Fehler.
-
-
Das musst du schon so lassen: new PropertyOwner[MAX_PROPERTIES][MAX_PLAYER_NAME]; Und wie gesagt, die nstr Variable auf MAX_PLAYER_NAME setzen, sonst kannst du dem Array den String nicht zuweisen.
-