Beiträge von OilMast3r

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new pVeh = GetPlayerVehicleID(playerid);
    if (oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
    {
    if(pVeh == hhvehicles[9])
    {
    if(happyhour == 1) SendClientMessage(playerid,COLOR_LIGHTBLUE,"Viel Spass in der HappyHour mit diesem Fahrzeug.");
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,COLOR_LIGHTRED,"Das Fahrzeug ist nur in der HappyHour verfügbar.");
    }
    }
    }
    return 1;
    }

    Hallo Community,



    habe eine HappyHour gescriptet geht auch soweit alles bis auf das nur die bestimmten fahrzeuge NUR wärend der happyhoour getretbar sind.
    Es geht nicht und wenn dann nur bei einem.
    Kann es sein das ichd ie fahrzeuge mit Array falsch definiert habe?


    habe :


    new hhvehicles[10];


    public OnGameModeInit()
    {
    hhvehicles[0] = AddStaticVehicle(520,179.1809,1877.6844,21.3671,164.9195,0,0);
    hhvehicles[1] = AddStaticVehicle(520,207.5699,1967.4854,18.3639,346.5724,0,0);
    hhvehicles[2] = AddStaticVehicle(520,221.7387,2021.5039,18.9533,357.6985,0,0);
    hhvehicles[3] = AddStaticVehicle(425,333.6640,2059.8220,18.2127,147.7192,0,0);
    hhvehicles[4] = AddStaticVehicle(425,329.8700,1955.6268,18.2208,81.7100,0,0);
    hhvehicles[5] = AddStaticVehicle(425,343.0543,1941.7606,18.7074,86.7037,0,0);
    hhvehicles[6] = AddStaticVehicle(425,353.1422,1917.1593,18.5191,108.9416,0,0);
    hhvehicles[7] = AddStaticVehicle(432,276.6270,1986.7510,17.6533,275.7047,0,0);
    hhvehicles[8] = AddStaticVehicle(432,276.8272,1955.6622,17.6540,268.9727,0,0);
    hhvehicles[9] = AddStaticVehicle(432,277.7156,2023.9938,17.6533,269.1284,0,0);
    }


    Und Frage dann ab bei OnPlayerEnterVehicle ob die Happyhour aktiv ist, wenn ja erscheint ne ClientMessage mit viel spass wärend der happyhour mit diesem Fahrzeug.
    Wenn nicht wird der spieler rausgeschmissen und es erscheint ein text nur wärend happyhour verfügbar.
    Geht aberr nicht.
    Was mache ich falsch?


    Mfg OilMast3r

    Also soweit sogut nun ein neues Problem das war vor deiner Tolle definition nicht, Defcon666.


    Untwar zeitg mein Textdraw jetzt egal in welchen team man ist an das ein spieler in jeden team is obwohl nur in den einen einer is :S

    und du hast wirklich bei onplayerdisconnect gesetzt das das geld neu gespeichert wird und auch das was gespeichert wurde neu abgerufen bei onplayerconnect?

    Also bei mir im GM sieht das so aus:


    public logout(playerid)
    {
    new name[MAX_PLAYER_NAME];
    new save[40];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/OilAdmin/Spieler/%s.ini",name);


    dini_IntSet(save,"Adminlevel",pInfo[playerid][admin]);
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(save,"Score",GetPlayerScore(playerid));


    pInfo[playerid][admin] = 0;
    pInfo[playerid][score] = 0;
    SetPlayerMoney(playerid,0);
    return 1;
    }


    habe bei OnPlayerDisconnect gemacht logout();
    also wird diese func aufgerufen logisch oder? ;)
    Und bei mir klappt es gut.

    Also ich spawne jetzt beim blauen team aber das auch immer.
    Nehme ich an das das bewirkt das die teams ausgeglichen werden?...
    Dann versteh ich das dann ist mir auch logisch das der nächste der dann joint zum anderen team kommt.

    Sinnlos ist das InGreenTeam nicht weil ich habe einen Textdraw gemacht der anzeuigt wieviele spieler in welchem team sind und wie oft das jenige team bereits das gegnerische boot geklaut hat.


    Ich werde es mal so versuchen

    Du nimmst einfach von den AddPlayerClass die X,Y,Z coordinaten und schriebst sie in SetPlayerPos


    Also ion deinem Fall:


    if (PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14)// Feuerwehr
    {
    SetPlayerToTeamColor(playerid);
    GivePlayerWeapon(playerid, 42, 999); //Doppelte Pistole
    GivePlayerWeapon(playerid, 42, 999); //Doppelte Pistole
    GivePlayerWeapon(playerid, 42, 999); //Doppelte Pistole
    SetPlayerInterior(playerid, 0);
    SetPlayerPos(playerid, 740.6016,-1354.5305,21.6381);
    return 1;


    //EDIT: Verstehe halt nur nicht warum du 3 mal ne Pistole gibst. 1 Mal reicht auch. Aber musst du wissen.
    @ [GRGS]Deadwalker: Jeder hat andere Spawn weil es ist nicht sehr warscheinlich das du den Selben Script hast wie er.

    Ich poste jetzt einfach mal :


    #define TEAM_GREEN 1
    #define TEAM_BLUE 2


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/ctb", cmdtext, true, 10) == 0)
    {
    IsInCTB[playerid]=1;
    SendClientMessage(playerid,COLOR_YELLOW,"Willkommen im Capture the Boat.");
    gTeam[playerid] = random(1) +1;
    if(gTeam[playerid] == TEAM_GREEN)
    {
    SetPlayerPos(playerid,1980.0054,-266.6487,2.9653);
    InGreenTeam[playerid] = 1;
    }
    else
    {
    SetPlayerPos(playerid,2359.2703,540.5911,1.7969);
    InBlueTeam[playerid] = 1;
    }

    TextDrawShowForPlayer(playerid,CTBDRAW);
    return 1;
    }

    if (strcmp("/ctboff", cmdtext, true, 10) == 0)
    {
    IsInCTB[playerid]=0;

    if(gTeam[playerid] == TEAM_GREEN)
    {
    InGreenTeam[playerid] = 0;
    }
    if(gTeam[playerid] == TEAM_BLUE)
    {
    InBlueTeam[playerid] = 0;
    }

    gTeam[playerid] = random(0);
    SpawnPlayer(playerid);

    TextDrawHideForPlayer(playerid,CTBDRAW);
    return 1;
    }

    return 0;
    }



    So daran müsste ja was falsch sein.
    Oder kann es sein das ich was doppelt definieren müsste?
    Ich Sehe aus deinem grade nichts , Defcon666 also was soll deins bringen? das ausgeglichene teams sind? Sehe ich daraus aber nicht wie der Spieler bei eingabe des cmds zugeordnet wird.