[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
  • Weiß jemand wie man aus Zamaroths Textdraweditor den erstellten Textdraw rausfiltert ?
    Habe schon im Filterscript Ordner geguckt aber da finde ich auch nur eine TDE und eine LST Datei.
    Habe sie mir beide angeschaut doch in keiner ist ein Brauchbarer Code ...


    Scriptfiles werden die Daten inner .txt erstellt.


  • Das macht man so:


    new Float:Fuuuuuuu = floatdiv(100,3600);
    printf("%f",Fuuuuuuu);
    new Float:SoEinDreck = floatmul(Fuuuuuuu,VehicleData[id][Tank]);
    printf("%f",SoEinDreck);


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Mit gut 0,4% abweichung geht das :D
    //nachtrag


    Ich hatte es schonmal aber habs wieder vergessen :D
    Per CommandText kann man ja irgendwie mit sscanf machen
    Ich habe ein Command gebe ich da /unban ein, sagt er mir das es den Namen nicht gibt
    schreibe ich /unban werner, dann gibts nen Unkwon command ...


    Wo hab ich da den wurm sitzen?
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new string[128];
    if(!strcmp("/unban", cmdtext, true))
    {
    if(!CheckAdmin(playerid,5))
    return ADMError(playerid,5);
    new UserName[MAX_PLAYER_NAME];
    if(sscanf(cmdtext,"s",UserName))
    return SendClientMessage(playerid,cWarn,"• /unban [Name]");
    format(string,128,"SELECT * FROM `DTuser` WHERE `Name` = '%s'",UserName);
    mysql_query(string, (-1), (0), SQL);
    mysql_store_result(SQL);
    if(mysql_num_rows(SQL)==0)
    return mysql_free_result(SQL), format(string, 128, "• Der Name \"%s\" existiert nicht!", UserName), SendClientMessage(playerid, cWarn, string);
    mysql_free_result(SQL);
    format(string, sizeof(string), "UPDATE `DTuser` SET `Gebannt`='0' WHERE `Name` = '%s'", UserName);
    mysql_query(string, (-1), (0), SQL);
    format(string, 128, "• \"%s\" wurde entbannt!", UserName);
    SendClientMessage(playerid, cGreen, string);
    return 1;
    }
    return 0;
    }

    All in all it's just another brick in the wall

    Einmal editiert, zuletzt von Beavis ()

  • 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

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


  • 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


  • 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

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