[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 gerne einen Bombenticker in Minuten und Sekunden anzeigen (Beispiel: 05:47) der die verbleibende Timerzeit jede Sekunde ausliest.
    Wie mache ich das am besten?


    Hat wirklich keiner einen Lösungsvorschlag? Ich scheitere bei der Ausgabe von Minuten und Sekunden. Wenn's nur Sekunden sind, kann ich's auch. ?(


  • Hat wirklich keiner einen Lösungsvorschlag? Ich scheitere bei der Ausgabe von Minuten und Sekunden. Wenn's nur Sekunden sind, kann ich's auch. ?(


    Doch, das macht man z.B. so:


    @timer(min,sek);


    @timer(min,sek) {
    new string[16];
    if(!min && !sek) return 0;
    if(sek == 0) min--,sek=60;
    sek--;
    format(string,16,"%02d:%02d",min,sek);
    print(string); //printet halt nur...ändern halt...
    return SetTimerEx("@timer",1000,0,"ii",min,sek);
    }


    //Und Nutzen tut man es so:
    SetTimerEx("@timer",1000,0,"ii",30,0); //Würde jetzt von 30min runter zählen


    Printet halt momentan musst du halt ändern ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Wo hab ich da den wurm sitzen?[/pwn]


    Ja, sscanf mit dem cmdtext zu nutzen, funktioniert etwas anders :D


    Du musst es so machen:


    public OnPlayerCommandText(playerid,cmdtext[]) {
    if(!strcmp(cmdtext,"/unban",true)) {
    new pos=strfind(cmdtext," ");
    strdel(cmdtext,0,pos);
    //Jetzt kannst du sscanf nutzen mit cmdtext, sollte gehen ;)
    }
    }


    Ist ungetestet, sollte aber gehen ;)


    danke Kaliber.


    Kein Ding ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Wie kann man den höchsten Wert herausfinden von allen Spielern also zum Beispiel: SpielerInfo[playerid][pGeld] ?

    Eigentlich ziemlich einfach.
    new highest = 0;
    for(new i=0;i!=MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(SpielerInfo[i][pLevel] > highest) {
    highest = SpielerInfo[i][pLevel];
    }
    }


    Highest enthält dann das größte Level, aller Spieler die gerade auf dem Server sind.



    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Danke, war gestern irgendwie bisschen verplant :S



  • habe immer im Hinterkopf: Was ist der Inhalt von cmdtext[] eigentlich !!! ???


    Fehler 1

    Zitat

    Ich habe ein Command gebe ich da /unban ein, sagt er mir das es den Namen nicht gibt


    if(sscanf(cmdtext,"s",UserName))
    cmdtext[] = "/unban" in diesem fall, weil das hast du eingegeben
    -> if(sscanf("/unban","s",UserName))
    -> daraus folgt UserName[]= "/unban" = Nicht vorhanden!!!


    Fehler 2

    Zitat

    schreibe ich /unban werner, dann gibts nen Unkwon command ...


    in diesem fall ist cmdtext[] = "/unban werner"
    if(!strcmp("/unban", cmdtext, true))
    heißt soviel wie:
    if(!strcmp("/unban", "/unban werner", true))
    = falsch da "/unban" nicht das gleiche wie "/unban werner" ist = Unknown command



    Fazit: In den ganzen Command-Verwaltungssystemen wird der hintere Teil automatisch von dem eigentlichen command-namen getrennt und meist wird der Rest mit einer Variable params[] zum cmd übergeben
    Genau das musst du hier auch noch machen! (Oben stehen ja die beiden Fehler beschrieben)

  • stock LoadZelte()
    {
    new Query[500], str[512], i;
    for(i=0;i<MAX_ZELTE; i++)
    {
    format(Query,sizeof(Query),"SELECT * FROM Wasteland_Zelte WHERE ='%i'",i);
    mysql_query(Query);
    mysql_store_result();
    if(mysql_num_rows()>0)
    {
    while(mysql_fetch_row(str))
    {
    sscanf(str, "e<p<|>ifff>",ZeltInfo[i]);
    }
    mysql_free_result();
    }
    }
    printf("LOAD: Es wurden %i Zelte geladen!",i);
    return 1;
    }



    enum ZeltDaten
    {
    zID,
    Float:zPos[3]
    //zItems[20],
    //zAnzahl[20],
    }
    new ZeltInfo[MAX_ZELTE][ZeltDaten];


    Was ist der Fehler? :D

  • format(Query,sizeof(Query),"SELECT * FROM Wasteland_Zelte WHERE ='%i'",i);


    Du musst hier schon was angeben bei WHERE = '%i'


    das musst du z.B. so machen:


    SQL
    WHERE Level = '%i'


    oder so ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

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

  • Dir ist bewusst, dass du da einfach *300 rechnest und das irgendwie keinen Sinn macht ?(

    ast2ufdyxkb1.png


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

  • Er sollte sich auch vielleicht noch das anschauen:
    [ SCRIPTING ] MySQL R7+ - Cachefunktionen + Threaded Querys [UPDATED]


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Ich bekomme nach dem ich versucht habe eine Automatische Fahrschule einzubaun den hier:
    (Habe sie auch wieder rausgenommen)


    (196) : warning 225: unreachable code
    (196) : warning 217: loose indentation
    (196) : error 029: invalid expression, assumed zero
    (196) : error 004: function "OnPlayerEnterVehicle" is not implemented
    (201) : warning 225: unreachable code
    (201) : error 029: invalid expression, assumed zero
    (201) : error 004: function "OnPlayerExitVehicle" is not implemented
    (206) : warning 225: unreachable code
    (206) : error 029: invalid expression, assumed zero
    (206) : error 004: function "OnPlayerStateChange" is not implemented
    (211) : warning 225: unreachable code
    (211) : error 029: invalid expression, assumed zero
    (211) : error 004: function "OnPlayerEnterCheckpoint" is not implemented
    (216) : warning 225: unreachable code
    (216) : error 029: invalid expression, assumed zero
    (216) : error 004: function "OnPlayerLeaveCheckpoint" is not implemented
    (221) : warning 225: unreachable code
    (221) : error 029: invalid expression, assumed zero
    (221) : error 004: function "OnPlayerEnterRaceCheckpoint" is not implemented
    (226) : warning 225: unreachable code
    (226) : error 029: invalid expression, assumed zero
    (226) : error 004: function "OnPlayerLeaveRaceCheckpoint" is not implemented
    (231) : warning 225: unreachable code
    (231) : error 029: invalid expression, assumed zero
    (231) : error 004: function "OnRconCommand" is not implemented
    (236) : warning 225: unreachable code
    (236) : error 029: invalid expression, assumed zero
    (236) : error 004: function "OnPlayerRequestSpawn" is not implemented
    (241) : warning 225: unreachable code
    (241) : error 029: invalid expression, assumed zero
    (241) : error 004: function "OnObjectMoved" is not implemented
    (246) : warning 225: unreachable code
    (246) : error 029: invalid expression, assumed zero
    (246) : error 004: function "OnPlayerObjectMoved" is not implemented
    (251) : warning 225: unreachable code
    (251) : error 029: invalid expression, assumed zero
    (251) : error 004: function "OnPlayerPickUpPickup" is not implemented
    (256) : warning 225: unreachable code
    (256) : error 029: invalid expression, assumed zero
    (256) error 004: function "OnVehicleMod" is not implemented


    Ist ja immer der Selbe Fehler.
    Wisst ihr woran des liegt ? Klammerfehler vielleicht ?
    Grüsse

  • mit maddins tutorial kann man ganz einfach mit sql arbeiten, jedoch ist das total umständlich und geht viel besser.


    Ein großer Vorteil ist es, wenn man sich bisschen mit SQL auskennt, dann erklärt sich vieles von alleine.
    Der Rest kommt mit Übung.


  • Dir ist bewusst, dass du da einfach *300 rechnest und das irgendwie keinen Sinn macht ?(


    Öhm.. ich habe Variablenname nur geändert.. für mich macht es Sinn (und es funktioniert) und er rechnet *30 ;)
    Ich denke, dass, im nachhinein das floatmul etc. sinnvoll sind, aber ich kannte es nicht. (Zu den Zeitpunkt, als ich es so geschrieben habe, wie es oben steht)

    • Offizieller Beitrag

    Ich bin's nochmal :whistling:
    Ich möchte meine Datenbank per Script erstellen lassen, der Einfachheit halber.
    So sieht der stock aus, unter OnGameModeInit() wird er angewendet:
    stock aRP_Datenbank_Erstellen()
    {
    new AddDatabase[576];
    strcat(AddDatabase,"CREATE TABLE IF NOT EXISTS `Accounts` (`Name` varchar(24) NOT NULL,`Passwort` varchar(34) NOT NULL,`Admin` int(2) NOT NULL DEFAULT '0',`Warns` int(2) NOT NULL DEFAULT '0',`Leader` int(2) NOT NULL,`Fraktion` int(2) NOT NULL,`Rang` int(2) NOT NULL");
    strcat(AddDatabase,"`Job` int(3) NOT NULL,");
    strcat(AddDatabase,"`Geschlecht` int(4) NOT NULL,`Geschlecht` int(1) NOT NULL,`Level` int(4) NOT NULL,`Geld` int(10) NOT NULL,");
    strcat(AddDatabase,"`Wantedlevel` int(3) NOT NULL,");
    strcat(AddDatabase,"`Fightstyle` int(2) NOT NULL,`Handy` int(2) NOT NULL, `Nummer` int(8) NOT NULL,");
    strcat(AddDatabase,"`Biz` int(3) NOT NULL,`Haus` int(3) NOT NULL,");
    strcat(AddDatabase,"`Living` int(1) NOT NULL,`Kills` int(5) NOT NULL,`Deaths` int(5) NOT NULL, `Partner` varchar(24) NOT NULL)");
    mysql_query(AddDatabase);
    return 1;
    }

    Leider passiert nichts... wo habe ich den Fehler?
    P.S. Eine Verbindung zur Datenbank steht!