Beiträge von BlackFoX

    if(CurrentMenu == Waffen)
    {
    switch(row)
    {
    case 0:
    {
    if(GetPlayerMoney(playerid) < 1000)return SendClientMessage(playerid,farbe,"Du hast keine 1000$");


    SendClientMessage(playerid,blau,"Du hast dir die Colt 45 gekauft");
    GivePlayerMoney(playerid, -1000);
    GivePlayerWeapon(playerid,22,100);
    ShowMenuForPlayer(Waffen,playerid);
    }
    case 1:
    {
    SetPlayerArmour(playerid, 100.0);//Rüstung
    ShowMenuForPlayer(Waffen,playerid);
    }
    case 2:
    {
    GivePlayerWeapon(playerid,35,500);// Raketenwerfer
    ShowMenuForPlayer(Waffen,playerid);
    }
    case 3:
    {
    GivePlayerWeapon(playerid,34,500);// Sniper
    ShowMenuForPlayer(Waffen,playerid);
    }
    case 4:
    {
    GivePlayerWeapon(playerid,26,500);// Sawn Off
    ShowMenuForPlayer(Waffen,playerid);
    }
    }
    }
    }

    if(GetPlayerMoney(playerid) < GEFORDERT)
    {
    SendClientMessage(playerid, COLOR_GREEN, " Du hast nicht soviel Geld"); // <<
    }
    else
    {
    // Er kriegt die Waffe und Geld wird abgezogen
    }


    Es heisst ja wenn das Spielergeld kleiner ist als gefordert ^^

    Ja klar geht das ^^ , einen Tipp hätte ich noch ,


    stock PlayerName(playerid)
    {
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof pName);
    return pName;
    }


    format(string, sizeof(string), "Hi %s", PlayerName(playerid));


    Dann musst du nicht jedesmal eine variable erstellen bzw. immer GetPlayerName machen und Sparst dir damit immer ne zeile oder auch 2 ;)

    public MyClass(const String[MAX_BLA])


    Meinste das so, geht auch ^^


    Mann kann mit define auch Strings definieren oder Funktionen bauen geht alles


    #define MAXIMALE_ANZAHL 200


    new FuerJedenSpieler[MAXIMALE_ANZAHL];


    wäre wie MAX_PLAYERS kann auch in publics forwards eingesetzt werden

    public illegalewaffen(playerid)
    {
    switch(GetPlayerWeapon(playerid))
    {
    case 16,18,26,33,34,35,37,38,39,40,41,42: return 0;
    }
    return 1;
    }

    Hey Leute,


    Ich hab hier mal nen paar neuen Callbacks erstellt die vllt wer gebrauchen kann, ich zeig euch erstmal die neuen Callbacks


    public OnPlayerChangeWeapon(playerid,neue_waffe,alte_waffe)
    {
    new ChangeState[128]; // Mit kleinem Beispiel ^^
    format(ChangeState,sizeof(ChangeState),"Alte Waffe: %d - Neue Waffe %d",alte_waffe,neue_waffe);
    SendClientMessage(playerid,0xFFCC00FF,ChangeState);
    return 1;
    }


    public OnPlayerChangeHealth(playerid,neue_energie,alte_energie)
    {


    return 1;
    }


    public OnPlayerChangeMoney(playerid,neues_geld,altes_geld)
    {


    return 1;
    }


    public OnPlayerChangeSkin(playerid,neuer_skin,alter_skin)
    {


    return 1;
    }



    public OnPlayerChangeVehicle(playerid,vehicleid)
    {


    return 1;
    }


    Also wie man sieht ist dies vorhanden:


    Wenn der Spieler sein Energie Status verändert, Wenn der Spieler einen anderen Skin hat, Wenn der Spieler eine andere Waffe in der Hand hat,
    Wenn der Spieler einen anderen Geld Status bekommt, Wenn der Spieler in einem Fahrzeug ist.


    Ich hoffe euch gefällts es.


    einfach in euer Script einbeziehen und die Klassen hinzufügen wie sie dort oben stehen, schon könnt ihr die Features voll nutzen.


    Callback Update *1


    Wenn der Spieler eine Taste drückt
    public OnPlayerPressKey(playerid,key)
    {
    // Beispiel:
    if(key == KEY_UP)
    {
    // Irgend etwas tun
    }
    //
    return 1;
    }



    Wenn sich der Spieler mit dem Fahrzeug bewegt, gibt neue Position zurück
    public OnPlayerVehicleMove(playerid,Float:move_x,Float:move_y,Float:move_z)
    {
    // irgendwas tun
    return 1;
    }


    Have Fun again :)

    Loose Indentation ist nur da weil du die klammern nicht Richtig eingerückt hast


    z.b. erste und 2 if abfrage


    >>>>if(...)
    >>>>{
    >>>>>>>>if(...)
    >>>>>>>>{


    Muss eingerückt werden bzw. geordnet

    Nach dem GF müsste newcar schon definiert sein , im grunde so
    new newcar = GetPlayerVehicleID(playerid);
    daher musst du bei OnPlayerStateChange newcar nicht ändern auch nicht RemovePlayerFromvehicle ,
    doch bei OnPlayerEnterVehicle musst du dies ändern da dort vehicleid definiert ist und man die Rückgabe GetPlayerVehicleID(playerid);
    nicht verwenden kann, da sie sowieso 0 Zurückgibt da man sich in dem moment nicht in einem Fahrzeug befindet, vehicleid in der
    Callback gibt dann die ID Zurück , die Callback gibt Zurück ob er grad am einsteigen ist , OnPlayerStateChange gibt je nach abfrage welcher status,
    den jeweiligen Status dann Zurück wenn er erreicht wurde

    newcar gegen vehicleid ersetzen und RemovePlayerFromvehicle wird nicht klappen , daher dies:
    TogglePlayerControllable(playerid,0);
    TogglePlayerControllable(playerid,1);
    Ich denke dann müssts soweit gehen