Dann hättest du ein 4 Dimensionales Array...
Das gibt es in Pawn leider nicht...
Ändere es in:
frRang1 [128],
frRang2 [128],
//usw
Dann hättest du ein 4 Dimensionales Array...
Das gibt es in Pawn leider nicht...
Ändere es in:
frRang1 [128],
frRang2 [128],
//usw
Ich glaube du willst folgendes schreiben:
GivePlayerMoney(playerid, -val);
Wie kann ich einen Media Query für alle gängigsten mobilen Geräte setzen bzw. wie müssten die Auflösungen aussehen?
Nun..deshalb verwendet man ja meistens Frameworks wie Bootstrap, damit man sich damit nicht mehr rumschlagen muss ![]()
Oder mit JQuery..a bit...CSS % nutzen: http://www.dieproduktmacher.co…te-zum-responsive-design/
Kann mir jemand dabei helfen das zu reparieren?
Also..ich würde das so nicht machen...
Da der Code...wenn du keinen DEBUG an hast...trotzdem ausgeführt wird..während er Laufzeit..und dann eben anstatt dem print einfach nur eine 0 wiedergibt.
Besser wäre, folgendes:
Immer direkt da zu machen wo du den Code brauchst.
Da wenn du das #define DEBUG rausnimmst, auch der Code nicht mehr in die .amx kommt.
Allerdings ist das dann immer n bissl doof zu schreiben..das seh ich ein ![]()
Allerdings wäre nur eine alternative...dass du eine globale Variable nutzt..und das über if-Abfragen machst...
Allerdings hättest du dann immer noch die if-Abfragen...allerdings sind if-Abfragen effizienter als permanent so große Funktionen wie du sie da hast aufzurufen & nur 0 auszugeben ![]()
//Edit: Ah ich sollte mal den ganzen Text lesen xD
Also das mit der Globalen Variable sähe z.B. so aus:
Gut..da ist nichts auffällig...
Hast du alle Scriptfiles richtig kopiert...
und wenn ja, einfach noch mal crashdetect reinhauen...
wenn dann nichts auffälliges in der Log Datei steht..können wir dir hier schwer helfen...
Dann würde uns der Code von OnPlayerConnect eventuell weiterhelfen ![]()
...poste mal den server_log ![]()
Lass evtl crashdetect laufen ![]()
Guten Abend liebe Brotfische,
mir war mal wieder langweilig und ich habe ein kleines Include erstellt, mit dessen Hilfe, man extrem schnell & einfach Routen erstellen kann mit Checkpoints.
Egal ob RaceCheckpoints oder normale Checkpoints nun geht alles zack zack.
Grundsätzliche Vorteile:
So, um das besser leserlich zu machen, teile ich den Post nun in Checkpoint & Race-Checkpoints auf:
Checkpoints:
StartCheckpoint<Route>(playerid, start_index, struct[], size);
/*
Route = Die Routenid...wird im unteren erklärt werden
playerid = Die Spielerid dem der Checkpoint angezeigt werden soll
start_index = Der Index, wo die Route starten soll (Standard Fall=0)
struct[] = Hier wurden alle Punkte der Route deklariert.
size = Checkpoint größe :)
*/
IsInCheckpoint(playerid, struct[]<Route>);
/*
playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
Route = Routenid
*/
NextCheckpoint(playerid, struct[]<Route>, size);
/*
playerid = Spielerid dem der Checkpoint angezeigt wird.
struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
Route = Routenid
size = Die größe vom Nächsten Checkpoint :)
*/
GetRouteCounter<Route>(playerid);
/*
playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
Route = Routenid
*/
ClearCheckpoint<Route>(playerid);
/*
playerid = Spielerid dem der Checkpoint verschwindet & speicher frei gemacht wird.
Route = Routenid
*/
Alles anzeigen
Beispiel:
//Das hier oben ins Skript
//Sieht bei Race & Normal Checkpoint gleich aus :)
enum //So definiert man Routen :)
{
TEST_ROUTE,
TUT_ROUTE,
KP_ROUTE
};
struct ~Points~ //Das wäre die Route "Points"
{
{0.0, 5.0, 3.0},
{0.0, 10.0, 3.0},
{0.0, 15.0, 3.0},
{0.0, 20.0, 3.0},
{0.0, 25.0, 3.0},
{0.0, 30.0, 3.0},
{0.0, 40.0, 3.0},
{0.0, 50.0, 3.0},
{50.0, 60.0, 3.0}
};
//So startet man die Route:
StartCheckpoint<TEST_ROUTE>(playerid, START_CHECKPOINT, Points, 4.0);
//4.0 = Checkpoint größe (size)
//START_CHECKPOINT ist in der Route eben [0] (damit die Route am Anfang anfängt)
//Und die Routen id hier ist TEST_ROUTE
public OnPlayerEnterCheckpoint(playerid)
{
switch(IsInCheckpoint(playerid,Points<TEST_ROUTE>)) //Prüft ob er überhaupt drinnen ist (wenn nicht wird -1 ausgegeben) FINAL_CHECKPOINT (1) und NORMAL_CHECKPOINT (0) :)
{
case FINAL_CHECKPOINT: //Springt halt hier rein, wenn der Spieler im Finalen Checkpoint ist
{
SendClientMessage(playerid,0xFF0000FF,!"* Finalen Checkpoint von TEST_ROUTE erreicht!");
ClearCheckpoint<TEST_ROUTE>(playerid); //SEHR WICHTIG!! Lässt den Checkpoint verschwinden & räumt den Speicher auf.
}
case NORMAL_CHECKPOINT:
{
new string[64],x = GetRouteCounter<TEST_ROUTE>(playerid); //x = gibt an, im wie vielten Checkpoint er ist. Kann man auch über einen switch laufen lassen, wenn man z.B. für jeden bestimmten Checkpoint verschiedene Aktionen ausführen will.
format(string,sizeof(string),"Checkpoint %d betreten, von TEST_ROUTE",x);
SendClientMessage(playerid,-1,string);
NextCheckpoint(playerid, Points<TEST_ROUTE>, 5.0); //Sagt, dass der Nächste Checkpoint aufgerufen werden soll.
}
}
return 1;
}
Alles anzeigen
Race-Checkpoints:
StartRaceCheckpoint<Route>(playerid, type, start_index, struct[], size);
/*
Route = Die Routenid...wird im unteren erklärt werden
playerid = Die Spielerid dem der Checkpoint angezeigt werden soll
type = RaceCheckpoint Type
start_index = Der Index, wo die Route starten soll (Standard Fall=0)
struct[] = Hier wurden alle Punkte der Route deklariert.
size = Checkpoint größe :)
*/
IsInRaceCheckpoint(playerid, struct[]<Route>);
/*
playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
Route = Routenid
*/
NextRaceCheckpoint(playerid, struct[]<Route>, size, type);
/*
playerid = Spielerid dem der Checkpoint angezeigt wird.
struct[] = Wie oben, wo die Routen Punkte deklariert wurden.
Route = Routenid
size = Die größe vom Nächsten Checkpoint :)
type = RaceCheckpoint Typ für Nächsten Checkpoint :)
*/
GetRaceRouteCounter<Route>(playerid);
/*
playerid = Spielerid bei der geprüft wird, in welchem Checkpoint er ist.
Route = Routenid
*/
ClearRaceCheckpoint<Route>(playerid);
/*
playerid = Spielerid dem der Checkpoint verschwindet & speicher frei gemacht wird.
Route = Routenid
*/
Alles anzeigen
Beispiel:
//Oben im Skript:
enum //So kann man ganz viele Routen definieren
{
TEST_ROUTE,
TUT_ROUTE,
KP_ROUTE
};
struct ~Points~ //Test Route..mit dem Namen "Points"
{
{0.0, 5.0, 3.0},
{0.0, 10.0, 3.0},
{0.0, 15.0, 3.0},
{0.0, 20.0, 3.0},
{0.0, 25.0, 3.0},
{0.0, 30.0, 3.0},
{0.0, 40.0, 3.0},
{0.0, 50.0, 3.0},
{50.0, 60.0, 3.0}
};
//Da wo die Route starten soll:
StartRaceCheckpoint<TEST_ROUTE>(playerid, NORMAL_TYPE, START_CHECKPOINT, Points, 4.0);
//Normal_TYPE kann man im wiki nachlesen
//START_CHECKPOINT ist in der Route eben [0] (damit die Route am Anfang anfängt)
//Und die routenid hier ist TEST_ROUTE
public OnPlayerEnterRaceCheckpoint(playerid)
{
switch(IsInRaceCheckpoint(playerid,Points<TEST_ROUTE>)) //Prüft ob er den letzten Checkpoint erreicht hat..oder nur einen normalen
{
case FINAL_CHECKPOINT: //Hier hätte er den letzten erreicht!
{
SendClientMessage(playerid,0xFF0000FF,"* Finalen Race Checkpoint von TEST_ROUTE erreicht!");
ClearRaceCheckpoint<TEST_ROUTE>(playerid); //Ganz WICHTIG! Zum checkpoint verschwinden lassen & memory free
}
case NORMAL_CHECKPOINT:
{
new string[64],x = GetRaceRouteCounter<TEST_ROUTE>(playerid); //x = gibt an, welchen Checkpoint er betreten hat (beginnt bei 0)...das könnte man auch über einen switch laufen lassen und somit verschiedene aktionen pro checkpoint ausführen lassen :)
format(string,sizeof(string),"Race-Checkpoint %d betreten, von TEST_ROUTE",x);
SendClientMessage(playerid,-1,string);
NextRaceCheckpoint(playerid, Points<TEST_ROUTE>, 5.0, (IsNextFinish(x,Points)) ? FINISH_TYPE : NORMAL_TYPE); //hintere Bedingung prüft ob er kurz vor dem letzten Checkpoint steht, wenn ja soll FINISH_TYPE (diese Flagge da) im Checkpoint angezeigt werden.
}
}
//Falls diese Route nicht gestartet wurde..wird der switch übersprungen :)
//Wichtig, dass man nicht mehrere Routen startet xD
//Und keine Angst, beim login werden die Daten zurückgesetzt!
return 1;
}
Alles anzeigen
Schluss:
Bei Fragen oder Problemen gerne einfach melden ![]()
Natürlich freue ich mich jederzeit über ein kleines Feedback
In den jeweiligen case Szenarien unter OnPlayerEnter(Race)Checkpoint, könnt ihr auch jeweils am ende ein return 1; setzen, damit nachfolgender Code nicht mehr aufgerufen wird ![]()
Download:
Source-Code: Pastebin
Direkter-Download: MediaFire
Mit freundlichen Grüßen
Du musst die Pickups vom Autohaus clearen ![]()
Die Variablen werden nicht richtig gecleart...setz sie nach dem zerstören auf -1 ![]()
...ehh wo hast n die Include her? ![]()
Wer sagt das man seine Neonlichter sieht? (Also das Objekt).
Kann sein das sie zuweit im Boden sind oder im Auto, das mit dem Wetter ist ein guter Ansatz.
Man sieht sie eben nicht...
deshalb schreibt er ja, dass sie nicht da sind ![]()
Nein, es kann nicht sein, dass sie zu weit im Boden sind..oder im Auto, da die Koordinaten dafür ja stimmen.
Also ist das mit dem Wetter kein guter Ansatz, da er sonst nur schreiben würde, dass sie zwar da sind, aber nicht leuchten...
Es muss hier einfach sein, dass entweder der Code nicht aufgerufen wird..
oder er einfach ein Fehler beim laden/speichern der Variablen Fehler gemacht hat für seine FrakAutos ![]()
Vermute mal, dass es am Wetter liegt.
Nah...dann, würden ja die Neon Objekte ja trotzdem an den Fahrzeugen sein..sie würden nur nicht leuchten ![]()
Naja..printe doch mal in den jeweiligen Code Sektionen..ob der Code aufgerufen wird..und was z.B. FraktAuto[j][neon]
Musst das ja auch alles setzen lassen...
Auch da muss man sich anmelden..oder bei Dropbox...erstmal das Ding starten..
Das halt einfach kein Direkt-Link zu der Datei...sondern immer nur eingebettet ![]()
Also, verwende am besten einfach...einen anderen Upload ![]()
Am einfachsten und effizientesten...am selben server :b
...der Link scheint falsch zu sein...bzw musste freigeben ![]()

Einfach nach "Samp DeAMX" googeln. Ein kleines Programmchen welches die Amx in eine PWN umwandelt.
...das bullshit ![]()
Kannst zwar grob die Struktur und Speicher Allokationen rekonstruieren...aber das ist unmöglich so schön weiter zu arbeiten.
...Ich würde sagen...jetzt haste die Erfahrung gemacht, dass Backups wichtig sind ![]()
Und schau dir eventuell noch ein paar Tutorials an, wie man schnell und schön scriptet (Auslagerung durch Includes)...
und dann kannste n Selfmade mal ordentlich & schön anfangen ![]()
Wenn man das Effizient macht..dauert das auch nicht so lange wie ein GF zu editieren ![]()
Haut rein : script-devilz.to/login-page/
PDO MySQL Es ist ein Datensatz in der DB. Ich gebe die Erlaubniss es zu testen!
#sheesch...nichts für schwache Nerven ![]()
Größe hat. doch es gibt nur eine Zeile mit keiner Ahnung wie vielen Leerzeichen.
Öffne es mal mit Notepad++ oder Pawno...wenn nichts wiedergegeben wird..
Kannst du versuchen...dein PC Status Zurückzusetzen...aber ansonsten sehe ich schwarz ![]()
Das , vor dem WHERE muss weg ![]()