Hab Prints unter OnPlayerConnect und meine Abfrage gesetzt, wird aber nichtmal der erste Print gezeigt.
Also es wird OnPlayerConnect garnicht aufgerufen.
[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
-
-
-
probiers mal so:
-
Geht so nicht.
Er gibt mir auch in den ersten paar Zeilen Tag mismatch an. -
-
-
float
zu
Float -
/deleted im anderem thema geschrieben (actor crash)
-
Hallo,
ich bin mir gerade etwas unsicher, ob ich break; oder continue; verwenden soll.
forward SecondTimer();
public SecondTimer()
{
for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) //Schleife durch alle Spieler
{
if(!IsPlayerConnected(i))continue; //Abfrage, ob der Spieler verbunden ist
//Abfrage, ob der Spieler eingeloggt ist
if(pInterior_Flight[i] != 0) //Ist pInterior_Flight nicht 0, dann..
{
pInterior_Flight[i] --; //.. runterzählen
}
else if(pInterior_Flight[i] == 0) continue; //Sobald pInterior_Flight 0 ist, wird die Schleife hier unterbrochen}
return 1;
} -
Mit break; wird die Schleife komplett abgebrochen. Mit continue geht die Schleife einfach zum nächsten Spieler/Fahrzeug/Was auch immer geloopt wird.
Also so wie du es hast, ist es schon richtig.
-
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at index 65535 in array of size 2000
[debug] AMX backtrace:
[debug] #0 00065058 in ?? (34, 1926256, 0, 1141493789, -996284512, 1099415840, 1124079062, 1, 1) from cops.amx
[debug] #1 0004e83c in public OnDialogResponse (0, 37, 1, -1, 1926252) from cops.amx
if(dialogid == XV_DIALOGID+5)
{
if(response)
{
new xid = xVeh[GetPlayerVehicleID(playerid)];
if(GetPlayerxVehicleCount(playerid) >= MAX_PLAYER_POSSVEHS) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You have reached the limit! You can't buy more vehicle."), RemovePlayerFromVehicle(playerid);
if(GetPlayerMoney(playerid) < xVehicle[xid][xv_Fiyat]) return SendClientMessage(playerid, -1, "{FF0000}[!] {F0AE0F}You don't have enough money!"), RemovePlayerFromVehicle(playerid);
GivePlayerMoney(playerid, -xVehicle[xid][xv_Fiyat]);
CreatexVehicle(xid,GetName(playerid),xVehicle[xid][xv_Fiyat],551.2518,-1263.2383,16.9693,128.0853,1,1);
}
else
{
if(!IsPlayerAdmin(playerid)) RemovePlayerFromVehicle(playerid);
}
}Ideen? Funtkioniert nicht
-
Ideen? Funtkioniert nicht
printe dir mal, was die einzelnen Werte sind...
Also was ist xid und was ist id in CreatexVehicle
-
Number of vehicle models: 5
OnNormalCarsLoad wurde aufgerufen
[xVehicle] 2 vehicle loaded.
[xVehicle] 0 vehicle loaded.
wid wert 5
ID ist 2
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at index 65535 in array of size 2000
[debug] AMX backtrace:
[debug] #0 0006518c in ?? (5, 1926440, 1, 1141493789, -996284512, 1099415840, 1124079062, 1, 1) from cops.amx
[debug] #1 0004e918 in public OnDialogResponse (0, 37, 1, -1, 1926436) from cops.amx -
Abend Jungs,
Codenew seconds = pInfo[playerid][pAutoRestzeit] - gettime(); new days = seconds / 86400; seconds -= days * 86400; new hours = seconds / 3600; seconds -= hours * 3600; new minutes = seconds / 60; seconds -= minutes * 60; new year, month, day, hour, minute, second; TimestampToDate(pInfo[playerid][pAutoDatum], year, month, day, hour, minute, second, 2); if(pInfo[playerid][pAutosperre]) format(string, sizeof(string), "%s\n{bc4343} | %02d.%02d.%d | •Autoschein Sperre (%d:%d:%d)", string, day, month, year, hours, minutes, seconds);
Welchen Wert muss ich denn jetzt speichern und bzw. welcher Wert ist die Restzeit. Wie wird sie gespeichert und als was?
Nicht vergessen ist TimestampToDate. Meine ich hatte das schon aber habe gemerkt das es nirgends gespeichert wird.Muss ich dazu noch einen Timer erstellen der prüft ob die Zeit abgelaufen ist sagen wir so alle 2 Minuten? Wenn ja wie sieht der
Code aus einfach ob die Restzeit <0 ist?Muss es eine Float sein? Wenn ja wie viele nach Komma Stellen?
-
Abend Jungs,
Codenew seconds = pInfo[playerid][pAutoRestzeit] - gettime(); new days = seconds / 86400; seconds -= days * 86400; new hours = seconds / 3600; seconds -= hours * 3600; new minutes = seconds / 60; seconds -= minutes * 60; new year, month, day, hour, minute, second; TimestampToDate(pInfo[playerid][pAutoDatum], year, month, day, hour, minute, second, 2); if(pInfo[playerid][pAutosperre]) format(string, sizeof(string), "%s\n{bc4343} | %02d.%02d.%d | •Autoschein Sperre (%d:%d:%d)", string, day, month, year, hours, minutes, seconds);
Welchen Wert muss ich denn jetzt speichern und bzw. welcher Wert ist die Restzeit. Wie wird sie gespeichert und als was?
Nicht vergessen ist TimestampToDate. Meine ich hatte das schon aber habe gemerkt das es nirgends gespeichert wird.Muss ich dazu noch einen Timer erstellen der prüft ob die Zeit abgelaufen ist sagen wir so alle 2 Minuten? Wenn ja wie sieht der
Code aus einfach ob die Restzeit <0 ist?Muss es eine Float sein? Wenn ja wie viele nach Komma Stellen?
TimestampToDate() wandelt einen UNIX-Timestamp in ein Datum um. Der UNIX-Timestamp für gerade JETZT lautet 1539246883 und würde per TimestampToDate() dir folgendes zurückgeben:
year = 2018, month = 10, day = 11, hour = 10, minute = 35. Speichern würde ich generell immer den UNIX-Timestamp den du in der Variable pAutoRestzeit speicherst. Damit kannst du dir nämlich immer berechnen, wie lange es noch bis zur Zeit pAutoRestzeit dauert, als auch welche Zeit es genau ist.Der UNIX-Timestamp ist eine ganze Zahl (int), demnach musst du keinerlei Komma-Stellen beachten. Zur Überprüfung kannst du einfach schauen, ob gettime() > als pAutoRestzeit ist - falls ja, ist die Zeit abgelaufen.
-
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...
Code
Alles anzeigennew 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;
Jemand eine Idee?
@LeonMrBonnie / @Kaliber / @Jeffry
Wie gesagt wenn das Callback auskommentiert ist, dann funktioniert mein Tacho ...
MfG
XonarZ -
Entweder ist das nicht der ganze Code, oder die for Schleife wurde nicht mit einem } zu gemacht.
-
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 -
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) -
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)Code
Alles anzeigenpublic 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; }
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