[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
  • Oke Danke für deine schnelle Hilfe Jeffry:
    ja ich habe dem eine Virtuelle Welt zugewiesen weil ich die drawdistanz hoch gesetzt habe muss ich die jetze für die virtuelle Welt nochmal machen wo der Spieler das tutorial macht ?


    Mit Freundlichen Grüßen
    Snake ♤

  • ja ich habe dem eine Virtuelle Welt zugewiesen weil ich die drawdistanz hoch gesetzt habe muss ich die jetze für die virtuelle Welt nochmal machen wo der Spieler das tutorial macht ?


    Nein, wenn du die Objekte nicht explizit einer virtuellen Welt zugewiesen hast, dann musst du gar nichts machen. Die Objekte werden standardmäßig in jeder virtuellen Welt gleich angezeigt.

  • ocmd:createbiz(playerid,params[])
    {
    if(IsPlayerAdmin(playerid))
    {
    new bizname[30],bizwert,query[200];
    new Float:posx,Float:posy,Float:posz;
    if(sscanf(params,"sd",bizname,bizwert))return SCM(playerid,frot,"[BENUTZUNG]: /createbiz [Bizname][Bizwert]");
    GetPlayerPos(playerid,posx,posy,posz);
    mysql_format(as_db_handle,query,sizeof(query),"INSERT INTO aktien (bizname,bizwert,bizposx,bizposy,bizposz) VALUES ('%e','%d','%f','%f','%f')",bizname,bizwert,posx,posy,posz);
    mysql_tquery(as_db_handle,query);
    SCM(playerid,iblau,"[INFO]: Du hast ein Business mit dem Namen %s und dem Wert %d erstellt!",bizname,bizwert);
    return 1;
    }
    return 1;
    }


    Dabei stürzt mir der Compiler immer ab... Wenn ich das raus nehme gehts ... Ich weiß aber nicht warum..

  • Sobald ich eine Komme wert 1.5 abziehe kommen massenhaft zahlen warum (Textdraw)


    Weil du dir eine Kommazahl nicht dezimal anzeigen lassen kannst.


    Du musst diese dir dann auch mit %f anzeigen lassen.


    PS: Wenn du die Kommastellen auf 2 reduzieren willst, nutze: %.02f


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Wenn ich bestimmte Daten an ein Filterscript senden möchte, muss ich dann die Public Funktion im Gamemode oder im Filterscript erstellen? xD

    public OnPlayerSpawn(playerid)
    {
    if(SpielerDaten[playerid][ID] == INVALID_PLAYER_ID){CallRemoteFunction("UebertrageDaten","dddd",SpielerDaten[playerid][ID],SpielerDaten[playerid][Level],SpielerDaten[playerid][Admin],SpielerDaten[playerid][Geld]);}
    return 1;
    }


    und...



    public UebertrageDaten(playerid,level,admin,geld)
    {
    level = SpielerDaten[playerid][Level];
    admin = SpielerDaten[playerid][Admin];
    geld = SpielerDaten[playerid][Geld];
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • public OnPlayerSpawn(playerid)
    {
    if(SpielerDaten[playerid][ID] == INVALID_PLAYER_ID){CallRemoteFunction("UebertrageDaten","dddd",SpielerDaten[playerid][ID],SpielerDaten[playerid][Level],SpielerDaten[playerid][Admin],SpielerDaten[playerid][Geld]);}
    return 1;
    }


    Wenn du Daten vom Gamemode zum Filterscript senden willst, dann muss das ins Gamemode.


    Und ins FilterScript das hier:
    //Enum Definierung und Variablen deklaration müssen halt auch im FS vorhanden sein!
    enum s_Enum
    {
    Level,Admin,Geld
    };
    new SpielerDaten[MAX_PLAYERS][s_Enum];


    public UebertrageDaten(playerid,level,admin,geld)
    {
    SpielerDaten[playerid][Level] = level;
    SpielerDaten[playerid][Admin] = admin;
    SpielerDaten[playerid][Geld] = geld;
    return 1;
    }


    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 Andosius ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Oder generell:
    Timer erstellen (SetTimer)
    Loop durch alle Spieler
    IsPlayerInArea (http://forum.sa-mp.com/showthread.php?t=222283)
    Wenn der Spieler jemanden attackiert hat: Strafe


    Sollte er aber das Streamerplugin nutzen, könnte er sich den ganzen Kram auch sparen :D


    Schließlich besitzt das Plugin neben 2 wunderschönen Callbacks auch die IsPlayerIn(Dynamic)Area. @leader_king:


    Nutzt er es allerdings nicht, kann man natürlich auch auf deine Variante zurückgreifen :thumbup:

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Sollte er aber das Streamerplugin nutzen, könnte er sich den ganzen Kram auch sparen :D
    Schließlich besitzt das Plugin neben 2 wunderschönen Callbacks auch die IsPlayerIn(Dynamic)Area. @leader_king:


    Was soll ihm das sparen, wenn er anstatt IsPlayerInArea eben IsPlayerInDynamicArea verwendet? Den Timer braucht er trotzdem und abfragen ob der Spieler jemanden attackiert muss er ebenfalls.
    Mit den zwei Callbacks wird nur getriggert ob der Spieler die Zone betritt oder verlässt, das bringt hier aber relativ wenig.


    Sparen kann er sich da gar nichts. :rolleyes:

  • warum wurde das nicht texturiert?:


    shint = CreateObject(19377, 231.98621, 1812.54163, 1023.92413, 0.00000, 0.00000, 0.00000);


    new shint;
    SetObjectMaterial(shint, 0, 4981, "wiresetc2_las", "lasunion7", 0xFFFFFFFF);


    Danke im vorraus.

  • Unter die Includes:
    new shint;


    OnGameModeInit:
    shint = CreateObject(19377, 231.98621, 1812.54163, 1023.92413, 0.00000, 0.00000, 0.00000);


    Dort wo du das Objekt texturieren willst:
    SetObjectMaterial(shint, 0, 4981, "wiresetc2_las", "lasunion7", 0xFFFFFFFF);



    Oder wenn es alles bei OnGameModeInit stattfinden soll:
    new shint;
    shint = CreateObject(19377, 231.98621, 1812.54163, 1023.92413, 0.00000, 0.00000, 0.00000);
    SetObjectMaterial(shint, 0, 4981, "wiresetc2_las", "lasunion7", 0xFFFFFFFF);


    Falls das nicht klappt, versuche mal einen anderen Index (die 0 vor 4981 bei SetObjectMaterial zu 1/2/... ändern).


  • Hatte alles schon unter OnGamemodeinit will immer noch nicht gehen