[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
  • Also ich hab mal eine Frage, Da ich neu im Bereich Scripting bin, wollte ich fragen ob man vllt durch einen befehl als SWAT leader sich und seinen Membern
    einen decknamen geben kann damit nicht jeder weiß wer swat ist und das mann dann /swatduty macht und einen zufälligen namen kriegt.


    hoffe mir kann jemand helfen

  • Kurze Frage zu TextDraws.


    Wenn ich TextDraws unter OnGameModeInit erstelle (TextDrawCreate)
    werden die doch nur "einmal" erstellt und nicht jedes mal wen einer connected, oder?


    Und ist das ok wenn man TextDraws dort erstellt? (Frisst es Ressourcen oder so?)

  • werden die doch nur "einmal" erstellt und nicht jedes mal wen einer connected, oder?


    Sie werden nur einmal erstellt und zwar dann, wenn der Server startet.


    Und ist das ok wenn man TextDraws dort erstellt? (Frisst es Ressourcen oder so?)


    Klar ist es OK, sinnvoller wäre es allerdings, sie erst zu erstellen, wenn sie gebraucht werden ( Streamerprinzip )

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

    Margarete Stokowski

  • Ich steh gerade total aufm schlauch.
    Ich scheitere gerade an einer total simplen sachen.


    Ich habe ein sicheres AntiMoneyHack System entwickelt,
    das so funktioniert:
    Es hat ein eigene Geldanzeige, also eine eigene Geldvariable.
    So bringt das cheaten von geld nichts.


    Mein kleines, peinliches, problem:


    Mein Textdraw sieht so aus:
    $00000000
    Wenn ich nun per PlayerTextDrawSetString den Variablen stand ausgegeben würde, käm das raus:
    $15


    Ich möchte aber das die 0en bei behalten werden.
    Mir würde da jetzt nur ne komplizierte methode mit strlen einfallen, aber ich bin mir sicher das es da was besseres gibt :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Bei der Formatierung zwischen dem %-Zeichen und dem Buchstaben des Platzhalters (bspw. "d") eine Zahl angeben, dann wird der
    auszugebenden Zahl bei Bedarf so viele Leerzeichen vorangestellt, dass die Ausgabe mindestens solang ist wie die angegebene Zahl.


    Beispiel mit printf:
    printf("test %3d", 5); // Ausgabe: "test 5"


    Wenn man vor die Zahl noch eine Null schreibt, werden statt Leerzeichen der Zahl Nullen vorangestellt.


    Beispiele:
    printf("test %05d", 205); // Ausgabe: "test 00205"
    printf("test %07d", 35); // Ausgabe: "test 0000035"

  • Guten Abend, habe da ein problem, undzwar habe ich ein MySQL Acc system, nur ist das Problem das man mit -1 Doller spawnt wenn man sich das erstemal einloggt. Und wenn man -2 oder mehr geld hat, und es gespeichert wird, wird es beim nächsten login wieder auf -1 gesetzt :/


    2. Geht dieser Tele script ? Kann ihn alleine net testen :D



    dcmd_tele(playerid,params[])
    {
    new pid;
    if(sscanf(params,"u", pid))return SendClientMessage(playerid, GELB, "Benutzung: /tele [ID]");
    {
    if(pid == INVALID_PLAYER_ID)
    {
    SendClientMessage(playerid, GELB, "** Der Spieler ist nicht Online.");
    }
    else
    {
    if(SpielerInfo[playerid][pAdminlevel] >= 1)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(pid,x,y,z);
    SetPlayerPos(playerid, x,y,z);
    SendClientMessage(playerid, GELB, "** Du hast dich erfolgreich teleportiert");
    }
    }
    }
    return 1;
    }


    MfG grauerhase


    //EDIT


    Also ich denke der Tele cmd geht nicht ganz :/


    Jmd. eine Idee wie dies hier funktionieren könnte ?



    SetPlayerPos(GetPlayerPos(pid,x,y,z),playerid,x,y,z);

    Einmal editiert, zuletzt von grauerhase ()

  • Dominik.
    Möglicherweise ist meine Erklärung nicht ganz rübergekommen.


    printf("test %07d", 35); // Ausgabe: "test 0000035"
    Bei diesem Beispiel werden die Nullen von selbst hinzugefügt und zwar so viele, dass die Zahl (35) zusammen mit den Nullen 7 Stellen ergibt.
    Da braucht man selbst nichts mehr ausrechnen. Wenn man statt der Zahl 35 die Zahl 101 ausgeben lässt, würde die Ausgabe trotzdem auf insgesamt 7 Stellen kommen.


    Mal konkret auf deinen Fall bezogen:
    printf("$%08d", 15); // Ausgabe: "$00000015"

  • Hey.
    Wenn ich zB. eine Straßenlaterne mit CreateObjekt ganz normal in das public GamemodeInit einfüge,
    dann auf den Server joine und sie umfahre ist sie für immer weg oder(Außnahme restart) ?


    Wenn ja, gibt es eine Möglichkeit das zu verhindern? Eine "Respawnzeit" wie bei Cars?


    mfG
    Driver

  • Die Frage ist mir zwar irgendwie peinlich, weil das eigentlich eine total einfache Sache ist, aber ich bin voll am verzweifeln. :O Ich bin halt gerade dabei ein Fahrzeugsys zu schreiben, und möchte wenn man in ein definiertes Fahrzeug steigt, ein Dialog angezeigt wird, ist ja kein Ding, hab ich auch schon oft gemacht, geht aber irgendwie heute nicht...


    new WangCars[6]; // <- Oben
    // OnGameModeInit ->
    WangCars[0] = AddStaticVehicle(551,-1950.2410,261.1150,35.2693,57.4005,0,0); // WangCarsMerit1 3600
    WangCars[1] = AddStaticVehicle(587,-1957.0510,301.2330,35.1959,126.2591,0,0); // WangCarsEuros2 12000
    WangCars[2] = AddStaticVehicle(405,-1953.3810,271.6151,35.3462,296.7669,0,0); // WangCarsSentinel3 4500
    WangCars[3] = AddStaticVehicle(426,-1948.2458,258.8360,40.7939,64.3357,0,0); // WangCarsPremier4 8000
    WangCars[4] = AddStaticVehicle(527,-1947.7010,269.9408,40.7687,121.3537,0,0); // WangCarsCadrona5 1300
    WangCars[5] = AddStaticVehicle(540,-1956.3584,281.8741,40.9079,179.8739,0,0); // WangCarsVincent6 6000


    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    new string[128];
    new vID;
    vID = GetPlayerVehicleID(playerid);
    if(newstate == PLAYER_STATE_DRIVER)
    {
    for(new i=0;i<sizeof(WangCars);i++)
    {
    if(vID == WangCars[i])
    {
    format(string,sizeof string,"Willkommen bei WangCars!\nMöchtest du dieses Fahrzeug erwerben?\nFahrzeugname: %s\nPreis: %d€",CarName[vID-400],kaufpreis[vID]);
    ShowPlayerDialog(playerid,DIALOG_WANGCARS,DIALOG_STYLE_MSGBOX,"WangCars",string,"Kaufen","Abbrechen");
    TogglePlayerControllable(playerid,0);
    preisid[playerid] = kaufpreis[vID];
    idpreis[playerid] = GetVehicleModel(vID);
    }
    else return SendClientMessage(playerid,ROT,"Ist es nicht!");
    }
    }
    return 1;
    }



    Unter OnVehicleSpawn hab ich noch das, ist aber eig. unwichtig:



    public OnVehicleSpawn(vehicleid)
    {
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    Motor[vehicleid] = false;
    if(vehicleid == WangCars[0])
    {
    kaufpreis[vehicleid] = 3600;
    }
    else if(vehicleid == WangCars[1])
    {
    kaufpreis[vehicleid] = 12000;
    }
    else if(vehicleid == WangCars[2])
    {
    kaufpreis[vehicleid] = 4500;
    }
    else if(vehicleid == WangCars[3])
    {
    kaufpreis[vehicleid] = 8000;
    }
    else if(vehicleid == WangCars[4])
    {
    kaufpreis[vehicleid] = 1300;
    }
    else if(vehicleid == WangCars[5])
    {
    kaufpreis[vehicleid] = 6000;
    }
    return 1;
    }


    Das oben mit dem "Ist es nicht" hab ich nur zum Test gemacht, und es wird immer ist es nicht returnt außer bei WangCars[2], versteh ich nicht, da passiert einfach gar nichts!


    Danke im Voraus. :)
    Es wahrscheinlich eh nur'n kleiner dummer Fehler von mir.. <.<

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • if(GetPlayerHealth(playerid) >= 100) return SetPlayerHealth(playerid,100);


    Bei OnPlayerUpdate oder mit'm Timer abfragen.

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.