Zugjob mit 10sec Freez

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
  • Guten Abend.


    Ich komme bei mein Job nicht mehr weiter da ich versuche das der Spieler im gefresset wird für 10sekunden.



    So sieht es bei mir bis jetzt alles aus:


    forward zugwarten();


    enum zugenum{
    Float:z_x,
    Float:z_y,
    Float:z_z
    }


    new zinfo[][zugenum]={
    {2864.7500,1345.3098,11.2993}, //LV-HBF
    {1372.7870,2632.2500,11.2993},//LV-Industrie-Bahnhof
    {-1944.3750,81.4532,26.1743}, //SF-HBF
    {860.2952,-1408.9387,-0.9875} //LS-HBF
    };


    public zugwarten()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInCheckpoint(playerid))
    {
    SetPlayerCheckpoint(playerid,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(playerid,grün,"Du musst 10sekunden warten bis du weiter fahren darfst!");
    }
    else
    {
    DestroyVehicle(538);
    SendClientMessage(player,rot,"Da du keine 10Sekunden gewartet hast wurde die Arbeit abgebrochen und dein Zug neugesetzt!");

    }
    }
    return 1;
    }




    Jobstartbefehl:
    ocmd: lockfuerhrer(playerid,params[])
    {
    if(IsPlayerInCheckpoint(playerid))
    {
    SetPlayerCheckpoint(playerid,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(playerid,grün,"Du hast dein Dienst als Lockführer angetreten!");
    SendClientMessage(playerid,rot,"Bitte beachte das du an jeder Station 10Sekunden hälst und nicht weiter fährst!");
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast dein Dienst als Lockführer frühzeitig beendet! Der Zug wird zurückgesetzt!");
    DestroyVehicle(537 || 538);
    DisablePlayerCheckpoint(playerid);
    }
    return 1;
    }



    Nun weiß ich nicht wie ich das hin bekomme das der Spieler 10sekunden gefangen ist das er nicht mehr fahren kann.
    Der Zugjob läuft über Checkpoints.



    Mein Problem noch ist:


    Fehler in:


    public zugwarten()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInCheckpoint(playerid))
    {
    SetPlayerCheckpoint(playerid,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(playerid,grün,"Du musst 10sekunden warten bis du weiter fahren darfst!");
    }
    else
    {
    DestroyVehicle(538);
    SendClientMessage(player,rot,"Da du keine 10Sekunden gewartet hast wurde die Arbeit abgebrochen und dein Zug neugesetzt!");

    }
    }
    return 1;
    }



    Fehler gehören zu: zugwarten:

    Code
    samplernen.p(395) : error 017: undefined symbol "playerid"
    samplernen.p(397) : error 017: undefined symbol "playerid"
    samplernen.p(398) : error 017: undefined symbol "playerid"
    samplernen.p(403) : error 017: undefined symbol "player"




    Fehler im OCMD-Befehl: lockfuehrer:
    ocmd: lockfuerhrer(playerid,params[])
    {
    if(IsPlayerInCheckpoint(playerid))
    {
    SetPlayerCheckpoint(playerid,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(playerid,grün,"Du hast dein Dienst als Lockführer angetreten!");
    SendClientMessage(playerid,rot,"Bitte beachte das du an jeder Station 10Sekunden hälst und nicht weiter fährst!");
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast dein Dienst als Lockführer frühzeitig beendet! Der Zug wird zurückgesetzt!");
    DestroyVehicle(537 || 538);
    DisablePlayerCheckpoint(playerid);
    }
    return 1;
    }

    Code
    samplernen.p(609) : error 001: expected token: "(", but found "-identifier-"
    samplernen.p(609) : error 001: expected token: ";", but found "("
    samplernen.p(611) : error 010: invalid function or declaration
    samplernen.p(617) : error 010: invalid function or declaration
    samplernen.p(623) : error 010: invalid function or declaration



    ich bin jetzt seit 15:00 Uhr dran. kann daran liegen das ich schon seit Gestern wach bin und Gefeiert habe.


    Wegen dem Feiern liegt daran Habe meine Ausbildungsendprüfung bestanden.


    Daher mache ich zurzeit zu viele fehler.


  • public zugwarten()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInCheckpoint(i))
    {
    SetPlayerCheckpoint(i,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(i,grün,"Du musst 10sekunden warten bis du weiter fahren darfst!");
    TogglePlayerControllable(playerid,0);
    SetTimerEx("Unfreeze",10000,false,"i",i);
    }
    else
    {
    DestroyVehicle(538);
    SendClientMessage(i,rot,"Da du keine 10Sekunden gewartet hast wurde die Arbeit abgebrochen und dein Zug neugesetzt!");

    }
    }
    return 1;
    }
    Forward Unfreeze(playerid;
    Public:Unfreeze(playerid)
    {
    SendClientMessage(playerid,rot,"Du kannst weiter fahren!
    TogglePlayerControllable(playerid,1);
    Return 1;
    }


    @Handy

  • der gibt mir fehler aus


    TogglePlayerControllable(playerid,0)


    Fehler von TogglePlayerControllable(playerid,0):

    Code
    samplernen.p(400) : error 017: undefined symbol "playerid"


    public: unfreez:
    public Unfreeze()
    {
    SendClientMessage(playerid,rot,"Du kannst weiter fahren!");
    TogglePlayerControllable(playerid,1);
    return 1;
    }
    Fehler vom Public unfreeze:

    Code
    samplernen.p(414) : error 017: undefined symbol "playerid"
    samplernen.p(415) : error 017: undefined symbol "playerid"


    ocmd-Bfehl:
    ocmd: lockfuerhrer(playerid,params[])
    {
    if(IsPlayerInCheckpoint(playerid))
    {
    SetPlayerCheckpoint(playerid,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(playerid,grün,"Du hast dein Dienst als Lockführer angetreten!");
    SendClientMessage(playerid,rot,"Bitte beachte das du an jeder Station 10Sekunden hälst und nicht weiter fährst!");
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast dein Dienst als Lockführer frühzeitig beendet! Der Zug wird zurückgesetzt!");
    DestroyVehicle(537 || 538);
    DisablePlayerCheckpoint(playerid);
    }
    return 1;
    }
    Fehler im OCDM-Befehl:

    Code
    samplernen.p(618) : error 001: expected token: "(", but found "-identifier-"
    samplernen.p(618) : error 001: expected token: ";", but found "("
    samplernen.p(620) : error 010: invalid function or declaration
    samplernen.p(626) : error 010: invalid function or declaration
    samplernen.p(632) : error 010: invalid function or declaration
  • habe es jetzt So:


    forward zugwarten(playerid);
    forward Unfreeze(playerid);


    enum zugenum{
    Float:z_x,
    Float:z_y,
    Float:z_z
    }


    new zinfo[][zugenum]={
    {2864.7500,1345.3098,11.2993}, //LV-HBF
    {1372.7870,2632.2500,11.2993},//LV-Industrie-Bahnhof
    {-1944.3750,81.4532,26.1743}, //SF-HBF
    {860.2952,-1408.9387,-0.9875} //LS-HBF
    };


    public zugwarten(playerid)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInCheckpoint(i))
    {
    SetPlayerCheckpoint(i,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(i,grün,"Du musst 10sekunden warten bis du weiter fahren darfst!");
    TogglePlayerControllable(playerid,0);
    SetTimerEx("Unfreeze",10000,false,"i",0);
    }
    else
    {
    DestroyVehicle(538);
    SendClientMessage(i,rot,"Da du keine 10Sekunden gewartet hast wurde die Arbeit abgebrochen und dein Zug neugesetzt!");

    }
    }
    return 1;
    }
    public Unfreeze(playerid)
    {
    SendClientMessage(playerid,rot,"Du kannst weiter fahren!");
    TogglePlayerControllable(playerid,1);
    return 1;
    }



    ocmd:lockfuerhrer(playerid,params[])
    {
    if(IsPlayerInCheckpoint(playerid))
    {
    SetPlayerCheckpoint(playerid,zinfo[0][z_x],zinfo[0][z_y],zinfo[0][z_z],3);
    SendClientMessage(playerid,grün,"Du hast dein Dienst als Lockführer angetreten!");
    SendClientMessage(playerid,rot,"Bitte beachte das du an jeder Station 10Sekunden hälst und nicht weiter fährst!");
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast dein Dienst als Lockführer frühzeitig beendet! Der Zug wird zurückgesetzt!");
    DestroyVehicle(537 || 538);
    DisablePlayerCheckpoint(playerid);
    return 1;
    }
    return 1;
    }

  • Beitrag von Blackshadowscript ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Hier in den Public:


    public zugwarten(playerid)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInCheckpoint(i))
    {
    SetPlayerCheckpoint(i,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(i,grün,"Du musst 10sekunden warten bis du weiter fahren darfst!");
    TogglePlayerControllable(playerid,0);
    SetTimerEx("Unfreeze",10000,false,"i",0);
    }
    else
    {
    IsPlayerInVehicle(playerid,537||538);
    DestroyVehicle(538);
    SendClientMessage(i,rot,"Da du keine 10Sekunden gewartet hast wurde die Arbeit abgebrochen und dein Zug neugesetzt!");
    CreateVehicle(538, 1870.9891, -1953.7533, 15.3025, -90.0000, -1, -1,0);
    }
    }
    return 1;
    }


    wollte ich eigentlich das wenn ich den den Zugjob so ausführe obwohl ich nicht im Zug bin das er respawn.

  • Der respawn_delay findest du wo der Zug erstellt wird. Ich hab dir mal den Syntax rein gepostet als hilfe!



    CreateVehicle(modelid, Float:x, Float:y, Float:z, Float:angle, color1, color2, respawn_delay *, addsiren=0);


    * Die Zeit allerdings in sekunden


    Mit freundlichen Grüßen
    Euer RynKilleR

  • Folgendes Problem:


    Wenn ich ingame mein Befehl:
    ocmd:lockfuerhrer(playerid,params[])
    {
    if(IsPlayerInCheckpoint(playerid))
    {
    IsPlayerInVehicle(playerid,537||538);
    SetPlayerCheckpoint(playerid,zinfo[0][z_x],zinfo[0][z_y],zinfo[0][z_z],3);
    SendClientMessage(playerid,grün,"Du hast dein Dienst als Lockführer angetreten!");
    SendClientMessage(playerid,rot,"Bitte beachte das du an jeder Station 10Sekunden hälst und nicht weiter fährst!");
    }
    else
    {
    SendClientMessage(playerid,rot,"Du hast dein Dienst als Lockführer frühzeitig beendet! Der Zug wird zurückgesetzt!");
    DestroyVehicle(537 || 538);
    DisablePlayerCheckpoint(playerid);
    AddStaticVehicleEx(538, 1870.9891, -1953.7533, 15.3025, -90.0000, -1, -1,0);
    return 1;
    }
    return 1;
    }



    Benutze wird wird der Zug direkt gelöscht und es wird folgender Text aus gegeben:
    SendClientMessage(playerid,rot,"Du hast dein Dienst als Lockführer frühzeitig beendet! Der Zug wird zurückgesetzt!");



    Ich habe sogar mein Timer und unfrezz Public angschaut aber finde da auch keine fehler:
    public zugwarten(playerid)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerInCheckpoint(i))
    {
    IsPlayerInVehicle(playerid,537||538);
    SetPlayerCheckpoint(i,zinfo[i][z_x],zinfo[i][z_y],zinfo[i][z_z],3);
    SendClientMessage(i,grün,"Du musst 10sekunden warten bis du weiter fahren darfst!");
    TogglePlayerControllable(playerid,0);
    SetTimerEx("Unfreeze",10000,false,"i",0);
    }
    else
    {
    if(!IsPlayerInVehicle(playerid,537||538))
    {
    DestroyVehicle(538);
    SendClientMessage(i,rot,"Da du keine 10Sekunden gewartet hast wurde die Arbeit abgebrochen und dein Zug neugesetzt!");
    AddStaticVehicleEx(538, 1870.9891, -1953.7533, 15.3025, -90.0000, -1, -1,0);
    }
    }
    }
    return 1;
    }


    public Unfreeze(playerid)
    {
    SendClientMessage(playerid,rot,"Du kannst weiter fahren!");
    TogglePlayerControllable(playerid,1);
    return 1;
    }

  • Beitrag von reaL. ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • So Lösche bitte Alles von deinem Zugfahrer Job alle Enums alles
    und dann einfach nur so einfügen wie ich es dir Jetze schicke


    //Oben Ins Script einfügen!
    enum zugenum
    {
    Float:z_x,
    Float:z_y,
    Float:z_z,
    Float:z_r
    }


    enum Playerzuginfo
    {
    bool:zug_Aktiv,
    zug_Checkpoint
    }


    new Zugfahrer[MAX_PLAYERS][Playerzuginfo];


    new zug_stationen[][zugenum] =
    {
    {2864.7500,1345.3098,11.2993,5.0},
    {1372.7870,2632.2500,11.2993,5.0},
    {-1944.3750,81.4532,26.1743,5.0},
    {860.2952,-1408.9387,-0.9875,5.0}
    };



    erklärt sich eig von Selbast aber unter OnPlayerEnterCheckpoint einfügen!
    public OnPlayerEnterCheckpoint(playerid)
    {
    if(Zugfahrer[playerid][zug_Aktiv])
    {
    Zugfahrer[playerid][zug_Checkpoint]++;
    DisablePlayerCheckpoint(playerid);
    new playercp = Zugfahrer[playerid][zug_Checkpoint];
    if(playercp == sizeof(zug_stationen))
    {
    new veh = GetPlayerVehicleID(playerid);
    PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
    SendClientMessage(playerid,ROT,"Du hast deine Arbeit Erledigt!");
    DestroyVehicle(veh);
    Zugfahrer[playerid][zug_Aktiv] = false;
    return 1;
    }
    else
    {
    PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
    TogglePlayerControllable(playerid,0);
    SetTimerEx("Unfreeze",10000,false,"i",playerid);
    return 1;
    }
    }
    return 1;
    }



    // Irgendwo im Script einfügen
    ocmd:lockfuerhrer(playerid)
    {
    if(Zugfahrer[playerid][zug_Aktiv] == true) return SendClientMessage(playerid,Rot,"Du bist schon als Zugfahrer Aktiv");
    Zugfahrer[playerid][zug_Checkpoint]=0;
    Zugfahrer[playerid][zug_Aktiv]=true;
    SetPlayerCheckpoint(playerid,zinfo[0][z_x],zinfo[0][z_y],zinfo[0][z_z],3);
    SendClientMessage(playerid,grün,"Du hast dein Dienst als Lockführer angetreten!");
    SendClientMessage(playerid,rot,"Bitte beachte das du an jeder Station 10Sekunden halten musst!");
    return 1;
    }


    forward Unfreeze(playerid);
    public Unfreeze(playerid)
    {
    new playercp = Zugfahrer[playerid][zug_Checkpoint];
    SetPlayerCheckpoint(playerid,zug_stationen[playercp][z_x],zug_stationen[playercp][z_y],zug_stationen[playercp][z_z],zug_stationen[playercp][z_r]);
    SendClientMessage(playerid,Gelb,"Du kannst nun Zum nächsten Bahnhof fahren!");
    TogglePlayerControllable(playerid,1);
    return 1;
    }