Repair Punkt an verschiedenen Orten

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
  • Guten Tag Community,


    ich wollte in der Stadt immer ein Repair Punkt machen der alle 15min die Position wechselt.
    Wenn er die Position wechselt soll er nicht an der gleichen Position spawnen.


    Ich habe es momentan so gemacht aber befürchte das es so nicht klappt.


    Spoiler anzeigen
    public UpdateRepair()
    {
    DestroyPickup(rInfo[rPunkt][rPickup]);
    rInfo[rPunkt][rAktiv] = 0;
    new randomr = random(sizeof(rInfo));
    if(randomr == rPunkt)
    {
    UpdateRepair();
    return 1;
    }
    rInfo[randomr ][rPickup] = CreatePickup(1248,1,rInfo[randomr ][rX],rInfo[randomr ][rY],rInfo[randomr ][rZ]);
    rInfo[randomr ][rAktiv] = 1;
    rPunkt= randomr ;
    return 1;
    }


    Der Punkt sollte halt nicht immer an der gleichen Position sein



    Ich hoffe jemand kann mir helfen


    MfG


    Master

  • Habe es grade selbst getestet :)
    rAktive und rPickup habe ich aus dem Enum genommen und dafür 2 Globale Variablen gemacht.


    new RepairPickup, AktiveRepairPickup = -1;
    public UpdateRepair()
    {
    new NewAktiveRepairPickup, count = sizeof(rInfo);
    if(count <= 1)return 0;
    DestroyPickup(RepairPickup);
    do NewAktiveRepairPickup = random(count);
    while(AktiveRepairPickup == NewAktiveRepairPickup);
    AktiveRepairPickup = NewAktiveRepairPickup;
    RepairPickup = CreatePickup(1248,1,rInfo[AktiveRepairPickup][rX],rInfo[AktiveRepairPickup][rY],rInfo[AktiveRepairPickup][rZ]);
    return 1;
    }


    //edit
    Ich habe grade auch nochmal deinen Code oben ausprobiert, der klappt auch ^^
    Startest du denn überhaupt den Timer ?
    public OnGameModeInit()
    {
    SetTimer("UpdateRepair", 900000, true);//15 Minuten
    return 1;
    }

    Einmal editiert, zuletzt von Red_Romeo ()