Beiträge von XonarZ
-
-
Entferne diese gegebenenfalls mal.
Hat leider nix gebracht ... Sieht nun so aus:
Code
Alles anzeigenpublic OnLoadTanke(bizcount){ new rows; cache_get_row_count(rows); printf("Einträge: %i", rows); for(new i = 0; i < rows; i++){ new string[128]; if(bInfo[i][biz_typ] != 1) continue; cache_get_value_name_int(i, "id", tInfo[i][id_x]); cache_get_value_name_int(i, "t_typ", tInfo[i][t_typ]); cache_get_value_name_float(i, "t_x", tInfo[i][t_x]); cache_get_value_name_float(i, "t_y", tInfo[i][t_y]); cache_get_value_name_float(i, "t_z", tInfo[i][t_z]); cache_get_value_name_float(i, "t_range", tInfo[i][t_range]); cache_get_value_name_float(i, "benzin_vol", tInfo[i][benzin_vol]); cache_get_value_name_float(i, "diesel_vol", tInfo[i][diesel_vol]); cache_get_value_name_float(i, "gas_vol", tInfo[i][gas_vol]); cache_get_value_name_float(i, "kerosin_vol", tInfo[i][kerosin_vol]); cache_get_value_name_float(i, "benzin_preis", tInfo[i][benzin_preis]); cache_get_value_name_float(i, "diesel_preis", tInfo[i][diesel_preis]); cache_get_value_name_float(i, "gas_preis", tInfo[i][gas_preis]); cache_get_value_name_float(i, "kerosin_preis", tInfo[i][kerosin_preis]); if(tInfo[i][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], tInfo[i][benzin_preis], tInfo[i][diesel_preis], tInfo[i][gas_preis]); }else{ format(string, sizeof(string), "{00AFFF}%s\n\nKerosin: {FFFFFF}%0.2f €", bInfo[i][biz_name], tInfo[i][kerosin_preis]); } tankLabel[i] = Create3DTextLabel(string, COLOR_WHITE, tInfo[i][t_x], tInfo[i][t_y], tInfo[i][t_z], 10, 0, 0); printf("TankstellenID: %i | Tankstellen Name: %s", tInfo[i][id_x], bInfo[i][biz_name]); } printf("Es wurden %i Tankstellen geladen", rows); return 1; }
MfG
XonarZ -
zu:for(new i = 0; i < rows; i++){
Leider fehlt immer noch die Tankstelle mit der ID 21 ... Auch keine Fehlermeldung ...
MfG
XonarZ -
Sehr geehrte Scripter Community,
ich habe ein kleines Problem mit meinem Tankstellen System. Ich habe 21 Bizzen ... ID 1 - 17 + 21 sind Tankstellen. Das heißt das 18, 19 und 20 keine Tankstellen sind. Nun Lädt er allerdings die Tankstelle mit der ID 21 nicht ...
Es soll nämlich die ID der Biz auch gleich die ID der Tankstelle sein Sprich BizID = 21 und TankstellenID = 21 (ist ja auch schon so eingerichtet).
Code
Alles anzeigennew rows; cache_get_row_count(rows); printf("Einträge: %i", rows); for(new i = 0; i < bizcount; i++){ new string[128]; if(bInfo[i][biz_typ] != 1) continue; if(bInfo[i][biz_id] == 19) i = 20; cache_get_value_name_int(i, "id", tInfo[i][id_x]); cache_get_value_name_int(i, "t_typ", tInfo[i][t_typ]); cache_get_value_name_float(i, "t_x", tInfo[i][t_x]); cache_get_value_name_float(i, "t_y", tInfo[i][t_y]); cache_get_value_name_float(i, "t_z", tInfo[i][t_z]); cache_get_value_name_float(i, "t_range", tInfo[i][t_range]); cache_get_value_name_float(i, "benzin_vol", tInfo[i][benzin_vol]); cache_get_value_name_float(i, "diesel_vol", tInfo[i][diesel_vol]); cache_get_value_name_float(i, "gas_vol", tInfo[i][gas_vol]); cache_get_value_name_float(i, "kerosin_vol", tInfo[i][kerosin_vol]); cache_get_value_name_float(i, "benzin_preis", tInfo[i][benzin_preis]); cache_get_value_name_float(i, "diesel_preis", tInfo[i][diesel_preis]); cache_get_value_name_float(i, "gas_preis", tInfo[i][gas_preis]); cache_get_value_name_float(i, "kerosin_preis", tInfo[i][kerosin_preis]); printf("TankstellenID: %i | Tankstellen Name: %s", tInfo[i][id_x], bInfo[i][biz_name]); }
Bizcount wird durch meine vorherige Funktion Übergeben (21) ... Ich habe 18 Tankstellen (1-17 + 21) ... ich möchte ja das System Dynamisch haben damit ich ingame Bizzen erstellen kann.
Jetzt frage ich mich, wieso nimmt er die Tankstelle mit der ID 21 nicht ? In der MySQL Error Log steht:
Code[10:54:47] [ERROR] cache_get_value_name_float: invalid row index '20' (number of rows: '18') (...selfmade.pwn:2186)
Ist ja auch eig. klar immerhin sind es 21 Bizzen aber nur 18 Einträge... Aber wie behebe ich dieses Problem ? komme nicht drauf... Habe schon versucht in der Schleife die 18, 19 und 20 mit continue zu überspringen
Ich verzweifel langsam
MfG
XonarZ -
Gibt es eine Möglichkeit Fahrzeuge an Fahrzeuge zu "attachen"
so in einer Art für eine Job-Idee (Autos auf LKW attachen)Diese Frage hatte ich auch schon gestellt wegen des LKW "Packer" um die Fahrzeuge zu "freezen" ... Du musst diese als Object erstellen, schau mal paar Beiträge paar seiten vorher... Da hat Kaliber was schönes geschrieben zu^^
MfG
XonarZ -
Ich möchte dir nicht die idee nehmen mit dem Carkey system, aber wäre dann für den Anfang nicht leichter, einen /carlock command zu machen, der abfragt welches Fahrzeug in der nähe ist und wenn er der besitzer ist, auf bzw. Zu schließt?
So hab ich es zumindest
MfG
XonarZ -
Was für einen Sinn hat denn new id = i+1; ?
Das ist Blödsinn, nutze anstatt id nur i
Ganz einfach, die Biz geschichten werden aus der Datenbank ausgelesen und die Spalte "id" soll auch gleichzeitig die bizid sein ... Wenn ich nur i benutze funktioniert das ganze System irgendwie nicht so wie ich das will...
//EDIT habs dennoch mal getan, war ebenfalls nicht die Lösung.
MfG
XonarZ -
Nabend,
ich habe soeben ein lustiges Problem festgestellt ... in meiner MySQL Log steht folgendes:
Code
Alles anzeigen[20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2053) [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2054) [20:09:22] [ERROR] cache_get_value_name: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2055) [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2056) [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2057) [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2058) [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2059) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2060) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2061) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2062) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2063) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2064) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2065) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2066) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2067) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2068) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2069) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2070) [20:09:22] [ERROR] cache_get_value_name_int: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2071) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2072) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2073) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2074) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2075) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2076) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2077) [20:09:22] [ERROR] cache_get_value_name_float: invalid row index '2' (number of rows: '1') (...selfmade.pwn:2078)
Die zeilen dazu:Code
Alles anzeigenfor(new i = 0; i < rows; i++){ new id = i+1; Zeile: 2053 -> 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], 1024); 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]); cache_get_value_name_int(i, "actor_skin", bInfo[id][actor_skin]); cache_get_value_name_float(i, "actor_x", bInfo[id][actor_x]); cache_get_value_name_float(i, "actor_y", bInfo[id][actor_y]); cache_get_value_name_float(i, "actor_z", bInfo[id][actor_z]); cache_get_value_name_float(i, "actor_r", bInfo[id][actor_r]); cache_get_value_name_float(i, "liefer_x", bInfo[id][liefer_x]); cache_get_value_name_float(i, "liefer_y", bInfo[id][liefer_y]); Zeile: cache_get_value_name_float(i, "liefer_z", bInfo[id][liefer_z]); }
Rows hat den Wert 21 ... Sprich 0 kann die variable rows nicht sein ...
MfG
XonarZ -
Meinst du sowas? https://forum.sa-mp.com/showthread.php?t=154653
Joa nice ... Was hast du bei google eingegeben ? Ich hab nach "samp gebiete", "samp locations" usw. gesucht ... ich bin wohl zu dumm zum kacken xD
MfG
XonarZ -
Moin...
Ich hab da mal eine Frage... Gibt es eine Möglichkeit die Aktuelle Location anzuzeigen ?
Ich find dazu irgendwie nix bei google ... Ich würde das ganze gerne über ein Textdraw anzeigen lassen...
MfG
XonarZ -
Ich glaube du hast das prinzip von Salt nicht so ganz verstanden.
Probier es mal so:
// Registrierennew salt[64], hash[64 + 1];for(new i = 0; i < sizeof(salt); i++) salt[i] = random(2) ? (random(26) + (random(2) ? 'a' : 'A')) : (random(10) + '0');SHA256_PassHash(registerpw, salt, hash, sizeof(hash));// -- Variablen hash & salt in Datenbank speichern// Login// -- Variablen hash & salt aus Datenbank holennew hash[64 + 1];SHA256_PassHash(inputtext, SALT_AUS_DATENBANK, hash, sizeof(hash));if (!strcmp(hash, HASH_AUS_DATENBANK)){ // Erfolgreicher Login}Danke Funktioniert
Was bedeuten aber diese "?" wenn ich fragen darf ?
MfG
XonarZMfG
XonarZ -
Okay ich erklärs dieses mal mit Code...
Aktion beim "Registrieren:"
Codeformat(salt, sizeof(salt), "%s%s%s", registername, registerpw, registermail); SHA256_PassHash(salt, salt, salt, 128); SHA256_PassHash(password, salt, password, 128);
Salt wird in die Datenbank eingetragen und das password auch also beides...
und so sieht es beim Login aus:
Codeformat(salt, sizeof(salt), "%s%s%s", loginname, inputtext, dbmail); SHA256_PassHash(salt, salt, salt, 128); printf("%s", salt); printf("%s", inputtext); SHA256_PassHash(inputtext, salt, loginpw, 128); printf("%s", loginpw);
die daten loginname, inputtext, dbmail sind korrekt ... Der hier Formatierte Salt entspricht dem aus der Datenbank ... nur das Passwort ist nicht gleich...
MfG
XonarZ -
Moin ...
Ich hab ein problem mit der SHA256_PassHash Funktion ... Wenn sich ein Spieler Registriert erstelle ich einen salt und speicher diesen in die Datenbank ... Mit dem Salt erstelle ich ein Passwort welches ich als Password speichere ...
Beim Login Hashe ich die Eingabe vom Spieler (das Passwort) ... Durch das Passwort komme ich auch wieder auf den richtigen salt der in der Datenbank steht ... mit dem Salt hashe ich wieder um auf das Passwort zu kommen... Ich bekomme allerdings nicht den gleichen Wert raus der in der datenbank steht ... immer ein anderer (pro relog)...
hat jemand eine Idee?
Kurzfassung: beim Login: der Salt stimmt überein nur das Passwort hinterher nicht ...
MfG
XonarZ -
Danach erneut überprüf, ob das Problem weiterhin besteht. Das verlinkte Thema behandelt die gleiche Thematik wie diese auch. Es gibt dazu mehrere Beiträge im Off. SA-MP-Forum.
Okay ich teste es morgen, muss leider in kürze los zur Arbeit
Zu den rotierenden Tacho würde ich dich bitten zu erwähnen, wo genau dein Problem darin liegt.
Bist du schon in der Lage Textdraws selbstständig auf den Server einzufügen und auch anzuzeigen, oder hast du auch da deine Probleme?Also Textdraws ansich nicht, allerdings wie man Bilder einfügt... Ich weiß nur, dass man eine .txd erstellen muss in der man mittels eines txd editors das Bild einfügt, diese vermutlich in den models ordner vom server legen und dann irgendwie als Textdraw anzeigen
Nur wie weiß ich noch nicht und vorallem welche Auflösung darf dieses Bild maximal haben ...
Und ich vermute, ich brauche jemanden, der sich mit Photoshop o.ä auskennt um so ein tacho zu machen oder?
//EDIT Ich habs total aus den Augen verloren ... Ich habs nun versucht... leider kein Erfolg... Public ist im Script enthalten
//EDIT 2 ich bleib nun erstmal auf 0.3.7 Danke trz.MfG
XonarZ -
Wenn der Dialogtype nicht DIALOG_STYLE_MSGBOX ist, dann ist der inputtext[] der bei OnDialogResponse übergeben wird, automatisch der Text vom ersten Tab in der Zeile.
Da ja dort der erste Tab in der Zeile die ID ist, kannst du dann einfach strval(inputtext) verwenden, und das ist dann die gewählte ID.WoW danke ... hab ich das irgendwo überlesen ? Ich wusste das noch gar nicht
DANKEE
-
Nabend Jungs
Ich habe mein Bizsystem endlich fertig und möchte nun mittels eines Befehls mir die Anzeigen lassen... Mein Code sieht wie folgt aus:
Codeocmd:bizzen(playerid, params[]){ SetPVarInt(playerid, "showbizzen", 0); SPD(playerid, DIALOG_BIZZEN, DIALOG_STYLE_LIST, "Welche Bizzen Anzeigen?", "BSN\nTankstellen", "Bestätigen", "Abbrechen"); return 1; }
Code
Alles anzeigenif(dialogid == DIALOG_BIZZEN){ switch(GetPVarInt(playerid, "showbizzen")) { case 0 :{ switch(response){ case 0: return 1; case 1: { switch(listitem){ case 0: return 1; case 1: { new string[2048]; strcat(string, "BizID\tBiz Name\tBesitzer"); for(new i = 0; i < sizeof(bInfo); i++){ if(bInfo[i][biz_id] == 0) continue; if(bInfo[i][biz_typ] != 1) continue; format(string, sizeof(string), "%s \n%i\t%s\t%i", string, bInfo[i][biz_id], bInfo[i][biz_name], bInfo[i][biz_owner]); } SetPVarInt(playerid, "showbizzen", 1); ShowPlayerDialog(playerid, DIALOG_BIZZEN, DIALOG_STYLE_TABLIST_HEADERS, "Alle Tankstellen", string, "Okay", "Cancel"); } } } } } case 1:{ switch(response){ case 0: return 1; case 1: { printf("listitem: %i", listitem); } } } } }
Jetzt ist die sache, dass wenn ich auf Tankstellen klicke, die daten richtig sind... Nun ist es aber so, dass wenn ich drauf klicke, möchte ich rausfinden auf was ich geklickt habe ... Sprich ich möchte die "value" von "bizid" vom jeweiligem listitem haben ... ist das möglich ? Ich möchte auch nicht alle Biz Typen sehen sondern nur die, die ich angeklickt habe...
MfG
XonarZ -
Nicht sehr gut.
Besser wäre es ein Auto Objekt zu nehmen und dieses an den Schlepper zu attachen.Ich verstehe jetzt nicht ganz wie ich das machen sollte ...
CreateObject oder wie ?
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 ...
Code
Alles anzeigen...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.
Zeile 1150:
Codeif(!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:Code
Alles anzeigenenum 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];
Ich hab schon wieder nen brett vorm kopf ...
MfG
XonarZ