Beiträge von Key

    Du kannst doch unter OnPlayerSpawn ( passiert, wenn man auf 'Spawn' drückt ) prüfen ob GetPlayerSkin z.B. der CopSkin ist & man NICHT in der Fraktion ist, wenn ja, wird man wieder zur Skinauswahl geschickt.

    Die Frage ist mir zwar irgendwie peinlich, weil das eigentlich eine total einfache Sache ist, aber ich bin voll am verzweifeln. :O Ich bin halt gerade dabei ein Fahrzeugsys zu schreiben, und möchte wenn man in ein definiertes Fahrzeug steigt, ein Dialog angezeigt wird, ist ja kein Ding, hab ich auch schon oft gemacht, geht aber irgendwie heute nicht...


    new WangCars[6]; // <- Oben
    // OnGameModeInit ->
    WangCars[0] = AddStaticVehicle(551,-1950.2410,261.1150,35.2693,57.4005,0,0); // WangCarsMerit1 3600
    WangCars[1] = AddStaticVehicle(587,-1957.0510,301.2330,35.1959,126.2591,0,0); // WangCarsEuros2 12000
    WangCars[2] = AddStaticVehicle(405,-1953.3810,271.6151,35.3462,296.7669,0,0); // WangCarsSentinel3 4500
    WangCars[3] = AddStaticVehicle(426,-1948.2458,258.8360,40.7939,64.3357,0,0); // WangCarsPremier4 8000
    WangCars[4] = AddStaticVehicle(527,-1947.7010,269.9408,40.7687,121.3537,0,0); // WangCarsCadrona5 1300
    WangCars[5] = AddStaticVehicle(540,-1956.3584,281.8741,40.9079,179.8739,0,0); // WangCarsVincent6 6000


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new string[128];
    new vID;
    vID = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i=0;i<sizeof(WangCars);i++)
    {
    if(vID == WangCars[i])
    {
    format(string,sizeof string,"Willkommen bei WangCars!\nMöchtest du dieses Fahrzeug erwerben?\nFahrzeugname: %s\nPreis: %d€",CarName[vID-400],kaufpreis[vID]);
    ShowPlayerDialog(playerid,DIALOG_WANGCARS,DIALOG_STYLE_MSGBOX,"WangCars",string,"Kaufen","Abbrechen");
    TogglePlayerControllable(playerid,0);
    preisid[playerid] = kaufpreis[vID];
    idpreis[playerid] = GetVehicleModel(vID);
    }
    else return SendClientMessage(playerid,ROT,"Ist es nicht!");
    }
    }
    return 1;
    }



    Unter OnVehicleSpawn hab ich noch das, ist aber eig. unwichtig:



    public OnVehicleSpawn(vehicleid)
    {
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[vehicleid] = false;
    if(vehicleid == WangCars[0])
    {
    kaufpreis[vehicleid] = 3600;
    }
    else if(vehicleid == WangCars[1])
    {
    kaufpreis[vehicleid] = 12000;
    }
    else if(vehicleid == WangCars[2])
    {
    kaufpreis[vehicleid] = 4500;
    }
    else if(vehicleid == WangCars[3])
    {
    kaufpreis[vehicleid] = 8000;
    }
    else if(vehicleid == WangCars[4])
    {
    kaufpreis[vehicleid] = 1300;
    }
    else if(vehicleid == WangCars[5])
    {
    kaufpreis[vehicleid] = 6000;
    }
    return 1;
    }


    Das oben mit dem "Ist es nicht" hab ich nur zum Test gemacht, und es wird immer ist es nicht returnt außer bei WangCars[2], versteh ich nicht, da passiert einfach gar nichts!


    Danke im Voraus. :)
    Es wahrscheinlich eh nur'n kleiner dummer Fehler von mir.. <.<

    Die Frage ist mir zwar irgendwie peinlich, weil das eigentlich eine total einfache Sache ist, aber ich bin voll am verzweifeln. :O Ich bin halt gerade dabei ein Fahrzeugsys zu schreiben, und möchte wenn man in ein definiertes Fahrzeug steigt, ein Dialog angezeigt wird, ist ja kein Ding, hab ich auch schon oft gemacht, geht aber irgendwie heute nicht...


    new WangCars[6]; // <- Oben
    // OnGameModeInit ->
    WangCars[0] = AddStaticVehicle(551,-1950.2410,261.1150,35.2693,57.4005,0,0); // WangCarsMerit1 3600
    WangCars[1] = AddStaticVehicle(587,-1957.0510,301.2330,35.1959,126.2591,0,0); // WangCarsEuros2 12000
    WangCars[2] = AddStaticVehicle(405,-1953.3810,271.6151,35.3462,296.7669,0,0); // WangCarsSentinel3 4500
    WangCars[3] = AddStaticVehicle(426,-1948.2458,258.8360,40.7939,64.3357,0,0); // WangCarsPremier4 8000
    WangCars[4] = AddStaticVehicle(527,-1947.7010,269.9408,40.7687,121.3537,0,0); // WangCarsCadrona5 1300
    WangCars[5] = AddStaticVehicle(540,-1956.3584,281.8741,40.9079,179.8739,0,0); // WangCarsVincent6 6000


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new string[128];
    new vID;
    vID = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i=0;i<sizeof(WangCars);i++)
    {
    if(vID == WangCars[i])
    {
    format(string,sizeof string,"Willkommen bei WangCars!\nMöchtest du dieses Fahrzeug erwerben?\nFahrzeugname: %s\nPreis: %d€",CarName[vID-400],kaufpreis[vID]);
    ShowPlayerDialog(playerid,DIALOG_WANGCARS,DIALOG_STYLE_MSGBOX,"WangCars",string,"Kaufen","Abbrechen");
    TogglePlayerControllable(playerid,0);
    preisid[playerid] = kaufpreis[vID];
    idpreis[playerid] = GetVehicleModel(vID);
    }
    else return SendClientMessage(playerid,ROT,"Ist es nicht!");
    }
    }
    return 1;
    }



    Unter OnVehicleSpawn hab ich noch das, ist aber eig. unwichtig:



    public OnVehicleSpawn(vehicleid)
    {
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[vehicleid] = false;
    if(vehicleid == WangCars[0])
    {
    kaufpreis[vehicleid] = 3600;
    }
    else if(vehicleid == WangCars[1])
    {
    kaufpreis[vehicleid] = 12000;
    }
    else if(vehicleid == WangCars[2])
    {
    kaufpreis[vehicleid] = 4500;
    }
    else if(vehicleid == WangCars[3])
    {
    kaufpreis[vehicleid] = 8000;
    }
    else if(vehicleid == WangCars[4])
    {
    kaufpreis[vehicleid] = 1300;
    }
    else if(vehicleid == WangCars[5])
    {
    kaufpreis[vehicleid] = 6000;
    }
    return 1;
    }


    Das oben mit dem "Ist es nicht" hab ich nur zum Test gemacht, und es wird immer ist es nicht returnt außer bei WangCars[2], versteh ich nicht, da passiert einfach gar nichts!


    Danke im Voraus. :)
    Es wahrscheinlich eh nur'n kleiner dummer Fehler von mir.. <.<

    Ich bin momentan auch dabei ein Selfmade zu scripten.
    In diesem wird es auch keine Fraktionen geben, sondern ein Gewerbeamt, bei welchem man Gewerbe anmelden kann, dafür Steuer zahlt, und sein eigener Boss wird. So kann man seinen Ideen freien Lauf geben, dass System muss ich aber noch genauer durchplanen, damit es Erfolg hat. So etwas ähnliches könntest du ja auch machen!

    Hehe :D.
    So mein ichs:

    public GeldTimer(playerid)
    {
    new string[124];
    new vgeld[MAX_PLAYERS];
    vgeld[playerid] = GetPVarInt(playerid,"Geld");
    format(string,sizeof string,vgeld[playerid]);
    TextDrawSetString(GeldText[playerid],string);
    }


    Mit SetPVarInt(playerid,"Geld",5000); o.ä. kannst du dann dem Spieler Geld hinzufügen/abziehen.

    @BlackAce: Stimmt, danke. :D


    HellFire: Ahh! Jetzt versteh ich. :D Du musst eine neue Variable im Spielerenum / PVar erstellen mit dem Namen "Geld", beim GeldTimer die Variable abfragen ( GetPVarInt / SpielerInfo[playerid][Geld] etc. ) und die Geldvariable in ein String umwandeln ( Danke an Black! :D ) mit format. Wenn du's nicht hinbekommst mach ich das gleich mal.

    Ich glaube, du musst entweder: new Text:GeldText[MAX_PLAYERS]; oder PlayerTextDraw verwenden, da sonst jeder die selbe Menge an Geld hat, denk ich. Dann:
    forward GeldTimer(playerid);
    public GeldTimer(playerid)
    {
    new geld = GetPlayerMoney(playerid);
    TextDrawSetString(GeldText[playerid],geld);
    }


    edit: Oben dann natürlich anstatt GeldText immer GeldText[playerid] erstellen und das dann anstatt bei OnGameModeInit bei OnPlayerConnect createn.