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 ![]()
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.
haha was denn für ein Joke?
Hilf mir mal @Chuckletee, wie erklärt man das? ![]()
Sehr geehrter Herr Kevin,
Wie ich einfach dachte, jetzt kommt n Joke ![]()
Manchmal erhalten die Teammitglieder auch Marker aber manchmal nicht
Hmm, ist schwer dir da so zu helfen, da der Code eigentlich korrekt aussieht.
Du musst einfach mal mit prints prüfen, ob das auch immer aufgerufen wird und ob GetPlayerTeam auch immer das richtige Ergebnis liefert ![]()
Nein...
du lässt das eine so wie ich das gemacht habe und das Andere ist der Aufruf dieser Klasse.
Stell dir das so vor, die Klasse ist der Bauplan und der Aufruf setzt den Bauplan dann um, sprich du brauchst beides.
Der Aufruf muss dann von einem anderen php Skript kommen, da wo du das dann verwenden willst...
Falls du jetzt immer noch nichts damit anfangen kannst, eventuell arbeitest du dich erstmal in die Materie ein oder holst dir jemanden ran, der sich etwas besser damit auskennt ![]()
$1234
Eine Variable kann nicht mit einer Zahl anfangen in php.