Beiträge von Kaliber

    (Finde die Syntax bloß komisch)

    Diese findest du zurecht komisch, da diese Klammern da gar keine Funktion erfüllen :D


    Man könnte den Scope so begrenzen:



    C
    {
        new a;
    }
    
    
    //Hier wäre a nicht mehr definiert

    Man kann in Pawn soviele Scope Klammern setzen wie man mag :)


    Allerdings in dieser Situation erfüllen sie keinen Zweck ;)

    Als die Runde gestartet ist, und wir in der Luft waren habe ich mein Kollegen berührt und war einfach ohne Grund instant down.

    Ja, das lustig oder? Das ist ein SAMP Bug :D



    @Edit: Objekte aus den Runden davor werden anscheinend nicht gelöscht.

    Das ist absicht xD Das soll das wenige Holz kompensieren, dass man wenigstens evtl geheim schon mehr bauen kann xD



    Auf dem Server gibts so einige Bugs und verbesserungswürdige dinge.
    bsw. sollte man waffen oder zumindest munition irgendwo finden.
    das bauen müsste vereinfacht werden und vielleicht sollte man mehr holz durch einen baum bekommen, da man in sf spawnt und dort gefühlt nur 3 bäume rumstehen

    Also ein Bug != eine Verbesserung :D
    Klar gibt es viele Verbesserungsmöglichkeiten, hatte ich auch so schon mal erwähnt, aber ich komm momentan nicht dazu xD
    Und in SF kannst du genau: 145 Bäume holzen ^^

    new skinid = GetPVarInt(playerid,"Skin_Start");
    skinid +=1;
    if(skinid > sizeof(maennlich)){skinid=0;}


    SetPlayerSkin(playerid,maennlich[skinid]);


    SetPVarInt(playerid,"Skin_Start",skinid);

    Kurz ein paar Anmerkungen zu dem Code, hier ist ein Fehler.


    Wenn skinid == sizeof(maennlich) ist, da gibt es bereits einen Fehler :)


    Also kannst das so schreiben:


    C
    new skinid = GetPVarInt(playerid,"Skin_Start");
    if(++skinid == sizeof(maennlich)) skinid=0;
    SetPlayerSkin(playerid,maennlich[skinid]);
    SetPVarInt(playerid,"Skin_Start",skinid);

    Ich musste mich zwar verkleiden um rein zu kommen aber es hat sich gelohnt.

    Ja, ich erinnere mich, nur gehobene Tiere kamen da rein :)


    Fand dein Kostüm aber echt gut :)


    Okay, dann hier mal meine Idee ^^


    Wir nutzen einfach hier die Reihenfolge im Enum aus :)



    Wichtig hier, sorg nun dafür, dass BagApple immer das oberste Item ist und alle anderen Items hänge einfach unten dran. So wie man es normal auch tun würde.


    Dann kannste es nämlich einfach so machen:


    C
    stock AddItem(playerid, x, dtc_PlayerCar:item, amount)
    {
        PlayerCar[playerid][x][item] += amount;
        PlayerCar[playerid][x][item] += ItemSpace[item-BagApple];
    }


    Nutzung dann einfach so:



    C
    AddItem(playerid,veh,BagApple,10); //Gibt 10 Äpfel z.B.

    Also, man kann das so machen, wie Jeffry das gezeigt hat.
    Das wäre denke ich mal einer der einfachsten Wege.



    Man kann das aber auch elegant in O(1) lösen, ohne Strings zu vergleichen.

    Will das nur mal demonstrieren, allerdings müsste ich dafür noch wissen, wozu du das als String deklariert hast im enum?!


    Was soll das, was hat das für einen Sinn? Du willst doch dafür nur sagen, wie viel Raum das einnimmt und das ja immer ein int und kein String ^^

    Das geht nicht :)


    Aber muss es ja auch nicht, wieso willst du da unbedingt einen String wert benutzen?


    Nutz doch einfach direkt BagApple oder mach ein Makro/Enum und Mapp den wert auf z.B. ITEM_APPLE oder sowas :)

    Ich hoffe ihr könnt mir bei den letzen fehlern helfen danke im Vorraus!

    Du weißt, dass es ein Wiki gibt mit Beispielen, wie man die Funktionen nutzt oder? :D


    Hier mal als Beispiel: http://wiki.sa-mp.com/wiki/MyS…#cache_get_value_name_int


    C
    //Sprich so machen:
    new EintragID, Money;
    cache_get_value_name_int(i,"SQLid", EintragID); //39455
    cache_get_value_name_int(i,"Money", Money); //39456

    Und mysql_num_rows gibts nicht mehr, das heißt jetzt: cache_num_rows() :)

    Viel zu viele Schleifen überall :D


    Und du solltest keine Variablen in Schleifen deklarieren :)


    Hier, mal etwas effizienter:


    C
    //OnPlayerConnect
    new text[MAX_PLAYER_NAME + 35];
    format(text,sizeof(text),"%s [ID: %d] hat den Server betreten",PlayerName(playerid),playerid);
    for(new i; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i) && PlayerInfo[i][togeinlogg] == 1) SendClientMessage(i,COLOR_RED,text);
    }



    C
    //OnPlayerDisconnect
    new text[MAX_PLAYER_NAME + MAX_ZONE_NAME + 35];
    GetPlayer2DZone(playerid, text, MAX_ZONE_NAME);
    format(text,sizeof(text),"%s [ID: %d] hat den Server in %s verlassen",PlayerName(playerid),playerid,text);
    for(new i; i<MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i) && PlayerInfo[i][togeinlogg] == 1) SendClientMessage(i,COLOR_RED,text);
    }