[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
  • Vielen dank, funktioniert jetzt. Ja das mit dem Spieler speichern ist unnötig, habs jetzt bei OnPlayerDisconnect.

  • Der Compeiler meckert überall wo gebraucht steht.


    C:\Users\Patrick\Desktop\Reallife\gamemodes\Reallife.pwn(20036) : warning 202: number of arguments does not match definition


    new gebraucht = floatround(Tanke[i][tMaxLiterBenzin] - Tanke[i][tLiterBenzin]);
    SendClientMessage(playerid, COLOR_WHITE,"{21DD00}Es konnten nur %d Liter Benzin abgeliefert werden, die Tankstelle ist voll.", gebraucht);


    Muss man da kein float davor machen oder so?

  • Muss man da kein float davor machen oder so?

    Entweder fällt dir lesen schwer, oder das kopieren.


    Habe ich da irgendwo in meinem Code SendClientMessage stehen?


    Und jetzt frage dich, wieso das du das?


    Theoretisch muss man da kein Float vor machen, da du ja ganze Liter haben willst und das über das floatround gerundet wird.


    Und..meine letzte Frage, in welcher Zeile der Fehler auftritt sagst du mir nicht und gibst uns keine Debug Informationen...

    ast2ufdyxkb1.png


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

  • Ist das angeben eines :default wertes bei switch sinvoll? Bzw. warum macht man das? Oder dient das einfach nur als "else" ?

    Dient einfach nur als else.


    Muss man nicht angeben, der Code darunter würde ja quasi einfach weiter laufen.



    Oben im Script einbaue findet er SCM nicht

    Das muss natürlich unter das SCM oder schreibe es so:


    #define SCME(%0,%1,%2,%3) format(string,sizeof(string),%2,%3),SendClientMessage(%0,%1,string)

    ast2ufdyxkb1.png


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

  • Alles klar, danke dir!


    Habe mal eine Frage:
    Ist es machbar NPC, bzw. Bots zu bauen, welche bspw. als annehmbare Gegner in einem Deathmatch dienen koennen?
    Die sich also auf den Spieler zu bewegen, man diese vernichten kann, und auch den Gegner angreifen?

  • Ist es machbar NPC, bzw. Bots zu bauen, welche bspw. als annehmbare Gegner in einem Deathmatch dienen koennen?
    Die sich also auf den Spieler zu bewegen, man diese vernichten kann, und auch den Gegner angreifen?

    Jup, das geht mit FCNPC.


    Zwar etwas fricklig, aber es wurde mal n gutes Include realisiert, was dir vielleicht weiter hilft: https://forum.sa-mp.com/showthread.php?t=663155

    ast2ufdyxkb1.png


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

  • vor einigen Jahren war sowas Utopie.

    Awas, gab schon vor 5 Jahren, wenn nicht noch länger her Zombie Server, die einen angegriffen haben oder so.


    Halt alles um einiges schlechter realisiert, aber gegeben hat es das schon.


    Gerade in der englischen bzw russischen Szene xD


    Aber ich erinnere mich auch mal an einen Deutschen Server von Beavis und Blackace oder so xD

    ast2ufdyxkb1.png


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

  • Hehe alles klar.
    Ich habe mit NPC nur einmal zutun gehabt, undzwar etwa 2010, da habe ich etwa 25 NPCs auf meinen Server gehabt, das Ding hatte 100% CPU Auslastung, und ist immer wieder abgeschmiert :D Seitdem habe ich es nie wieder probiert.

  • Hallo, jemand da der mir evtl weiterhelfen könnte? Habe vor einiger Zeit mit einem eigenen Gamemode angefangen, lerne aber noch ziemlich viel. Viel bekomme ich mit dem SAMP Wiki und Beiträgen hier raus selbst gelöst, aber bei folgendem komme ich nicht weiter. Für das Admsystem hatte/habe ich mir das Selfmade für Anfänger, bzw zum weiter Scripten angesehen/teilweise übernommen, nun kommt aber im /a(dmchat) nur 1/4 meiner Nachricht im Chat an.


    Mein /a Code:
    ocmd:a(playerid, params[])
    {
    new atext[128], astring[128];
    if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_RED, ""err""COLOR_HEX_WHITE""a404"");
    if(sscanf(params, "s", atext)) return SendClientMessage(playerid, COLOR_WHITE, "[Nutzung] /a(dminchat) [Text]");
    format(astring, sizeof(astring), "%s "COLOR_HEX_YELLOW"%s"COLOR_HEX_WHITE": %s", admName(playerid), PlayerName(playerid), atext);
    SendToAdms(COLOR_WHITE, astring);
    return 1;
    }


    SendToAdms:
    stock SendToAdms(COLOR, msg[])
    {
    for(new i = 0;i < MAX_PLAYERS; i++)
    if(PlayerInfo[i][pAdmin] >= 1) {
    SendClientMessage(i, COLOR, msg); }
    return 0;
    }


    Habe schon viel rumprobiert, bspw auch im Befehl die astring Größe erhöht (gleiches mit atext); Ohne Erfolg.

    Beste Grüße o7

  • jemand da der mir evtl weiterhelfen könnte

    Schauen wir uns das doch mal an :)


    sscanf scheint glaube bei dir veraltet zu sein (du scheinst die Funktion zu nutzen, aber das Plugin ist um einiges besser), in diesem Fall, wo man auch nur einen Parameter nutzt, sollte man gänzlich darauf verzichten (erst bei einem String).


    Schreib das alles mal so:


    ast2ufdyxkb1.png


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

  • Achja... Den Umstieg aufs Plugin zwischendurch hatte ich total vergessen. Hätte man natürlich anpassen sollen :whistling:
    Bin mittlerweile aufm Sprung, teste das später & schaue mir auch noch mal die genauere Funktionsweise des sscanf Plugins an.


    Danke dir soweit + melde mich später :thumbup:

    Beste Grüße o7

  • @Kaliber



    Tankstelle: Diese Tankstelle hat 1176256512 Benzin erhalten.


    Werde den Code noch genauer anpassen keine sorge :D und danke für deine hilfe mit den abkürzungen fällt mir leichter :D

  • printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatadd(gebraucht, Tanke[i][tLiterBenzin]))

    floatadd gibt immer einen Float Wert zurück.


    Also musst du:


    printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatround(floatadd(gebraucht, Tanke[i][tLiterBenzin])));


    machen.

    ast2ufdyxkb1.png


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

  • Vehicle[trailer][vehProds] -= gebraucht, Tanke[i][tLiterBenzin] += floatadd(gebraucht, Tanke[i][tLiterBenzin]);
    zu:
    Vehicle[trailer][vehProds] -= gebraucht, Tanke[i][tLiterBenzin] = Tanke[i][tMaxLiterBenzin];


    else Tanke[i][tMaxLiterBenzin] += Vehicle[trailer][vehProds], Vehicle[vehicleid][vehGeladen][0] = 0, Vehicle[trailer][vehProds] = 0;
    zu:
    else Tanke[i][tLiterBenzin] += Vehicle[trailer][vehProds], Vehicle[vehicleid][vehGeladen][0] = 0, Vehicle[trailer][vehProds] = 0;


    printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatadd(gebraucht, Tanke[i][tLiterBenzin]));
    zu:
    printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatround(floatsub(gebraucht, Tanke[i][tLiterBenzin])));


  • Tankstelle: Diese Tankstelle hat 2000 Liter Benzin gebraucht.
    Tankstelle: Diese Tankstelle hat 5000 Liter Benzin erhalten.



    Das Meine ich gebraucht hat die Tankstelle nur 2000 Liter Benzin aber es wurden 5000 anscheind abgeladen aber es wurden ja nur 2000 abgegeben.
    Habe 2500 geladen. habe abgeladen also wurden 2000 abgezogen somit waren am schluss 500 Liter noch vorhanden.


    Wie kann das dann zu stande komm das 5000 Liter Benzin abgeladen wurden obwohl es nur 2000 waren.


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