Beiträge von Kaliber

    [ SCRIPTING ]Debugnachrichten


    Das ist ein Tutorial...wie du evtl die Funktion print oder printf Anwendest um deinen Fehler zu finden :rolleyes:


    Schreibe halt mal print("Test"); an verschiedene Stellen unter public OnGameModeInit und dann wird dir eine bestimmte Anzahl von denen ausgegeben, hier mal ein bsp:


    print("Test");
    //Code 1
    print("Test");
    //Code 2
    print("Test");
    //Code 3
    print("Test");
    //Code 4


    //Im Log steht:
    Test
    Test


    //Jetzt weißt du, dass der Fehler bei Code 2 liegt..


    mfg. :thumbup:

    Ich kann dir auch ein Plugin schicken, von mir das prüft ob du evtl. das Limit überschritten hast.
    Wenn du es zum test willst einfach PN


    MFG Arendium


    Tut mir leid, aber das halte ich nun sehr für Schwachsinnig, weil ich nicht glaube, dass sein Script 4096 Pickups erstellt hat...


    mfg. :pinch:

    gibt es keine andere möglichkeit es herrauszufinden ?


    LOL, du musst doch nur print("Test"); eingeben und schauen wie viele dir davon ausgegeben werden..ja sehr kompliziert :whistling:


    Was stellst du dir denn vor...wie soll es denn noch einfacher gehen :huh:

    Liegt nicht am Streamer, da du die Pickups denke ich mal mit CreatePickup oder AddStaticPickup erstellst ^^


    Ich vermute, dein Script buggt an einer gewissen Stelle unter OnGameModeInit, nutze doch mal ein Print-Debug: [ SCRIPTING ] Debugnachrichten


    mfg. :thumbup:

    Entweder du versuchst mein System zu nutzen (was ich dir empfehlen würde) oder du zeigst mal mehr Code...z.B. dein Enum und wie die Variablen bei dir Werte bekommen ;)


    mfg. :thumbup:

    //Edit:
    Achso...sehe es gerade du nutzt einen Streamer, benutze es mal so:


    new Infoschild1 = CreateObject(5811, 1219.27, -938.49, 45.77, 0.00, 0.00, 0.00);
    SetObjectMaterialText(Infoschild1,"Das ist ein\nbeschriftetes Objekt",0,OBJECT_MATERIAL_SIZE_256x128,"Arial",28,0,0xFFFF8200,0xFF000000,1);


    mfg. :thumbup:

    Schreibe es mal so:


    new Infoschild1 = CreateDynamicObject(5811, 1219.27, -938.49, 45.77, 0.00, 0.00, 0.00);
    SetObjectMaterialText(Infoschild1,"Das ist ein\nbeschriftetes Objekt",0,OBJECT_MATERIAL_SIZE_256x128,"Arial",28,0,0xFFFF8200,0xFF000000,1);


    mfg. :thumbup:

    Mhm...komisch, probier es mal so:


    native _SendClientMessage(playerid, color, const string[]) = SendClientMessage;
    #define SendClientMessage __SendClientMessage
    stock __SendClientMessage(playerid, color, const string[]) // by Deadmau5 | edited und hooked by BlackAce | edited by Kaliber
    {
    new strings[4][128];
    split(string,strings,'\n');
    for(new y; y<4; y++) if(strings[y][0]) _SendClientMessage(playerid,color,strings[y]);
    return true;
    }


    mfg.^^

    :o funktioniert auch nicht


    Schreib das mal so:


    native _SendClientMessage(playerid, color, const string[]) = SendClientMessage;
    #define SendClientMessage __SendClientMessage
    stock __SendClientMessage(playerid, color, const string[]) // by Deadmau5 | edited und hooked by BlackAce | edited by Kaliber
    {
    new strings[4][128];
    split(string,strings,'\n');
    for(new y,l=strlen(string);y!=l;y++) if(strings[y][0]) _SendClientMessage(playerid,color,strings[y]);
    return true;
    }


    mfg. :thumbup:


    Ja, das könnte ich tun, macht das aber jetzt so den Unterschied :huh:


    mfg. ^^

    Danke für eure Feedbacks, freut mich, dass es euch gefällt :)


    annst Du mir mal erklären was das machen soll, ich begreifs echt nicht. Warum ein retvalue, wenn er nicht benutzt werden kann - Unabhängig davon, ob das Item erfolgreich oder nicht erfolgreich erstellt worden ist returnst Du denselben Wert?


    Der Wert, der returnt wird ist in diesem Fall irrelevant, es muss nur etwas returnt werden !
    Denn wenn slot == -1 ist, muss der Code beendet werden und da ich an dieser Stelle returne muss ich auch am Ende returnen, ich könnte auch mit if und else arbeiten, aber ich fand mit return gehts auch :D


    Ich würde eigentlich gerne wissen, wie GivePlayerItem abgelaufen ist, ohne gleich GetItem benutzen zu müssen.


    ? Schau mal in den Beispiel Tab ^^


    mfg. :thumbup:

    Schreib das mal so:


    dcmd_perso(playerid,params[])
    {
    #pragma unused params
    if(!GetPVarInt(playerid,"Perso")) return SendClientMessage(playerid, COLOR_WHITE,"Du hast keinen Personalausweiß, gehe zur Stadthalle und kaufe einen.");
    new Land[30],string[128],name[MAX_PLAYER_NAME];
    switch(GetPVarInt(playerid,"Land")) {
    case 1: format(Land,30,"Deutschland");
    case 2: format(Land,30,"Schweiz");
    case 3: format(Land,30,"Österreich");
    }
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    SendClientMessage(playerid,Blau,"_____________Personal Ausweis_____________");
    if(GetPVarInt(playerid,"AdminLevel")) format(string,128,"Name: %s\nAdminlevel: %d\nAlter: %d\nLand: %s",name,GetPVarInt(playerid,"AdminLevel"),GetPVarInt(playerid,"Alter"),Land);
    else format(string,128,"Name: %s\nAlter: %d\nLand: %s",name,GetPVarInt(playerid,"Alter"),Land);
    SendClientMessage(playerid,COLOR_WHITE,string);
    SendClientMessage(playerid,Blau,"__________________________________________");
    return 1;
    }


    mfg. :thumbup:

    Guten Morgen liebe Community,


    ja ich bin es mal wieder mit einem System welches aus Langeweile entstanden ist.
    Einige haben sich gefragt...wie macht man sowas...das geht doch gar nicht...
    Hier mal ein ganz simples Inventar System:


    [tabmenu]


    [tab='Allgemeine Informationen','http://forum.sa-mp.de/wcf/icon/infoM.png']
    [subtab='Funktionen','http://forum.gamerzhost.de/wcf/icon/codeS.png']
    (Im Sub-Tab Beispiele, ist zu allen Funktionen ein Beispiel gemacht !)
    Es gibt folgende Funktionen:


    GivePlayerItem(playerid, item[]); //Gibt dem Spieler in Item
    ResetPlayerItems(playerid); //Resettet alle Items von einem Spieler
    DeletePlayerItem(playerid, item[]); //Löscht ein bestimmtes Item aus dem Inventar
    GetItem(playerid,slot,name[],len); //Hier wird das Item in diesem Slot wiedergegeben
    [subtab='Beispiele','http://www.damen-eishockey.de/images/lampe.gif']
    //Hier nun einige Beispiele
    GivePlayerItem(playerid, "Butter"); //Der Spieler trägt nun Butter mit sich (wird in den Slot 0 getan)


    DeletePlayerItem(playerid, "Butter"); //Hier hätte man jetzt die Butter entfernt


    //Angenommen wir hätten Butter nicht entfernt, sähe das so aus mit dem ausgeben:
    new items[1];
    GetItem(playerid,0,items[0],6); // Die 6 = Länge von dem Wort "Butter" = 6 Buchstaben
    printf("Dieses Item trägt der Spieler mit sich: %s",items[0]);
    [subtab='Zusätzliche Sachen','http://www.rezepte-guru.de/template/images/icon_stern.gif']
    Es gibt insgesamt vordefiniert 10 Slots, dies kann man verändern und zwar so:


    #define MAX_SLOTS 15 //Jetzt hätte man 15 Slots frei
    #include <Inventar>
    [subtab='Download','http://www.projekt-deutsch.de/templates/cback/images/download.gif']
    Source-Code: Pastebin
    Direkter Download: Mediafire
    [/tabmenu]


    PS: Wenn der Slot MAX_SLOTS erreicht wird, werden einfach keine Items mehr hinzugefügt !


    Wünsche euch viel Spaß beim testen :)


    mfg. :thumbup: