OnPlayerStateChange Problem

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
  • Hab ein großes Problem... Ich hab bei OnplayerStateChange es so eingestellt das wenn man z.B kein Cop ist man auch kein Auto von den Cops fahren kann...
    Das hat auch immer funktioniert bis heute..
    Ich hab die Abfrage mit dem Copcar schon ganz oben hingesetzt aber bringt nichts
    Ich hab schon alle Filterscripts rausgenommen... Hat aber auch nichts gebracht
    Hier der Code:

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    sm_OnPlayerStateChange(playerid, newstate, oldstate);
    new farmercarid;
    new car = GetPlayerVehicleID(playerid);
    new vehid;
    new str[80], strr[150];
    new modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new a=0; a<sizeof(copcar); a++)
    {
    if(vehid == copcar[a] && sSpieler[playerid][Fraktion] != 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren!");
    }
    }
    SendClientMessage(playerid,GRAU,"*Du kannst das Fahrzeug mit /cveh kontrollieren! Den Motor kannst du mit der Taste N starten.");
    TextDrawShowForPlayer(playerid,SpeedoBox);
    TextDrawShowForPlayer(playerid,SpeedoVehText);
    TextDrawShowForPlayer(playerid,SpeedoVeh[playerid]);
    TextDrawShowForPlayer(playerid,SpeedoKMHText);
    TextDrawShowForPlayer(playerid,SpeedoKMH[playerid]);
    TextDrawShowForPlayer(playerid,SpeedoTankText);
    TextDrawShowForPlayer(playerid,SpeedoTank[playerid]);
    SetPlayerArmedWeapon(playerid,0);
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    if(PlayerCar[i][vid] == GetPlayerVehicleID(playerid))
    {
    new PlayerVehicleModelID = GetVehicleModel(PlayerCar[i][vid]);
    PlayerVehicleModelID -= 400;
    format(str, sizeof str, "Dieser %s gehört %s!", PlayerVehicle[PlayerVehicleModelID], PlayerCar[i][Key]);
    SendClientMessage(playerid, COLOR_GREY, str);
    }
    return 1;
    }
    for(new j = 0;j<sizeof(ShowCars);j++)
    {
    if(ShowCars[j][v_id] == GetPlayerVehicleID(playerid))
    {
    format(strr, sizeof strr, "Datenblatt:\nFahrzeug: %s\nPreis: %d$", ShowCars[j][CarName], ShowCars[j][CarPreis]);
    ShowPlayerDialog(playerid, BuyDiag, 0, "Fahrzeugkauf", strr, "Kaufen", "Abbrechen");
    TogglePlayerControllable(playerid, 0);
    }
    return 1;
    }
    for(new i=0; i<sizeof(roller); i++)
    if(vehid == roller[i])
    {
    if(GetPlayerScore(playerid) > 1)
    {
    SendClientMessage(playerid,HELLBLAU,"*Nur Anfänger dürfen Roller benutzen!");
    RemovePlayerFromVehicle(playerid);
    }
    else if(GetPlayerScore(playerid) == 1)
    {
    Tank[car] = 100;
    SendClientMessage(playerid,HELLBLAU,"*Da das ein Noobroller ist wurde eine Drossel eingebaut.");
    SetVehicleSpeedMax(vehid,80);
    }
    return 1;
    }
    for(new i=0; i<sizeof(fahrschulautos); i++)
    {
    if(vehid == fahrschulautos[i])
    {
    if(Fahrstunde[playerid] != 1)return RemovePlayerFromVehicle(playerid);
    Tank[car] = 100;
    SendClientMessage(playerid,HELLBLAU,"*Deine Fahrstunde hat begonnen. Folge den Checkpoints!");
    SetVehicleSpeedMax(vehid, 100);
    SetPlayerCheckpoint(playerid,1427.3533,-1648.6859,13.0849,10.0);
    CheckpointF[playerid] = 2;
    }
    return 1;
    }
    for(new i=0; i<sizeof(fscar); i++)
    {
    if(vehid == fscar[i])
    {
    if(sSpieler[playerid][Fraktion] == 4 || Fahrstunde[playerid] == 1)
    {
    Tank[car] = 100;
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du bist in keiner Fahrstunde!");
    }
    }
    return 1;
    }
    if(modelid == 472 || modelid == 473 || modelid == 493 || modelid == 595 || modelid == 484 || modelid == 430 || modelid == 453 || modelid == 452 || modelid == 446 || modelid == 454 )
    {
    if(sSpieler[playerid][Bootschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Bootschein");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {

    }
    }
    else if(modelid == 592 || modelid == 577 || modelid == 511 || modelid == 512 || modelid == 593 || modelid == 520 || modelid == 553 || modelid == 476 || modelid == 519 || modelid == 460 || modelid == 513 || modelid == 548 || modelid == 425 || modelid == 417 || modelid == 487 || modelid == 488 || modelid == 497 || modelid == 563 || modelid == 447 || modelid == 469 )
    {
    if(sSpieler[playerid][Flugschein] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Flugschein !");
    RemovePlayerFromVehicle(playerid);
    }
    else
    {


    }
    }
    else
    {
    if(sSpieler[playerid][License] == 0)
    {
    SendClientMessage(playerid, ROT, "Du hast keinen Führerschein");
    RemovePlayerFromVehicle(playerid);
    }
    }
    return 1;
    }
    for(new i=0; i<sizeof(sweeper); i++)
    {
    if(vehid == sweeper[i] && sSpieler[playerid][Job] != 5)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren!");
    }
    else if(vehid == sweeper[i] && sSpieler[playerid][Job] == 5)
    {
    SendClientMessage(playerid,HELLBLAU,"Du hast die Reinigung gestartet! Fahre nun die Checkpoints ab");
    SweeperJob[playerid] = 1;
    SweeperCP[playerid] = 0;
    SetPlayerCheckpoint(playerid,Sweeper_Stationen[0][M_fX],Sweeper_Stationen[0][M_fY],Sweeper_Stationen[0][M_fZ],Sweeper_Stationen[0][M_fRad]);
    }
    return 1;
    }
    for(new i=0; i<sizeof(farmercar); i++)
    {
    if(car == farmercar[i] && sSpieler[playerid][Job] != 3)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren!");
    }
    else if(car == farmercar[i])
    {
    new zahl = random(5);
    Tank[car] = 100;
    if(zahl == 0)
    {
    SetPlayerCheckpoint(playerid,-1180.5514,-1057.0345,130.2097,5.0);
    SendClientMessage(playerid,HELLBLAU,"Dein Farmjob wurde gestartet. Fahr nun die Checkpoints ab");
    FarmPointID[playerid] = 1;
    }
    if(zahl == 1)
    {
    SetPlayerCheckpoint(playerid,-1112.3036,-999.3947,130.1967,5.0);
    SendClientMessage(playerid,HELLBLAU,"Dein Farmjob wurde gestartet. Fahr nun die Checkpoints ab");
    FarmPointID[playerid] = 1;
    }
    if(zahl == 2)
    {
    SetPlayerCheckpoint(playerid,-1027.2131,-1035.6957,130.1971,5.0);
    SendClientMessage(playerid,HELLBLAU,"Dein Farmjob wurde gestartet. Fahr nun die Checkpoints ab");
    FarmPointID[playerid] = 1;
    }
    if(zahl == 3)
    {
    SetPlayerCheckpoint(playerid,-1019.5421,-948.5459,130.1967,5.0);
    SendClientMessage(playerid,HELLBLAU,"Dein Farmjob wurde gestartet. Fahr nun die Checkpoints ab");
    FarmPointID[playerid] = 1;
    }
    if(zahl == 4)
    {
    SetPlayerCheckpoint(playerid,-1164.9391,-944.8378,130.1968,5.0);
    SendClientMessage(playerid,HELLBLAU,"Dein Farmjob wurde gestartet. Fahr nun die Checkpoints ab");
    FarmPointID[playerid] = 1;
    }

    }
    return 1;
    }
    for(new i=0; i<sizeof(SupVeh); i++)
    {
    if(vehid == SupVeh[i] && sSpieler[playerid][Adminlevel] < 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren!");
    }
    return 1;
    }
    for(new i=0; i<sizeof(Trashcar); i++)
    {
    if(vehid == Trashcar[i] && sSpieler[playerid][Job] != 1)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren!");
    }
    else if(vehid == Trashcar[i] && sSpieler[playerid][Job] == 1)
    {
    Tank[car] = 100;
    }
    return 1;
    }
    for(new i=0; i<sizeof(fwcar); i++)
    {
    if(vehid == fwcar[i] && sSpieler[playerid][Fraktion] != 3)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren!");
    }
    return 1;
    }
    for(new i=0; i<sizeof(khcar); i++)
    {
    if(vehid == khcar[i] && sSpieler[playerid][Fraktion] != 2)
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du darfst dieses Fahrzeug nicht fahren!");
    }
    return 1;
    }
    if(vehid == Rasenmaeher)
    {
    if(MiniJobAus[playerid] == 1)
    {
    SendClientMessage(playerid,ROT,"Du musst noch warten bis du einen weiteren Minijob annehmen kannst!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    SendClientMessage(playerid,HELLBLAU,"Du hast den Minijob gestartet! Fahre nun die Checkpoints ab!");
    SetPlayerCheckpoint(playerid,1941.0782,-2514.5378,13.1268,4.0);
    MiniJob[playerid] = 1;
    }
    if(vehid == MiniJCar)
    {
    if(MiniJobAus[playerid] == 1)
    {
    SendClientMessage(playerid,ROT,"Du musst noch warten bis du einen weiteren Minijob annehmen kannst!");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    SendClientMessage(playerid,HELLBLAU,"Du hast den Minijob gestartet! Fahre nun zum Checkpoint und liefer die Ware aus!");
    SetPlayerCheckpoint(playerid,90.7910,-303.5947,1.6566,5.0);
    MiniJob2[playerid] = 1;
    }
    if(oldstate == PLAYER_STATE_DRIVER)
    {
    KillTimer(BBlitzer[playerid]);
    TextDrawHideForPlayer(playerid,SpeedoBox);
    TextDrawHideForPlayer(playerid,SpeedoVehText);
    TextDrawHideForPlayer(playerid,SpeedoVeh[playerid]);
    TextDrawHideForPlayer(playerid,SpeedoKMHText);
    TextDrawHideForPlayer(playerid,SpeedoKMH[playerid]);
    TextDrawHideForPlayer(playerid,SpeedoTankText);
    TextDrawHideForPlayer(playerid,SpeedoTank[playerid]);
    if(FarmPointID[playerid] == 1)
    {
    SendClientMessage(playerid,ORANGE,"Du hast den Farmjob beendet!");
    FarmPointID[playerid] = 0;
    DisablePlayerCheckpoint(playerid);
    SetVehicleHealth(farmercarid,1000);
    SetVehicleToRespawn(farmercarid);
    farmercarid = -1;
    }
    if(vehid == Rasenmaeher)
    {
    SetVehicleToRespawn(Rasenmaeher);
    SetVehicleHealth(Rasenmaeher,1000);
    SendClientMessage(playerid,HELLBLAU,"Du hast den Minijob beendet!");
    DisablePlayerCheckpoint(playerid);
    MiniJob[playerid] = 0;
    }


    }
    return 1;
    }