Beiträge von ENEF

    Hallo leute, ich habe mal ein paar Fragen übrig.


    Da ich nicht nur so ein normales langweiliges Tanksystem möchte, dachte ich mir dass ich mehrere Tankarten zur verfügung stelle.
    Meine Frage ist es jetzt, wie weise ich die verschiedenen Fahrzeuge den verschiedenen Tankarten zu?
    Es soll:
    Benzin, Diesel, Kerosin und Gas vorhanden sein.
    Das nächste wäre, wie ich die Zeit für die jeweiligen Tankart bestimme, indem sie ihre Literzahl verlieren.
    Bsp: Diesel brauch 20 Sekunden bis ein Liter weg geht oder 20 Meter je nachdem,
    Benzin 15 Sekunden/Meter


    Versteht ihr? Logischerweise sollen sie dann auch unterschiedlich viel kosten.
    Und jedes Auto hat seine vorgegebene Tankmenge also bsp. Sultan 50liter Tank und Infernus nur 43 Liter.


    Bis jetzt habe ich mein Tanksystem so:


    Defines:

    Spoiler anzeigen
    #define VERLUST 10000
    #define BENZINPREIS 3

    Spoiler anzeigen
    forward BenzinVerlust();
    forward Auftanken(playerid);
    #define MAX_GAS 17
    new Tank[MAX_VEHICLES], bool:TanktGerade[MAX_VEHICLES]=false, tanktimer[MAX_PLAYERS];


    Timer:

    Spoiler anzeigen
    SetTimer("BenzinVerlust", VERLUST, true);
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[i] = false;
    Tank[i] = 100;
    }


    Tanken:

    Spoiler anzeigen
    //____________Tanken ____________//
    if(newkeys & KEY_LOOK_BEHIND) {
    for(new g;g<MAX_GAS;g++) {
    new car = GetPlayerVehicleID(playerid);
    if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid,error,"Du bist in keinem Fahrzeug (oder kein Fahrer)!");
    else if(TanktGerade[car]) return SendClientMessage(playerid,error,"Du bist bereits dabei dein Auto aufzutanken!");
    else if(Motor[car] == true) return SendClientMessage(playerid,error,"Du musst vor dem Tanken den Motor ausschalten!");
    else if(!IsPlayerInRangeOfPoint(playerid,Gasstation[g][Gasradius], Gasstation[g][Gasx],Gasstation[g][Gasy],Gasstation[g][Gasz])) return SendClientMessage(playerid,error,"Du bist an keiner Tankstelle!"); {
    new ZuTanken = 100-Tank[car];
    new preis = ZuTanken * BENZINPREIS;
    if(GetPlayerMoney(playerid)-preis < 0) return SendClientMessage(playerid,error,"Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -preis);
    SendClientMessage(playerid, info, "Tankvorgang wird gestartet...");
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid,0);
    TanktGerade[car] = true;
    tanktimer[playerid] = SetTimerEx("Auftanken",5000,true,"i",playerid); }
    }
    }


    Public's


    Spoiler anzeigen
    //_______MOTOR&TANK____//
    public BenzinVerlust()
    {
    for(new i=0; i<MAX_VEHICLES; i++)
    {
    if (Motor[i] == true)
    {
    Tank[i] = Tank[i]-1;
    if (Tank[i]<1)
    {
    Tank[i] = 0;
    GetVehicleParamsEx(i,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(i,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[i] = false;
    }
    }
    }
    return 1;
    }

    Spoiler anzeigen
    public Auftanken(playerid)
    {
    new car = GetPlayerVehicleID(playerid);
    Tank[car] = Tank[car] +1;
    if(Tank[car] >= 100)
    {
    TanktGerade[car] = false;
    Tank[car] = 100;
    SendClientMessage(playerid, erfolg, "Dein Fahrzeug wurde für %i€ vollgetankt.");
    TogglePlayerControllable(playerid,1);
    KillTimer(tanktimer[playerid]);
    }
    return 1;
    }


    Das war der Code.
    Ich hoffe ihr könnt mir auf die Sprünge helfen, wäre echt sehr Dankbar dafür :)


    Mit freundlichen Grüßen


    TVPikachu :thumbup:

    Jeffry:

    Hey Jeffry,


    Klar kann ich das machen :)
    Schau mal :)


    Spoiler anzeigen

    #define MAX_RACE_POINTS 22

    Spoiler anzeigen
    new Float:racecheckpoints[MAX_RACE_POINTS][3] = {
    {-2045.6930,-81.6450,34.8956},
    {-2004.2744,-54.9843,34.8920},
    {-2004.0598,45.7823,31.4967},
    {-2003.9708,180.6956,27.2661},
    {-1999.8444,298.7823,34.3433},
    {-2047.9268,322.7840,34.7427},
    {-2128.6860,323.0107,34.8348},
    {-2144.5259,350.7651,34.8990},
    {-2139.7329,484.4901,34.7427},
    {-2161.2971,507.6261,34.7427},
    {-2214.3147,511.3216,34.7427},
    {-2228.9150,488.6285,34.7427},
    {-2267.7319,410.0070,34.7427},
    {-2269.1267,372.9379,33.4757},
    {-2254.5942,300.0095,34.8911},
    {-2254.7937,196.5933,34.9029},
    {-2254.4172,134.6183,34.8990},
    {-2258.2461,35.8751,34.8990},
    {-2260.6726,-31.9568,34.8990},
    {-2230.9214,-73.0984,34.8990},
    {-2119.0627,-72.9382,34.9027},
    {-2048.9795,-83.1473,34.8911}
    };
    if(!strcmp(cmd,"/mission",true))
    {
    if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {
    Praxis[playerid] = 1;
    speedTimer[playerid] = SetTimerEx("CheckSpeed",1000,1,"i",playerid);
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[0][0],racecheckpoints[0][1],racecheckpoints[0][2],racecheckpoints[1][0],racecheckpoints[1][1],racecheckpoints[1][2],3.0);
    }
    return 1;
    }
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {
    if(Praxis[playerid] == 1)
    {
    CheckpointStatus[playerid]++;
    new letzerpunkt = MAX_RACE_POINTS-1;
    new string[128];
    if(CheckpointStatus[playerid] < letzerpunkt)
    {
    format(string, sizeof(string),"Status: %d/22", CheckpointStatus[playerid]);
    PlayerTextDrawSetString(playerid,Textstatus[playerid],string);
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]+1][0],racecheckpoints[CheckpointStatus[playerid]+1][1],racecheckpoints[CheckpointStatus[playerid]+1][2],3.0);
    }
    if(CheckpointStatus[playerid] == letzerpunkt)
    {
    Praxis[playerid]= 0;
    CheckpointStatus[playerid] = 0;
    KillTimer(speedTimer[playerid]);
    format(string,sizeof(string),"Du hast %d / 3 Verwarnungen!",playerWarn[playerid]);
    SendClientMessage(playerid, warn,string);
    DisablePlayerRaceCheckpoint(playerid);
    }
    }
    }
    }
    return 1;
    }


    //Problem ist:
    Der letzte Checkpoint wird nicht angezeigt(22) und bei 21 hört es einfach auf. Da der letzte Checkpoint ja nicht angezeigt wird kann er auch kein Führerschein bekommen..



    MfG


    TV :)

    Ja hey, also der Tacho geht jetzt, leider sehr ungenau..
    Die lebensanzeige geht nicht mehr es steht nur noch 0.00000 da


    und bei den Checkpoints wird das letzte immer noch nicht angezeigt, ich kriege die Statusmeldung jetzt nur bei dem vorletzten, dass war ja nicht der sinn..


    MfG

    Für mich geht es beim Scripten nicht darum ob irgendwann mal viele User bei mir Spielen werden.
    Ich scripte aus leidenschaft und weil ich was dazu lernen möchte, jeden Tag sieht man Erfolge und ist ein stück Stolzer auf sich selbst.
    Und glaube mir, wenn du was gescheites auf die Beine stellst wird es sich im endeffekt genau so lohnen, da viele User dann auf deinem Server kommen werden.


    Scripten = Hobby;

    Also funktionieren tut jetzt die Zustand anzeige.
    Das mit dem KMH ist leider immer noch nicht gefixxt.


    stock GetVehicleSpeed(vehicleid)
    {
    new Float:_Pos[3];
    GetVehicleVelocity(vehicleid,_Pos[0],_Pos[1],_Pos[2]);
    return floatround(floatsqroot(_Pos[0]*_Pos[0] + _Pos[1]*_Pos[1] + _Pos[2]*_Pos[2]))*200;
    }


    Das ist ja von dir, vielleicht liegt es daran?
    Achja, jetzt wird meine Health anzeige so angezeigt: "449.409698" kann man das nicht einfach in 44% ändern?


    Und wenn du kurz über meine RaceCheckpoints schauen würdest wäre das echt lieb:

    Spoiler anzeigen
    new Praxis[MAX_PLAYERS];
    new CheckpointStatus[MAX_PLAYERS];

    Spoiler anzeigen
    #define MAX_RACE_POINTS 22

    Spoiler anzeigen
    new Float:racecheckpoints[MAX_RACE_POINTS][3] = {
    {-2045.6930,-81.6450,34.8956},
    {-2004.2744,-54.9843,34.8920},
    {-2004.0598,45.7823,31.4967},
    {-2003.9708,180.6956,27.2661},
    {-1999.8444,298.7823,34.3433},
    {-2047.9268,322.7840,34.7427},
    {-2128.6860,323.0107,34.8348},
    {-2144.5259,350.7651,34.8990},
    {-2139.7329,484.4901,34.7427},
    {-2161.2971,507.6261,34.7427},
    {-2214.3147,511.3216,34.7427},
    {-2228.9150,488.6285,34.7427},
    {-2267.7319,410.0070,34.7427},
    {-2269.1267,372.9379,33.4757},
    {-2254.5942,300.0095,34.8911},
    {-2254.7937,196.5933,34.9029},
    {-2254.4172,134.6183,34.8990},
    {-2258.2461,35.8751,34.8990},
    {-2260.6726,-31.9568,34.8990},
    {-2230.9214,-73.0984,34.8990},
    {-2119.0627,-72.9382,34.9027},
    {-2048.9795,-83.1473,34.8911}
    };

    Spoiler anzeigen
    if(strcmp(cmd,"/start", true) == 0) {

    Spoiler anzeigen
    if(IsPlayerInAnyVehicle(playerid)){
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {
    Praxis[playerid] = 1; // Bedeutet, dass die Arbeit ab jetzt los geht. 1 = Arbeit geht Los.
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[0][0],racecheckpoints[0][1],racecheckpoints[0][2],racecheckpoints[1][0],racecheckpoints[1][1],racecheckpoints[1][2],3.0);
    }
    }
    return 1;
    }
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {

    Spoiler anzeigen
    if(Praxis[playerid] == 1)
    {
    CheckpointStatus[playerid]++;

    Spoiler anzeigen
    new letzerpunkt = MAX_RACE_POINTS;
    if(CheckpointStatus[playerid] < letzerpunkt)
    {
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]+1][0],racecheckpoints[CheckpointStatus[playerid]+1][1],racecheckpoints[CheckpointStatus[playerid]+1][2],3.0);
    }
    if(CheckpointStatus[playerid] == letzerpunkt){
    Praxis[playerid]= 0;
    CheckpointStatus[playerid] = 0;
    DisablePlayerRaceCheckpoint(playerid);
    }
    }
    }
    }
    return 1;
    }


    Das Problem hierbei ist, dass der letzte Checkpoint nicht angezeigt wird und ich somit keine Statusmeldung erhalte ob man bestanden hat/Durchgefallen ist ..



    Danke dir!


    MfG
    @Mencent:

    Okay.


    Das ist ja alles noch von dir nh?


    Spoiler anzeigen
    forward CheckTacho();
    public CheckTacho()
    {
    new string[10];
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i) || !IsPlayerInAnyVehicle(i))continue;
    format(string,sizeof string,"km/h: %d",GetVehicleSpeed(GetPlayerVehicleID(i)));
    PlayerTextDrawSetString(i,CarSpeed[i],string);
    }
    return 1;
    }


    Und hier rufe ich ihn auf:

    Spoiler anzeigen
    new cmd[256];
    if(strcmp(cmd,"/mission", true) == 0) {
    if(IsPlayerInAnyVehicle(playerid)){
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {
    Praxis[playerid] = 1; // Bedeutet, dass die Arbeit ab jetzt los geht. 1 = Arbeit geht Los.
    speedTimer[playerid] = SetTimerEx("CheckSpeed",1000,1,"i",playerid);
    healthTimer[playerid] = SetTimerEx("CheckHealth",1000,1,"i",playerid);
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[0][0],racecheckpoints[0][1],racecheckpoints[0][2],racecheckpoints[1][0],racecheckpoints[1][1],racecheckpoints[1][2],3.0);
    }
    }
    return 1;
    }


    Kannst du oben mal schauen wieso bei mir der letzte Checkpoint nie aufgerufen wird?
    Wäre auch sehr nett!


    Achja, die Lebensanzeige verändert sich auch nicht :/


    Spoiler anzeigen
    healthTimer[playerid] = SetTimerEx("CheckHealth",1000,1,"i",playerid);
    forward CheckHealth(playerid);
    public CheckHealth(playerid)
    {
    new string[20], Float:vHealth;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!IsPlayerInAnyVehicle(i))continue;
    GetVehicleHealth(GetPlayerVehicleID(i), vHealth);
    format(string,sizeof(string),"Zustand: ~g~%f", vHealth);
    PlayerTextDrawSetString(playerid,Textzustand[playerid],string);
    }
    if(vHealth < 75)
    {
    KillTimer(healthTimer[playerid]);
    }
    return 1;
    }


    MfG :)

    Hallo,


    erstmal vielen Dank für die Antwort!
    Das mit dem TextdrawString funktioniert schon mal super.
    Die Verwarnungen werden auch angezeigt !
    Leider ist dann mein Tacho total ungenau, besser gesagt ich fahre ganz normal dann steht dauerhaft "0" dran, fahre ich schnell steht nur "200" dran :/
    Und kann mir jemand beim Checkpoint Problem helfen? Wie gesagt der letzte wird nicht angezeigt.(Code steht oben)


    Sonst vielen Dank!



    MfG


    TV :thumbup:


    Jeffry:
    ICy.:

    Hallo leute, ich habe mal ein paar Fragen :)


    Ich sitze an einem Fahrschul System, wo man Checkpoints abfahren muss und am Ende bekommt man halt den Führerschein.
    Nun wird es schon kritisch undzwar wird der letzte Checkpoint nie angezeigt das heißt er bekommt auch kein Führerschein -.-
    Und ich habe extra ein Textdraw erstellt, wo ich anzeigen lassen möchte :
    Status:
    Verwarnungen:


    Status(Zeigt an wie viele Checkpoints man noch vor sich hat)
    8/10 Checkpoints(beispiel)
    Verwarnungen(Man darf max. 80 Km/h fahren, wird diese Grenze überschritten gibt es eine Warnung, bei 3 Warnungen hat man nicht bestanden)
    1/3


    Jetzt noch ne kleine Frage, wie kann ich Fragen ob er 3 mal über 80 Km/h gefahren ist?
    Ich habe leider noch kein Tacho eingebaut, da kenn ich mich leider noch nicht aus, die Textdraws sind aber erstellt da kommen wir dann bei Frage 2 hinzu.


    Hier mal der Code vom Fahrschulsystem:


    Spoiler anzeigen

    new Praxis[MAX_PLAYERS];
    new CheckpointStatus[MAX_PLAYERS];

    Spoiler anzeigen
    #define MAX_RACE_POINTS 22

    Spoiler anzeigen
    new Float:racecheckpoints[MAX_RACE_POINTS][3] = {
    {-2045.6930,-81.6450,34.8956},
    {-2004.2744,-54.9843,34.8920},
    {-2004.0598,45.7823,31.4967},
    {-2003.9708,180.6956,27.2661},
    {-1999.8444,298.7823,34.3433},
    {-2047.9268,322.7840,34.7427},
    {-2128.6860,323.0107,34.8348},
    {-2144.5259,350.7651,34.8990},
    {-2139.7329,484.4901,34.7427},
    {-2161.2971,507.6261,34.7427},
    {-2214.3147,511.3216,34.7427},
    {-2228.9150,488.6285,34.7427},
    {-2267.7319,410.0070,34.7427},
    {-2269.1267,372.9379,33.4757},
    {-2254.5942,300.0095,34.8911},
    {-2254.7937,196.5933,34.9029},
    {-2254.4172,134.6183,34.8990},
    {-2258.2461,35.8751,34.8990},
    {-2260.6726,-31.9568,34.8990},
    {-2230.9214,-73.0984,34.8990},
    {-2119.0627,-72.9382,34.9027},
    {-2048.9795,-83.1473,34.8911}
    };

    Spoiler anzeigen
    if(strcmp(cmd,"/start", true) == 0) {

    Spoiler anzeigen
    if(IsPlayerInAnyVehicle(playerid)){
    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {
    Praxis[playerid] = 1; // Bedeutet, dass die Arbeit ab jetzt los geht. 1 = Arbeit geht Los.
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[0][0],racecheckpoints[0][1],racecheckpoints[0][2],racecheckpoints[1][0],racecheckpoints[1][1],racecheckpoints[1][2],3.0);
    }
    }
    return 1;
    }
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {

    Spoiler anzeigen
    if(Praxis[playerid] == 1)
    {
    CheckpointStatus[playerid]++;

    Spoiler anzeigen
    new letzerpunkt = MAX_RACE_POINTS;
    if(CheckpointStatus[playerid] < letzerpunkt)
    {
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]+1][0],racecheckpoints[CheckpointStatus[playerid]+1][1],racecheckpoints[CheckpointStatus[playerid]+1][2],3.0);
    }
    if(CheckpointStatus[playerid] == letzerpunkt){
    Praxis[playerid]= 0;
    CheckpointStatus[playerid] = 0;
    DisablePlayerRaceCheckpoint(playerid);
    }
    }
    }
    }
    return 1;
    }


    So das war der Code.


    Frage Nummer 2;


    Wie erstellt man einen Tacho? Einen der eher genau ist, wo ein Infernus so ca 220 fährt und ein Sultan 180/190 so wie in Reallife halt?
    Den Textdraw mit allem hab ich schon erstellt.
    Und wie kann ich einen Vorhandenen Textdraw in dem jetzt z.B "Hallo" steht zu "Tschüß" ändern?(ingame, oder halt per Timer /befehl)


    Das war es vorerst :)


    Rechtschreibfehler sind um diese Uhrzeit erlaubt :thumbup:


    Mit freundlichen Grüßen


    TV :thumbup:



    PS:  Jeffry:

    Jeffry:


    Schau so:

    Spoiler anzeigen
    #define MAX_FPOINT 22

    Spoiler anzeigen
    new Float:racecheckpoints[MAX_FPOINT][3] = {
    {-2045.6930,-81.6450,34.8956},
    {-2004.2744,-54.9843,34.8920},
    {-2004.0598,45.7823,31.4967},
    {-2003.9708,180.6956,27.2661},
    {-1999.8444,298.7823,34.3433},
    {-2047.9268,322.7840,34.7427},
    {-2128.6860,323.0107,34.8348},
    {-2144.5259,350.7651,34.8990},
    {-2139.7329,484.4901,34.7427},
    {-2161.2971,507.6261,34.7427},
    {-2214.3147,511.3216,34.7427},
    {-2228.9150,488.6285,34.7427},
    {-2267.7319,410.0070,34.7427},
    {-2269.1267,372.9379,33.4757},
    {-2254.5942,300.0095,34.8911},
    {-2254.7937,196.5933,34.9029},
    {-2254.4172,134.6183,34.8990},
    {-2258.2461,35.8751,34.8990},
    {-2260.6726,-31.9568,34.8990},
    {-2230.9214,-73.0984,34.8990},
    {-2119.0627,-72.9382,34.9027},
    {-2048.9795,-83.1473,34.8911}
    };


    Funktioniert leider immer noch nicht :/

    Hi, hab mal in den Tutorials rumgekramt und bin auf ein kleines Tut mit Racecheckpoints gekommen, hab es etwas umgebaut aber der letzte Checkpoint wird nicht angezeigt und somit auch nicht das SCM ... woran könnte es liegen?

    Spoiler anzeigen
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    if (IsPlayerInAnyVehicle(playerid))
    {
    if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 560)
    {
    if(Praxis[playerid] == 1)
    {
    CheckpointStatus[playerid]++;

    Spoiler anzeigen
    new letzerpunkt = MAX_FPOINT;
    if(CheckpointStatus[playerid] < letzerpunkt)
    {
    DisablePlayerRaceCheckpoint(playerid);
    SetPlayerRaceCheckpoint(playerid,0,racecheckpoints[CheckpointStatus[playerid]][0],racecheckpoints[CheckpointStatus[playerid]][1],racecheckpoints[CheckpointStatus[playerid]][2],racecheckpoints[CheckpointStatus[playerid]+1][0],racecheckpoints[CheckpointStatus[playerid]+1][1],racecheckpoints[CheckpointStatus[playerid]+1][2],3.0);
    }
    // Bedeutung: SetPlayerRaceCheckpoint(playerid, Checkpointtype, X[CheckpointSTatus], Y[CheckpointStatus], Z[CheckpointStatus], NächsterX[Nächster CheckpointSTatus],NächsterY[Nächster CheckpointSTatus],NächsterZ[Nächster CheckpointSTatus], size);
    if(CheckpointStatus[playerid] == letzerpunkt){
    Praxis[playerid]= 0;
    CheckpointStatus[playerid] = 0;
    DisablePlayerRaceCheckpoint(playerid);
    SendClientMessage(playerid, erfolg, "Du hast bestanden test");
    }
    }
    }
    }
    return 1;
    }

    Wie sieht es eigentlich aus, wieso können alle außer Polizei(Team 1) überall Duty gehen?
    Und kann man das nicht vielleicht so machen, dass man ein Stock erstellt wo je nach Fraktion Offduty gegangen wird, mit dem Text für Polizei "Du bist nun Offduty und darfst keine Verbrecher mehr jagen" und für Medics "Du bist nun Offduty und wirst keine Notrufe mehr erhalten"..... usw.?



    mein Duty command


    Spoiler anzeigen
    ocmd:duty(playerid,params[])
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    new frak = GetVehicleFrak(vehicleid);
    new name[MAX_PLAYER_NAME], string[128],Float:px, Float:py, Float:pz;
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    if(SpielerInfo[playerid][pTeam] == 1)
    {
    if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0, SetPlayerColor(playerid, -1), SendClientMessage(playerid, warn,"Du bist nun offDuty als Cop"), Polizeihat[playerid][0] = 0, Polizeihat[playerid][1] = 0, Polizeihat[playerid][2] = 0;
    if(frak != 1 && !IsPlayerInRangeOfPoint(playerid,25.0,315.4128,-166.0419,999.6010)) return SendClientMessage(playerid, error, "Du kannst hier nicht Duty gehen!"); {
    SpielerInfo[playerid][pDuty] = 1;
    SetPlayerColor(playerid,cop);
    // for(new i; i<MAX_PLAYERS; i++) {
    SendClientMessage(playerid, erfolg,"Du bist nun im Dienst und wirst Notrufe erhalten!");
    format(string,sizeof(string),"Officer %s ist nun im Dienst!", name);
    //IsPlayerInRangeOfPoint(i,25.0,px,py,pz); SendClientMessage(i,cop,string);
    //}
    }
    }
    else if(SpielerInfo[playerid][pTeam] == 2)
    {
    if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0,SetPlayerColor(playerid, -1), SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Medic");
    if(frak != 2 && !IsPlayerInRangeOfPoint(playerid,25.0,366.5285,159.1844,1008.3828))
    SpielerInfo[playerid][pDuty] = 2;
    SetPlayerColor(playerid, medic);
    SendClientMessage(playerid, erfolg,"Du bist nun im Dienst und wirst Notrufe erhalten!");
    format(string,sizeof(string),"Sanitäter %s ist nun im Dienst!", name);
    SendClientMessageToAll(medic,string);
    }
    else if(SpielerInfo[playerid][pTeam] == 3)
    {
    if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0,SetPlayerColor(playerid, -1), SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Fahrlehrer");
    if(frak != 3 && !IsPlayerInRangeOfPoint(playerid,25.0,315.4128,-166.0419,999.6010))
    SpielerInfo[playerid][pDuty] = 3;
    SetPlayerColor(playerid, fahrlehrer);
    SendClientMessage(playerid, erfolg,"Du bist nun im Dienst und wirst Anrufe erhalten!");
    format(string,sizeof(string),"Fahrlehrer %s ist nun im Dienst!", name);
    SendClientMessageToAll(fahrlehrer,string);

    Spoiler anzeigen
    }
    else if(SpielerInfo[playerid][pTeam] == 4)
    {
    if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0,SetPlayerColor(playerid, -1), SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Fahrlehrer");
    if(frak != 4 && !IsPlayerInRangeOfPoint(playerid,10.0, 2217.5027,-1146.5348,1025.7969))
    SpielerInfo[playerid][pDuty] = 4;
    SetPlayerColor(playerid, taxi);
    SendClientMessage(playerid, erfolg,"Du bist nun im Dienst und wirst Anrufe erhalten!");
    format(string,sizeof(string),"Taxi fahrer %s ist nun im Dienst!", name);
    SendClientMessageToAll(taxi,string);

    Spoiler anzeigen
    }
    else if(SpielerInfo[playerid][pTeam] == 5)
    {
    if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0,SetPlayerColor(playerid, -1), SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Fahrlehrer");
    if(frak != 5 && !IsPlayerInRangeOfPoint(playerid,10.0, -2033.1218,-115.9395,1035.1719))
    SpielerInfo[playerid][pDuty] = 5;
    SetPlayerColor(playerid, adac);
    SendClientMessage(playerid, erfolg,"Du bist nun im Dienst und wirst Anrufe erhalten!");
    format(string,sizeof(string),"Mechaniker %s ist nun im Dienst!", name);
    SendClientMessageToAll(adac,string);

    Spoiler anzeigen
    }
    else if(SpielerInfo[playerid][pTeam] == 6)
    {
    if(SpielerInfo[playerid][pDuty] != 0) return SpielerInfo[playerid][pDuty] = 0,SetPlayerColor(playerid, -1), SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Fahrlehrer");
    if(frak != 6) //&& !IsPlayerInRangeOfPoint(playerid,25.0,315.4128,-166.0419,999.6010))
    SpielerInfo[playerid][pDuty] = 6;
    SetPlayerColor(playerid, news);
    SendClientMessage(playerid, erfolg,"Du bist nun im Dienst und kannst die Nachrichten verwalten!");
    format(string,sizeof(string),"Reporter %s ist nun im Dienst!", name);
    SendClientMessageToAll(news,string);

    Spoiler anzeigen
    }
    else
    {
    SendClientMessage(playerid, Color_Red,"Du kannst diesen Befehl nicht nutzen");
    }
    return 1;
    }

    Hallo, ich wollte mal Fragen was falsch ist?
    Wenn man in das Pickup[0] geht bekommt man alles, es soll ja aber nicht so sein sondern bei einem Armor bei einem Waffe bei dem anderen Health..


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    if(SpielerInfo[playerid][pDuty] == 1) {
    if(pickupid == Polizeipick[0])
    if(Polizeihat[playerid][0] == 0)
    {
    GivePlayerMoney(playerid, 1000);
    Polizeihat[playerid][0] = 1;
    }
    else if(Polizeihat[playerid][1] == 0)
    {
    SetPlayerHealth(playerid, 100);
    Polizeihat[playerid][1] = 1;
    }
    else if(Polizeihat[playerid][2] == 0)
    {
    GivePlayerWeapon(playerid, 38, 1000);
    Polizeihat[playerid][2] = 1;
    }
    }
    return 1;
    }

    Jo leute, ich finde nirgendwo mehr das Programm "SAMP Script King"..
    Weiß einer woher ich es bekomme? oder hat es einer noch auf dem Rechner und kann es mir hochladen?


    MfG

    Ich krieg die doofen Errors bei dem Simplen befehl nicht raus ^^


    wenn ich das else bei if weg lasse geht es, aber wenn ich dann als Cop oder Medic oder Fahrlehrer Duty gehe bekomme ich immer 3 Nachrichten: Du bist als Cop Duty, Du bist als Medic Duty, Du bist als Fahrlehrer Duty :/


    Spoiler anzeigen
    ocmd:duty(playerid,params[])
    {
    if(SpielerInfo[playerid][pTeam] == 1 || SpielerInfo[playerid][pTeam] == 2 || SpielerInfo[playerid][pTeam] == 3 || SpielerInfo[playerid][pTeam] == 4 || SpielerInfo[playerid][pTeam] == 5 || SpielerInfo[playerid][pTeam] == 6) {
    if(SpielerInfo[playerid][pDuty] != 1) {//Hier
    SpielerInfo[playerid][pDuty] = 1;
    SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Cop"); }
    else {
    SpielerInfo[playerid][pDuty] = 0;
    SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Cop");
    }
    else if(SpielerInfo[playerid][pDuty] != 2) {//hier
    SpielerInfo[playerid][pDuty] = 2;
    SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Medic"); }
    else {
    SpielerInfo[playerid][pDuty] = 0;
    SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Medic");
    }
    else if(SpielerInfo[playerid][pDuty] != 3) {//hier
    SpielerInfo[playerid][pDuty] = 3;
    SendClientMessage(playerid, Color_Red,"Du bist nun Duty als Fahrlehrer"); }
    else {
    SpielerInfo[playerid][pDuty] = 0;
    SendClientMessage(playerid, Color_Red,"Du bist nun offDuty als Fahrlehrer"); }
    }
    return 1;
    }


    C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1571) : error 029: invalid expression, assumed zero
    C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1571) : warning 215: expression has no effect
    C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1571) : error 001: expected token: ";", but found "if"
    C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1578) : error 029: invalid expression, assumed zero
    C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1578) : warning 215: expression has no effect
    C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(1578) : error 001: expected token: ";", but found "if"
    C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(2228) : warning 203: symbol is never used: "SaveVehicles"
    C:\Users\Tobi\Desktop\SAMP\samp037_svr_RC1_win32\gamemodes\newrlll.pwn(2228) : warning 203: symbol is never used: "adacoffen"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.