Hallo liebe Community!
Ich wollte fragen ob mir jemand helfen kann.
Ich will Fahrräder am Noobspawn zum Mieten machen.
Also man steigt auf ein Fahrrad und man bekommt eine Nachricht z.b: Benutze /rent bike um dir das Fahrrad zu mieten.
Wenn man diesen Befehl eingegeben hat,kann man mit dem Fahrrad für 20 Minuten fahren und dann soll es zurück gespawnt werden.
Ich hoffe mir kann jemand helfen oder sagen wie mann so etwas machen kann .
Mit freundlichen Grüßen
Bennx
Fahrräder zum Mieten
- Lenovo
- Geschlossen
- Erledigt
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
-
-
das nächste mal bitte die suchefunktion benutzen. dort gibt es einige tuts, wo dies erklärt wird.
heute mach ich das mal für dich. aber bitte für die zukunft merken.
-
if(strcmp(cmdtext,"/blablabla",true)==0)
{
if(IsPlayerInRangeOfPoint(playerid,10.0,1681.8767,-1629.0044,13.5469)) // wo es gehen soll
{
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
//
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
//
vehicleid = CreateVehicle(462,x,y,z,0.0,-1,-1,-1); // die id deines Fahrrad
//
GivePlayerMoney(playerid,-100); //kosten
SetVehicleNumberPlate(vehicleid,"Roller"); //nummernschild
SetVehicleToRespawn(vehicleid);
PutPlayerInVehicle(playerid,vehicleid,0);
SendClientMessage(playerid,0xF5FF00FF,"Viel Spaß mit deinem Roller!");
print("[ACHTUNG]Ein Roller wurde gemietet!");
}
return 1;
} -
er willd as aber so haben, dass man auf das rad aufsteigen muss und dann den befehl eingeben muss.
-
Fehlt nur noch das mit dem zurückspawnen
Das so:
Ganz oben:
#define MAX_FAHRRAD 123;
forward spawnback(vehicleid);
new gemietet[MAX_FAHRRAD];zu guter letzt nen Public machen um das Fahrrad zurückzuspawnen:
public spawnback(vehicleid) {
SetVehicleToRespawn(vehicleid); //RemovePlayerFromVehicle nicht nötig, da der Spieler automatisch "absteigt" wenn es respawnt wird.
gemietet[vehicleid] = 0;
return 1;
}joa das wars eigentlich^^
//Edit das mit dem Aufsteigen:
//Edit2: paar was noch geändert
OnPlayerEnterVehicle(playerid,vehicleid) {
if(GetVehicleModel(vehicleid) == Fahhradmodel) {
SendClientMessage(playerid,COLOR_ROT,"Um das Fahhrad zu mieten gebe /mieten ein.");
RemovePlayerFromVehicle(playerid); // Zufrieden?
}
return 1;
}if(strcmp(cmdtext,"/blablabla",true)==0)
{
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,COLOR_ROT,"Du bist auf keinem Fahhrad.");
vehicleid = GetPlayerVehicleID(playerid);
if(gemietet[vehicleid] == 1)return SendClientMessage(playerid,COLOR_ROT,"Das Fahhrad ist bereits vermietet.");
GivePlayerMoney(playerid,-100); //kosten
SetVehicleNumberPlate(vehicleid,"Roller"); //nummernschild
SendClientMessage(playerid,0xF5FF00FF,"Viel Spaß mit deinem Fahhrad!");
print("[ACHTUNG]Ein Fahhrad wurde gemietet!");
gemietet[vehicleid] = 1;
SetTimerEx("spawnback",1200000,false,"i",vehicleid);
}
return 1; -
OnPlayerEnterVehicle(playerid,vehicleid) {
if(GetVehicleModel(vehicleid) == Fahhradmodel) {
SendClientMessage(playerid,COLOR_ROT,"Um das Fahhrad zu mieten gebe /mieten ein.");
}
return 1;
}wo ist da der fehler??
richtig! man bekommt zwar die meldung, kann aber ohne zu mieten fahren UND was noch viel wichtiger ist, dass passiert auch bei jedem fahrrad. also ist das nicht wirklich korrekt.
-
Ja
Dann noch ne RemovePlayerFromVehicle hin xD
Und: Entweder man macht für ein spezielles Fahrrad das mieten oder halt mit IsPlayerInRangeOfPoint(playerid,30.0,xda_wo_man_mietet,y_da_wo_man_mietet,z_da_wo_man_mietet); -
das funktioniert bei OnPlayerEnterVehicle nicht. deswegen muss das ganze auch unter OnPlayerStateChange.
-
Achso stimmt
Alternativ könnte man auch
TogglePlayerControllable(playerid,false);
TogglePlayerControllable(playerid,true);machen...
Dies unterbricht die Animation. -
das nächste mal bitte die suchefunktion benutzen. dort gibt es einige tuts, wo dies erklärt wird.
heute mach ich das mal für dich. aber bitte für die zukunft merken.
Ich habe es nach dem Tutorial hier gemacht,aber als ich Compilen wollte kam das:
was soll ich tun ich kann nicht mehr Compilen ..
-
dann wirst du irgendwo einen fehler gemacht haben. ich hatte das auch schon benutzt, dieses tutorial. daher weiss ich, dass es einwandfrei geht. sollst ja auch kein copy&paste machen.
der sinn eines tuts ist, lesen und verstehen. -
breadfish.de
Hat das Thema geschlossen.