an was kann das liegen
Dein SA:MP-Server bezieht seine Uhrzeit von deinem Server (der dahinter steht).
Scheint so, als ob die Uhrzeit da falsch gehen würde, also einfach mal die synchronisieren ![]()
an was kann das liegen
Dein SA:MP-Server bezieht seine Uhrzeit von deinem Server (der dahinter steht).
Scheint so, als ob die Uhrzeit da falsch gehen würde, also einfach mal die synchronisieren ![]()
Ja und da ist dein Fehler...wenn die Länge stimmt, rufst du den Abschnitt auf, wo gesagt wird, dass es nicht stimmt...
Also musst du die Logik umkehren:
if(!(Kontonummer[playerid] >= 10000 && Kontonummer[playerid] <= 99999))
...ja, aber wie sieht der Code darunter aus.
Denn ich vermute, du hast eine umgekehrte Logik in deinem Code, sonst würden ja nur die Nummern zwischen 10.000 und 99.999 funktionieren...weil die Abfrage ist ja eindeutig ![]()
Jetzt gehen alle, außer Kontonummern, die 5 Zeichen lang sind
Wie sieht denn dein Code mit der Abfrage aus usw.
Und welche Pin-Nummer gibst du ein?
Da Jeffry dir zu Intgern geraten hat, kannst du keine Kontonummern benutzten, die mit 0 beginnen, also wirklich nur reine Zahlenwerte die größer als 10000 sind.
So fragst du ja auch ab, ob die Nummer kleiner 11111 und größer 99999 ist...das ist ja ein Widerspruch, das geht ja nicht xD
Meine Frage ist nun, wie hast du Kontonummer deklariert?
Komisch dass hier kaum einer auf sa-rl de (San Andreas Fun Reallife) gezockt hat ![]()
Waren lustige Zeiten damals, schade dass das Projekt inzwischen down ist ![]()
für mehr information von mein projekt al pm oder im ts.
Aber dann musst du ja jedem das selbe erzählen...und das mit Pech sehr oft.
Wäre es nicht sinniger, hier zu schreiben, was dein Projekt von allen anderen SA:MP Projekten unterscheiden wird? ![]()
Du wirst sicherlich eine gute Idee haben, wieso du dieses Projekt starten willst.
Ich lese mir gerne (so wie viele andere) solch Kreative Beiträge durch (sowas wirbt sehr).
Viel Erfolg anyway! ![]()
Ja, zeige den großen Sprite mal als erstes an und die anderen eben danach, dann sollte er im Hintergrund sein ![]()
Wieso verwendest du im Skript diese Koordinaten? Die sind falsch. (Schau auf die letzte, die Z-Achse ist komplett unterschiedlich, bei dem einen bist du in einem Interior, bei dem anderen am Boden!)
Nimm einfach die, die im Server Log stehen und es sollte alles klappen! ![]()
Naja, dann pack mal in die Abfrage, wo er das abbricht folgendes rein:
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
printf("%.02f | %.02f | %.02f",x,y,z);
Dann kannst du ja einfach die Koordinaten die du eingetragen hast vergleichen, mit denen, wo er sich gerade befindet ![]()
Am besten auch mal hier beide dann posten ![]()
Also dein Fehler ist eigentlich nur, dass die Koordinaten in der Schleife falsch sind. Offensichtlich ist deine Bank in einem Interior.
Aber mein innerer Optimierer will das ordentlich machen, deshalb pack ich das mal in den Spoiler ![]()
Du brauchst keinen endlosen Timer, der permanent durch alle Spieler loopt.
Mach einfach einen direkten, sobald der Spieler die Bank ausraubt, schau:
(Also lösche deinen SetTimer und deinen public)
//Sowas lagert man immer besser aus:
stock CopsOnline(anzahl)
{
new c;
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(IsPlayerConnected(i) && Fraktion[Spieler[i][Frak]][Polizei] == 1) c++;
}
return c >= anzahl;
}
ocmd:bankrob(playerid, params[])
{
new cops, string[128];
if(Spieler[playerid][Level] < 3)return SendClientMessage(playerid, COLOR_GRAD1, "Das kannst du erst ab Level 3!");
if(!IsPlayerInRangeOfPoint(playerid, 6.0, 1424.3530,-1004.1053,1639.7909))return SendClientMessage(playerid, COLOR_GRAD1, "Du befindest dich nicht am Banktresor.");
if(Fraktion[Spieler[playerid][Frak]][Staat] == 1)return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst als Beamter keine Bank ausrauben.");
if(gettime() < BankRobTime)return SendClientMessage(playerid, COLOR_GRAD1, "Die Bank wurde vor kurzem ausgeraubt, komm später wieder!");
if(!CopsOnline(2))return SendClientMessage(playerid, COLOR_GRAD1, "Es müssen mindestens 2 Beamte online sein!");
BankRobTime = gettime()+(120*120); // Erst in 2 Stunden wieder
GiveWanted("Niemand", playerid, "Bankraub", MAX_WANTEDBANKRAUB);
SendClientMessage(playerid, COLOR_RED, "Du hast ein Verbrechen begangen. (Bankraub) Reporter: Unbekannt");
format(string, sizeof(string), "HQ: %s (ID: %d) hat ein Verbrechen begangen: Bankraub, over.", Spieler[playerid][Name], playerid);
SendHQMessage(COLOR_DARKBLUE, string);
format(string, sizeof(string), "HQ: Reporter: Unbekannt, Aktuelles Wantedlevel: %d, over.", Spieler[playerid][Wanted]);
SendHQMessage(COLOR_DARKBLUE, string);
pIsRobbingBank[playerid] = 1;
pRobbingTimer[playerid] = 240;
format(string, sizeof(string), "%s raubt die Bank in Los Santos aus!", Spieler[playerid][Name]);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
SetTimerEx("OnPlayerBankRob",997,0,"i",playerid);
return 1;
}
public OnPlayerBankRob(playerid)
{
if(!pIsRobbingBank[playerid]) return 0;
new string[128];
if(!IsPlayerInRangeOfPoint(playerid, 30.0, 1424.3530,-1004.1053,1639.7909)) //<< Die Koordinaten sind jetzt die vom Tresorraum, evtl anpassen
{
pIsRobbingBank[playerid] = pRobbingTimer[playerid] = 0;
format(string, sizeof(string), "Bankräuber %s hat die Bank vorzeitig verlassen!", Spieler[playerid][Name]);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Der Bank-Raub wurde abgebrochen.");
return 1;
}
pRobbingTimer[playerid] --;
switch(pRobbingTimer[playerid])
{
case 180: SendClientMessage(playerid, COLOR_LIGHTBLUE, "Noch 3 Minuten bis die Bank erfolgreich ausgeraubt wurde!");
case 120: SendClientMessage(playerid, COLOR_LIGHTBLUE, "Noch 2 Minuten bis die Bank erfolgreich ausgeraubt wurde!");
case 60: SendClientMessage(playerid, COLOR_LIGHTBLUE, "Noch 1 Minute bis die Bank erfolgreich ausgeraubt wurde!");
case 0: {
new preis = randomex(20000, 80000);
format(string, sizeof(string), "%s hat erfolgreich die Bank ausgeraubt. ($%d)", Spieler[playerid][Name], preis);
SendClientMessageToAll(COLOR_LIGHTBLUE, string);
GivePlayerMoney(playerid, preis);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nun sieh zu, dass du hier abhaust!");
pIsRobbingBank[playerid] = pRobbingTimer[playerid] = 0;
Server[Staatskasse] -= preis;
}
}
SetTimerEx("OnPlayerBankRob",997,0,"i",playerid);
return 1;
}
Alles anzeigen
Jetzt hatte ich dir gerade geantwortet ![]()
GUI_Login[playerid][1] = CreatePlayerTextDraw(playerid, 326, 258.166687, "usebox");
PlayerTextDrawLetterSize(playerid, GUI_Login[playerid][1], 0.000000, 2.470367);
PlayerTextDrawAlignment(playerid, GUI_Login[playerid][1], 1);
PlayerTextDrawColor(playerid, GUI_Login[playerid][1], 0);
PlayerTextDrawUseBox(playerid, GUI_Login[playerid][1], true);
PlayerTextDrawBoxColor(playerid, GUI_Login[playerid][1], 102);
PlayerTextDrawSetShadow(playerid, GUI_Login[playerid][1], 0);
PlayerTextDrawSetOutline(playerid, GUI_Login[playerid][1], 0);
PlayerTextDrawFont(playerid, GUI_Login[playerid][1], 0);
PlayerTextDrawTextSize(playerid, GUI_Login[playerid][1], 447, 20);
PlayerTextDrawSetSelectable(playerid, GUI_Login[playerid][1], true);
PlayerTextDrawShow(playerid,GUI_Login[playerid][1]);
GUI_Login[playerid][2] = CreatePlayerTextDraw(playerid, 326, 311.250000, "usebox");
PlayerTextDrawLetterSize(playerid, GUI_Login[playerid][2], 0.000000, 2.405555);
PlayerTextDrawTextSize(playerid, GUI_Login[playerid][2], 447, 2.405555);
PlayerTextDrawAlignment(playerid, GUI_Login[playerid][2], 1);
PlayerTextDrawColor(playerid, GUI_Login[playerid][2], 0);
PlayerTextDrawUseBox(playerid, GUI_Login[playerid][2], true);
PlayerTextDrawBoxColor(playerid, GUI_Login[playerid][2], 102);
PlayerTextDrawSetShadow(playerid, GUI_Login[playerid][2], 0);
PlayerTextDrawSetOutline(playerid, GUI_Login[playerid][2], 0);
PlayerTextDrawFont(playerid, GUI_Login[playerid][2], 0);
PlayerTextDrawTextSize(playerid, GUI_Login[playerid][2], 447, 20);
PlayerTextDrawSetSelectable(playerid, GUI_Login[playerid][2], true);
PlayerTextDrawShow(playerid,GUI_Login[playerid][2]);
Alles anzeigen
Kannst ja mal n Blick darauf werden, falls es doch noch Unklarheiten geben sollte ![]()
Mal eine doofe Frage, kann nur ein Spieler die Bank gleichzeitig ausrauben, also gibt es immer nur einen aktiven Bankräuber? ![]()
Klingt interessant ![]()
Kann dir aber so schlecht helfen, magst mir deine TeamViewer Daten per PN geben, dann schau ich mir das mal an ![]()
Da musst du eigentlich nichts abziehen, da ja dein index bei 0 beginnt und dein listitem auch ![]()
//Mal bisschen Pseudo-Code:
new string[MAX_FRAKTIONEN * 16];
for(new i; i<MAX_FRAKTIONEN; i++)
{
format(string,sizeof(string),"%s%s\n",string,Fraktion[i][Frak_Name]);
}
if(string[0] == EOS) return SCM(playerid,-1,"* Es existieren noch keine Fraktionen!");
ShowPlayerDialog(playerid,500,DIALOG_STYLE_LIST,"Fraktions Liste",string,"Okay","");
Es ist wichtig, dass du keine Fraktionen auslässt.
Sagen wir beispielsweise dein Array sieht so aus:
Fraktion[0][Frak_Name] = "LSPD";
Fraktion[1][Frak_Name] = "Empty";
Fraktion[2][Frak_Name] = "SFPD";
Wichtig ist, dass du dann auch das Empty anzeigst, weil sonst ja deine listitems komplett durcheinander geraten.
Falls du das nicht willst, gibt es viele Möglichkeiten das zu Problem anderweitig zu lösen..entweder mit Arrays oder du packst die Fraktionsid einfach in den String und splittest die wieder raus xD
Angeblich nur jede 157000 Jahre (laut meiner Tante) ist die Mondfinsternis...
Nicht die Mondfinsternis selbst, sondern die genaue Planeten Konstellation ![]()
Also 1. dieses Video ist ja mal für die Katz, man versteht nicht ein Wort und das was er da macht sieht alles andere als professionell aus.
2. Ich verstehe immer noch nicht, was genau du machen willst, ich versuche das mal aufzudröseln:
Also ich denke einfach mal laut:
Wäre es nicht eine Idee, einfach eine Tabelle anzulegen mit ID, Modellname, Mängel1, Mängel2, usw... natürlich benennt man dann Mängel 1 irgendwie mit Licht_defekt oder so und dann ist das eben ein boolscher Wert, den man mit true/false dann einfach über die Checkbox belegen kann.
Oder was wäre hier ran verkehrt? Haben etwa Audi und BMW andere Kategorien? Wenn ja, dann musst du für die 2 Fahrzeuge einfach eine eigene Tabelle machen und dann jeweils dort die Mängel eintragen.
Wir reden hier von 2 Autos, da sollte das alles eig kein Problem sein und irgendwie gut zu lösen sein haha ![]()
Was meinst du denn mit Kategorien, kannst du da ein Beispiel machen?
Wie dem auch sei, theoretisch kannst du doch einfach das als Spalte mit in die Tabelle packen und dann abfragen?
Oder wenn hinter der Kategorie selbst noch Werte stehen, kannst du dafür eine eigene Tabelle nehmen und dann eben per JOIN darauf zugreifen.