[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
  • Kleine frage:
    Wie kann ich mehreren Objekten ( wände ) eine texture geben ohne jede wand einzelt zu setzen.


    Ich weiß zwar wie man texturen ändert aber leider nicht wie mehrer auf einmal z.b von 20 Wänden. Kann mir wer das erklären?


    Entweder hier oder per pn oder per skype ( kleinkiko09 )


    Thx im vorraus

    MfG kleinkiko

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

  • Erklär es mir bitte genauer: ich habe gerade etwas gebastelt nur das ist ürgendwie fail er startet nicht. #include <a_npc>


    new gStoppedForTraffic = 0;


    public ScanTimer();


    #define SCAN_RADIUS 5.0


    main(){}



    public OnNPCModeInit()
    {
    SetTimer("ScanTimer",1,1);
    }



    LookForAReasonToPause()
    {
    new x=0;


    while(x!=MAX_PLAYERS) {


    if(IsPlayerInRangeOfPoint(x,2.0,2051.5762,-2285.0776,13.5513)) {
    StartPlayback();
    return 1;
    }
    x++;
    }
    return 0;
    }



    //------------------------------------------


    public ScanTimer()
    {


    new ReasonToPause = LookForAReasonToPause();


    if(ReasonToPause && !gStoppedForTraffic)
    {
    StartPlayback();
    gStoppedForTraffic = 1;
    }
    else if(!ReasonToPause && gStoppedForTraffic)
    {
    PauseRecordingPlayback();
    //StartPlayback();
    gStoppedForTraffic = 0;
    }
    }



    //------------------------------------------


    StartPlayback()
    {
    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"neuerversuch");
    gStoppedForTraffic = 0;
    }



    //------------------------------------------


    public OnRecordingPlaybackEnd()
    {
    // PauseRecordingPlayback();
    SetTimer("ScanTimer",1,1);
    }


    //------------------------------------------


    public OnNPCEnterVehicle(vehicleid, seatid)
    {
    //StartPlayback();
    PauseRecordingPlayback();
    }


    //------------------------------------------


    public OnNPCExitVehicle()
    {
    StopRecordingPlayback();
    }

  • Du hast nicht ernsthaft einen Timer mit 1 Millisekunde erstellt???


    Alle:SetTimer("ScanTimer",1,1);
    zu:
    SetTimer("ScanTimer",1000,1);
    reicht völlig, von mir aus auch 500ms, weniger ist unnötig, wenn man bedenkt, dass die Reaktionszeit des Menschen im Durchschnitt bei 1 Sekunde (1000ms) liegt. Da würde ich lieber den Radius etwas größer machen. Aber einen 1ms Timer brennt deine CPU durch.



    LookForAReasonToPause()
    {
    new x=0;
    while(x!=MAX_PLAYERS)
    {
    if(IsPlayerInRangeOfPoint(x,2.0,2051.5762,-2285.0776,13.5513))
    {
    return 1;
    }
    x++;
    }
    return 0;
    }

  • Gibt es eine Möglichkeit, die größe eines Arrays zu ändern.


    Also ich erstelle ein Array:


    new Array[MAX_PLAYERS][50];


    nun möchte ich an einer anderen Stelle die größe ändern zu:
    new Array[MAX_PLAYERS][25];
    Dabei dürfen die Werte die bereits darin gespeichert sind aber nicht verloren gehen, also wenn ich was in Array[MAX_PLAYERS][0] - Array[MAX_PLAYERS][24] gespeichert habe, dürfen die Werte nicht verloren gehen.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Simon: Ja, es gibt die Möglichkeit dazu. Die einzige Einschränkung ist, dass die Variable nicht beides mal "Array" heißen darf, das sollte aber klar sein.


    Beispiel:
    new Array1[MAX_PLAYERS][50];
    new Array2[MAX_PLAYERS][25];
    for(new i=0; i<MAX_PLAYERS; i++) for(new j=0; j<25; j++) Array2[i][j] = Array1[i][j];


    Das würde die ersten 25 Werte des Array1 für jeden Spieler in Array2 schreiben. Array2 wäre dann "voll".


    Eine andere Methode ist mir nicht eingefallen, falls es eine bessere Möglichkeit gibt würde die mich auch interessieren.

  • Habs nun anders gelöst, ist zwar etwas doof, aber so wie ich es vorhatte würde es trotzdem nicht klappen.


    Aber die Frage finde ich trotzdem weiterhin interessant, könnte man bestimmt irgentwo gut gebrauche.
    Ich meinte ein bereits erstelles Array zu ändern. Oder auch einfach den Typ von einer Variablen zu ändern.


    Also das redefinieren von erstellten variabeln, ob typ, ob größe...

  • Hab mal ne kleine Frage, wie kann ich die Warnings los werden?
    C:\Users\Syncid\Desktop\samp\pawno\include\streamer.inc(291) : warning 201: redefinition of constant/macro (symbol "OnPlayerConnect")
    C:\Users\Syncid\Desktop\samp\pawno\include\streamer.inc(311) : warning 201: redefinition of constant/macro (symbol "OnPlayerDisconnect")


    Mir ist bewusst das OnPlayerConnect in der Streamer.inc neu definiert wird, bzw das sagt ja die Meldung aus ( oder? )
    Ich verstehe jedoch nicht wie ich dies beheben kann, ist ein wenig seltsam 8|

  • Funktioniert leider nicht. Ausserdem nutze ich bereits die neuste inlcude und das neuste plugin :S


    Das was er geschrieben hat ist reiner bullshit der warning kommt daher das du ein define mit dem Namen OnPlayerConnect und OnPlayerDisconnect schon in deinem skript hast, also doppelt wo jeweils was anderes
    definiert wird.
    Beispiel wie dies entstehen kann



    #define OnPlayerConnect 1
    #define OnPlayerConnect 2


    Die Verwendung von #pragma unused macht daher kein sinn und bringt auch 0, da du #pragma unused bei dem warning
    warning 203: symbol is never used: "hallo" nutzen kannst um somit den vllt nervenden warning zu entfernen.
    jedoch kann man auch das keyword stock verwenden


    new stock hallo;
    oder

    new hallo;
    #pragma unused hallo;

  • Wie kann ich mehrere Objekten auf einmal eine neue texture geben? Weil ich habe keine lust bei ca 20+ Wänden immer oben im script: new wand1 ect zu machdn kann man das auch anders lösen?


    Wie man einzelnen Wänden eine texture gibt weiß ich aber ich weiß nicht wie man mehreren eine Texture gibt ohne immer fürjede wand ein neues new macht


    Freueich auf eine antwort m :)

    MfG kleinkiko

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