[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
  • Ich würde sscanf dafür benutzen.


    if(!strcmp(sBuffer,"gamemode")) { // für die korrekte Zeile
    new
    sFake[10],
    sGamemode[32];
    if(sscanf(sBuffer,"p ss",sFake,sGamemode)) {
    // if(sscanf(sBuffer,"p< >s[10]s[32]",sFake,sGamemode)) { Falls sscanf v2
    printf("Fehler");
    }
    printf("%s %s",sFake,sGamemode);
    }

  • hmm die Idee ist nicht schlecht, aber da ich probiere ohne sscanf auszukommen, frage ich mich, ob es noch eine Möglichkeit mit Strfind gibt.
    Sprich, dass man die Länge der Zeile hat und dann das Leerzeichen und den String "gamemode" abzieht.



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Und wieso willst du ohne sscanf auskommen?
    public OnFilterScriptInit()
    {
    new sBuffer[] = "gamemode test123456";
    if(!strcmp(sBuffer,"gamemode", true,strlen("gamemode")) ) {
    new
    pos;
    pos = strfind(sBuffer," ");
    if(pos != -1) {
    printf( sBuffer[pos+1] );
    }
    }
    return 1;
    }
    oder so,
    public OnFilterScriptInit()
    {
    new sBuffer[] = "gamemode test123456";
    new len = strlen("gamemode");
    if(!strcmp(sBuffer,"gamemode", true,len) ) {
    if(sBuffer[len] == ' ') {
    printf( sBuffer[len+1] );
    }
    }
    return 1;
    }


    Müsstest es für dich jetzt nur noch allgemeiner als Code ausdrücken.

  • Weil ich sscanf wahrscheinlich nur für diese eine Sache brauchen werde und ich es sogesehen ein wenig unnütz finden würde es nur deshalb einzubauen.


    Im übrigen danke, es funktioniert ;)



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Halli Hallo Hallöle,


    Ich versuche schon die ganze Zeit jedem Spieler der auf den Server kommt eine meiner Farben zugeben. Ich habe es jetzt soweit:


    new Colors[13] =
    {
    "0x000000FF","0x003300FF","0x006600FF","0x009900FF","0x00CC00FF","0x00FF00FF","0x330000FF",
    "0x333300FF","0x336600FF","0x339900FF","0x33CC00FF","0x33FF00FF","0x660000FF"
    };


    und bei OnPlayerSpawn muss ja dann nur das hin


    SetPlayerColor(playerid, ???);


    aber was muss ich durch die Fragezeichen ersetzen?

  • SetPlayerColor(playerid, Colors);


    funktioniert nicht, hab ich schon versucht!


    SetPlayerColor(playerid, 0x006600FF);
    Das dass funktioniert ist mir klar, ich will aber das dem Spieler eine Farbe aus Colors random gegeben wird


  • new zufall = random(13);
    SetPlayerColor(playerid, Colors[zufall]);




    Und deins geht net weil new Colors[] falsch definiert ist


    Du kannst net 0x... als INT definierien




    Mach einfach



    enum Color
    {
    deine Farben in Gänsefüsschen^^ Also so "0x002312"
    }


    new Colors[Color][10];




    //Edit Shit geht auch net^^ Muss man anders machen ganz anders... Du musst sie als String definieren


    Guck oben müsste nun richtig sein

  • hallo,


    könnte mir bitte einer erklären, wie ich verschiedene maps auf meinen Server kriege?? ;(
    Also, dass nach ner runde auch dann in der neuen map gespawnt wird.
    Ihr soll mir jetzt nicht einen ganzen code scripten, sondern mir vllt. einen link oder ein minibeispiel zeigen,
    weil ich gar keine vorstellung davon hab, wie ich das anstellen soll.


    bitte, bitte :(

  • Was haste denn für eine Art von Script? Eine Möglichkeit wäre zum Beispiel, mehrere Gamemodes zu erstellen (jede Map einer) und diese nach einander durchlaufen zu lassen, oder wenn bei einer Map nur Spawnpositionen etc geändert werden wählst du halt beim GameModeInit die erste aus, setzt alles dementsprechend und wenn eine Runde vorbei ist, wird alles auf die 2. Map verändert.

  • Ich hab jetzt zwar ein server.... aber ich kenn keine admin/ normale cmds
    wie kann ich die rausfinden?

    Du musst im Script nachgucken.Wenn du noch nichts Gescriptet hast dann sind auch keine /kick Befehle...etc
    Wenn du was hast dann musst das Programm Pawno öffnen! Und und drückst STRG+F dannn kommt ein Such Fenter da gibst du zum Beispiel /kick ein oder etwas anderes(Es muss ein / Befehl sein). Wenn da dann nicht kommt dann hast du keine Befehle drinne


    Ich Hoffe ich konnte dir Helfen 8)

    Warum fällt immer die Wand um, wenn ein Mantafahrer dagegen fährt? - Der Klügere gibt nach!


  • Ich habe das mal in Stichworten gemacht!


    1. Du musst 2 Gamemods haben!
    2. Dann musst du in die server.cfg unter Zeile Gamemods, die Gamemods einfügen!
    3. Und dann siehst du eine zahl z.b. 1 oder 0.
    4. Andere diese auf 2 und dann müsste es gehen.


    Ich hoffe es geht.


    Mit freundlichen Grüßen.
    GrooveTazer

    Warum fällt immer die Wand um, wenn ein Mantafahrer dagegen fährt? - Der Klügere gibt nach!


  • LuxX,falls du das noch lesen wirst.


    static const Colors[13] =
    {
    0x000000FF,0x003300FF,0x006600FF,0x009900FF,0x00CC00FF,0x00FF00FF,0x330000FF,
    0x333300FF,0x336600FF,0x339900FF,0x33CC00FF,0x33FF00FF,0x660000FF
    };



    #1 0x heisst auch nur das ein Wert in Hexadezimal folgt.Der Compiler wird es dann in ein Integer umrechnen.
    #2 Quatsch. Strings sind Strings, Integers sind Integers und Hex-Werte sind im Endeffekt auch nichts Anderes als Integers.

  • hey,


    Ich versuche gerade die npcs in Casino (caligolas) weg zu machen. Mit DisableInteriorEnterExits(); gehen ja die npcs(von burgershot und so) und eingänge weg aber bei casinos geht das nicht.
    Hat jemand eine Idee wie man die Weg bekommt?


    mfg pato