MaP-MaKeRs

MaP-MaKeRs

Logo MaP-MaKeRs
Donnerstag, 2. Mai 2024
  • Status

  • Besucher
    Heute:
    0
    Gestern:
    0
    Gesamt:
    0
  • Benutzer & Gäste
    335 Benutzer registriert, davon online: 30 Gäste
 
Start Einloggen Einloggen Die Mitglieder Das Foren-Team Suchfunktion
2525 Beiträge & 393 Themen in 15 Foren
Keine neuen Beiträge, seit Ihrem letzten Besuch am 02.05.2024 - 22:43.
  Login speichern
Forenübersicht » Joint Operations allgemein » Spawn Points Team Zuweisen geschlossen

vorheriges Thema   nächstes Thema  
42 Beiträge in diesem Thema (geschlossen) Seiten (3): < zurück 1 (2) 3 weiter >
Autor
Beitrag
KF DrAgon ist offline KF DrAgon  
Teamzugehörigkeit
44 Beiträge - Neuling
Das mit dem Stuhl ist ne Sache für sich, da wirst um ne Verlängerung vom Gefängnis nicht drum rum kommen, da kann man meines Wissens nichts ändern.zwinkern
Übrigens: Kannst nen Ausschnitt vom Skript posten? Mich würd echt mal interessieren wiest das gelöst hast.


Dieser Beitrag wurde 1 mal editiert, zuletzt von Dragonheart am 12.04.2007 - 13:49.
Beitrag vom 12.04.2007 - 13:48
Diesen Beitrag melden   nach weiteren Posts von KF DrAgon suchen KF DrAgon`s Profil ansehen KF DrAgon eine E-Mail senden KF DrAgon eine private Nachricht senden KF DrAgon zu Ihren Freunden hinzufügen zum Anfang der Seite
Eraser-EMC2- ist offline Eraser-EMC2-  
82 Beiträge - Neuling
Nein, einen Ausschnitt aus dem WAC-Code werde ich nicht posten.

Ich nutze für jeden Spieler 3 Variablen :

V101 bis V110 : für die PlayerID
V111 bis V120 : für die Teamzugehörigkeit
V121 bis V130 : als Marker, ob der Slot noch besetzt ist

Dann frage ich ab, ob die SpielerID schon gespeichert wurde,
wenn nicht, wird die SpielerID die Teamzugehörigkeit abgespeichert.
Danach teste ich, welche Slots noch von Spielern belegt sind, für die freien Slots setze ich die entsprechende Variable zurück.

Dann überprüfe ich erst, ob ein Spieler in der Nähe eines Spawnpoints ist und welchem dieser angehört.
Ist der Spieler feindlich, wird dieser nun getötet oder weg teleportiert.

Mehr gebe ich zur Zeit nicht preis.



Dieser Beitrag wurde 1 mal editiert, zuletzt von Eraser-EMC2- am 12.04.2007 - 18:48.
Beitrag vom 12.04.2007 - 18:48
Diesen Beitrag melden   nach weiteren Posts von Eraser-EMC2- suchen Eraser-EMC2-`s Profil ansehen Eraser-EMC2- eine E-Mail senden Eraser-EMC2- eine private Nachricht senden Eraser-EMC2-`s Homepage besuchen Eraser-EMC2- zu Ihren Freunden hinzufügen zum Anfang der Seite
KF DrAgon ist offline KF DrAgon  
44 Beiträge - Neuling
Jo ist ok, wennst den Code nicht rausrücken willst ist das deine Sache, aber im großen und ganzen hört sich das ganz gut an, wenn auch die WAC extrem aufgeblasen wird. Wenn ich da an 64 Spieler denk...^^ Hast es schon mit mehreren Leuten getestet oder alles nur im SP probiert?


Dieser Beitrag wurde 1 mal editiert, zuletzt von Dragonheart am 12.04.2007 - 20:47.
Beitrag vom 12.04.2007 - 20:46
Diesen Beitrag melden   nach weiteren Posts von KF DrAgon suchen KF DrAgon`s Profil ansehen KF DrAgon eine E-Mail senden KF DrAgon eine private Nachricht senden KF DrAgon zu Ihren Freunden hinzufügen zum Anfang der Seite
Eraser-EMC2- ist offline Eraser-EMC2-  
82 Beiträge - Neuling
Ich habe mit 2 Spielern getestet.
Als SP findet man viele Fehler erst garnicht.

Hatte zwischenzeitlich auch ein paar Tippfehler drin gehabt, die sich erst mit 2 Spieler bemerkbar machten.

Ich habe es zur Zeit für 10 Spieler ausgelegt und habe inzwischen 7 Kilobyte erreicht.


Dieser Beitrag wurde 1 mal editiert, zuletzt von Eraser-EMC2- am 12.04.2007 - 21:01.
Beitrag vom 12.04.2007 - 20:59
Diesen Beitrag melden   nach weiteren Posts von Eraser-EMC2- suchen Eraser-EMC2-`s Profil ansehen Eraser-EMC2- eine E-Mail senden Eraser-EMC2- eine private Nachricht senden Eraser-EMC2-`s Homepage besuchen Eraser-EMC2- zu Ihren Freunden hinzufügen zum Anfang der Seite
Eraser-EMC2- ist offline Eraser-EMC2-  
keine Weitergabe des WAC-Codes
82 Beiträge - Neuling
das ich den WAC-Code, auch nicht in Auszügen und bis jetzt keinem, poste, ist meine private Angelegenheit und nicht durch den MapMakers beeinflußt, obwohl ich ein Moderator bin.


Dieser Beitrag wurde 1 mal editiert, zuletzt von Eraser-EMC2- am 12.04.2007 - 21:13.
Beitrag vom 12.04.2007 - 21:11
Diesen Beitrag melden   nach weiteren Posts von Eraser-EMC2- suchen Eraser-EMC2-`s Profil ansehen Eraser-EMC2- eine E-Mail senden Eraser-EMC2- eine private Nachricht senden Eraser-EMC2-`s Homepage besuchen Eraser-EMC2- zu Ihren Freunden hinzufügen zum Anfang der Seite
OldMan ist offline OldMan  
110 Beiträge - Gelegenheitsposter
OldMan`s alternatives Ego
ganz einfach, vorausgesetzt es ist eine feste PSP für nur ein bestimmtes Team: wenn einer der PSP zu nahe kommt, wird er 10m oder 20m oder wie man will, von der PSP wieder weg teleportiert.



OldMan


Dieser Beitrag wurde 1 mal editiert, zuletzt von OldMan am 13.04.2007 - 19:00.
Beitrag vom 13.04.2007 - 18:56
Diesen Beitrag melden   nach weiteren Posts von OldMan suchen OldMan`s Profil ansehen OldMan eine E-Mail senden OldMan eine private Nachricht senden OldMan`s Homepage besuchen OldMan zu Ihren Freunden hinzufügen zum Anfang der Seite
Eraser-EMC2- ist offline Eraser-EMC2-  
82 Beiträge - Neuling
Ich habe die Lösung von Dragonheart nochmal mit 2 Spielern getestet und diese funktioniert leider nicht.
Das Problem liegt dabei an dem Command ENTER, so wie Dragonheart vermutet hatte.
Es stirbt immer der erste gespawnte Spieler.

Darauf habe ich eine Lösung erarbeitet, die einmal für jeden Spieler eine eigene Variable und eine Variable als Marker benötigt.
Für 64 Spieler ist diese NUR 8,5 KiloByte groß.

Vom Aufbau her unterscheidet sie sich nicht sehr von der von Dreagonheart.

PLOOP
v200 = 0 //Marker
if (player = 0) and (v101 == 1) then v200 = 1 endif

Damit überprüfe ich, ob SpielerID 0 schon in der äußeren Zone war und setzte die Variable v200 auf 1.

if ( ssnnearssn( player,SSN_Spawnpoint_rot,10) and (v200 == 0) ) or ( ssnnearssn(player,SSN_Spawnpoint_blau,10) and (v200 == 0) ) then

Hiermit überprüfe ich, ob der Spieler in der äußeren Zone ist und ob das Ereignis schonmal ausgelöst worden ist.

Wenn das Ereignis das erste mal ausgelöst wurde (V200 = 0), wird die Variable V101 für die SpielerID 0 gesetzt :

if player == 0 then v101 = 1 endif

Wurde das Ereignis das erste mal ausgelöst und der Spieler nicht in der inneren Zone ist, wird der Spieler getötet.

if ( not ssnnearssn(player,SSN_Spawnpoint_rot,5) ) and ( not ssnnearssn(player,SSN_Spawnpoint_blau,5) ) then
killssn(player)
endif

Nun muß die Variable V101 noch zurückgesetzt werden, wenn der Spieler in keiner der beiden Zonen ist.

if ( not ssnnearssn(player,SSN_Spawnpoint_rot,10) ) and ( not ssnnearssn(player,SSN_Spawnpoint_blau,10) ) then
if player == 0 then
v101 = 0
endif
endif
END

Die Bezeichnungen "SSN_Spawnpoint_rot" und "SSN_Spawnpoint_blau" müssen natürlich mit den SSN-Nummern der Spawnpoints oder anderer Objekte ersetzt werden.
Im NILE werden diese unter ID in der Objektliste zu finden sein.

Man könnte auch ohne die Variable V200 auskommen, aber dann müßte man für jeden der anderen 63 Spieler auch eine Abfrage, ob die Spieler in eine der beiden Zonen sind, erstellen.

Diese Lösung beinhaltet keine Teamerkennung.








Dieser Beitrag wurde 3 mal editiert, zuletzt von Eraser-EMC2- am 14.04.2007 - 15:33.
Beitrag vom 14.04.2007 - 15:24
Diesen Beitrag melden   nach weiteren Posts von Eraser-EMC2- suchen Eraser-EMC2-`s Profil ansehen Eraser-EMC2- eine E-Mail senden Eraser-EMC2- eine private Nachricht senden Eraser-EMC2-`s Homepage besuchen Eraser-EMC2- zu Ihren Freunden hinzufügen zum Anfang der Seite
OldMan ist offline OldMan  
110 Beiträge - Gelegenheitsposter
OldMan`s alternatives Ego
also ohne Teamerkennung muß man es ja nicht komplizierter machen als es ist. habs nicht probiert, müßte aber funktionieren.

PLOOP
if !ssnnearssn(player,PSP1,10) and !ssnnearssn(player,PSP2,10) leave
killssn(player)
endif
END




OldMan
Beitrag vom 14.04.2007 - 18:12
Diesen Beitrag melden   nach weiteren Posts von OldMan suchen OldMan`s Profil ansehen OldMan eine E-Mail senden OldMan eine private Nachricht senden OldMan`s Homepage besuchen OldMan zu Ihren Freunden hinzufügen zum Anfang der Seite
Eraser-EMC2- ist offline Eraser-EMC2-  
82 Beiträge - Neuling
Funktioniert leider nicht,
im Einzelspieler-Modus auf jedenfall, aber
bei mehreren Spieler nicht.
Es ist daselbe Problem wie bei dem "ENTER",

Wenn der erste Spieler außerhalb der Zonen ist, ist die Abfrage "WAHR", nun kommt der zweite Spieler und ist plötzlich durch das Spawnen in eine der Zonen.
Die Abfrage ist nun "UNWAHR" und bei LEAVE tritt das Ereignis beim Wechseln von "WAHR" auf "UNWAHR" zu, somit stirbt der gerade gespawnte Spieler sofort wieder.
Für Joint Ops spielt es hier keine Rolle, das es nun eine andere SpielerID in der Abfrage vorhanden ist, das kann es nicht unterscheiden.

Wenn müßte man für jeden Spieler eine Abfrage erstellen:

PLOOP
if player == 0 then
if !ssnnearssn(player,PSP1,10) and !ssnnearssn(player,PSP2,10) leave
killssn(player)
endif
endif
if player == 1 then
if !ssnnearssn(player,PSP1,10) and !ssnnearssn(player,PSP2,10) leave
killssn(player)
endif
endif
if player == 2 then
if !ssnnearssn(player,PSP1,10) and !ssnnearssn(player,PSP2,10) leave
killssn(player)
endif
endif
...
END

Dann könnte es funktioieren, werde es mal testen.

EDIT:

Bei mir funktioniert so und komme für 64 Spieler auf 7 KiloByte große WAC-datei.

Vorausgesetzt, in der Map sind keine Bots, dann würden sich die PlayerIDs während des Spieles variieren und den WAC-Code vergrößern.
WARUM ?
Die IDs der Bots belegen den unteren Bereich der PlayerIDs, das heißt sind beim Start der Map 16 Bots (ID 0 bis 15) auf der Map, beginnen die PlayerIDs ab 16, stirbt nun ein Bot (zB. ID 8) und wird aus der Map entfernt,
wird die ID 8 frei, die dann von einem neu gejointen Spieler belegt wird.



Dieser Beitrag wurde 3 mal editiert, zuletzt von Eraser-EMC2- am 14.04.2007 - 19:29.
Beitrag vom 14.04.2007 - 18:58
Diesen Beitrag melden   nach weiteren Posts von Eraser-EMC2- suchen Eraser-EMC2-`s Profil ansehen Eraser-EMC2- eine E-Mail senden Eraser-EMC2- eine private Nachricht senden Eraser-EMC2-`s Homepage besuchen Eraser-EMC2- zu Ihren Freunden hinzufügen zum Anfang der Seite
OldMan ist offline OldMan  
RE:
110 Beiträge - Gelegenheitsposter
OldMan`s alternatives Ego
Zitat
Original geschrieben von Eraser-EMC2-
Es ist daselbe Problem wie bei dem "ENTER",


aber bestimmt nicht, enter bedeutet nicht weiter als daß es nur einmal stattfindet (and never then).



OldMan
Beitrag vom 14.04.2007 - 20:27
Diesen Beitrag melden   nach weiteren Posts von OldMan suchen OldMan`s Profil ansehen OldMan eine E-Mail senden OldMan eine private Nachricht senden OldMan`s Homepage besuchen OldMan zu Ihren Freunden hinzufügen zum Anfang der Seite
Eraser-EMC2- ist offline Eraser-EMC2-  
82 Beiträge - Neuling
Klar, ENTER und LEAVE ist nicht daselbe.

Bei ENTER wird das Ereignis EINMAL beim Wechsel von "UNWAHR" auf "WAHR" ausgelöst, bei LEAVE umgekehrt, beim Wechsel von "WAHR" auf "UNWAHR".

Somit entspricht ENTER nicht "never() then", sondern es kann ein zweites mal ausgelöst werden, aber erst wenn die Condition vorher wieder "UNWAHR" war.

Beitrag vom 14.04.2007 - 20:46
Diesen Beitrag melden   nach weiteren Posts von Eraser-EMC2- suchen Eraser-EMC2-`s Profil ansehen Eraser-EMC2- eine E-Mail senden Eraser-EMC2- eine private Nachricht senden Eraser-EMC2-`s Homepage besuchen Eraser-EMC2- zu Ihren Freunden hinzufügen zum Anfang der Seite
OldMan ist offline OldMan  
110 Beiträge - Gelegenheitsposter
OldMan`s alternatives Ego
dann kann es nur das 'and' sein. d.h. einfach für jede PSP einzeln abfragen.

PLOOP
if !ssnnearssn(player,PSP1,10) leave
killssn(player)
endif
if !ssnnearssn(player,PSP2,10) leave
killssn(player)
endif
END




OldMan


Dieser Beitrag wurde 1 mal editiert, zuletzt von OldMan am 14.04.2007 - 22:19.
Beitrag vom 14.04.2007 - 22:15
Diesen Beitrag melden   nach weiteren Posts von OldMan suchen OldMan`s Profil ansehen OldMan eine E-Mail senden OldMan eine private Nachricht senden OldMan`s Homepage besuchen OldMan zu Ihren Freunden hinzufügen zum Anfang der Seite
KF DrAgon ist offline KF DrAgon  
44 Beiträge - Neuling
Ich glaub du verstehst das Problem nicht:
Der Wert ob die IF-Bedingung beim letzten Durchgang falsch oder wahr war, wir ja in ner Variable gespeichert, aber diese Variable wird nur einmal erstellt und dann für alle Durchläufe benutzt. Das heißt, wenn enter beim Spieler 0 einmal ausgelöst wurde muss diese Variable auf wahr stehen und das bedeuted sie steht auch bei Spieler 1 noch auf wahr, egal was beim letzten Durchgang bei Spieler 1 war. Naja nen bisschen blöd zu erklären, ich hoff du verstehsts.zwinkern
Naja vergessen wirs... Einfach dran denken: Kein ENTER, LEAVE und NEVER in Loops außer es ist für jeden Spieler ne extra If-Bedingung vorhanden.

@Eraser: Ich würd statt player lieber ne Variable hochzählen, das kanns zwar mal den falschen erwischen, aber die Chance ist recht gering.
Äh und ne Frage zu deinem Skript oben:
Hast auch getestet, was mit dem passiert, der am PSP spawnt? Ich hab da so nen Verdacht...^^


Dieser Beitrag wurde 6 mal editiert, zuletzt von Dragonheart am 15.04.2007 - 00:30.
Beitrag vom 14.04.2007 - 23:57
Diesen Beitrag melden   nach weiteren Posts von KF DrAgon suchen KF DrAgon`s Profil ansehen KF DrAgon eine E-Mail senden KF DrAgon eine private Nachricht senden KF DrAgon zu Ihren Freunden hinzufügen zum Anfang der Seite
OldMan ist offline OldMan  
110 Beiträge - Gelegenheitsposter
OldMan`s alternatives Ego
ich verstehe das problem schon lol. und welche variable wird nur einmal erstellt ?
Also bei mir geht es, mußte zwar noch eine kleine OR Erweiterung einfügen, da die eine Sekunde wac Durchlauf zu langsam ist und habe GLOOP benutzt und es funktioniert mit leave, und natürlich funktioniert leave und enter im loop, das beweißt schon der Fakt, daß in dem Moment wo 2 exakt gleichzeitig ankommen, beide gleichzeitig sterben, ist aber nicht mein Problem.zwinkern
siehe hier (schlechte Qualität!) das sind 4 Zeilen wac !
video



OldMan


Dieser Beitrag wurde 8 mal editiert, zuletzt von OldMan am 15.04.2007 - 16:44.
Beitrag vom 15.04.2007 - 04:08
Diesen Beitrag melden   nach weiteren Posts von OldMan suchen OldMan`s Profil ansehen OldMan eine E-Mail senden OldMan eine private Nachricht senden OldMan`s Homepage besuchen OldMan zu Ihren Freunden hinzufügen zum Anfang der Seite
Eraser-EMC2- ist offline Eraser-EMC2-  
82 Beiträge - Neuling
Erstmal vorweg gesagt, ich habe soweit alle Versionen im LAN mit 2 Spielern getestet.
Dabei auch das Aufspawnen beachtet, wenn der zweite außerhalb der Zonen ist.

@Oldman:

Das Problem an deiner Lösung ist, das Spieler die aufspawnen sofort sterben, wenn ein Spieler vorher im PLOOP schon außerhalb der Zonen ist.
Hast du das auch mit 2 Spielern getestet ?
Wie gesagt, im Singleplayer funktioniert deine Lösung, aber nicht im Mehrspieler-Modus, wenn einer am Spawnpoint aufspawnt.

@Dragonheart:

Wenn ich dich richtig verstehe, möchtest du die Condition mit der Zone nur einmal nutzen und damit es trotzdem mit mehreren Spieler funktioniert, eine zusätzliche Abfrage einer Counters einfügen.
Dazu hätte ich zur Zeit keine Idee parat, die funktionieren könnte.



Beitrag vom 15.04.2007 - 11:57
Diesen Beitrag melden   nach weiteren Posts von Eraser-EMC2- suchen Eraser-EMC2-`s Profil ansehen Eraser-EMC2- eine E-Mail senden Eraser-EMC2- eine private Nachricht senden Eraser-EMC2-`s Homepage besuchen Eraser-EMC2- zu Ihren Freunden hinzufügen zum Anfang der Seite
Baumstruktur - Signaturen verstecken
Seiten (3): < zurück 1 (2) 3 weiter > vorheriges Thema   nächstes Thema

geschlossen Gehe zu:  
Es ist / sind gerade 0 registrierte(r) Benutzer und 30 Gäste online. Neuester Benutzer: HaraBear
Mit 4540 Besuchern waren am 22.09.2021 - 04:08 die meisten Besucher gleichzeitig online.
Aktive Themen der letzten 24 Stunden | Foren-Topuser
 
  • Buttonbox

  • Geburtstag heute

 
Seite in 0.06303 Sekunden generiert


Diese Website wurde mit PHPKIT WCMS erstellt
PHPKIT ist eine eingetragene Marke der mxbyte GbR © 2002-2012