Whice Hahaha, da werden die Beiträge von vor 14 Jahren ausgepackt, ohjeee ich werde alt
Das System ist ja geschrieben und anscheinend ist der Bedarf ja noch vorhanden - somit kann man das auch mal rauskramen^^
Whice Hahaha, da werden die Beiträge von vor 14 Jahren ausgepackt, ohjeee ich werde alt
Das System ist ja geschrieben und anscheinend ist der Bedarf ja noch vorhanden - somit kann man das auch mal rauskramen^^
Dein gewünschtes System scheint nicht allzu komplex zu sein, deswegen wollte ich mal was testen. Ich habe deinen Satz einfach mal ChatGPT gegeben und der Code der rauskam, sah tatsächlich gar nicht schlecht aus. Wichtig ist: Ich habe diesen Code nicht komplett geprüft aber es sollte sicherlich ein guter Baustein sein, um das System kennenzulernen und ggf. daran weiter zu arbeiten.
#include <a_samp>
#define PRICE_PER_KM 2.0
new bool:TaxiDuty[MAX_PLAYERS];
new TaxiDriver[MAX_PLAYERS]; // Speichert Fahrer für Beifahrer
new Float:LastPos[MAX_PLAYERS][3]; // Letzte Position für Distanzmessung
new Float:DistanceKM[MAX_PLAYERS]; // Gefahrene KM
new Text:TaxiTD[MAX_PLAYERS];
public OnFilterScriptInit()
{
print("Taxi System geladen.");
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/fahre", true) == 0)
{
TaxiDuty[playerid] = !TaxiDuty[playerid];
if(TaxiDuty[playerid])
SendClientMessage(playerid, -1, "Du bist nun im Taxi Dienst (onduty).");
else
SendClientMessage(playerid, -1, "Du bist nun nicht mehr im Taxi Dienst (offduty).");
return 1;
}
return 0;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
// Spieler steigt als Beifahrer ein
if(newstate == PLAYER_STATE_PASSENGER)
{
new vehicleid = GetPlayerVehicleID(playerid);
new driver = GetVehicleDriver(vehicleid);
if(driver != INVALID_PLAYER_ID && TaxiDuty[driver])
{
TaxiDriver[playerid] = driver;
DistanceKM[playerid] = 0.0;
GetPlayerPos(playerid, LastPos[playerid][0], LastPos[playerid][1], LastPos[playerid][2]);
TaxiTD[playerid] = TextDrawCreate(320.0, 50.0, "Taxi: $0");
TextDrawAlignment(TaxiTD[playerid], 2);
TextDrawBackgroundColor(TaxiTD[playerid], 0x000000AA);
TextDrawFont(TaxiTD[playerid], 1);
TextDrawLetterSize(TaxiTD[playerid], 0.3, 1.0);
TextDrawColor(TaxiTD[playerid], 0xFFFFFFFF);
TextDrawSetOutline(TaxiTD[playerid], 1);
TextDrawShowForPlayer(playerid, TaxiTD[playerid]);
}
}
// Spieler steigt aus
if(oldstate == PLAYER_STATE_PASSENGER)
{
if(TaxiDriver[playerid] != INVALID_PLAYER_ID)
{
new fare = floatround(DistanceKM[playerid] * PRICE_PER_KM);
new string[128];
format(string, sizeof(string), "Taxi Fahrt beendet. Preis: $%d", fare);
SendClientMessage(playerid, -1, string);
GivePlayerMoney(playerid, -fare);
GivePlayerMoney(TaxiDriver[playerid], fare);
TextDrawHideForPlayer(playerid, TaxiTD[playerid]);
TextDrawDestroy(TaxiTD[playerid]);
TaxiDriver[playerid] = INVALID_PLAYER_ID;
}
}
return 1;
}
public OnPlayerUpdate(playerid)
{
if(TaxiDriver[playerid] != INVALID_PLAYER_ID)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new Float:dist = floatsqroot(
floatpower(x - LastPos[playerid][0], 2) +
floatpower(y - LastPos[playerid][1], 2) +
floatpower(z - LastPos[playerid][2], 2)
);
DistanceKM[playerid] += dist / 1000.0; // GTA Einheiten ≈ Meter
LastPos[playerid][0] = x;
LastPos[playerid][1] = y;
LastPos[playerid][2] = z;
new fare = floatround(DistanceKM[playerid] * PRICE_PER_KM);
new string[64];
format(string, sizeof(string), "Taxi: $%d", fare);
TextDrawSetString(TaxiTD[playerid], string);
}
return 1;
}
stock GetVehicleDriver(vehicleid)
{
foreach(new i : Player)
{
if(GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER)
return i;
}
return INVALID_PLAYER_ID;
}
Alles anzeigen
Als Alternative möchte ich dir natürlich trotzdem etwas bieten, wofür sich mal Leute Mühe gegeben haben.
Ich habe wir quasi was ganz modernes vom guten Kaliber gefunden (Übrigens über unsere großartige Suchfunktion - gerne mal testen
)
Dieses System ist zwar ein Taxi System aber etwas anderes als Beschrieben, trotzdem fande ich es spannend: [Bot] Taxi System V. 1x
Falls du es allerdings doch selbst schreiben willst und nur die Kilometerberechnung das Problem ist, kann ich dir folgenden Beitrag empfehlen: Kilometer Anzeige / Berechnung
TheDocJJ schreib uns doch gerne noch mögliche Zahlungsmethoden dazu.
Moin,
zum Thema RedMix-Script kann ich dir nur sagen, das dies nie offiziell Released wurde. Es gab zwar mal ein Leak durch einen ehemaligen Entwickler (der das nicht durfte) - die Rechte liegen jedoch noch immer bei Alex bzw. Puma.
Wenn du dies also aktiv nutzen willst, müsstest du das vorher mit den beiden klären.
Danke erstmal euch beiden, die Frage ist nur inwieweit für beide bereits UCP's existieren
Moin,
aktuell bin ich auf der Suche nach einem neuen Projekt für mich. Ich hatte die Idee mich an einem vielseitigem UCP zu versuchen.
Schön wäre es natürlich, wenn das Ganze am Ende auch eine Verwendung hätte.
Somit dachte ich mir, bleibe ich im GTA Universum und gestalte ein UCP für eine bekanntere FiveM-Ressource/Framework.
Da ich mich bisher wenig mit FiveM auseinander gesetzt habe, wäre hier die Frage:
Kennt ihr eine Ressource/Framework (oder mehrere Zusammengehörige) bei denen ein solches Control-Panel wünschenswert wäre?
Auch Interessant wäre, welche Features bisher immer fehlen und benötigt werden?
Danke schonmal für alle Antworten!
Da kann man ja nur mitmachen, nachdem ich jetzt 11kg abgenommen habe, brauche ich wohl auch dringend mal nen neuen Hoodie
Auch IP Ban hilft nicht ist immer wieder Ausländische IP
Warum sperrst du nicht direkt anfragen von Ausländischen IP's - falls du aktive User hast, die aus solchen Regionen kommen - können sie sich ja extra melden und du whitlisted die
Das müsste das doch auslesen oder versteh ich grad was falsch?
Das sieht auch soweit gut aus, nur musst du ja die Variable noch befüllen
Also:
Mit level wird da nix abgefragt
es wird nur geprüft ob er den schein hat oder nicht
1 = ja hat ein 0 = hat kein führe ereigniss aus
Ich hab nur noch gemerkt das ich bei dem /giveschein Befehl den wir oben schon überarbeitet haben immer den Fehler ingame bekomm „das Level des Spielers ist zu niedrig“
Bei dem Befehl giveschein wird das Level abgefragt - nur dementsprechend beim Login nicht richtig in die Variable geladen
er Wert steht ja in der spielerdatei und wird nur abgefragt oder nicht?
Vermutlich wird er dann nicht geladen, die Abfrage ist korrekt
Achso okay ich dachte das man dass einzeln abfragen muss. Ich werde es später mal so versuchen. Ich hab nur noch gemerkt das ich bei dem /giveschein Befehl den wir oben schon überarbeitet haben immer den Fehler ingame bekomm „das Level des Spielers ist zu niedrig“ das Level stimmt aber überein an was kann das den liegen?
Vermutlich an deiner Implementierung, hast du denn im Vorfeld, von dem Spieler, den du den Schein geben möchtest, die Variable: PlayerInfo[playerid][pLevel] angepasst?
Am besten postest du hier den Code, dann haben auch alle im Forum die Möglichkeit dir zu helfen
aber sobald man connectet hat man keine waffen mehr.
So ganz ohne Code wird dir da vermutlich keiner weiter helfen können. Kannst du uns die Passagen, in dem du die Waffen ausließt bzw. die Waffen geladen werden zur Verfügung stellen?
Filterscript wären eine Möglichkeit, aber du wärst begrenzt auf 16.
Als Alternative könntest du dich mit Hooking auseinandersetzten und auf Includes setzten.
Hast du die common.rpf im Hauptverzeichnis von GTA ersetzt?
Hast du denn die libmysqlclient Datei?
Für die ganzen Baumfetischisten unter euch: WLRDBONSAIDAY
Bitte direkt nochmal an die Regelungen anpassen: Regeln für den Marktplatz