Not logged inClonkspot Forum
Forum Home Help Search Register Login
Up Topic Deutsch / Hilfestellung / [Gelöst] Gemeinsame Sicht bei Kriegsnebel?
- - By Serpens66 (More than 200 posts.) Date 21.03.2016 11:36
Hallo :)

Wenn man den Kriegsnebel aktiviert, kann man mit SetPlrViewRange() den Sichtradius angeben, den ein Objekt seinem Besitzer geben soll.

Ist es auch irgendwie möglich, dass diese Sicht mit "nicht feindlichen" Spielern geteilt wird?
Parent - - By ala (More than 1000 posts.) Date 21.03.2016 14:01
Im Ritterschlachtenordner hab ich so etwas mal gebaut (Spielregel: Teamsicht).
Parent - - By Serpens66 (More than 200 posts.) Date 21.03.2016 14:40 Edited 21.03.2016 15:49
Ah, super danke :)

Also die Idee ist einfach, über alles, was von allen gesehen werden soll, für jeden spieler ein View Objekt drüberzulegen, was dem Spieler gehört.
Ja ich denke das kann ich auf Gebäude usw. erweitern, super :)

Beim durchschauen fällt mir auf dir fehlt immer der dritte paramter von SetPlrViewRange: http://wiki.nosebud.de/wiki/Undokumentiertes#SetPlrViewRange
(wobei ein viewrange von 10, wie er beim amboss eingestellt ist, schon so klein ist, dass man ihn fast nicht mehr sieht, bzw. ab werten kleiner als 20 ändert sich die sicht hier nicht mehr. Daher ist 128, was bei dir nun überall aktiv ist, schon sinnvoller)

Die Maps sehen auch gut aus :)
Parent - By ala (More than 1000 posts.) Date 21.03.2016 17:03

>Beim durchschauen fällt mir auf dir fehlt immer der dritte paramter von SetPlrViewRange: http://wiki.nosebud.de/wiki/Undokumentiertes#SetPlrViewRange


Ach das ist ja cool. Das kleinere Werte möglich sind wusste ich garnicht.
Parent - - By Serpens66 (More than 200 posts.) Date 21.03.2016 15:15
was ist der Sinn der Execute() Funktion im Teamviewer objekt?

func Execute() {
for(var obj in FindObjects(Find_Owner(NO_OWNER),Find_ID(VIEW))) {
    if(GetAlive(GetActionTarget(0,obj)) && GetOCF(GetActionTarget(0,obj)) & OCF_CrewMember()
    && !(GetOCF(GetActionTarget(0,obj)) & OCF_OnFire()))
     RemoveObject(obj);
    }
return(1);
}

Denn erstmal haben alle View Objekte einen Besitzer. Ohne Besitzer gibts auch kein Sichtfeld. Daher sollte man eig alle ohne besitzer entfernen.
Aber da im Initialize noch // Setowner(-1) steht, geh ich davon aus, dass du zuvor fälschlicherweise sie zu no_owner gemacht hast. daher koennte das in Execute noch ein überbleibsel sein?
Also mal angenommen, es würde mit no_owner funktionieren, warum sollen dann aber alle View objekte von nicht brennenden Clonks entfernt werden?
Bzw wann wird Execute eigentlich aufgerufen?
Parent - By ala (More than 1000 posts.) Date 21.03.2016 17:13
Puh da frägst du mich was. 5 Jahre her und ich code inzwischen ja nurnoch selten.

Ich denke der Check bezieht sich auf Fälle in denen ein Spieler eliminiert wird, und sein Sichtobjekt nun an den Clonks der verbündeten klebt. Sauberer wärs wohl Eliminate Player zu überladen. Zudem gibts noch die temporären Sichtobjekte beim Feuerfangen, diese werden damit auch automatisch gelöscht sobald das Feuer erlischt.
Up Topic Deutsch / Hilfestellung / [Gelöst] Gemeinsame Sicht bei Kriegsnebel?

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill