Beitrag von John_Vendetta ()
Dieser Beitrag wurde von Trooper[Y] aus folgendem Grund gelöscht: Bitte den Likebutton für Bedankungen verwenden ().
dann hast du vermutlich %f statt %d angegeben.BTW: du brauchst nicht den return Wert von GetVehicleVelocity speichern
Oh mann.. Genau andersrum ;D mit %f kommt was vernünftiges raus. Danke !
EDIT: Nächste Frage..
Autos sollen mit Benzin spawnen. "onvehiclespawn" reagiert erst, wenn ein fahrzeug zerstört wurde. Wo muss ich ansetzen, dass beim serverstart Tank zugwiesen wird?
Ich würde nen Hook bei CreateVehicle bzw AddStaticVehicle machen.
Alternativ kannst du das auch dann festlegen, wenn du es erstellst, entweder vor CreateVehicle bzw AddStaticVehicle oder danach
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.ä.
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 = 8
Anders könnte man das selbe auch so lösen;
bill[pid] += cp;
... Wäre genau das selbe
Alles anzeigendas 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 = 8
Anders 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:
#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;
}
Alles anzeigen
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