if(newstate == PLAYER_STATE_ONFOOT) geht nicht.

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 Tag, ich habe ein Problem mit if(newstate == PLAYER_STATE_ONFOOT)
    Ich glaube das wird nicht aufgerufen. Weil ich habe einen Job jemacht. Stadtreiniger und wenn er aussteigt soll der job beendet werden,
    doch es klappt nicht, ich kann den Job trotzdem weitermachen wenn ich wieder einsteige.

    if(newstate == PLAYER_STATE_ONFOOT)
    {
    if(GetPVarInt(playerid,"kehrjob")==1)
    {
    SetVehicleToRespawn(vehicleid);
    SetPVarInt(playerid,"kehrjob",0);
    DisablePlayerCheckpoint(playerid);
    }


    }


    Sonst geht alles

  • Ja gerne bitte
    if(newstate == PLAYER_STATE_ONFOOT)
    {
    PlayerTextDrawHide(playerid,TT_0[playerid]);
    PlayerTextDrawHide(playerid,TT_1[playerid]);
    PlayerTextDrawHide(playerid,TT_2[playerid]);
    PlayerTextDrawHide(playerid,TT_3[playerid]);
    TextDrawHideForPlayer(playerid,Tankbox);
    TextDrawHideForPlayer(playerid,Tankbox2);
    SetPVarInt(playerid,"verladen",0);
    if(PlayerKarting[playerid] > 0 && PlayerInKart[playerid] > 0)
    {
    PlayerInKart[playerid] = 0;
    KartingPlayers --;
    }
    if(GetPVarInt(playerid,"kehrjob")==1)
    {
    SetVehicleToRespawn(vehicleid);
    SetPVarInt(playerid,"kehrjob",0);
    DisablePlayerCheckpoint(playerid);
    }
    if(TransportDuty[playerid] > 0)
    {
    if(TransportDuty[playerid] == 1)
    {
    TaxiDrivers -= 1;
    }
    else if(TransportDuty[playerid] == 2)
    {
    BusDrivers -= 1;
    }
    TransportDuty[playerid] = 0;
    format(string, sizeof(string), "* Nun bist du nicht mehr im Dienst, du hast $%d verdient.", TransportMoney[playerid]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    GivePlayerMoney(playerid, TransportMoney[playerid]);
    ConsumingMoney[playerid] = 1; TransportValue[playerid] = 0; TransportMoney[playerid] = 0;
    }
    if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 999)
    {
    if(IsPlayerConnected(TransportDriver[playerid]))
    {
    TransportMoney[TransportDriver[playerid]] += TransportCost[playerid];
    TransportTime[TransportDriver[playerid]] = 0;
    TransportCost[TransportDriver[playerid]] = 0;
    format(string, sizeof(string), "~w~Der Transport kostet~n~~r~$%d",TransportCost[playerid]);
    GameTextForPlayer(playerid, string, 5000, 1);
    format(string, sizeof(string), "~w~Der Kunde verlässt das Fahrzeug~n~~g~Du bekommst $%d",TransportCost[playerid]);
    GameTextForPlayer(TransportDriver[playerid], string, 5000, 1);
    GivePlayerMoney(playerid, -TransportCost[playerid]);
    TransportCost[playerid] = 0;
    TransportTime[playerid] = 0;
    TransportDriver[playerid] = 999;
    }
    }
    TelePos[playerid][0] = 0.0;
    TelePos[playerid][1] = 0.0;
    }
    if(newstate == PLAYER_STATE_PASSENGER) // TAXI & BUSSES
    {
    if(vehmodel == 427)
    {
    SetPlayerPos(playerid, -3548.872,-859.759,668.830);
    SetPlayerFacingAngle(playerid, 0);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid,vehicleid);
    IntEnforcer[playerid] = vehicleid;
    SetPlayerCameraPos(playerid,-3549.0645,-858.2825,669.6622);
    SetPlayerCameraLookAt(playerid,-3548.9399,-862.3364,668.6622);
    SetPlayerDrunkLevel(playerid,3000);
    }
    if(vehmodel == 548)
    {
    SetPlayerPos(playerid, -3548.872,-859.759,668.830);
    SetPlayerFacingAngle(playerid, 0);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid,vehicleid);
    IntCargo[playerid] = vehicleid;
    SetPlayerCameraPos(playerid,-3549.0645,-858.2825,669.6622);
    SetPlayerCameraLookAt(playerid,-3548.9399,-862.3364,668.6622);
    SetPlayerDrunkLevel(playerid,3000);
    }
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 2 && TransportDuty[i] > 0)
    {
    if(GetPlayerMoney(playerid) < TransportValue[i])
    {
    format(string, sizeof(string), "* Du brauchst $%d, um einsteigen zu können.", TransportValue[i]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    RemovePlayerFromVehicle(playerid);
    }
    else
    {
    if(TransportDuty[i] == 1)
    {
    format(string, sizeof(string), "* Du bezahlst $%d, dem Taxifahrer.", TransportValue[i]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Kunde %s betritt dein Taxi.", name);
    SendClientMessage(i, COLOR_LIGHTBLUE, string);
    TransportTime[i] = 1;
    TransportTime[playerid] = 1;
    TransportCost[playerid] = TransportValue[i];
    TransportCost[i] = TransportValue[i];
    TransportDriver[playerid] = i;
    }
    else if(TransportDuty[i] == 2)
    {
    format(string, sizeof(string), "* Du bezahlst $%d, dem Busfahrer.", TransportValue[i]);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Passagier %s betritt den Bus.", name);
    SendClientMessage(i, COLOR_LIGHTBLUE, string);
    }
    GivePlayerMoney(playerid, - TransportValue[i]);
    TransportMoney[i] += TransportValue[i];
    }
    }
    }
    }
    }


    Und hier ist der Job
    if(GetPVarInt(playerid,"kehrjob")==1)
    {
    SetVehicleToRespawn(vehicleid);
    SetPVarInt(playerid,"kehrjob",0);
    DisablePlayerCheckpoint(playerid);
    }

  • Hier habe ich es.
    public OnPlayerStateChange(playerid, newstate, oldstate)


    Wenn du was für den job machst dann würde ich es so machen.


    if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT && GetPVarInt(playerid,"imjob") != 0)
    {
    //Inhalt
    }
    ps:thomas admin von nes?

  • Ich habe es nun so gemacht und es klappt immernochnicht.


    if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT && GetPVarInt(playerid,"kehrjob")==1)
    {
    SetVehicleToRespawn(vehicleid);
    SetPVarInt(playerid,"kehrjob",0);
    DisablePlayerCheckpoint(playerid);
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • ASS


    Wenn du doch willst das der Job beendet werden soll wenn der Spieler das Fahrzeug verlässt, dann mach doch ganz einfach eine abfrage unter den public OnPlayerExitVehicle


    SetPVarInt(playerid,"JobVerlassen",1); // Dies einfach dahin womit man den Job starten tut


    OnPlayerExitVehicle()
    {
    if(GetPVarInt(playerid,"JobVerlassen") == 1)
    {
    // Dann was passieren soll wenn er das Job Fahrzeug verlässt .
    }
    return 1;
    }




    Grüße

  • public OnPlayerExitVehicle(playerid,vehicleid)
    {
    if(GetPVarInt(playerid,"kehrjob") == 1)
    {
    SetPVarInt(playerid,"kehrjob",0);
    SetVehicleToRespawn(vehicleid);
    return 1;
    }
    return 1;
    }
    Versuch es mal damit, es ist genau so aufgebaut wie bei dir unter OnPlayerStateChange, außer dies ist bei OnPlayerExitVehicle. Wenn du dafür fragen hast, dann melde dich.

    Einmal editiert, zuletzt von BaRkS ()