Ich habe nun eine kleine Frage ...
Gibt es eine Möglichkeit die Fahrzeuge auf einem Packer (ID 443 / Son LKW wo man Fahrzeuge rauf fahren kann), zu freezen, dass die nicht runter fallen ?
MfG
XonarZ
Ich habe nun eine kleine Frage ...
Gibt es eine Möglichkeit die Fahrzeuge auf einem Packer (ID 443 / Son LKW wo man Fahrzeuge rauf fahren kann), zu freezen, dass die nicht runter fallen ?
MfG
XonarZ
In tInfo bei dir gibt es weder i_x, sondern nur t_x und auch nix mit kasse...prüfe doch minimal mal dein Enum
ja klingt einleuchtend man man man ... das war ein richtig dickes Brett ♂️
Danke dir... kann ich zwar gerade nicht im script ändern (bin auf Arbeit) aber nachher dann iwann
MfG
XonarZ
Ich hab leider ein weiteres Problem ...
...selfmade.pwn(1150) : warning 213: tag mismatch
...selfmade.pwn(1150) : warning 213: tag mismatch
...selfmade.pwn(1150) : warning 213: tag mismatch
...selfmade.pwn(1155) : warning 213: tag mismatch
...selfmade.pwn(1155) : error 032: array index out of bounds (variable "tInfo")
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Alles anzeigen
Zeile 1150:
if(!IsPlayerInRangeOfPoint(playerid, 5, tInfo[tID][i_x], tInfo[tID][i_y], tInfo[tID][i_z])) return SCM(playerid, COLOR_BLUE, "[INFO] {FFFFFF}Du bist nicht in der nähe vom Bezahlpunkt");
Zeile 1155:
tInfo Enum:
enum tankData{
t_id,
t_typ,
Float:t_x,
Float:t_y,
Float:t_z,
Float:t_range,
Float:benzin_vol,
Float:diesel_vol,
Float:gas_vol,
Float:kerosin_vol,
Float:benzin_preis,
Float:diesel_preis,
Float:gas_preis,
Float:kerosin_preis,
id_x
}
new tInfo[20][tankData];
Alles anzeigen
Ich hab schon wieder nen brett vorm kopf ...
MfG
XonarZ
Also ich seh da jetzt keinen Fehler.
Poste am besten mal den ganzen Callback.
(Übrigens noch:
Erstelle die Variablen nicht im Loop, sondern davor, sonst werden die immer neu erstellt, und das ist unnötig)
public OnLoadTanke(){
new rows;
cache_get_row_count(rows);
for(new i = 0; i < rows; i++){
new string[128], id = i+1;
cache_get_value_name_int(i, "id", tankInfo[id][id_x]);
cache_get_value_name_int(i, "t_typ", tankInfo[id][t_typ]);
cache_get_value_name_float(i, "t_x", tankInfo[id][t_x]);
cache_get_value_name_float(i, "t_y", tankInfo[id][t_y]);
cache_get_value_name_float(i, "t_z", tankInfo[id][t_z]);
cache_get_value_name_float(i, "t_range", tankInfo[id][t_range]);
cache_get_value_name_float(i, "benzin_vol", tankInfo[id][benzin_vol]);
cache_get_value_name_float(i, "diesel_vol", tankInfo[id][diesel_vol]);
cache_get_value_name_float(i, "gas_vol", tankInfo[id][gas_vol]);
cache_get_value_name_float(i, "kerosin_vol", tankInfo[id][kerosin_vol]);
cache_get_value_name_float(i, "benzin_preis", tankInfo[id][benzin_preis]);
cache_get_value_name_float(i, "diesel_preis", tankInfo[id][diesel_preis]);
cache_get_value_name_float(i, "gas_preis", tankInfo[id][gas_preis]);
cache_get_value_name_float(i, "kerosin_preis", tankInfo[id][kerosin_preis]);
if(bInfo[i][biz_typ] == 1){
if(tankInfo[id][t_typ] == 0){
format(string, sizeof(string), "{00AFFF}%s\n\nBenzin: {FFFFFF}%0.2f €\n{00AFFF}Diesel: {FFFFFF}%0.2f €\n{00AFFF}Erdgas: {FFFFFF}%0.2f €", bInfo[i][biz_name], tankInfo[id][benzin_preis], tankInfo[id][diesel_preis], tankInfo[id][gas_preis]);
}else{
format(string, sizeof(string), "{00AFFF}%s\n\nKerosin: {FFFFFF}%0.2f €", bInfo[i][biz_name], tankInfo[id][benzin_preis]);
}
tankLabel[i] = Create3DTextLabel(string, COLOR_WHITE, tankInfo[id][t_x], tankInfo[id][t_y], tankInfo[id][t_z], 10, 0, 0);
}
}
return 1;
}
Alles anzeigen
Wie gesagt, eig. ist der restliche Code Irrelevant, weil wenn ich bis new string[128], id = i+1; alles entferne, dann funktioniert mein Tacho, sobald aber die aller erste Zeile mit dem cache ... id drinne steht geht mein Tacho nicht mehr. Also wird nicht mehr angezeigt.
//EDIT also ich habe nun die Zeile mit der id als letztes gemacht (unter den letzten cache) und nun funktionierts ... WoW
MfG
XonarZ
Entweder ist das nicht der ganze Code, oder die for Schleife wurde nicht mit einem } zu gemacht.
Ne ist nicht der ganze code, aber der code darunter ist auch irrelevant, weil wenn der weg ist (klammer aber zu keine sorge sonst wäre ja 26 Errors wegen Klammerfehler) ... kommt das tacho dennoch nicht...
MfG
XonarZ
Moin Jungs,
Ich hab ein kleines Problem ... Seitdem ich mein Callback OnLoadTanke hinzugefügt habe, kann er mein Tacho System nicht mehr zeigen ... Wenn ich das Callback auskommentiere funktioniert mein Tacho wieder...
new rows;
cache_get_row_count(rows);
for(new i = 0; i < rows; i++){
new string[128], id = i+1;
cache_get_value_name_int(i, "id", tankInfo[id][id_x]);
cache_get_value_name_int(i, "t_typ", tankInfo[id][t_typ]);
cache_get_value_name_float(i, "t_x", tankInfo[id][t_x]);
cache_get_value_name_float(i, "t_y", tankInfo[id][t_y]);
cache_get_value_name_float(i, "t_z", tankInfo[id][t_z]);
cache_get_value_name_float(i, "t_range", tankInfo[id][t_range]);
cache_get_value_name_float(i, "benzin_vol", tankInfo[id][benzin_vol]);
cache_get_value_name_float(i, "diesel_vol", tankInfo[id][diesel_vol]);
cache_get_value_name_float(i, "gas_vol", tankInfo[id][gas_vol]);
cache_get_value_name_float(i, "kerosin_vol", tankInfo[id][kerosin_vol]);
cache_get_value_name_float(i, "benzin_preis", tankInfo[id][benzin_preis]);
cache_get_value_name_float(i, "diesel_preis", tankInfo[id][diesel_preis]);
cache_get_value_name_float(i, "gas_preis", tankInfo[id][gas_preis]);
cache_get_value_name_float(i, "kerosin_preis", tankInfo[id][kerosin_preis]);
return 1;
Alles anzeigen
Jemand eine Idee?
@LeonMrBonnie / @Kaliber / @Jeffry
Wie gesagt wenn das Callback auskommentiert ist, dann funktioniert mein Tacho ...
MfG
XonarZ
probiers mal so:
...das ist kein String, sondern ein int. Musst hier nur rows verwenden.
Ups ja gut ... hab in dem moment falsch gedacht ... Nun zeigt er mir 2x "-1" in der Serverlog an ... Woran könnte das ggf. liegen? also der führt die for schleife nicht aus ...
Heyho ich habe ein kleines Problem mit meinem Biz System...
stock getBizID(){
for(new i = 0; i < sizeof(bInfo); i++){
if(bInfo[i][biz_id] == 0) continue;
printf("Biz: %s(%i) wurde Geladen | X: %f | Y: %f | Z: %f", bInfo[i][biz_name], bInfo[i][biz_id], bInfo[i][biz_x], bInfo[i][biz_y], bInfo[i][biz_z]);
return bInfo[i][biz_id];
}
return -1;
}
public OnLoadTanke(){
new rows;
cache_get_row_count(rows);
for(new i = 0; i < sizeof(rows); i++){
printf("%i", getBizID());
}
return 1;
}
Als Ausgabe erhalte ich:
Es sind allerdings 2 Bizzen im bInfo array drinne...
habt ihr eine idee?
ich habe nun mal eine neue idee ausprobiert leider irgendwo einen denkfehler... Undzwar wie folgt:
OnGameModeInit
//Geschäfte
new query[2048];
mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte");
mysql_pquery(handle, query, "OnLoadBiz");
//Tankstellen
mysql_format(handle, query, sizeof(query), "SELECT * FROM new_tankstellen");
mysql_pquery(handle, query, "OnLoadTanke");
Callbacks & 1 Stock
public OnLoadBiz(){
new rows, string[128];
cache_get_row_count(rows);
if(rows == 0) return 1;
for(new i = 0; i < rows; i++){
new id = getFreeBizID();
cache_get_value_name_int(i, "id", bInfo[id][biz_id]);
cache_get_value_name_int(i, "biz_typ", bInfo[id][biz_typ]);
cache_get_value_name(i, "biz_name", bInfo[id][biz_name], 128);
cache_get_value_name_int(i, "biz_owner", bInfo[id][biz_owner]);
cache_get_value_name_int(i, "biz_sowner", bInfo[id][biz_sowner]);
cache_get_value_name_int(i, "biz_level", bInfo[id][biz_level]);
cache_get_value_name_int(i, "int_id", bInfo[id][int_id]);
cache_get_value_name_float(i, "bizkosten", bInfo[id][biz_kosten]);
cache_get_value_name_float(i, "bizkasse", bInfo[id][biz_kasse]);
cache_get_value_name_float(i, "biz_x", bInfo[id][biz_x]);
cache_get_value_name_float(i, "biz_y", bInfo[id][biz_y]);
cache_get_value_name_float(i, "biz_z", bInfo[id][biz_z]);
cache_get_value_name_float(i, "int_x", bInfo[id][int_x]);
cache_get_value_name_float(i, "int_y", bInfo[id][int_y]);
cache_get_value_name_float(i, "int_z", bInfo[id][int_z]);
cache_get_value_name_float(i, "i_x", bInfo[id][i_x]);
cache_get_value_name_float(i, "i_y", bInfo[id][i_y]);
cache_get_value_name_float(i, "i_z", bInfo[id][i_z]);
if(bInfo[id][biz_owner] == 0){
format(string, 256, "{00AFFF}%s - Zum Verkauf\n{00AFFF}Kosten: {FFFFFF}%0.0f €\n{00AFFF}Benötigtes Level: {FFFFFF}%i\n\nZum Betreten /enter oder Z", bInfo[id][biz_name], bInfo[id][biz_kosten], bInfo[id][biz_level]);
}else{
new teilhaber[MAX_PLAYER_NAME];
if(bInfo[id][biz_sowner] == 0){
teilhaber = "Niemand";
}else{
teilhaber = getSpielerName(bInfo[id][biz_sowner]);
}
format(string, 256, "{00AFFF}%s\nInhaber: {FFFFFF}%s\n{00AFFF}Teilhaber: {FFFFFF}%s\n\nZum Betreten /enter oder Z", bInfo[id][biz_name], getSpielerName(bInfo[id][biz_owner]), teilhaber);
}
bizLabel[id] = Create3DTextLabel(string, COLOR_WHITE, bInfo[id][biz_x], bInfo[id][biz_y], bInfo[id][biz_z], 10, 0, 0);
}
print("|__________Geschäfte wurden Geladen__________|");
return 1;
}
stock getBizID(){
for(new i = 0; i < sizeof(bInfo); i++){
if(bInfo[i][biz_id] == 0) continue;
return bInfo[i][biz_id];
}
return 0;
}
public OnLoadTanke(){
new rows;
cache_get_row_count(rows);
if(rows == 0) return 1;
for(new i = 0; i < rows; i++){
print("1");
new id = getBizID(), dbID, string[256];
print("2");
cache_get_value_name_int(i, "id", dbID);
print("3");
printf("id: %i | dbid: %i", id, dbID);
if(id != dbID) continue;
print("4");
}
return 1;
}
Alles anzeigen
Geschäfte werden auch geladen (Textdraws erstellt usw)... Nun habe ich aber das Problem das mir die Konsole folgendes ausgibt:
[13:21:47] |__________Geschäfte wurden Geladen__________|
[13:21:47] 1
[13:21:47] 2
[13:21:47] 3
[13:21:47] id: 1 | dbid: 1
[13:21:47] 4
[13:21:47] X: 1004.650024 | Y: -936.666992 | Z: 42.328098 | Tankstelle: GS Tanke |
[13:21:47] 1
[13:21:47] 2
[13:21:47] 3
[13:21:47] id: 1 | dbid: 2
Alles anzeigen
heißt er kommt bei OnLoadTanke ab dem zweiten durchgang nur bis print 3 ... weil eben die id nicht gleich der dbid ist (außer beim ersten mal) ... Nun ist meine Frage... Wo hab ich nen Denkfehler drinne ?
//EDIT Neuer Versuch
//EDIT2 Lösungsweg
Ich habe nun eine Lösung gefunden...
//BEARBEITET
stock getBizID(){
for(new i = 0; i < sizeof(bInfo); i++){
return bInfo[i][biz_id];
}
return 0;
}
public OnLoadTanke(){
new rows, //NEU -> id = getBizID()+1;
cache_get_row_count(rows);
if(rows == 0) return 1;
for(new i = 0; i < rows; i++){
print("1");
new dbID, string[256];
print("2");
cache_get_value_name_int(i, "id", dbID);
print("3");
printf("id: %i | dbid: %i", id, dbID);
if(id != dbID) continue;
print("4");
//NEU -> id += 1;
}
return 1;
}
Alles anzeigen
MfG
XonarZ
Moin,
ich baue gerade mein Biz System ... Ich möchte allerdings mein System "Dynamisch" aufbauen. Ich habe angefangen mit der Unterscheidung ob es eine Tankstelle ist... Leider funktioniert es nicht so ganz...
Meine enums:
enum bizData{
db_id,
biz_id,
biz_typ,
biz_name[64],
biz_owner,
biz_sowner,
int_id,
biz_level,
Float:biz_kosten,
Float:biz_kasse,
Float:enter_x,
Float:enter_y,
Float:enter_z,
Float:int_x,
Float:int_y,
Float:int_z,
Float:i_x,
Float:i_y,
Float:i_z
}
new bInfo[][bizData];
enum tankData{
db_id,
t_typ,
Float:t_x,
Float:t_y,
Float:t_z,
t_range,
Float:benzin_vol,
Float:diesel_vol,
Float:gas_vol,
Float:kerosin_vol,
Float:benzin_preis,
Float:diesel_preis,
Float:gas_preis,
Float:kerosin_preis
}
new tankInfo[][tankData];
Alles anzeigen
OnGameModeInit:
//Lade Geschäfte
new query[2048];
mysql_format(handle, query, sizeof(query), "SELECT * FROM geschaefte");
mysql_pquery(handle, query, "loadBizzes");
meine callbacks:
public loadBizzes(){
new rows;
cache_get_row_count(rows);
if(rows == 0) return 1;
for(new i = 0; i < rows; i++){
new id = getFreeBizID();
cache_get_value_name_int(i, "id", bInfo[id][db_id]);
cache_get_value_name_int(i, "biz_typ", bInfo[id][biz_typ]);
cache_get_value_name(i, "biz_name", bInfo[id][biz_name], 128);
cache_get_value_name_int(i, "biz_owner", bInfo[id][biz_owner]);
cache_get_value_name_int(i, "biz_sowner", bInfo[id][biz_sowner]);
cache_get_value_name_int(i, "biz_level", bInfo[id][biz_level]);
cache_get_value_name_int(i, "int_id", bInfo[id][int_id]);
cache_get_value_name_float(i, "bizkosten", bInfo[id][biz_kosten]);
cache_get_value_name_float(i, "bizkasse", bInfo[id][biz_kasse]);
cache_get_value_name_float(i, "enter_x", bInfo[id][enter_x]);
cache_get_value_name_float(i, "enter_y", bInfo[id][enter_y]);
cache_get_value_name_float(i, "enter_z", bInfo[id][enter_z]);
cache_get_value_name_float(i, "int_x", bInfo[id][int_x]);
cache_get_value_name_float(i, "int_y", bInfo[id][int_y]);
cache_get_value_name_float(i, "int_z", bInfo[id][int_z]);
cache_get_value_name_float(i, "i_x", bInfo[id][i_x]);
cache_get_value_name_float(i, "i_y", bInfo[id][i_y]);
cache_get_value_name_float(i, "i_z", bInfo[id][i_z]);
bInfo[id][id_x] = bInfo[id][db_id];
if(bInfo[id][biz_typ] == 1){
new query[1024];
mysql_format(handle, query, sizeof(query), "SELECT * FROM new_tankstellen WHERE id = '%i'", bInfo[id][db_id]);
mysql_pquery(handle, query, "loadTanke", "i", i);
}
}
return 1;
}
public loadTanke(dbid){
new rows, tankeCount, string[128];
cache_get_row_count(rows);
if(rows == 0) return 1;
for(new i = 0; i < rows; i++){
cache_get_value_name_int(i, "id", tankInfo[dbid][db_id]);
cache_get_value_name_int(i, "t_typ", tankInfo[dbid][t_typ]);
cache_get_value_name_float(i, "t_x", tankInfo[dbid][t_x]);
cache_get_value_name_float(i, "t_y", tankInfo[dbid][t_y]);
cache_get_value_name_float(i, "t_z", tankInfo[dbid][t_z]);
cache_get_value_name_int(i, "t_range", tankInfo[dbid][t_range]);
cache_get_value_name_float(i, "benzin_vol", tankInfo[dbid][benzin_vol]);
cache_get_value_name_float(i, "diesel_vol", tankInfo[dbid][diesel_vol]);
cache_get_value_name_float(i, "gas_vol", tankInfo[dbid][gas_vol]);
cache_get_value_name_float(i, "kerosin_vol", tankInfo[dbid][kerosin_vol]);
cache_get_value_name_float(i, "benzin_preis", tankInfo[dbid][benzin_preis]);
cache_get_value_name_float(i, "diesel_preis", tankInfo[dbid][diesel_preis]);
cache_get_value_name_float(i, "gas_preis", tankInfo[dbid][gas_preis]);
cache_get_value_name_float(i, "kerosin_preis", tankInfo[dbid][kerosin_preis]);
tankInfo[dbid][id_x] = tankInfo[dbid][db_id];
printf("Tankstelle: %s | X: %f | Y: %f | Z: %f | ID: %i geladen", bInfo[dbid][biz_name], bInfo[dbid][enter_x], bInfo[dbid][enter_y], bInfo[dbid][enter_z], tankInfo[dbid][id_x]);
format(string, sizeof(string), "%s", bInfo[i][biz_name]);
tankLabel[bInfo[i][id_x]] = Create3DTextLabel(string, COLOR_WHITE, bInfo[i][enter_x], bInfo[i][enter_y], bInfo[i][enter_z], 15, 0, 1);
tankeCount += 1;
}
print("|__________Tankstellen wurden geladen__________|");
printf("Es wurden %i Tankstellen geladen", tankeCount);
return 1;
}
Alles anzeigen
Die Forwards:
Als ergebnis steht in der Konsole:
[14:23:45] Tankstelle: GS Tanke | X: 1928.579956 | Y: -1776.229980 | Z: 13.546899 | ID: 2 geladen
[14:23:45] |__________Tankstellen wurden geladen__________|
[14:23:45] Es wurden 1 Tankstellen geladen
[14:23:45] Tankstelle: BSN Tanke | X: 1000.590026 | Y: -919.880004 | Z: 42.328098 | ID: 1 geladen
[14:23:45] |__________Tankstellen wurden geladen__________|
[14:23:45] Es wurden 1 Tankstellen geladen
//EDIT Nachdem ich das erste Problem gelöst habe, habe ich nun ein weiteres kleines Problem^^
MfG
XonarZ
Habe die R33 schon versucht aber das scheint es nicht zu sein..
Wen ich die R33 drinnen habe passiert das:
Hm okay... Ich weiß es dann nicht sorry, habe noch irgendwas gelesen mit, dass es auch Version R5 sein kann: http://www.solidfiles.com/d/3382c0aefe/ aber am besten warten wir auf @Jeffry ![]()
Welche Mysql Version ist das
Glaube die hier:
https://forum.sa-mp.com/showthread.php?t=56564 zumindest wenn man dem glauben schenken mag
MfG
XonarZ
Du kannst nicht die playerid verwenden, da die sich doch jedes mal ändert und wenn der Spieler offline ist schon gar nicht existiert.
Du musst einfach nur den Namen von dem Spieler verwenden, das ist der eindeutige Key und nicht die playerid
Du verstehst falsch glaub ich
in der Datenbank - Spalte der jeweiligen Tankstelle ist unter der "Variable" owner die DatenbankID des Spielers eingetragen...
Ich rufe mein Stock so auf:
Mein stock sieht nun so aus:
stock getPlayerName(dbid){
new query[512], Name[MAX_PLAYER_NAME];
mysql_format(handle, query, sizeof(query), "SELECT * FROM user WHERE id = '%i'", dbid);
mysql_pquery(handle, query);
cache_get_value_name(0, "name", Name, MAX_PLAYER_NAME);
return Name;
}
bringt mir so aber leider keinen Result...
//EDIT ich hab das Problem nun gelöst... und zwar mit folgendem stock:
stock getPlayerName(dbid){
new query[512], Name[MAX_PLAYER_NAME];
mysql_format(handle, query, sizeof(query), "SELECT * FROM user WHERE id = '%i'", dbid);
mysql_query(handle, query);
cache_get_value_name(0, "name", Name, MAX_PLAYER_NAME);
return Name;
}
MfG
XonarZ
Du musst einen stock verwenden, mit publics kannst du das so nicht zurück geben.
Außerdem musst du anstatt mysql_pquery direkt mysql_query aufrufen. Zu empfehlen ist das aber nicht. Es wäre besser, den Code, der den Name anzeigen soll, im Callback von mysql_pquery auszuführen.
Wie soll ich das am besten machen im stock mit dem code im pquery? meinst du das so in etwa:
stock getPlayerName(playerid){
new row, quer[512], Name[MAX_PLAYER_NAME];
mysql_pquery(handle, "SELECT name FROM user WHERE id = '%i'", playerid);
}
MfG
XonarZ
Nabend ich hab mal wieder eine kleine Frage...
Ich habe in der Datenbank als bizinhaber und teilhaber die datenbank id vom spieler drinne ... nun möchte ich die Namen auslesen (auch wenn sie offline sind) ... Leider komme ich gerade nicht so ganz klar...
public getSpielerName(playerid){
new row, query[512], Name[MAX_PLAYER_NAME];
mysql_format(handle, query, sizeof(query), "SELECT * FROM user WHERE id = '%i'", playerid);
mysql_pquery(handle, query);
cache_get_row_count(row);
if(row == 0) return 0;
cache_get_value_name(0, "name", Name);
return Name;
}
und benutzen tu ich es halt so:
Ich habe beim Compilen 2 Errors:
Alles anzeigenJa, schreib mal hier:
new Float:literCount = floatstr(inputtext)+FLOAT_ERROR;
Eigentlich sollte dies funktionieren.
Wenn nicht, gib die Zahlen mal durch
Und mach im format mal aus dem %0.2f ein %.02f.
Jetzt geht es... Danke dir... Eine frage hab ich noch:
Ich kann doch den literCount mittels SetPVarFloat Speichern und GetPVarFloat aufrufen oder ? weil wenn man SetPVarFloat eingibt kommt ja eine Parameterliste aber bei GetPVarFloat nicht^^
MfG
XonarZ
Alles anzeigen
Hmm, also da du das nur auf die 2. Stelle genau haben willst, funktioniert das eigentlich perfekt:
CAlles anzeigen//Test-Code: printf("1.04 == %.02f",floatstr("1.04")+FLOAT_ERROR); printf("1.50 == %.02f",floatstr("1.5")+FLOAT_ERROR); printf("1.49 == %.02f",floatstr("1.49")+FLOAT_ERROR); printf("1.54 == %.02f",floatstr("1.54")+FLOAT_ERROR); //Output: 1.04 == 1.04 1.50 == 1.50 1.49 == 1.49 1.54 == 1.54Also bei mir funktioniert das alles perfekt.
Kann es sein, dass du bei der Zuweisung einen Fehler gemacht hast oder so?
Mein Dialog_response für diesen DIALOG mit dem Inputtext sieht so aus:
if(dialogid == DIALOG_TANKEN_LTR){
if(response == 0) return SCM(playerid, COLOR_BLUE, "[INFO] {FFFFFF}Du hast den Tankvorgang abgebrochen");
if(response == 1){
new string[128];
new Float:literCount = floatstr(inputtext);
if(!literCount){
new name[64], kraftstoff[64];
GetPVarString(playerid, "kraftstoff", kraftstoff, 64);
format(name, sizeof(name), "%s Tanken", kraftstoff);
format(string, sizeof(string), "Wie viel Liter %s möchtest du Tanken?", kraftstoff);
SPD(playerid, DIALOG_TANKEN_LTR, DIALOG_STYLE_INPUT, name, string, "Tanken", "Abbrechen");
}else{
if(literCount < 1){
return SCM(playerid, COLOR_RED, "Du musst mindestens 1 Liter Tanken");
}else{
format(string, sizeof(string), "Du hast %0.2f Liter eingetragen", literCount);
return SCM(playerid, COLOR_RED, string);
}
}
}
Alles anzeigen
Soll ich es nochmal mit dem FLOAT_ERROR probieren ?
MfG
XonarZ
Darf ich mal fragen, wie deine weiteren Abfragen aussehen und wofür du das brauchst?
Denn es tritt immer bei Floating Operationen ein Fehler auf.
if(!literCount){
new name[64], kraftstoff[64];
GetPVarString(playerid, "kraftstoff", kraftstoff, 64);
format(name, sizeof(name), "%s Tanken", kraftstoff);
format(string, sizeof(string), "Wie viel Liter %s möchtest du Tanken?", kraftstoff);
SPD(playerid, DIALOG_TANKEN_LTR, DIALOG_STYLE_INPUT, name, string, "Tanken", "Abbrechen");
}else{
if(literCount < 1){
return SCM(playerid, COLOR_RED, "Du musst mindestens 1 Liter Tanken");
}else{
format(string, sizeof(string), "Du hast %0.2f Liter eingetragen", literCount);
return SCM(playerid, COLOR_RED, string);
}
}
Alles anzeigen
Ich habe mein Tanksystem so strukturiert, dass mein Tank ein Float ist... wenn der Motor an ist, verliert das Fahrzeug jede Sekunde an gewissen Wert beim Kraftstoff welcher ebenfalls als Float deklariert ist...
Wenn ich jetzt also tanken will, dann soll man auch 1.54 liter als Beispiel tanken können, weil halt nur so viel fehlen.
MfG
XonarZ