[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
  • Sagt mal.. ne kurze Frage.. Habe aktuell Schwierigkeiten mit der Telekom.. also kein Internet.. ist es möglich dennoch irgendwie zu entwickeln ?


    Benötige ich für die Plugins eine Internetverbindung ?


    Grüße

    Sofern du alles lokal auf deinem PC zur Verfügung hast, also Datenbank, sonstige Verbindungen zur Website evtl. müsste es einwandfrei funktionieren, kannst dann ja sogar lokal noch auf deinem Server rauf, brauchst ja keine Internetverbindung zu deinem eigenen PC

    SA:MP in 2020?

  • Hey, kleine Frage; Wenn ich Interiors Mappen möchte, packe ich diese am besten weit in die Luft über der SA Map (damit man die Gebilde nicht sieht), kurz unter die Mapgrenze oder irgendwo fernab über dem Wasser?
    Zu weit über der Map soll wohl laut Wiki zu einigen Fehlern/nicht mehr ausführbaren Callbacks oder sowas führen. Da stellt sich mir die Frage, ob gleiches unter der Map passiert und/oder ob man unter der Map überhaupt wie gewohnt Scripten kann?


    //Ach und vor einigen Tagen oder so hat hier jemand nach den Menüs aus SA gefragt (GTA SA Menü). Diese lassen sich aber nur als solches Listmenü zum auswählen erstellen, oder gibt es eine ähnliche Menuart, die wie im SP nur Text ausgibt? Hätte die gern oben Links im Eck (wie eben im SP), nur um Text für das Tutorial auszugeben (nichts mit Auswählen oder Auflistung wie im Thread). //2: Ich meine die ähnlich schwarzen "Boxen", die im SP Anfangs im Spiel gern aufploppen um zu erklären, sind aber theoretisch auch die Selben, wenn man einen Cheat eingibt ("Cheat activated!")

    "I believe if you're going to criticise the creative content of others, bring a creative solution to the table with you."

    2 Mal editiert, zuletzt von walt0n96 ()

  • 1. Es ist nur wichtig, dass sich die Interiors in den Zonen der SA:MP Map befinden. Also von -3000 bis 3000. Und zu weit unter der Map ist schlecht, weil man dann evtl über die Map gesetzt werden kann. Dementsprechend empfehle ich dir in der Luft (so wie das GTA SA auch macht) die Interiors zu mappen. Am Besten so auf einer Höhe von 2000. Weil bei 1000 sind die offline gta interiors.


    2. Es gibt sowas: https://wiki.sa-mp.com/wiki/GameTextStyle


    Das eine sind GameTexts (da ist die Auswahl limitiert, wie du siehst) und das andere sind TextDraws, wo du alles mögliche mit machen kannst. Also das was du vor hast ist definitiv mit TextDraws umsetzbar :)


    Musst mal nach einem TextDraw Creator und Tutorial schauen, da wird dir das alles erklärt :)

    ast2ufdyxkb1.png


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

  • Vielen lieben dank! Ist das Basic GTA Wissen, oder kann man diese spezifischen Gamelimits (also nicht von SAMP aus, sondern von GTA. //Wobei du auch von der SAMP Begrenzung bei den -3.000 bis 3.000 gesprochen hast, hmm) irgendwo nachschlagen?


    Das mit den Menüs/ schwarzen Boxen und deinem Vorschlag mit den Textdraws hatte ich auch schon im Kopf, wollte nur erstmal sicher gehen, ob es diese spezifischen Menüs wirklich nicht gibt. Aber auch dafür natürlich danke!

    "I believe if you're going to criticise the creative content of others, bring a creative solution to the table with you."

  • Hmm, also hier mal generell Limits: https://wiki.sa-mp.com/wiki/Limits


    Hier z.B. mit der Map (hatte mich geirrt, die SA Map ist von 3000 bis -3000 groß, aber getriggert wird wohl bis 4096)

    Known Bug(s): Pickups that have a X or Y lower than -4096.0 or bigger than 4096.0 won't show up and won't trigger OnPlayerPickUpPickup either.

    Und die höhe der Interiors kannst du an der Z-Koordinate ablesen: http://weedarr.wikidot.com/interior


    Also z.B. -25.884498,-185.868988,1003.546875 da sehen wir, dass die Höhe 1003 SA Meter sind.


    Und alle weiteren sind auch so um ~1000 SA Meter über der Map :)

    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
  • Hey Leute,
    ich hab ein ATM Rob Befehl gescriptet doch er spackt bissel.. wenn ein Spieler nen ATM ausraubt müssen alle anderen auch 10 Minuten warten..


    if(atmtime > gettime())return SendClientMessage(playerid,COLOR_GREY,"Bitte warte 10 Minuten bist du es wieder ausrauben kannst"); // das als erste Stelle

  • alle anderen auch 10 Minuten warten..

    Dann musst du das auf die Spieler beschränken.


    Anstatt atmtime musst das individualisieren mit atmtime[playerid].


    Also auch mit new atmtime[MAX_PLAYERS]; deklarieren.

    ast2ufdyxkb1.png


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

  • Bin ich blind oder ist hier garkein Fehler?

    format(Donutshop[0][itemName], sizeof(Donutshop[0][itemName]), "Donut ohne Füllung");


    Code
    ***.pwn(20) : error 001: expected token: "]", but found "-integer value-"
    ***.pwn(20) : warning 215: expression has no effect
    ***.pwn(20) : error 001: expected token: ";", but found "]"
    ***.pwn(20) : error 029: invalid expression, assumed zero
    ***.pwn(20) : fatal error 107: too many error messages on one line
  • sizeof(Donutshop[0][itemName])

    Das kannst du leider nicht machen.


    Die einzige Möglichkeit wäre sizeof(Donutshop[]) oder du nutzt einen direkten Wert :)


    Format ist aber auch sehr langsam und in diesem Beispiel, wird auch kein format benötigt, da könntest du den String direkt setzen.


    Donutshop[0][itemName] = "Donut ohne Füllung";


    oder memcopy bzw strcat. Alles schneller und besser, als format ^^

    ast2ufdyxkb1.png


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

  • Der Dialog wird mir nicht angezeigt, was ist daran falsch? http://prntscr.com/m5x177

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • if(name < 0 || name >= sizeof(carNames)) format(string,sizeof(string),"%s{767676}<Leer>\t{767676}<Leer>\t{767676}<Leer>\t{767676}<Leer>\t\n", string);
    {
    format(string,sizeof(string),"%s{FFFFFF}%s\t%s\t%d\n", string, carNames[name], fuelName[vehDefaultData[name][e_fuelType]], fuelName[vehDefaultData[name][e_oilType]]);
    }
    zu:
    if(name < 0 || name >= sizeof(carNames))
    {
    format(string,sizeof(string),"%s{767676}<Leer>\t{767676}<Leer>\t{767676}<Leer>\t{767676}<Leer>\t\n", string);
    }
    else
    {
    format(string,sizeof(string),"%s{FFFFFF}%s\t%s\t%d\n", string, carNames[name], fuelName[vehDefaultData[name][e_fuelType]], fuelName[vehDefaultData[name][e_oilType]]);
    }


    Sonst wird der zweite format immer ausgeführt.

  • So, habe nun die Kinderkrankheiten meines Gamemodes Last Bed Standing entfernt.
    Habe mal vor einfach einen kleinen Server zu laufen, um zu schauen wie das so geht.


    Der Gamemode besteht darin, dass es mindestens 3 Teams gibt, und diese sollen das Bett eines gegnerischen Teams zerstoeren, so dass diese nicht mehr respawnen koennen, und dann soll das Team ausgeloescht werden.
    Jedoch habe ich noch nicht bedacht wie so eine Runde starten soll.
    Bisher kann man einfach auf den Server gehen, und in ein Team rein, unabhaengig davon ob da bereits was passiert oder nicht.
    Habt ihr Tipps wie ihr das "Starten" realisieren wuerdet?


    Habe evtl. gedacht, dass in mindestens 2 Teams, mindestens 1 Spieler sein muss um zu starten. Aber wie gestaltet man am besten die Abfrage?

    Einmal editiert, zuletzt von Sub Royal ()

  • Zitat von Sub Royal

    Habe evtl. gedacht, dass in mindestens 2 Teams, mindestens 1 Spieler sein muss um zu starten. Aber wie gestaltet man am besten die Abfrage?

    Ganz einfach indem du abfragst wie viele Spieler schon im Team sind kleiner als 1, kann er nicht ins Team. Hoffe du meintest es so?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • So brauche momentan einen kleinen Denkanstoss.
    Nachdem eine Runde beendet wird in meinem Gamemode.


    Es gibt 3 Dinge die der Spieler sammeln kann in einer Runde, Betten zerstoeren, Spieler killen, und seine Tode.
    Am Ende wuerde ich gerne in einem Dialog alle Spieler auflisten, sortiert absteigend nach den meisten Kills.


    Habe dazu ein 2 Dimensionales Array angedacht.
    Dort muss ich ja irgendwie die Spieler ID beherbergen, die Anzahl der Kills,Tode, und zerstoerten Betten.


    Hier mal mein Ansatz den ich gerade angefangen habe.


    Sortieren wuerde ich am Ende mit meinem Heapsort Algorithmus

    Einmal editiert, zuletzt von Sub Royal ()

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