[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey Leute, ich versuche auf unserem Server die Wanteds per Menü vergeben zu können. Wanted Beschreibung und Anzahl sind in einem 2D Array definiert aber Ingame werden die komplett durcheinander und mehrfach angezeigt. Nicht in der Reihenfolge wie ich das möchte, woran kann das liegen?

    Code
    new mainstring[1000];
    			        	for(new i;i<sizeof(Wantedkatalog); i++)
    						{
                            	strcat(mainstring,string);
    							format(string,sizeof(string),"%s\n%s | %i",string,Wantedkatalog[i][wantedreason],Wantedkatalog[i][wantedzahl]);
    						}
    						ShowPlayerDialog(playerid,DIALOG_WP_VERGABEW,DIALOG_STYLE_LIST,""#SERVERFARBE"Wähle aus:",mainstring,"Auswählen","Abbrechen");
    						return 1;
  • woran kann das liegen?


    Du machst das ja auch alles Doppelt, schau mach es so:


    new mainstring[1000];
    for(new i;i<sizeof(Wantedkatalog); i++) {
    format(mainstring,sizeof(mainstring),"%s\n%s | %i",mainstring,Wantedkatalog[i][wantedreason],Wantedkatalog[i][wantedzahl]);
    }
    ShowPlayerDialog(playerid,DIALOG_WP_VERGABEW,DIALOG_STYLE_LIST,""#SERVERFARBE"Wähle aus:",mainstring,"Auswählen","Abbrechen");
    return 1;


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hey jetzt bekomme ich nur noch ein Element angezeigt... ?(

  • Brauche mal Hilfe


    Ich bekomme immer folgenden Error
    error 030: compound statement not closed at the end of file (started at line 3238)


    Mein Code:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/tor1", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Das Tor hat sich geöffnet es schließt sich in 10 sekunden wieder!");
    //MoveObject(tor1,968,1139.9000244,-1674.3000488,13.6999998,00.0000000,00.0000000,90.0000000,2.0);
    SetObjectRot( tor1, 0.0000000,00.0000000,90.0000000);
    SetTimer ("tor1a",10000,false);
    return 1;
    }
    if (strcmp("/tor2", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Das Tor hat sich geöffnet es schließt sich in 10 sekunden wieder!");
    //MoveObject(tor2,1763.3000488,-1912.40002,5.2999985,2.0);
    SetObjectRot( tor2, 0.0000000,00.0000000,90.0000000);
    SetTimer ("tor2a",10000,false);
    return 1;
    }


    {
    if (strcmp("/waffen", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Du hast die Waffen bekommen!");
    GivePlayerWeapon(playerid,22,400);
    GivePlayerWeapon(playerid,25,400);
    GivePlayerWeapon(playerid,26,400);
    GivePlayerWeapon(playerid,27,400);
    GivePlayerWeapon(playerid,28,400);
    GivePlayerWeapon(playerid,29,400);
    GivePlayerWeapon(playerid,30,400);
    GivePlayerWeapon(playerid,31,400);
    GivePlayerWeapon(playerid,32,400);
    GivePlayerWeapon(playerid,34,400);
    GivePlayerWeapon(playerid,35,400);
    GivePlayerWeapon(playerid,36,400);
    GivePlayerWeapon(playerid,37,400);
    GivePlayerWeapon(playerid,16,400);
    GivePlayerWeapon(playerid,17,400);
    GivePlayerWeapon(playerid,18,400);
    GivePlayerWeapon(playerid,3,400);
    GivePlayerWeapon(playerid,4,400);
    GivePlayerWeapon(playerid,5,400);
    GivePlayerWeapon(playerid,7,400);
    GivePlayerWeapon(playerid,8,400);
    {
    return 1;
    }


    Der Fehlerzeile ist die mit dem return1 am ende des Codes. Kenne mich nicht alt zu gut mit Scripten aus brauche nur den Befehl mit den Waffen geben fürs Testen^^ ( Habe den eben mit hilfe des Wikis gemacht )


    //Edit: Mit den Toren kann ignoriert werden. Der Fehler ist am Ende bei den Waffen Befehl. Man muss dazu sagen das nach dem Befehl das Script aufhört

    MfG kleinkiko

    Lust auf ein Rust Server? Dann schau doch mal HIER vorbei :)

  • Mach die Klammer vor dieser Zeile weg:
    if (strcmp("/waffen", cmdtext, true, 10) == 0)


    (Die Klammer in Zeile 20)


    Bekomme immer noch den Fehler
    error 030: compound statement not closed at the end of file (started at line 3240)


    Ab hier kommt der Fehler: ( Hier fängt die Zeile 3240 an )
    SendClientMessage(playerid,0x002FFF,"Du hast die Waffen bekommen!");
    GivePlayerWeapon(playerid,22,400);
    GivePlayerWeapon(playerid,25,400);
    GivePlayerWeapon(playerid,26,400);
    GivePlayerWeapon(playerid,27,400);
    GivePlayerWeapon(playerid,28,400);
    GivePlayerWeapon(playerid,29,400);
    GivePlayerWeapon(playerid,30,400);
    GivePlayerWeapon(playerid,31,400);
    GivePlayerWeapon(playerid,32,400);
    GivePlayerWeapon(playerid,34,400);
    GivePlayerWeapon(playerid,35,400);
    GivePlayerWeapon(playerid,36,400);
    GivePlayerWeapon(playerid,37,400);
    GivePlayerWeapon(playerid,16,400);
    GivePlayerWeapon(playerid,17,400);
    GivePlayerWeapon(playerid,18,400);
    GivePlayerWeapon(playerid,3,400);
    GivePlayerWeapon(playerid,4,400);
    GivePlayerWeapon(playerid,5,400);
    GivePlayerWeapon(playerid,7,400);
    GivePlayerWeapon(playerid,8,400);
    {
    return 1;
    }

    MfG kleinkiko

    Lust auf ein Rust Server? Dann schau doch mal HIER vorbei :)

  • Poste bitte mal dein ganzes OnPlayerCommandText. Die paar Zeilen zeigen nur, dass du die Klammern anscheinend wahllos verteilst, aber nicht den direkten Fehler.


    Als Beispiel:
    {
    return 1;
    }
    sowas macht keinen Sinn.
    Das kannst du einfach als
    return 1;
    schreiben.

  • Der komplette OnPlayerCommandText steht oben in meinem erstem Post. Aber hier nochmal:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/tor1", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Das Tor hat sich geöffnet es schließt sich in 10 sekunden wieder!");
    //MoveObject(tor1,968,1139.9000244,-1674.3000488,13.6999998,00.0000000,00.0000000,90.0000000,2.0);
    SetObjectRot( tor1, 0.0000000,00.0000000,90.0000000);
    SetTimer ("tor1a",10000,false);
    return 1;
    }
    if (strcmp("/tor2", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Das Tor hat sich geöffnet es schließt sich in 10 sekunden wieder!");
    //MoveObject(tor2,1763.3000488,-1912.40002,5.2999985,2.0);
    SetObjectRot( tor2, 0.0000000,00.0000000,90.0000000);
    SetTimer ("tor2a",10000,false);
    return 1;
    }



    if (strcmp("/waffen", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Du hast die Waffen bekommen!");
    GivePlayerWeapon(playerid,22,400);
    GivePlayerWeapon(playerid,25,400);
    GivePlayerWeapon(playerid,26,400);
    GivePlayerWeapon(playerid,27,400);
    GivePlayerWeapon(playerid,28,400);
    GivePlayerWeapon(playerid,29,400);
    GivePlayerWeapon(playerid,30,400);
    GivePlayerWeapon(playerid,31,400);
    GivePlayerWeapon(playerid,32,400);
    GivePlayerWeapon(playerid,34,400);
    GivePlayerWeapon(playerid,35,400);
    GivePlayerWeapon(playerid,36,400);
    GivePlayerWeapon(playerid,37,400);
    GivePlayerWeapon(playerid,16,400);
    GivePlayerWeapon(playerid,17,400);
    GivePlayerWeapon(playerid,18,400);
    GivePlayerWeapon(playerid,3,400);
    GivePlayerWeapon(playerid,4,400);
    GivePlayerWeapon(playerid,5,400);
    GivePlayerWeapon(playerid,7,400);
    GivePlayerWeapon(playerid,8,400);
    {
    return 1;
    }


    Die Zeile 3240 ist die wo steht: Du hast die Waffen bekommen. Hier nochmal der Fehlercode
    C:\Users\kleinkiko\Desktop\Map Server\gamemodes\Map.pwn(3265) : error 030: compound statement not closed at the end of file (started at line 3240)

    MfG kleinkiko

    Lust auf ein Rust Server? Dann schau doch mal HIER vorbei :)

  • Oh, sah so aus als wäre es nur der Anfang. :guckb:


    Schreibe es so:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/tor1", cmdtext, true) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Das Tor hat sich geöffnet es schließt sich in 10 sekunden wieder!");
    //MoveObject(tor1,968,1139.9000244,-1674.3000488,13.6999998,00.0000000,00.0000000,90.0000000,2.0);
    SetObjectRot( tor1, 0.0000000,00.0000000,90.0000000);
    SetTimer ("tor1a",10000,false);
    return 1;
    }

    if (strcmp("/tor2", cmdtext, true) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Das Tor hat sich geöffnet es schließt sich in 10 sekunden wieder!");
    //MoveObject(tor2,1763.3000488,-1912.40002,5.2999985,2.0);
    SetObjectRot( tor2, 0.0000000,00.0000000,90.0000000);
    SetTimer ("tor2a",10000,false);
    return 1;
    }

    if (strcmp("/waffen", cmdtext, true) == 0)
    {
    SendClientMessage(playerid,0x002FFF,"Du hast die Waffen bekommen!");
    GivePlayerWeapon(playerid,22,400);
    GivePlayerWeapon(playerid,25,400);
    GivePlayerWeapon(playerid,26,400);
    GivePlayerWeapon(playerid,27,400);
    GivePlayerWeapon(playerid,28,400);
    GivePlayerWeapon(playerid,29,400);
    GivePlayerWeapon(playerid,30,400);
    GivePlayerWeapon(playerid,31,400);
    GivePlayerWeapon(playerid,32,400);
    GivePlayerWeapon(playerid,34,400);
    GivePlayerWeapon(playerid,35,400);
    GivePlayerWeapon(playerid,36,400);
    GivePlayerWeapon(playerid,37,400);
    GivePlayerWeapon(playerid,16,400);
    GivePlayerWeapon(playerid,17,400);
    GivePlayerWeapon(playerid,18,400);
    GivePlayerWeapon(playerid,3,400);
    GivePlayerWeapon(playerid,4,400);
    GivePlayerWeapon(playerid,5,400);
    GivePlayerWeapon(playerid,7,400);
    GivePlayerWeapon(playerid,8,400);
    return 1;
    }
    return 0;
    }


    Immer schön auf die Einrückung achten, und die Klammern schön untereinander schreiben, dann vergisst du keine.


  • Ok danke klappt :) Aber wo war nun der Fehler? ?(

    MfG kleinkiko

    Lust auf ein Rust Server? Dann schau doch mal HIER vorbei :)

  • Ok danke klappt :) Aber wo war nun der Fehler? ?(


    Du hast unten eine Klammer vergessen zu schließen, dadurch wurde das Callback nicht abgeschlossen.
    Dieser Fehler passiert dir nicht, wenn du pro Klammer einen Tab-Sprung als Einrückung machst, dann weißt du genau, wie viele Klammern du hast und wie viele wieder geschlossen werden müssen.

  • Hay,


    ich habe ein Problem mit meinen Kick Befehl.. und zwar ich werde immer selber gekickt... obwohl ich eine andere ID eingebe:



    ocmd:kick(playerid,params[])
    {
    if(SpielerInfo[playerid][Alevel] >= 1)
    {
    new pID,string[256],aname[MAX_PLAYER_NAME],SpielerName[MAX_PLAYER_NAME],grund[256];
    GetPlayerName(pID,SpielerName,sizeof(SpielerName));
    GetPlayerName(playerid,aname,sizeof(aname));
    if(sscanf(params,"us",playerid,grund))return SendClientMessage(playerid, Rot,"[FEHLER]{FFFFFF} Benutze: /Kick [ID/Name] [Grund]");
    format(string,sizeof(string),"[INFO]{FFFFFF} %s %s hat %s gekickt. Grund: %s",GetPlayerAdminRankName(playerid),aname,SpielerName,grund);
    SendClientMessageToAll(Rot,string);
    Kick(pID);
    }
    return 1;
    }


    BITTE KEINE DIREKTE LÖSUNG GEBEN , bitte nur sagen wo ich evlt. was machen könnte... oder sowas

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen