[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
  • Hey. Wie kann ich abfragen, ob jemand auf dem Desktop ist?


    new SpielerUpdate[MAX_PLAYERS];
    public OnPlayerUpdate(playerid)
    {
    SpielerUpdate[playerid] = gettime();
    return 1;
    }


    Dann bei OnGameModeInit einen Timer:
    SetTimer("CheckDesktop", 1000, 1);


    forward CheckDesktop();
    public CheckDesktop()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(SpielerUpdate[i] + 2 < gettime())
    {
    new AufDesktopSeit = gettime() - SpielerUpdate[i];
    //Dann eben hier mit format und 3D Labels die Variable AufDesktopSeit anzeigen lassen.
    }
    }
    return 1;
    }


    Das +2 ist, damit es nicht immer angezeigt wird wenn es mal kurz laggt.

  • Hay,


    Ich wollte mal fragen wie man mehrere objecte eine textur gibt. Ich habe diese Objecte:


    CreateObject(19449,1236.3000488,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000);
    CreateObject(19449,1226.6999512,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000);
    CreateObject(19449,1225.3000488,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000);
    CreateObject(19449,1206.0000000,-1649.9000244,14.3000002,0.0000000,0.0000000,90.0000000);
    CreateObject(19449,1236.3000488,-1649.8000488,16.1000004,0.0000000,0.0000000,90.0000000);
    CreateObject(19449,1226.6999512,-1649.8000488,16.1000004,0.0000000,0.0000000,90.0000000);
    CreateObject(19449,1225.3000488,-1649.8000488,16.1000004,0.0000000,0.0000000,90.0000000);
    CreateObject(19449,1206.0000000,-1649.9000244,15.8999996,0.0000000,0.0000000,90.0000000);
    CreateObject(6966,1259.7998047,-1685.7998047,12.5000000,0.0000000,0.0000000,179.9945068 );


    Und ich will es mit diesere Texture übersehen:
    SetObjectMaterial(Objekt,Index, 3922, bistro, sw_wallbrick_01, 0);


    Wie kann ich es machen das ich auf einmal alle Objecte diese Texture verpassen kann?

    MfG kleinkiko

    Lust auf ein Rust Server? Dann schau doch mal HIER vorbei :)

  • new Objekt[20], id;
    Objekt[id]=CreateObject(19449,1236.3000488,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1226.6999512,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    //usw...


    for(new i=0; i<sizeof(Objekt); i++) SetObjectMaterial(Objekt[i],Index, 3922, bistro, sw_wallbrick_01, 0);


    Das wäre so der einfachste Weg.

  • new Objekt[20], id;
    Objekt[id]=CreateObject(19449,1236.3000488,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1226.6999512,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    //usw...


    for(new i=0; i<sizeof(Objekt); i++) SetObjectMaterial(Objekt[i],Index, 3922, bistro, sw_wallbrick_01, 0);


    Das wäre so der einfachste Weg.



    Sorry aber so ganz verstehe ich das nicht.Wo muss ich das den eintragen? Kenne mich nicht so mit scripten aus^^

    MfG kleinkiko

    Lust auf ein Rust Server? Dann schau doch mal HIER vorbei :)

  • könntest du mir das vielleicht erweitern`?
    Ich raffs i.wie net :D

  • [quote='kleinkiko','index.php?page=Thread&postID=1667106#post1667106'][quote='Jeffry','index.php?page=Thread&postID=1667100#post1667100']new Objekt[20], id;
    Objekt[id]=CreateObject(19449,1236.3000488,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1226.6999512,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    //usw...


    for(new i=0; i




    Sorry aber so ganz verstehe ich das nicht.Wo muss ich das den eintragen? Kenne mich nicht so mit scripten aus^^


    Oder verwende meinen Stock aus dem Codeschnipseln dazu :)
    http://forum.sa-mp.de/gta-multiplayer-mods/san-andreas-multiplayer/scripting-base/18-n%C3%BCtzliche-codeschnipsel-47#post1627842


    [pwn]stock SetVarMaterial(object_var[],materialindex,modelid,txdname[],texturename[],materialcolor=0,size=sizeof(object_var))
    {
    for(new i=0; i<size; i++)
    {
    SetObjectMaterial(object_var[i],materialindex,modelid,txdname,texturename,materialcolor);
    }
    return 1;
    }


    Ist dann wie das normale SetObjectMaterial, bloß statt dem Object musst du dann "Objekt" eingeben ;)

  • [quote='kleinkiko','index.php?page=Thread&postID=1667106#post1667106'][quote='Jeffry','index.php?page=Thread&postID=1667100#post1667100']new Objekt[20], id;
    Objekt[id]=CreateObject(19449,1236.3000488,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1226.6999512,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    //usw...


    for(new i=0; i




    Sorry aber so ganz verstehe ich das nicht.Wo muss ich das den eintragen? Kenne mich nicht so mit scripten aus^^



    Oder verwende meinen Stock aus dem Codeschnipseln dazu :)
    http://forum.sa-mp.de/gta-multiplayer-mods/san-andreas-multiplayer/scripting-base/18-n%C3%BCtzliche-codeschnipsel-47#post1627842


    [pwn]stock SetVarMaterial(object_var[],materialindex,modelid,txdname[],texturename[],materialcolor=0,size=sizeof(object_var))
    {
    for(new i=0; i<size; i++)
    {
    SetObjectMaterial(object_var[i],materialindex,modelid,txdname,texturename,materialcolor);
    }
    return 1;
    }


    Ist dann wie das normale SetObjectMaterial, bloß statt dem Object musst du dann "Objekt" eingeben ;)


  • Sorry aber so ganz verstehe ich das nicht.Wo muss ich das den eintragen? Kenne mich nicht so mit scripten aus^^


    OnGameModeInit



    könntest du mir das vielleicht erweitern`?
    Ich raffs i.wie net :D


    forward CheckDesktop();
    public CheckDesktop()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(SpielerUpdate[i] + 2 < gettime())
    {
    new AufDesktopSeit = gettime() - SpielerUpdate[i], str[128];
    format(str, sizeof(str), "Seit %d Sekunden AFK.", AufDesktopSeit);
    Update3DTextLabelText(...);
    }
    else //leeren String ins Label setzen, er ist wieder da.
    }
    return 1;
    }
    Das 3D Label sollte zuvor erstellt worden sein, logischerweise.
    Also mehr kann ich dir beim besten Willen nicht machen, wenn du es.jetzt nicht verstehst, dann lass die Finger davon und lern erst mal an was leichterem. ;)

  • könntest du mir das vielleicht erweitern`?
    Ich raffs i.wie net :D


    Hey,
    ich hoffe, du meintest erklären -> Also:


    Es wird bei OnPlayerUpdate die Variable SpielerUpdate[SpielerID] auf die aktuelle Zeit im UNIX Timestamp gesetzt, also die Zeit der letzten Bewegung wird gespeichert.


    So, also: Bei dem public CheckDesktop wird überprüft, ob die Zeit von SpielerUpdate[SpielerID] + 2* kleiner ist als die jetzige Zeit, also wenn ich 3 Sekunden AFK bin, greift das Anticheat!


    * Die 2 ist, damit es nicht bei jedem kurzen Lagg AFK meldet, sondern nur bei stehenbleiben, wenn jemand länger als 2 Sekunden AFK ist.



    Liebe Grüße

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Hallo ich arbeite an einem Aimbottest Befehll jedoch frage ich mich:
    Welche XYZ Pos muss gesettz werden, damti ich hinter dem Spieler kurz bin`??


    SetPlayerPos(playerid, px, py, pz);


    also sowas.. z.B.
    SetPlayerPos(playerid, px, py+5, pz);


    edit:Text

    Einmal editiert, zuletzt von Blood. ()

  • @Blood
    Das kommt drauf an in welche Richtung er schaut und damit musst du dann arbeiten, würde ich jetzt vermuten.
    Y: Desto höher desto weiter im Norden, esto niedriger desto weiter im Süden
    X: Desto höher desto weiter im Osten, desto niedriger (X) desto weiter im Westen


    Wenn du nun überprüft in welche Richtung er schaut (vermute mal 0.0 ist dann Norden, 90° Osten, 180° Süden, 270° Westen) und je nachdem rechnest du die Koordinate hoch und setzt auch von dem Spieler die Richtung in der er schaut. ^^
    Beispiel: Er schaut nach Norden, dann setzt du die Y Koordinate weiter runter, damit er hinter dem Spieler steht und in die Richtung in der er schaut die gleiche.
    Es ist nur eine Vermutung dass es so funktioniert, das mit dem Koordinaten ob (Y höher -> weiter im Norden...) stimmt auf jeden Fall.
    Richtung in der er schaut kriegst du mit SetPlayerFacingAngle/GetPlayerFacingAngle raus. ;)



    Jetzt habe ich auch ein Problem. ^^
    Ich würde gerne mal wissen ob man ein kompletten Array leer kriegt?
    z.B.:
    enum player {
    id,
    name,
    geld,
    ....
    }
    new playerInfo[MAX_PLAYERS][player];
    Nun möchte ich dass wenn ein Spieler connected der komplette playerInfo[playerid] Array leer wird. Geht das oder muss man jede einzelne Variable auf 0 setzen? :/


  • Dazu gibt es genug Möglichkeiten dies via for-schleife zu tun :


    for(new i; i < _:player ; ++i)playerInfo[playerid][player:i]= 0;
    oder
    for(new i; player:i < player; ++i) playerInfo[playerid][player:i] = 0;


    oder


    new x[player];
    playerInfo[playerid] = x;

  • Brauche noch mal Hilfe bei SetObjectMaterial und zwar habe ich ja mehrere Objecte die ich eine neue Texture versehen möchte so klappt auch alles nur bei dem Haus passiert einfach garnix.


    Hier mal ein Screen vom Haus:
    KLICK MICH!



    Hier mein Code:
    new Objekt[20], id;
    Objekt[id]=CreateObject(19449,1236.3000488,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1226.6999512,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1225.3000488,-1649.8000488,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1206.0000000,-1649.9000244,14.3000002,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1236.3000488,-1649.8000488,16.1000004,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1226.6999512,-1649.8000488,16.1000004,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1225.3000488,-1649.8000488,16.1000004,0.0000000,0.0000000,90.0000000); id++;
    Objekt[id]=CreateObject(19449,1206.0000000,-1649.9000244,15.8999996,0.0000000,0.0000000,90.0000000); id++;


    for(new i=0; i<sizeof(Objekt); i++) SetObjectMaterial(Objekt[i],0, 6487, "councl_law2", "rodeo3sjm", 0);


    new Objekt1;
    Objekt1 = CreateObject(6966,1259.7998047,-1685.7998047,12.5000000,0.0000000,0.0000000,179.9945068); //Das ist das Haus
    SetObjectMaterial(Objekt1, 0, 6966, "councl_law2", "rodeo3sjm", 0);


    Bei dem Code:
    new Objekt1;
    Objekt1 = CreateObject(6966,1259.7998047,-1685.7998047,12.5000000,0.0000000,0.0000000,179.9945068);
    SetObjectMaterial(Objekt1, 0, 6966, "councl_law2", "rodeo3sjm", 0);


    Habe ich geguckt ob es was bringt wenn ich es einzeln mache aber es klapp nicht.
    Die Texturen sind nur Testweise dort eigentlich möchte ich später diese Texture haben:
    SetObjectMaterial(Objekt,Index, 3922, bistro, sw_wallbrick_01, 0);


    Ich weiß nicht weiter da ich nicht gut im Scripten bin und mich eigentlich noch nie damit beschäftigt habe^^



    //EDIT:
    Habs selber rausgefunden^^ Das Haus hat mehrere Model Texturen
    :D

    MfG kleinkiko

    Lust auf ein Rust Server? Dann schau doch mal HIER vorbei :)

    Einmal editiert, zuletzt von kleinkiko () aus folgendem Grund: Erledigt!

  • Existiert der Ordner "Accounts"?
    Erstellt er irgendwo die Datei falls sie nicht existiert?
    Und war der Score (in der Tabliste) von dir wirklich auf 30?
    Speicher das Level lieber in einer Variable z.b. playerInfo[playerid][plevel] = 30; und lies die dann aus, ist glaub ich besser & sicherer. (müsstest du dann mit einem enum erstellen)



    Kann man irgendwie den aktuellen timestamp auslesen? (Vergangene Zeit in Sekunden seit 01.01.1970 (glaub ich wenn das so war...))

  • Morgen zusammen,


    ich habe ein Problem mit einem Error,nur kann ich ihn nicht finden.


    Kann villeicht jemand von euch den Grund für diesen Error sehen?


    Hier der Erro und die Zeile:


    Zitat

    Zeile (681) : error 001: expected token: ",", but found ";"


    TogglePlayerControllable(playerid,1);
    GivePlayerMoney(playerid -=Buycars[i][Preis]; <<<Die Errozeile
    Autohaus[j][Kasse]+=Buycars[i][Preis];


    Mehrere Augen sehen besser als 2 :)

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