[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
  • strval kannst du die eingabe zu einem integer konvertieren. Den Wert kannst du den aktuellen wanteds des spielers hinzuaddieren. Anschließend brauchst du eine for-schleifee welche diese anzahl an wanteds durchläuft und du einem string jeweils ein Stern hinzufügst.



    new val = strval(inputtext);
    pWanted += val;
    new wanted[20];
    for(new i; i != pWanted; ++i;)
    {
    strcat(wanted,"]");
    }

  • Ich wusste nicht ob ich nun ein Thema machen sollte oder nicht...


    Jedenfalls möchte ich ein System machen, wo die Waffen eine Seriennummer haben und man anhand der Seriennummer den registrierten Halter der Waffe ausfindig machen kann.
    Ich habe ein paar ansätze, wo man ersteinmal die Waffe speichert, die der Spieler besitzt und dazu dann noch einen String mit der Seriennummer. Leider kenne ich mich mit den ganzen
    Seriennummern nicht aus und weiß auch nicht wie das im echten Leben abläuft. Vielleicht ist hier ja jemand der sich damit auskennt oder so und könnte mir auch mal seinen Ansatz, wie er
    das Scripten würde mitteilen.


    Mein Ansatz wäre:

    • Die Waffen ID auf eine Variable speichern, dazu kommt dann eine Seriennummer
    • Man kann dann in Ammunations Munition für die Waffen kaufen
    • Das ganze würde ich mit meinem Inventar System verknüpfen, sodass man Desert und andere Pistolen "gleichzeitig" haben kann(die anderen sind dann im gescripteten Inventar)


    Ich würde mich über ein paar Ideen freuen.


    MfG
    ChaoZz

  • Du könntest dem Spieler ein Objekt anbringen, also eine Flamme (Feuer).
    Das Leben verliert der Spieler dann nicht, sondern dies musst du ihn selbst heruntersetzen ;)

  • Du könntest dem Spieler ein Objekt anbringen, also eine Flamme (Feuer).
    Das Leben verliert der Spieler dann nicht, sondern dies musst du ihn selbst heruntersetzen ;)


    Ja, seit 0.3z-R2-2 gibt es eine Funktion mit der du das machen kannst, sie heißt: CreateExplosionForPlayer


    Der Typ 9 ist unsichtbar und entzündet den Spieler ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Ich möchte einen Trailer (z.B. Mats Trailer oder Petrol Trailer) von einem Truck (z.b. Linerunner oder Roadtrain) entkoppeln.


    Dazu verwendet man ja die einfache Funktion DetachTrailerFromVehicle(..);


    Nun ist das Problem, das der in den meisten fällen (min. 75% der Fälle) wird der Trailer direkt wieder an den Truck gekoppelt, weil das ja automatisch abläuft.


    Habe mir gedacht, ich veränder minimal die Position des Trailers. Nun wollte ich das aber etwas schöner gestalten, sodass der Trailer immer minimal (ca 1-2m) nach hinten verschoben wird.


    "Nach hinten" ist nicht einfach durch eine abweichung der X oder Y koordinate zu machen, da dies darauf ankommt, welche Angel der Spieler hat. guckt er in 180°/0° ist es durch +/- 1-2 Abweichung der Y-Koordinate zu ermögliche, guckt er in 90°/270° ist es durch +/- 1-2 Abweichung der X-Koordinate zu machen. Guckt man aber nicht in genau diese Richtung, muss man beide Koordinaten leicht verändern, so das er zum Ursprungspunkt mit der selben Blickrichtung 1-2m Abstand hat.


    Dazu gibt es mit sicherheit eine schlaue Formel für, und die benötige ich.

  • Dazu gibt es mit sicherheit eine schlaue Formel für, und die benötige ich.


    Da:
    stock GetXYBehindPlayer(playerid, &Float:x, &Float:y, Float:distance)
    {
    new Float:a;
    GetPlayerPos(playerid, x, y, a),GetPlayerFacingAngle(playerid, a);
    if(IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
    x -= (distance * floatsin(-a, degrees));
    y -= (distance * floatcos(-a, degrees));
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Beitrag von Simon ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Beitrag von SchwarzRot ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hallo com,
    ich habe eine Kleine frage zum Neon System sollte man abfragen in welchen Car er sitzt und die Neon stangen für Jedes Car selber machen sprich mit dem Editor Ingame für
    Insernus
    Turismo......
    und die anderen Cars speichern oder reicht es wenn man das an ein Car macht und das dann einfach an Jedes Car Klatscht ?

  • Wie erstelle ich in einem FS einige Befehle, muss ich da auch Publics einfügen?


    Sieht zurzeit so aus, nur meine Map drin:



    #include <a_samp>




    public OnFilterScriptInit()
    {


    //Map Exported with Texture Studio By: [uL]Pottus////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////


    //Objects////////////////////////////////////////////////////////////////////////////////////////////////////////
    new tmpobjid;
    tmpobjid = CreateObject(18756,1480.206,1595.716,275.249,90.000,360.000,360.000,300.000);
    SetObjectMaterial(tmpobjid, 0, 1975, "texttest", "kb_blue", 0);
    SetObjectMaterial(tmpobjid, 1, 1975, "texttest", "kb_blue", 0);
    tmpobjid = CreateObject(19475,1478.013,1596.237,274.065,0.000,0.000,180.000,300.000);
    SetObjectMaterialText(tmpobjid, "/v NRG", 0, 40, "Quartz MS", 30, 1, -65536, 0, 0);
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    tmpobjid = CreateObject(4563,1451.207,1588.826,95.402,0.000,0.000,0.000,300.000);
    tmpobjid = CreateObject(19123,1431.760,1618.712,270.176,0.000,0.000,0.000,300.000);
    tmpobjid = CreateObject(19123,1436.760,1618.712,270.176,0.000,0.000,0.000,300.000);
    tmpobjid = CreateObject(19123,1441.760,1618.712,270.176,0.000,0.000,0.000,300.000);
    }


    Ist nicht meine ganze Map, aber wo kommt dazwischen der Befehl?



    if(!strcmp(cmdtext, "/sandstorm", true))
    {
    SetWeather(19);
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • @CyberFish:
    Du kannst es zwar in einem Texteditor eintippen, aber wirklich Sinn macht das nicht. Einen Compiler für PAWN gibt es für Android nicht (zumindest wäre mir keiner bekannt, habe selbst mal danach gesucht), somit wird es wohl auch für iOS und Windows Phone keinen geben, wenn doch, wäre ich wirklich überrascht. Für Java gibt es sowas, aber das ist ziemlich umständlich.
    Außerdem macht es meiner Meinung nach kaum Sinn mit dem Smartphone zu scripten, da du so langsam damit bist (Sonderzeichen etc...), dass sich der Aufwand nicht lohnt. Da brauchst du eine Stunde für das was du am PC in ein paar Minuten hast.
    Meine Empfehlung: Nimm dir ein Windows Tablet oder Netbook und arbeite damit. Da kannst du es auch gleich testen, hast eine Tastatur und viel längere Akkulaufzeiten.



    @[LnD]JustMe.77:
    Den Befehl musst du in ein callback setzen, da es ein Befehl ist logischerweise unter OnPlayerCommandText. Das sähe dann so aus:
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    //Dein Befehl hier hin!

    //Ende deines Befehls.
    //...weitere Befehle.
    return 0;
    }

  • Beitrag von [NRR]CyberFish ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Jeffry: Das habe ich gemacht bekomme aber dann Errors also dachte ich das ist falsch, poste die Errors später bin am Handy.


    Edit:


    So im Filterscript ganz unten bei mir Jeffry:



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/zeit", cmdtext, true))
    {
    SetWorldTime(12);
    return 1;
    }


    if(!strcmp("/wetter", cmdtext, true))
    {
    SetWeather(19);
    return 1;
    }


    Spoiler anzeigen

    C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(111) : error 010: invalid function or declaration
    C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(111) : error 017: undefined symbol "cmdtext"
    C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(113) : error 010: invalid function or declaration
    C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(116) : error 010: invalid function or declaration
    C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(119) : error 010: invalid function or declaration
    C:\Users\Dave\Desktop\Hoe's Wonderland\filterscripts\Maps.pwn(122) : error 010: invalid function or declaration
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase

    Spoiler anzeigen
    6 Errors.


    Mit freundlichen Grüßen
    JustMe.77 8)

    Einmal editiert, zuletzt von JustMe.77 ()

  • Also wenn du es so schreibst, und ganz unten in die letzte Zeile deines Filterscript einfügst, dann sollte es ohne Probleme klappen.


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/zeit", cmdtext, true))
    {
    SetWorldTime(12);
    return 1;
    }


    if(!strcmp("/wetter", cmdtext, true))
    {
    SetWeather(19);
    return 1;
    }
    return 0;
    }


    Edit:
    @[LnD]JustMe.77: Filterscript natürlich :D

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

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