Beiträge von Jeffry

    ocmd:usecode(playerid, params[])
    {
    if(!params[0]) return SendClientMessage(playerid, 0xFF0000FF, "/usecode [Code]");
    new code[40];
    format(code, sizeof(code), "/codes/%s.txt", params);
    if(!fexist(code)) return SendClientMessage(playerid, 0xFF0000FF, "Code existiert nicht.");
    new money = dini_Int(code, "Geld");
    GivePlayerMoney(playerid, money);
    fremove(code);
    return 1;
    }

    Ich bin davon ausgegangen, dass du das noch änderst, ich kenn ja deine Deklarationen nicht.
    Hier ein Beispiel:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_ITEMS)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: ShowPlayerDialog(playerid, DIALOG_ITEMS_MED, DIALOG_STYLE_LIST, "Medicin", "Medkit\nBandage", "Ok", "Ende");
    case 1: ShowPlayerDialog(playerid, DIALOG_ITEMS_FOOD, DIALOG_STYLE_LIST, "Food & Drink", "Tomate\nGurke", "Ok", "Ende");
    case 2: ShowPlayerDialog(playerid, DIALOG_ITEMS_TOOL, DIALOG_STYLE_LIST, "Tools", "Map\nToolbox", "Ok", "Ende");
    }
    }
    return 1;
    }


    if(dialogid == DIALOG_ITEMS_MED)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist die Beschreibung", "Ok", "");
    case 1: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
    case 2: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
    }
    }
    return 1;
    }
    if(dialogid = DIALOG_ITEMS_FOOD)
    {
    //...
    }
    return 0;
    }

    ocmd:createcode(playerid, params[])
    {
    if(!params[0]) return SendClientMessage(playerid, 0xFF0000FF, "/createcode [Geld]");
    new code[40], str[145];
    format(code, sizeof(code), "%04d-%04d-%04d-%04d", random(10000), random(10000), random(10000), random(10000));
    format(str, sizeof(str), "Gutscheincode : %s",code);
    SendClientMessage(playerid,ROT,str);
    format(code, sizeof(code), "/codes/%s.txt", code);
    dini_Create(code);
    dini_IntSet(code, "Geld", strval(params));
    return 1;
    }

    Sehr gut! :)


    Never Change a running System. Wenn es geht, lass es so.



    Das mit den 1000 Objekten ist so, dass nur 1000 Objekte angezeigt werden können, also die die in der Nähe aller Spieler sind.
    Du kannst auch 100000 CreateDynamicObjects haben, solange sie nur weit genug voneinander weg sind. An sich gibt es kein Limit von CreateDynamicObjects, außer vielleicht der RAM des Servers. :D

    Da fehlen zwei Klammern:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == DIALOG_ITEMS)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: ShowPlayerDialog(playerid, DIALOG_ITEMS, DIALOG_STYLE_LIST, "Obst", "Apfel\nBirne", "Ok", "Ende");
    case 1: ShowPlayerDialog(playerid, DIALOG_ITEMS, DIALOG_STYLE_LIST, "Gemüse", "Tomate\nGurke", "Ok", "Ende");
    case 2: ShowPlayerDialog(playerid, DIALOG_ITEMS, DIALOG_STYLE_LIST, "Baum", "Fichte\nBuche", "Ok", "Ende");
    }
    }
    return 1;
    }


    if(dialogid == DIALOG_ITEMS)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: ShowPlayerDialog(playerid, DIALOG_ITEMS, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
    case 1: ShowPlayerDialog(playerid, DIALOG_ITEMS, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
    case 2: ShowPlayerDialog(playerid, DIALOG_ITEMS, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
    }
    }
    return 1;
    }
    return 0;
    }

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){
    if(dialogid == DIALOG_TID){
    if(response){
    if(strlen(inputtext) == 28){
    format(SpielerInfo[playerid][pTID], 128, inputtext);
    new string[145];
    format(string, 145, "[Info] Deine Teamspeak-ID wurde erfolgreich in '%s' geändert.", SpielerInfo[playerid][pTID]);
    SendClientMessage(playerid, COLOR_GREY, string);
    }else{
    SendClientMessage(playerid, COLOR_GREY, "[Info] Die Teamspeak-ID ist ungültig. Bitte versuche es erneut oder wende dich an den Support.");
    }
    }
    }
    }


    format ist das Zauberwort. ;)

    ocmd:createcode(playerid, params[])
    {
    new code[40], str[145];
    format(code, sizeof(code), "%04d-%04d-%04d-%04d", random(10000), random(10000), random(10000), random(10000));
    format(str, sizeof(str), "Gutscheincode : %s",code);
    SendClientMessage(playerid,ROT,str);
    format(code, sizeof(code), "/codes/%s.txt", code);
    dini_Create(code);
    dini_IntSet(code, "Geld", 1000);
    return 1;
    }


    Hatte es im anderen Thread bereits geändert.

    Nach gleichem Prinzip:
    if(dialogid == DIALOG_ITEMS)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: ShowPlayerDialog(playerid, DIALOG_ITEMS_UNTER1, DIALOG_STYLE_LIST, "Obst", "Apfel\nBirne", "Ok", "Ende");
    case 1: ShowPlayerDialog(playerid, DIALOG_ITEMS_UNTER2, DIALOG_STYLE_LIST, "Gemüse", "Tomate\nGurke", "Ok", "Ende");
    case 2: ShowPlayerDialog(playerid, DIALOG_ITEMS_UNTER3, DIALOG_STYLE_LIST, "Baum", "Fichte\nBuche", "Ok", "Ende");
    }
    }
    return 1;
    }


    if(dialogid == DIALOG_ITEMS_UNTER1)
    {
    if(response)
    {
    switch(listitem)
    {
    case 0: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
    case 1: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
    case 2: ShowPlayerDialog(playerid, DIALOG_EXPLANATION, DIALOG_STYLE_MSGBOX, "Explanation", "Das ist ein ...", "Ok", "");
    }
    }
    return 1;
    }


    if(dialogid === DIALOG_ITEMS_UNTER2)
    {
    //...
    }

    Schreibe es mal so:
    forward Blitzer_Timer();
    public Blitzer_Timer()
    {
    new save, strafe, speed;
    //for (new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    save = GetPVarInt(i, "BlitzPause");
    if(save > 0)
    {
    save--;
    SetPVarInt(i, "BlitzPause", save);
    continue;
    }
    if(!IsPlayerInAnyVehicle(i) || IsPlayerNPC(i)) continue;
    for(new b = 0; b < sizeof(Blitzer); b++)
    {
    if(Blitzer[b][Erstellt] == 1)
    {
    if(IsPlayerInRangeOfPoint(i, Blitzer[b][eRadius], Blitzer[b][BlitzerX], Blitzer[b][BlitzerY], Blitzer[b][BlitzerZ]))
    {
    new playerState = GetPlayerState(i);
    if(playerState == PLAYER_STATE_PASSENGER)return 0;
    speed = ErmittleGeschwindigkeit(i,true);
    if(speed > Blitzer[b][Geschwindigkeit])
    {
    new string[128];
    // Einstellen des Momentes, in dem der Spieler kein weiteres mal geblitzt werden kann
    SetPVarInt(i, "BlitzPause", (BLITZER_TIMER_INTERVALL * BLITZER_PAUSE * 60) / 1000);
    // Strafe für Spieler
    strafe = (speed*2) - Blitzer[b][Geschwindigkeit];
    PlayerPlaySound(i, 1132, 0.0, 0.0, 0.0);
    GivePlayerMoney(i, -strafe);
    // Text für Spieler
    SendClientMessage(i, 0xFF6347AA,"Du wurdest wegen zu hoher Geschwindigkeit geblitzt!");
    format(string,sizeof(string), "Du bist %d km/h gefahren und musst %d€ Bußgeld bezahlen.", speed, strafe);
    SendClientMessage(i, 0xFF6347AA, string);
    TextDrawShowForPlayer(i,BlitzerDraw[i]);
    SetTimer("BlitzDelete",1000,false);
    }
    }
    }
    }
    }
    return 1;
    }


    Außerdem musst du das Textdraw nicht für jeden Spieler erstellen, da du dessen String ja nicht änderst. Es reicht wenn du es einmal (ohne Array) bei OnGameModeInit erstellst.

    Das hast du nicht gemacht:
    format(fstring,100,"%i %i %i %i %i %i",FrakInfo[i][ffrak],FrakInfo[i][modelidd],FrakInfo[i][fx],FrakInfo[i][fy],FrakInfo[i][fz],FrakInfo[i][fr]);
    zu:
    format(fstring,100,"%i %i %0.2f %0.2f %0.2f %0.2f",FrakInfo[i][ffrak],FrakInfo[i][modelidd],FrakInfo[i][fx],FrakInfo[i][fy],FrakInfo[i][fz],FrakInfo[i][fr]);


    Wenn es dann auch nicht tut, füge gleich mal vor der sscanf Zeile das ein und poste was im Log steht wenn du die Fahrzeuge lädst:
    printf("i:%d -> %s", i, fstring);

    Du musst die a_samp.inc (mindestens die!) in den /pawno/includes/ Ordner tun (alte ersetzen oder löschen).
    Dann musst du /pawno/pawno.exe starten und deinen Code über das Öffnen-Symbol öffnen. Dann kompilieren.


    Nur dann ist die Funktion auch deklariert. Du verwendest noch alte Includes.

    ocmd:createcode(playerid, params[])
    {
    new code[40], str[145];
    format(code, sizeof(code), "%04d-%04d-%04d-%04d", random(10000), random(10000), random(10000), random(10000));
    format(str, sizeof(str), "Gutscheincode : %s",code);
    SendClientMessage(playerid,ROT,str);
    format(code, sizeof(code), "/codes/%s.txt", code);
    dini_Create(code);
    dini_IntSet(code, "Geld", 1000);
    return 1;
    }


    Nicht vergessen den Ordner "codes" in den scriptfiles zu erstellen.