Ich will das ja nicht mit einer Tür oder sonstiges Beschränken sondern als IsPlayerInArea oder so. Also er soll wenn er ohne ticket in diesen bereich läuft wieder rausgeschmissen werden.
Beiträge von Shoxx
-
-
Hallo,
ich bin derzeit am Scripten eines Casino Systems.
Deswegen habe ich einige Fragen und zwar will ich, dass man ohne Eintrittskarte nicht in das Casino kommt.
Also sollte man auf das Gebiet laufen, wird man wieder rausgespawn bzw. aus der Area gespawn.
Wie funktioniert das?Desweiteren will ich ein Roulettesystem scripten, wo man z.b. entweder eine Farbe oder eine zahl tippen kann und diese dann durch ein Timer und einer Random Variable laufen lasse und falls es richtig war die doppelte anzahl des einsatzes bekommt.
Kann mir jemand tipps geben bzw. einen ansatz damit ich weiter machen kann?
Danke!
-
Ich habe es jetzt so gemacht, Funktioniert auch.
Codefor(new i = 0;i<sizeof(AutoZu);i++) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(AutoZu[i], engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(AutoZu[i],engine,1,alarm,doors,bonnet,boot,0); SetVehicleParamsForPlayerEx(AutoZu[i],i,0,1); }
dürfte ja kein problem aufkommen oder?
-
-
Der Code steht direkt nach dem erstellen der Fahrzeuge.
//Edit:
CodeAutoZu[1] = CreateVehicle(424,561.5822,-1290.9329,18.1065,1.6558,1,0,1); // Bf-Injection AutoZu[2] = CreateVehicle(555,-1664.3586,1223.7107,20.8409,195.8793,1,0,1); // Windsor for(new i = 0;i<sizeof(AutoZu);i++) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(AutoZu[i], engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(AutoZu[i],engine,1,alarm,1,bonnet,boot,0); }
So habe ich es im Script. Das Licht wird auch eingeschaltet, die Türen allerdings nicht
-
Genau so meine ich es, allerdings sind die Türen nicht abgeschlossen und man kann sich reinsetzen..
-
Hallo,
ich habe ein Autohaus wo die Autos ausgestellt sind.
Allerdings habe ich die Fahrzeug kompliziert gescriptet, dass die normalen User nicht in das Fahrzeug steigen können.
Leider ist das bisschen verbuggt und auch viel zu umständlich.
Wie kann ich die ganz einfach Geschlossen Scripten?C
Alles anzeigenif (IstAutoZu(vehicleid) && !ispassenger) { if(IsACop(playerid)){} else { //SendClientMessage(playerid,COLOR_RED,"Dieses Auto kannst du am Aktenkoffer kaufen!"); CreateBox(playerid,"INFO","Dieses Auto kannst du am Aktenkoffer kaufen!"); TogglePlayerControllable(playerid,false); TogglePlayerControllable(playerid,true); } }
C
Alles anzeigenFunction IstAutoZu(carid) { for(new i = 0; i < sizeof(PolizeiVehs); i++) { if(carid == AutoZu[i]) { return 1; } } return 0; }
-
Okay, nun ist mir noch aufgefallen, dass ich auch ohne in einem Fahrzeug zu sitzen /rentcar eingeben kann. Dort steht dann auch Du hast dieses Fahrzeug gemietet...
-
Kannst du bitte diese sinnlosen Voll-Zitate samt Code unterlassen? Das siehst du doch selbst, dass das abartig aussieht.
Zum Problem:
Wie siehst dein Code zu dem Timer CheckRentCars aus?So wie du ihn geschrieben hast.
-
Ah, beim Einsteigen? Das habe ich vergessen, dem Spieler auch eine Nachricht zu senden, sorry.
Das wäre dann so:Cif(newstate == PLAYER_STATE_DRIVER){ if(!IsANoTachoVehicle(GetPlayerVehicleID(playerid))) { TextDrawShowForPlayer(playerid, Speedo[playerid]); //SetTimerEx("Speedometer", 100, 1, "d", playerid); //Ich habe diesen Timer auskommentiert, da er jedes mal gestartet würde, //wenn du in ein Fahrzeug einsteigst, das einen Tacho hat, sprich irgendwann //hast du 1000 Timer am Laufen, von denen jeder 10x pro Sekunde aufgerufen //wird. Deine CPU wird dir das nicht danken ;) //Also besser so: speedoTimer[playerid] = SetTimerEx("Speedometer", 100, 1, "d", playerid); //Und den Timer auch wieder beenden, wenn der Speedometer nicht mehr angezeigt wird. //Oder noch besser ist es, einen einzigen globalen Timer mit einer Schleife durch //alle Spieler zu machen, der Timer wird dann bei OnGameModeInit gestartet. if(IsABike(GetPlayerVehicleID(playerid))) { timer2[playerid] = SetTimerEx("TankTimer",60000,1,"i",playerid); } else { timer2[playerid] = SetTimerEx("TankTimer",20000,1,"i",playerid); } } //Hier der Code für die Roller: new veh = GetPlayerVehicleID(playerid); for(new i=0; i<sizeof(rentroller); i++) { if(veh == rentroller[i]) { if(rentBlocked[i] == -1) { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird nach 30 Minuten respawnt."); TogglePlayerControllable(playerid,0); } else if(rentBlocked[i] != playerid) { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug gehört bereits einem Spieler."); RemovePlayerFromVehicle(playerid); } else { SendClientMessage(playerid, 0xF60000F6, "Willkommen."); } break; } }}
Was auch nicht funktioniert ist, dass das Mietverhältnis aufgelöst und das Fahrzeug respawnt.
-
Der Code ist aber ziemlich abenteuerlich.
OnPlayerStateChange kannst du so machen:
C
Alles anzeigenif(newstate == PLAYER_STATE_DRIVER) { if(!IsANoTachoVehicle(GetPlayerVehicleID(playerid))) { TextDrawShowForPlayer(playerid, Speedo[playerid]); //SetTimerEx("Speedometer", 100, 1, "d", playerid); //Ich habe diesen Timer auskommentiert, da er jedes mal gestartet würde, //wenn du in ein Fahrzeug einsteigst, das einen Tacho hat, sprich irgendwann //hast du 1000 Timer am Laufen, von denen jeder 10x pro Sekunde aufgerufen //wird. Deine CPU wird dir das nicht danken ;) //Also besser so: speedoTimer[playerid] = SetTimerEx("Speedometer", 100, 1, "d", playerid); //Und den Timer auch wieder beenden, wenn der Speedometer nicht mehr angezeigt wird. //Oder noch besser ist es, einen einzigen globalen Timer mit einer Schleife durch //alle Spieler zu machen, der Timer wird dann bei OnGameModeInit gestartet. if(IsABike(GetPlayerVehicleID(playerid))) { timer2[playerid] = SetTimerEx("TankTimer",60000,1,"i",playerid); } else { timer2[playerid] = SetTimerEx("TankTimer",20000,1,"i",playerid); } } //Hier der Code für die Roller: new veh = GetPlayerVehicleID(playerid); for(new i=0; i<sizeof(rentroller); i++) { if(veh == rentroller[i]) { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird nach 30 Minuten respawnt."); TogglePlayerControllable(playerid,0); break; } } }
Den /rentcar Befehl kannst du dann so machen:
C
Alles anzeigenif(!strcmp("/rentcar", cmdtext, true)) { new veh = GetPlayerVehicleID(playerid); for(new i=0; i<sizeof(rentroller); i++) { if(veh == rentroller[i]) { new kosten; switch(i) { case 0: kosten = 100; case 1: kosten = 250; case 2: kosten = 2000; //... default: kosten = 500; } if(GetPlayerMoney(playerid) <= kosten) return SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld!"); SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,kosten); return 1; } } return SendClientMessage(playerid, 0xFF0000FF, "Error: Dies ist kein Auto, das gemietet werden kann."); }
Der /verlassen Befehl bleibt weitgehend gleich.
Wenn du es nun anpassen willst, dass das Fahrzeug für genau 30 Minuten aktiv ist, dann musst du eine Spielervariable anlegen, in der du den Wert speicherst, wann die Zeit vorbei ist und eine Variable die die Index ID beinhaltet, unter den Includes:
Sowie eine Variable um das Fahrzeug als gemietet zu markieren (-1 = nicht vermietet):
Unter OnGameModeInit startest du einen Prüf-Timer:
[wiki]SetTimer[/wiki]
Und der Code dazu:
C
Alles anzeigenforward CheckRentCars(); public CheckRentCars() { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && rentTime[i] != 0 && rentTime[i] < gettime()) { new idx = rentIdx[playerid]; SetVehicleToRespawn(rentroller[idx]); SendClientMessage(i, 0xFF0000FF, "Zeit vorbei."); rentTime[i] = 0; } } return 1; }
Den /rentcar Befehl musst du dann so anpassen:
C
Alles anzeigenif(!strcmp("/rentcar", cmdtext, true)) { if(rentTime[playerid] != 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Du hast bereits ein Auto gemietet."); new veh = GetPlayerVehicleID(playerid); for(new i=0; i<sizeof(rentroller); i++) { if(veh == rentroller[i]) { new kosten; switch(i) { case 0: kosten = 100; case 1: kosten = 250; case 2: kosten = 2000; //... default: kosten = 500; } if(GetPlayerMoney(playerid) <= kosten) return SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld!"); SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,kosten); rentTime[playerid] = gettime() + 30 * 60 * 1000; //30 Minuten zu je 60 Sekunden und 1000ms. rentIdx[playerid] = i; rentBlocked[i] = playerid; return 1; } } return SendClientMessage(playerid, 0xFF0000FF, "Error: Dies ist kein Auto, das gemietet werden kann."); }
Bei OnPlayerDisconnect zum Beispiel:
Cif(rentTime[playerid] != 0) { new idx = rentIdx[playerid]; SetVehicleToRespawn(rentroller[idx]); rentTime[playerid] = 0; rentBlocked[idx] = -1; }
Und das OnPlayerStateChange sieht dann so aus:
C
Alles anzeigenif(newstate == PLAYER_STATE_DRIVER) { if(!IsANoTachoVehicle(GetPlayerVehicleID(playerid))) { TextDrawShowForPlayer(playerid, Speedo[playerid]); //SetTimerEx("Speedometer", 100, 1, "d", playerid); //Ich habe diesen Timer auskommentiert, da er jedes mal gestartet würde, //wenn du in ein Fahrzeug einsteigst, das einen Tacho hat, sprich irgendwann //hast du 1000 Timer am Laufen, von denen jeder 10x pro Sekunde aufgerufen //wird. Deine CPU wird dir das nicht danken ;) //Also besser so: speedoTimer[playerid] = SetTimerEx("Speedometer", 100, 1, "d", playerid); //Und den Timer auch wieder beenden, wenn der Speedometer nicht mehr angezeigt wird. //Oder noch besser ist es, einen einzigen globalen Timer mit einer Schleife durch //alle Spieler zu machen, der Timer wird dann bei OnGameModeInit gestartet. if(IsABike(GetPlayerVehicleID(playerid))) { timer2[playerid] = SetTimerEx("TankTimer",60000,1,"i",playerid); } else { timer2[playerid] = SetTimerEx("TankTimer",20000,1,"i",playerid); } } //Hier der Code für die Roller: new veh = GetPlayerVehicleID(playerid); for(new i=0; i<sizeof(rentroller); i++) { if(veh == rentroller[i]) { if(rentBlocked[i] == -1) { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird nach 30 Minuten respawnt."); TogglePlayerControllable(playerid,0); } else { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug gehört bereits einem Spieler."); RemovePlayerFromVehicle(playerid); } break; } } }
Beachte bitte die Kommentare im Code und passie die Stellen entsprechend an.
Vielen Dank dafür !
Das einzige was bisher komisch ist ist, dass wenn ich das Auto miete, dort steht das das auto bereits einem spieler gehört obwohl es ja mir ist. -
Hallo,
ich habe vor Jahren mal ein Mietsystem gescriptet, was nun total alt ist und ich etwas überarbeiten möchte.Damals war es so gescriptet, dass man sich in das auto setzt und dann mit /rentcar das auto bewegen kann..
Ist man dann ausgestiegen, und wollte wieder einsteigen musste man es wieder mieten...
Außerdem ist das Auto nach 1 Minute nicht benutzung respawnt.NUN möchte ich es so, dass man sich reinsetzt das auto mieten kann und es dann für 30 minuten fahren kann. Sollte sich also jemand anderes reinsetzten sollte eine nachricht kommen wo drin steht Das Fahrzeug gehört XY oder so. Und wenn die 30 Minuten um sind sollte das Auto respawnen, auch wenn man im Wagen sitzt.
Hier mein Altes System, wie bearbeite ich es nun?
C: Miet1
Alles anzeigenif(newstate == PLAYER_STATE_DRIVER) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[1]) // Die Abfrage ob er im rentroller ist { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /Verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird beim Aussteigen nach 1 Minute Respawnt!"); //Die Nachricht TogglePlayerControllable(playerid,0); //Freezt ihn return 1; } } } { if(newstate == PLAYER_STATE_DRIVER) { //TextDrawHideForPlayer(playerid,Profico[playerid]); //TextDrawHideForPlayer(playerid,punkenun[playerid]); TextDrawShowForPlayer(playerid, Speedo[playerid]); if(!IsANoTachoVehicle(GetPlayerVehicleID(playerid))) { SetTimerEx("Speedometer", 100, 1, "d", playerid); if(IsABike(GetPlayerVehicleID(playerid))) { timer2[playerid] = SetTimerEx("TankTimer",60000,1,"i",playerid); } else { timer2[playerid] = SetTimerEx("TankTimer",20000,1,"i",playerid); } } } if(newstate == PLAYER_STATE_DRIVER) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[2]) // Die Abfrage ob er im rentroller ist { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /Verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird beim Aussteigen nach 1 Minute Respawnt!"); //Die Nachricht TogglePlayerControllable(playerid,0); //Freezt ihn return 1; } } } { if(newstate == PLAYER_STATE_DRIVER) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[3]) // Die Abfrage ob er im rentroller ist { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /Verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird beim Aussteigen nach 1 Minute Respawnt!"); //Die Nachricht TogglePlayerControllable(playerid,0); //Freezt ihn return 1; } } } { if(newstate == PLAYER_STATE_DRIVER) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[4]) // Die Abfrage ob er im rentroller ist { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /Verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird beim Aussteigen nach 1 Minute Respawnt!"); //Die Nachricht TogglePlayerControllable(playerid,0); //Freezt ihn return 1; } } } { if(newstate == PLAYER_STATE_DRIVER) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[5]) // Die Abfrage ob er im rentroller ist { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /Verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird beim Aussteigen nach 5 Minute Respawnt!"); //Die Nachricht TogglePlayerControllable(playerid,0); //Freezt ihn return 1; } } } { if(newstate == PLAYER_STATE_DRIVER) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[6]) // Die Abfrage ob er im rentroller ist { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /Verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird beim Aussteigen nach 5 Minute Respawnt!"); //Die Nachricht TogglePlayerControllable(playerid,0); //Freezt ihn return 1; } } } { if(newstate == PLAYER_STATE_DRIVER) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[5]) // Die Abfrage ob er im rentroller ist { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /Verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird beim Aussteigen nach 5 Minute Respawnt!"); //Die Nachricht TogglePlayerControllable(playerid,0); //Freezt ihn return 1; } } } { if(newstate == PLAYER_STATE_DRIVER) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[4]) // Die Abfrage ob er im rentroller ist { SendClientMessage(playerid,0xF60000F6,"Dieses Fahrzeug kannst du mieten! Tippe /rentcar, wenn du nicht möchtest, dann /Verlassen."); SendClientMessage(playerid,0xF60000F6,"Das Auto wird beim Aussteigen nach 5 Minute Respawnt!"); //Die Nachricht TogglePlayerControllable(playerid,0); //Freezt ihn return 1; } } }
Befehl:
Code
Alles anzeigen//Vermietung if (strcmp("/rentcar", cmdtext, true, 10) == 0) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[1]) { new Geld = GetPlayerMoney(playerid); if(Geld <= 250) // So ist richtig { SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld!"); } else { SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,-250); return 1; } } } if (strcmp("/rentcar", cmdtext, true, 10) == 0) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[2]) { new Geld = GetPlayerMoney(playerid); if(Geld <= 2500) // So ist richtig { SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld!"); } else { SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,-2500); return 1; } } } if (strcmp("/rentcar", cmdtext, true, 10) == 0) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[3]) { new Geld = GetPlayerMoney(playerid); if(Geld <= 750) // So ist richtig { SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld!"); } else { SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,-750); return 1; } } } if (strcmp("/rentcar", cmdtext, true, 10) == 0) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[4]) { new Geld = GetPlayerMoney(playerid); if(Geld <= 1000) // So ist richtig { SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld!"); } else { SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,-1000); return 1; } } } if (strcmp("/rentcar", cmdtext, true, 10) == 0) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[5]) { new Geld = GetPlayerMoney(playerid); if(Geld <= 6000) // So ist richtig { SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld! (6000$)"); } else { SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,-6000); return 1; } } } if (strcmp("/rentcar", cmdtext, true, 10) == 0) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[6]) { new Geld = GetPlayerMoney(playerid); if(Geld <= 6000) // So ist richtig { SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld!"); } else { SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet! (6000$)"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,-6000); return 1; } } } if (strcmp("/rentcar", cmdtext, true, 10) == 0) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[7]) { new Geld = GetPlayerMoney(playerid); if(Geld <= 6000) // So ist richtig { SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld! (6000$)"); } else { SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,-6000); return 1; } } } if (strcmp("/rentcar", cmdtext, true, 10) == 0) { new Vehicle = GetPlayerVehicleID(playerid); if(Vehicle == rentroller[8]) { new Geld = GetPlayerMoney(playerid); if(Geld <= 6000) // So ist richtig { SendClientMessage(playerid,0xF60000F6,"Du hast nicht genügend Geld! (6000$)"); } else { SendClientMessage(playerid,0xF60000F6,"Du hast dieses Auto gemietet!"); TogglePlayerControllable(playerid,1); GivePlayerMoney(playerid,-6000); return 1; } } } if (strcmp("/verlassen", cmdtext, true, 10) == 0) { if(ohnmacht[playerid]==0) { RemovePlayerFromVehicle(playerid); // Schmeißt den Spieler herraus TogglePlayerControllable(playerid,1); // Entfreezt ihn KillTimer(hacken[playerid]); } else { SendClientMessage(playerid, COLOR_RED,"Du bist gerade Ohmächtig und kannst das nicht machen"); } return 1; } //vermietung
-
Was ist denn überhaupt das Problem? Also was genau funktioniert an deinem System nicht?
Die Abfrage funktioniert nicht also ich kann auch /anhängerleer eingeben obwohl ich schon entleert habe, etc..
-
Hallo,
ich wollte ein Trucker System bauen. Ich habe schon alles mit Checkpoints etc. gescriptet, das funktioniert auch.Allerdings möchte ich, dass man seinen Anhänger an der Raffinerie füllt und diesen zur Tankstellen Base bringt und dort leert.
Irgendwas habe ich an den Abfragen etc. falsch gemacht..
C: Script
Alles anzeigenif(strcmp(cmd, "/anhängervoll", true) == 0) { if(!IsPlayerInRangeOfPoint(playerid,5.0,264.8677,1452.7062,10.5859)) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht an der Raffinerie!"); /*{ SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht an der Raffinerie!"); return 1; }*/ if(PlayerInfo[playerid][pJob] != 23) { SendClientMessage(playerid, COLOR_GRAD1, "Das können nur Trucker!"); return 1; } if(Spritda[playerid] == 1)return SendClientMessage(playerid, COLOR_GRAD1, "Du hast dein Anhänger schon befüllt!"); /*{ SendClientMessage(playerid, COLOR_GRAD1, "Du hast dein Anhänger schon befüllt!"); }*/ new vehicle = GetPlayerVehicleID(playerid); if(!Truckerjob(vehicle))return SendClientMessage(playerid,COLOR_GRAD1, "Du bist in keinem Truck!"); SetTimerEx("TruckerVoll", 30000,0,"i",playerid); FreezePlayer(playerid); SendClientMessage(playerid,COLOR_GRAD1, "Du befüllst nun deinen Anhänger! (30 Sek.)"); return 1; } if(strcmp(cmd, "/anhängerleer", true) == 0) { if(!IsPlayerInRangeOfPoint(playerid,10.0,-1723.6121,-118.5779,3.1207)) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht an der Lagerhalle!"); /*{ SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht an der Lagerhalle!"); return 1; }*/ if(PlayerInfo[playerid][pJob] != 23) { SendClientMessage(playerid, COLOR_GRAD1, "Das können nur Trucker!"); return 1; } if(Spritda[playerid] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "Du hast dir an der Raffinerie kein Sprit geholen!"); /*{ SendClientMessage(playerid, COLOR_GRAD1, "Du hast dir an der Raffinerie kein Sprit geholen!"); }*/ new vehicle = GetPlayerVehicleID(playerid); if(!Truckerjob(vehicle))return SendClientMessage(playerid,COLOR_GRAD1, "Du bist in keinem Truck!"); SetTimerEx("TruckerLeer", 30000,0,"i",playerid); FreezePlayer(playerid); SendClientMessage(playerid,COLOR_GRAD1, "Du befüllst nun die Lagerhalle von Jet! (30 Sek.)"); return 1; } //TRUCKER
-
Hallo,
ich habe die Fraktion Taxi als Job für Jedermann gemacht.Nun habe ich allerdings das problem, dass der Taxifahrer keine Nachricht auf ein neuen Auftrag bekommt.
Liegt wahrscheinlich daran, dass TaxiCall falsch definiert ist.
Ich müsste also bei /fare eine Definition schreiben, die die Taxifahrer bei dem /service Taxi befehl auslöst und der Taxifahrer nun die Nachricht bekommt.Leider habe ich aber keine Ahnung wie das funktioniert. Kann mir bitte jemand helfen?
Hier der Befehlif(listitem == 2)
{
if(GetPlayerInterior(playerid) != 0)
{
SendClientMessage(playerid, COLOR_GREY, " Von hier aus kannst du kein Taxi rufen. Begib dich auf eine offene Straße!");
return 1;
}
if(TaxiDrivers < 1)
{
SendClientMessage(playerid, COLOR_GREY, " Im Moment ist kein Taxifahrer im Dienst, bitte versuch es Später erneut !");
return 1;
}
if(TransportDuty[playerid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, " Du kannst im Moment kein Taxi rufen !");
return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(TaxiCall, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "** %s braucht ein Taxi. Gib (/accept taxi) ein, um anzunehmen)", sendername);
SendClientMessage(TaxiCall, TEAM_AZTECAS_COLOR, string);
SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Du hast ein Taxi angefordert warte auf eine Antwort.");
TaxiCall = playerid;
return 1;}
-
Okay, ich hatte tatsächlich noch nicht die aktuellste Ich werde es nun mal testen.
Ich habe jetzt noch eine Frage,
auf meinem Homeserver lädt er alles normal.
Will ich nun auf meinem Testserver das probieren, lädt er nur das FS mehr nicht :o?[20:11:17]
[20:11:17] Filterscripts
[20:11:17] ---------------
[20:11:17] Loading filterscript 'speedlock.amx'...
[20:11:17] Loading filterscript 'gPM_FS.amx'...
[20:11:17] Loaded 2 filterscripts.Mehr kommt danach nicht mehr, also kein Nachrichten etc..
-
Rhino: Der link führt aber eindutig zu Google Docs bzw. zur Umfrage.
Shoxx: Abgesehen vom Zeitraum der Planung, würde ich mal behaupten das es womöglich eher Fifa 16 wird, als 15.
---------
Mich würde aber auch interessieren, ob nur PC Spiele gespielt werden oder auch Konsolen Spiele/Titel.Ich denke Fifa 15 werden mehr User haben. Außerdem sollte dran gedacht werden, ob auf den Konsolen nicht auch gespielt werden soll, da einige Spiele auf dem pc nicht so verbreitet sind.
-
FIFA 15 tunier wäre super.
-
mir würde es reichen, wenn es allgemein geschrieben ist für ein GF Script. Alles andere kann ich umschreiben.
-
Okay danke für deine Hilfe
Gibt es eventuell ein fertig geschriebenes sYstem ich hab keine Ahnung wie ich das alles abfragen soll