Hallihallo,
ich bin dabei ein /rent befehl zu machen. Ich zeig euch den code, ich weis nicht wie ichs erklären soll:
Die Variablen für den Befehl gelten da für alle Spieler, also wenn einer das bike mietet, ist es für alle gemitet usw.
Schaut euch bittte das script an und verbessert es und erklärt auch [mir ganz WICHTIG] was falsch war...
der code:
//news
new vehicle;
new rented = 0;
new rentedcar;
forward rent(playerid);
//die commands
if (strcmp("/rent", cmdtext, true, 10) == 0)
{
if(vehicle >= 0 && vehicle <= 6)
{
if(rented == 1)
{
SendClientMessage(playerid, Rot, "Du mietest bereits ein Fahrzeug, warte bis der vertrag ausläuft");
}
else
{
if(GetPlayerMoney(playerid) < 100)
{
SendClientMessage(playerid, Rot, "Du hast nicht 100 Euro");
}
else
{
SetTimer("rent", 5000, false);
rented=1;
rentedcar = GetPlayerVehicleID(playerid);
GivePlayerMoney(playerid, -100);
PutPlayerInVehicle(playerid,vehicle,0);
TogglePlayerControllable(playerid,1);
}
}
}
else
{
SendClientMessage(playerid, Rot, "Dieses Fahrzeug kannst du nicht mieten!");
}
return 1;
}
if (strcmp("/cancel", cmdtext, true, 10) == 0)
{
RemovePlayerFromVehicle(playerid);
TogglePlayerControllable(playerid,1);
//SetTimer(rent, 1000*60*20, false);
return 1;
}
//timer public
public rent(playerid)
{
RemovePlayerFromVehicle(playerid);
SetVehicleToRespawn(vehicle);
rented = 0;
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
{
vehicle = GetPlayerVehicleID(playerid);
if(vehicle >= 0 && vehicle <= 6)
{
if(rentedcar != GetPlayerVehicleID(playerid))
{
TogglePlayerControllable(playerid,0);
SendClientMessage(playerid, 0x376800FF, "Benutze /rent um den Roller für 100 Euro zu 20 min zu mieten");
SendClientMessage(playerid, 0x376800FF, "Benutze /cancel um den Roller nicht zu mieten");
}
}
}
if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT)
{
TextDrawHideForPlayer(playerid, carnamedraw);
}
return 1;
}
BZW: pastebin: http://pastebin.com/1nXyNHvC