Beiträge von ErikSon

    Öffne mal die Include "M_Bot" und kopiere dir alle Funktionen in dein Mainscript ( bspw. die Funktion "GetName" )..
    Die fügst du dann in dein Mainscript ganz unten, oder wo auch immer ein, dann klappt alles..


    Und bitte..!

    Poste mal bitte den Inhalt von "M_OnPlayerConnect" "M_OnPlayerDeath" "M_OnPlayerSpawn" etc..

    Wenn ichs richtig verstanden habe.. Sollte es dann so aussehen:
    createFrakCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r,color1,color2,frak){
    print("Createfcar vor schleife");
    for(new i=0; i<sizeof(fInfo); i++){
    print("Create fcar in schleif");
    if(cInfo[i][id_x]!=0)continue;
    //cInfo[i][besitzer]=fInfo[playerid][f_name];
    //GetPlayerName(playerid,cInfo[i][besitzer],MAX_PLAYER_NAME);
    fInfo[i][c_x]=x;
    fInfo[i][c_y]=y;
    fInfo[i][c_z]=z;
    fInfo[i][c_r]=r;
    fInfo[i][model]=modelid;
    fInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,color1,color2,-1);
    new string[144],pIDname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pIDname,sizeof(pIDname));
    format(string,sizeof(string),"Das Auto NR[%i] wurde für %s erstellt",i,pIDname);
    SendClientMessageToAll(RED,string);
    saveCarToDB(playerid,i);
    print("Createfcar in schleife ende");
    return 1;
    }
    return 1;
    }

    Füg das oben in dein Script:
    #define UnFreezePlayer(%0) TogglePlayerControllable(%0,1)
    #define FreezePlayer(%0) TogglePlayerControllable(%0,0)
    static VehicleDriverPlayerid[MAX_VEHICLES] = { INVALID_PLAYER_ID, ... };


    Das egal wo:
    stock GetVehicleDriver(vehicleid){
    if(vehicleid < 1 || vehicleid > sizeof(VehicleDriverPlayerid)) return INVALID_PLAYER_ID;
    if(VehicleDriverPlayerid[vehicleid - 1] != INVALID_PLAYER_ID && IsPlayerInVehicle(VehicleDriverPlayerid[vehicleid - 1], vehicleid) && GetPlayerVehicleSeat(VehicleDriverPlayerid[vehicleid - 1]) == 0)return VehicleDriverPlayerid[vehicleid - 1];
    return VehicleDriverPlayerid[vehicleid - 1] = INVALID_PLAYER_ID;
    }
    //In -> OnPlayerStateChange
    if(newstate == PLAYER_STATE_DRIVER){
    new vehicleid = GetPlayerVehicleID(playerid);
    if(vehicleid)VehicleDriverPlayerid[vehicleid - 1] = playerid;
    }


    Poste mal bitte den Inhalt von "M_OnPlayerConnect" "M_OnPlayerDeath" "M_OnPlayerSpawn" etc..

    Code

    Sollte so funktionieren..

    Code
    Was du tun musstest.. :
    Du musst abfragen, ob er den Job noch nicht kündigen kann ( "SInfo[playerid][pkund]" ) <- Die Variable..
    Wenn diese größer als 0 ist, dann kann er diesen Job noch nicht kündigen

    Code
    dcmd_job(playerid,params[]){
    #pragma unused params
    if(IsPlayerInRangeOfPoint(playerid,4.0,1419.4509,-1001.0847,-17.3952))return ShowPlayerDialog(playerid, DIALOG_JOB, DIALOG_STYLE_LIST, "JobMenu","Müllmann\nTaschendieb\nStraßenreiniger\nWaffendealer\nDrogendealer\nFarmer\nPilot\nHure\nHolzfäller\nTaxifahrer\nJob kündigen","Auswählen", "Abbrechen");
    else return SendClientMessage(playerid,COLOR_RED,"Hier bekommst du keinen Job!");
    }




    if(dialogid == DIALOG_JOB)
    {
    if(!response)return 1;
    if(SInfo[playerid][pkund] > 0 && listitem != 10)return SendClientMessage(playerid,Gelb,"Du hast bereits einen Job! Kündige diesen erstmal.");
    if(listitem == 0){
    SInfo[playerid][pkund] = 3;
    SInfo[playerid][pJob] = 1;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Muelmann");
    }
    if(listitem == 1){//Taschendieb
    SInfo[playerid][pJob] = 2;
    SInfo[playerid][pkund] = 3;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Taschendieb");
    }
    if(listitem == 2){//Straßenreiniger
    SInfo[playerid][pJob] = 3;
    SInfo[playerid][pkund] = 3;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Straßenreiniger");
    }
    if(listitem == 3){//Waffendealer
    SInfo[playerid][pJob] = 4;
    SInfo[playerid][pkund] = 3;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Waffendealer");
    }
    if(listitem == 4){//Drogendealer
    SInfo[playerid][pJob] = 5;
    SInfo[playerid][pkund] = 3;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Drogendealer)");
    }
    if(listitem == 5){//Farmer
    SInfo[playerid][pJob] = 6;
    SInfo[playerid][pkund] = 3;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Farmer)");
    }
    if(listitem == 6){//Pilot
    SInfo[playerid][pJob] = 7;
    SInfo[playerid][pkund] = 3;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Pilot)");
    }
    if(listitem == 7){//Hure
    SInfo[playerid][pJob] = 8;
    SInfo[playerid][pkund] = 3;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Hure)");
    }
    if(listitem == 8){//Holzfäller
    SInfo[playerid][pJob] = 9;
    SInfo[playerid][pkund] = 3;
    SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Holzfäller");
    }
    if(listitem == 9){//Taxifahrer
    SInfo[playerid][pJob] = 10;
    SInfo[playerid][pkund] = 3;
    return SendClientMessage(playerid, Gelb,"Du hast dir Erfolgreich dein Job ausgesucht.(Taxifahrer");
    }
    if(listitem == 10){//kündigen
    if(SInfo[playerid][pkund] == 0){
    SInfo[playerid][pJob] = 0;
    return SendClientMessage(playerid, Gelb,"Du hast deinen Job erfolgreich gekündigt!");
    }
    else{
    format(str,sizeof(str),"Du kannst deinen Job nicht kündigen!",SInfo[playerid][pkund]);
    return SendClientMessage(playerid, COLOR_RED,str);
    }
    }
    }

    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "Banktyp1", true)){
    new gPlayerLogged[MAX_PLAYERS];
    gPlayerLogged[playerid] = 1;//[playerid] hat gefehlt
    }


    Jedoch musst du das an dein Script anpassen, dass der Bot dann direkt eingeloggt ist und nicht im Einlog-Dialog oder whatever rumhängt ;)