Beiträge von Hans_Overlander

    Guten Tag liebe Community, ich hab mal ein interessanten Thema und würde gerne mal eure Meinung dazu erfassen.


    Es geht um die Frage, was euch beim Thema Geld verdienen auf einem SAMP Roleplayserver am meißten reizt. Die Umfrage ist angeordnet von "sehr schnell Geld verdienen (niedriger Sachwert)" bis "sehr schwer Geld verdienen (riesiger Sachwert)". Bitte eure persönliche Meinung ankreuzen.


    Vielen Dank. :thumbup:

    Guten Tag Community, ich bin grad mal wieder überfragt, es geht um folgendes:


    Ich möchte einen Spieler in der Skinauswahl zu einem bestimmten Skin "springen" lassen, das hat zum Vorteil, dass er seine Skingruppe nicht erst suchen muss. Das Problem ist jedoch, dass er bei Classid 0 (oder 1) startet.


    Wie kann ich das machen?


    mfG Dylan

    Guat, zuerst erstellst du eine Variable, die die ID des 3DTextLabels pro Spieler speichert.


    new Text3D: HpLabel[MAX_PLAYERS];


    Wenn der spieler nun einen Schuss ab bekommt (OnPlayerTakeDamage), dann wird mit der Funktion (Create3DTextLabel) ein Label erstellt.


    HpLabel[playerid] = Create3DTextLabel(... das musst du selber ausfüllen siehe wiki Link);


    Dann musst du dass mit der Funktion (Attach3DTextLabelToPlayer) an den spieler binden. Auch wieder Wiki gucken, musst noch die Spielerposition bekommen (GetPlayerPos).


    Danach noch eine Funktion erstellen, die das Label wieder vom Spieler entfernt nach X Sekunden.


    forward DeleteLabel(playerid);


    // bei OnPlayerTakeDamage


    SetTimerEx("DeleteLabel", 1000, false, "d", playerid);


    In der Funktion wird das Label wieder gelöscht. Die Labelid ist immernoch HpLabel[playerid]. Ca so:


    public DeleteLabel(playerid)
    {
    Delete3DTextLabel(HpLabel[playerid]);
    return 1;
    }


    Das wars eig schon.
    Viel Glück

    Da musst du den Callback "OnPlayerTakeDamage" nutzen, dort hast du einen Parameter der dir die abgezogenen HP (als float soweit ich weis) gibt. Diese kannst du dann in ein 3D Text Label einformatieren und das dann einfach per Attach3DTextLabelToPlayer (oder so ähnlich) an den Spieler "ankleben".


    Mehr dazu wiki.sa-mp.com


    mfG Dylan

    Also ich würde vorschlagen, du machst einen großen string. Mit der Funktion format schreibst du den Text. Am bessten ich zeigs dir:


    new str[2048];
    format(str, sizeof str, "Blablabla1");
    format(str, sizeof str, "%s /*hier kommt der obere String*/blablabla2", str);
    format(str, sizeof str, "%s Blablabla3", str);
    ShowPlayerDialog(playerid... ..., str, ...); // Du weist schon


    mfG Dylan

    Ich muss den Thread mal wieder ausbuddeln.


    Frage 1:
    Ist es klug, eine string[128] - Variable am Anfang des Skriptes zu erstellen, mit dieser gibt man normale Texte aus, sodass man das nicht bei jedem Callback neu erstellen muss, macht das den Gamemode also schneller oder bringt das evtl. Fehler/Schwierigkeiten?


    Frage 2:
    Wie kann ich am besten, einen riesen Text (für ein Dialog) zusammen stellen?


    Danke und freundliche Grüße

    Eigentlich müsste der PAWN Editor funktionieren, ich selber hatte den Error noch nie, am bessten du lädst nochmal den Serverordner runter und versuchst es nochmal (unverändert) zu öffnen. Dann gehst du auf "File->New" und daraufhin öffnet sich ein sog. Blank Skript. Dieses hat ein paar vorgefertigte Funktionen (sog. Callbacks), z.B. OnPlayerEnterVehichle. Dort gibts dann verfügbare Parameter (playerid und vehicleid). playerid ist der Spieler der in ein Fahrzeug einsteigt, und vehicleid ist das Fahrzeug in das der Spieler steigt (siehe SAMP Wiki -> Callbacks).


    Kann dir ein paar Links ans Herz legen:
    SA-MP Wiki (alle Funktionen, Callbacks, ID's von Objekten, Fahrzeugen, Modellen..., Beispielskripts und Hilfe für Neulinge)
    SA-MP Forum: Tutorials
    SA-MP Forum: Pawn Einsteig
    Englisches SA-MP


    Viel Spaß!


    mfG Dylan

    Hey, wenn du ein paar Skripts suchst, guck mal hier.
    Liste aller Gamemodes
    (Werd aber bitte kein Godfather-Editer, so wie viele hier in der Community, Godfather gibts einfach zu oft)


    Ich würde dir empfehlen selber was zu schreiben, wenn du etwas Zeit, Lust und Interesse investierst lernst du es auch, je nach dme was für ein Verständnis du zur Skriptsprache hast. Versuch auch bei jedem Problem nicht gleich das Forum hier zu fragen, versuch erst die Fehler selber zu lösen, das bringt dich auf jeden Fall weiter.


    Solltest du dennoch irgendwo nicht weiterkommen schreib einfach einen Thread bei Skripting Base, erklär dein Problem, poste ggf. Errors und den Pawncode.


    Viel Spaß und Erfolg.


    mfG Dylan

    Da muss man für das Fahrzeug eine Variable erstellen, die den Spielernamen speichert.


    new Owner[MAX_PLAYER_NAME]; // am besten in einem enum


    Einen Besitzer bestimmen, geht mit der Funktion strmid.


    Vergleichen kann man 2 strings mir strcmp, z.B. für /lock abfrage.


    mfG Dylan

    Musst schon eine Spielerid bei der Variable hinzufügen.


    nich: PlayerInfo[pLevel];
    also so: PlayerInfo[i][pLevel];


    *TIPP: Die brauchst die neue Variable garnicht erstellen, geht auch so:


    SetPlayerScore(i, PlayerInfo[i][pLevel]);


    mfG Dylan

    Was hat das damit zu tun? :thumbdown:
    Ich weis wie das aussieht, ich habs mir angesehen. Man kann keine Variable erzeugen und dann nochmal eine Funktion die den selben Namen hat.


    Bin mir ziehmlich sicher dass es klappt.