Brauche Einstiegs-Hilfe für PAWN

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
  • Und zwar ich habe großes Interesse Pawno zu lernen, bloß habe ich keinen der mir gescheit hilft also ich habe Leute die Scripten können bloß haben sie meistens keine Zeit oder gar kein Interesse mehr an SA:MP.


    Lange rede 'kurzer Sinn, wie genau beginne ich nun zu Scripten?
    Es gibt ja " Scripting Callbacks " oder "Scripting Functions"aber wie genau jetzt weiß ich wie ich was machen muss?
    Habe mir viele Tutorials von z.B MrMonat angeguckt oder ähnliches, aber nichts wurde dort genau erklärt.


    wiki.sa-mp.com/wiki/Category:Scripting_Functions
    Woher weiß ich was was genau nun bringt?




    Gruß,

  • Also, wenn du dir die Mr.Monat Reihe anguckst und nachmachst.
    Bist du schon auf dem Richtigen Weg.
    Schau dir die Reihe an, was soll ich anderes Sagen, so habe auch ich mal angefangen ^^
    Solltest du mal nicht wissen wie was geht, gibt es dann auch noch das Forum <3
    Wir helfen dir hier gerne weiter, und es ist immer wer Online glaub mir.
    Und willst du einfach mal schnell wissen was z.B. "OnPlayerConnect" o.Ä. Bewirkt, kannst du einfach, so mache ich es immer, bei Google eingeben: "SAMP OnPlayerConnect Funtion"
    Da findest du viel, vorallem im WiKi :)

  • Indem du die Beschreibung im Wiki zur jeder Funktion liest?
    Mit Videos kann m,an nichts lernen wieso? Weil es alles vorgegeben ist und du schreibst nur ab ohne es erklärt zu bekommen..
    Am besten fängst du an ein eigenes kleines Script zu erstellen indem du verschiedene Funktionen und den Rest durch Forschen lernst.
    Empfehlung Tutorials

  • Jeder Befehl wirdi m Wiki erklärt. Es wird gesagt wie er funktioniert und was er am Ende macht. Man muss sich nur Zeit lassen und verstehen. Was auch immer wichtig ist, ist das alles eine Abfrage und Reaktion ist. Sprich du musst immer nur wissen was du machen willst (zB HP setzen) und wissen unter welchen Bedingungen.


    zB ein Healpoint:
    Du willst das HP gesetzt werden, aber nur an einen bestimmten Punkt. Also musst du halt Abfragen ob jemand in der Nähe eines Punktes ist und dann die HP setzen.


    So ist das Scripten, nur werden die Abfragen mehr und die Systeme dadurch größer. Einfach klein anfangen, im Wiki lesen was was bring und im besten Fall ein GF nehmen das man kennt. Denn dort kannst du herausfinden wie was gemacht wird. Wenn du zB wissen willst wie man HP setzt schaust du im Script nach unter welchen Befehl sowas gemacht wird. Dort kannst du immer sehen mit welchen Befehl die das gemacht haben und den suchst du im Wiki um den genau zu verstehen. Mehr ist das auch nicht am Anfang.

  • Ich gebe dir ein paar gute Tipps wie du dir es selbst sehr gut beibringen kannst, so habe ich es zumindest vor 6 Jahren gelernt (von null an, ohne Programmierkenntnisse aus anderen Spachen).


    Du solltest dich zu aller erst mit den Grundlagen der Programmierung beschäftigen, bevor du anfängst einen vorhandenen Gamemode zu "vergewaltigen", dazu gehört nämlich ein Grundwissen, welches man sich zuerst aufbauen muss.


    Ich erkläre dir mal wie du am besten lernen kannst, damit du in Zukunft auch verstehst, was ein Code ist, und wann du welchen Code benutzen musst.


    Also ich habe PAWN gelernt, indem ich mir den LAdmin4v2 (damals sehr neu) genommen habe, und versucht habe, die einzelnen Teile zu verstehen. Dann habe ich einfach losgelegt, und überlegt, welcher Teil das tut, was ich will. Den Code hab ich mir dann angeschaut, und so für den neuen Code verändert, dass er seinen Zweck erfüllt hat.


    Wichtig: Fang klein an, jeder tut das, nimm nicht gleich einen Gamemode und verunstalte den, du wirst nichts kapieren. Ich arbeite nun über 6Jahre mit PAWN und mein Wissen ist noch lange nicht komplett, im Gegenteil. Auch ich lerne ständig neue Dinge dazu.
    Falls dir jemand sagt, du sollst dir die PAWN Doc durchlesen, lass es, genauso rate ich dir davon ab das wiki in allen Einzelteilen durchzulesen. Du wirst es nicht verstehen. Das kannst du in 3 Jahren machen, wenn du es verstehst, und selbst dann wirst du den Großteil in der Pawn Doc nicht auf Anhieb verstehen.


    Noch was: Ausprobieren. Du kannst nichts kaputt machen. Das einzige was passieren kann, ist dass du Errors bekommst. Na und? Für was gibt es STRG+Z. Einfach probieren, wenn du nicht weiter kommst, lass es, oder frag nach Hilfe, sofern es im kleinen Bereich ist.


    Learning By Doing nennt sich das. Nicht aufgeben, einfach machen machen machen. Das muss nicht immer perfekt sein, und muss auch nicht immer Sinn ergeben, hauptsache du machst was. Zum Anfang kannst du dir z.B. vornehmen, einen FilterScript der hier im Forum veröffentlicht wurde (einen einfachen) nachzumachen. Musst ihn ja nicht auch veröffentlichen, aber nur zur Übung einfach nachmachen. Wenn du hängst, kannst du ja nachsehen, was falsch ist.


    Meiner Meinung nach besser als alles andere.


    Wie machst du das?
    Du suchst dir einen Filterscript der irgendwas macht, sei es ein Auto Spawn Menu.
    Schau dir zuerst mal an, was der FilterScript denn machst (z.B. ein Auto-Menu, um Auto's zu spawnen). Dann überlegst du, was du denn alles dafür brauchst, suchst dir die Funktionen zusammen (Google, SAMP Wiki) und legst los so ein Menu zu erstellen. Wenn du irgendwo hängst, kannst du einen Blick in den Code werfen, und ein paar Zeilen, die du denkst zu verstehen abschreiben, dann siehst du ja was passiert.
    Am Besten ist es aber, wenn du es ganz ohne in den Code zu schauen hin bekommst, deshalb fang mit leichten Dingen an.
    Bis du erst mal richtig rein findest vergehen mit Sicherheit 1-3 Monate! Also nicht verzagen, du wirst am Anfang ziemlich oft stecken bleiben und auf die Nase fallen (ist wie laufen lernen). Ich weiß das von mir. Wenn du einmal drinne bist, dann gehts jeden Tag besser.


    PS: Ich hab es ganz alleine gelernt. Die einzige Hilfestellung die ich damals hatte war ein /kill Command aus 6 Zeilen Code, den mir jemand gemacht hat.


    Das wichtigste ist: Immer dranbleiben!
    Viel Erfolg! :good:

  • "wiki.sa-mp.com/wiki/Category:Scripting_Functions
    Woher weiß ich was was genau nun bringt?"


    Nun. Jeffry hat ein ganz gutes lern Prinzip genannt, nämlich learning by doing. Doing heißt in dem Fall aber nicht 2 x wild auf die Tastatur hauen und gucken was passiert sondern folgende herangehensweise die ich dir empfehle.


    Erst einmal überlegst du dir was du scripten möchtest. Nimm dir anfangs keine Ziele wie Fraktionen, Jobs o.ä. Das ist für dich alles noch viel zu groß und komplex.
    Nimm dir lieber anfangs ganz leichte Dinge.
    z.B. das erstellen von Fahrzeugen.
    Die Fragen sind wo, was, wie.
    Wo sollen sie erstellt werden? Dafür solltest du dir anfangs mal jeden Public der dir anfangs gegeben ist anschauen und gucken wann welcher aufgerufen wird.
    Interessant wäre z.B. OnGameModeInit falls man das Fahrzeug beim starten des Scriptes erstellen will oder OnPlayerSpawn wenn man ein Fahrzeug erstellen möchte wenn ein Spieler spawnt.


    Das Wo wäre hiermit geklärt.


    Die nächste Frage wäre wie.


    Man kennt den Bereich aber jetzt weis man nicht die Funktion zum erstellen von Fahrzeugen.
    Dafür hilft einem das SA:MP Wiki sehr. (Klick)


    Schaut man in den Bereich Vehicles sieht man durch die Standard Includes gegebenen Fahrzeug Funktionen.
    Wer Englisch kann ist nun klar im Vorteil es gibt jedoch ein Deutsches Wiki. Ich nehme jedoch das Englische und halte es für das bessere.


    Schaut man sich alle Funktionen in der Kategorie Vehicles an fallen 2 Funktionen auf die beide in diesem Fall funktionieren. Nämlich 1x AddStaticVehicle(Ex) was übersetzt wohl füge statisches Fahrzeug hinzu bedeutet. Die 2. Funktion wäre CreateVehicle also Erstelle Fahrzeug.


    Man weis also wo es hin muss und was dorthin muss.


    Jetzt ist das Wie die Frage. Was will denn nun der Server wissen um das Fahrzeug zu erstellen. Also welche "Parameter" will er wissen, welche muss ich angeben?


    Hier hilft SA:MP Wiki ebenfalls weiter.
    Wir entscheiden uns zwischen einer der beiden Funktionen (nehmen wir mal CreateVehicle, Klick)
    Der Code würde bisher so aussehen


    public OnGameModeInit()
    {
    CreateVehicle();
    return 1;
    }



    Das reicht natürlich nicht. Woher soll er denn die Eigenschaften des zu erstellenden Fahrzeuges wissen und wie gebe ich sie an?
    Sie werden innerhalb der Klammer der Funktionen angegeben und die einzelnen "Parameter" werden mit einem Komma innerhalb der Funktion getrennt.
    Das sieht dann so aus.


    CreateVehicle(para1,para2,para3);


    Nun. Die Frage ist welche Parameter muss ich in welcher Reihenfolge angeben und was "stellen" sie dar? Einer stellt die ID dar, der andere die Farben.


    Dies beantwortet euch alles SA:MP Wiki in der einzeln erklärten Funktion mit Beispielcode. (Klick)


    Nun sind alle 3 Fragen beantwortet, man kann die Parameter nach seinen Wünschen ausgefüllt und hat das Fahrzeug erfolgreich erstellt. :thumbup:


    Jetzt kann man das gleiche bei anderen Funktionen anwenden, kombinieren, learning by doing ebend, wisst ihr erstmal was ihr machen wollt und habt ihr die 3 Fragen beantwortet, könnt ihr wunderbar die Lernmethode anwenden.