Seite 1 von 1

Lobby und ingame Player. Wie mache ich das richtig!

Verfasst: 26.06.2012, 23:18
von M0rt3
Hi,

ich habe echt ein Problem.
Habe bisher folgende Aufstellung unter Player Property eingestellt.
TEAM 1
Player 1 Computer
Player 2-7 User
TEAM 2
Player 8 Computer
Player 9-14 User

Wie schaffe ich es jetzt dass Spieler die in die Lobby kommen auch ingane richtig verwendet werden.
Wenn jmd. meine Map joint und dann in das andere Team wechselt, ist er irgendwie mit mir dann verbündet obwohl er im anderen Team wie ich bin. Und die Computer sind auch verbündet obwohl die ja in 2 unterschiedlichen Teams sind. Scheint irgendwie verbuggt zu sein oder ich blick es nicht.

Wäre euch für einen guten Rat sehr verbunden.

Grüße
M0rt3

Re: Lobby und ingame Player. Wie mache ich das richtig!

Verfasst: 29.06.2012, 12:54
von Jack
Es wundert mich,wo hier unsere ganzen Galaxy-Editor Profis sind,sowenige haben wir doch garnicht....ich selbst kenne mich leider garnicht mit dem Thema aus (hab nur in Sc1 Maps gemacht).

Mich würde aber interessieren,was du schon alles probiert hast?
Vielleicht können wir dann gemeinsam rätseln! :D

Schönen Gruß!
Jack

Re: Lobby und ingame Player. Wie mache ich das richtig!

Verfasst: 29.06.2012, 16:26
von SaVi
Ich empfehle es dir die Teams so zu gliedern:
  • Team 1
    Player 1 - 6 User
    Team 2
    Player 7 - 12
    Team 3
    Player 13 Computer
    Team 4
    Player 14 Computer

Dann im Auslöser mit dem Ereignise "Karteninitialisierung"

Code: Alles auswählen

### Setzt den Wert der Variable
--> Jeden Integer von 1 bis 12 auswählen und aktionen ausführen
    Aktionen: --> Wenn dann sonst
         Wenn:  --> Status von Spieler (Auslösender Spieler) == spielt
              Dann: --> Modifiziere (Variable) + 1         (Nenn sie SpielerAmStart)
              Sonst: --> (Leer)

Code: Alles auswählen

### Macht Team 1 untereinander zu Verbündeten
--> Für Jeden Integer (Locale Variable_A) von 1 bis ((SpielerAmStart)) / 2)
   Aktionen: --> Wähle Jeden Integer von 1 bis ((SpielerAmStart)) - 1)
                        Aktionen:  --> Wenn dann sonst
                             Wenn: --> (LocaleVariable_A) + (Ausgewählter Integer)) < 7
                                 Dann: --> Mach Spieler (Locale Variable_A) und Spieler ((Locale Variable_A + Ausgewählter Integer)) zu Verbündeten
                                 Sonst: --> Leer

Code: Alles auswählen

        
### Macht Team 1 mit Team 2 feindlich
--> Für jeden Integer (Locale Variable_A) von 1 bis ((SpielerAmStart / 2))
     Aktionen: --> Wähle jeden Integer von ((SpielerAmStart / 2) + 1) bis (SpielerAmStart)
           Aktionen: --> Mach Spieler (Locale Variable_A) und Spieler (Auslösender Spieler) zu Gegner

Code: Alles auswählen

### Macht Team 2 untereinander zu Verbündeten
--> Für Jeden Integer (Locale Variable_A) von (((SpielerAmStart)) / 2) + 1) bis (SpielerAmStart)
   Aktionen: --> Wähle Jeden Integer von 1 bis 4
                        Aktionen:  --> Wenn dann sonst
                             Wenn: --> (LocaleVariable_A) + (Ausgewählter Integer)) < 13
                                 Dann: --> Mach Spieler (Locale Variable_A) und Spieler ((Locale Variable_A + Ausgewählter Integer)) zu Verbündeten
                                 Sonst: --> Leer

Code: Alles auswählen

### Regelt Allianzen von Computer 13 und 14
Aktionen: --> Wähle jeden Integer von 1 bis 6
     Aktionen: --> Mache Spieler 13 mit (Ausgewählter Integer) zu Verbündeten
                        Mache Spieler 13 mit ((Ausgewählter Integer + 6)) zu Feinden
                        Mache Spieler 14 mit ((Ausgewählter Integer) + 6) zu Verübündeten
                        Mache Spieler 14 mit ((Ausgewählter Integer) zu Feinden
Somit wird alles über Auslöser geregelt.
Tut mir Leid dass es so lange gedauert hat, ich habe einfach momentan so ziemlich garkeine Zeit, wobei jetzt endlich Wochenende ist.

Mfg SaVi

Re: Lobby und ingame Player. Wie mache ich das richtig!

Verfasst: 30.06.2012, 08:46
von M0rt3
Danke Savi,

doch ich finde das kann ja nicht die Lösung sein. Was ist wenn zB 4 Freunde in die Map gehen und durch den trigger dann getrennt werden. Das ist ja blöd. Warum geht das nicht wie in WC3 direkt in der Lobby?
Da muss es doch eine Möglichkeit geben oder machen das die anderen Custommaps Sotis Nexus usw auch über trigger.

Schönes Wochenende
M0rt3

Re: Lobby und ingame Player. Wie mache ich das richtig!

Verfasst: 29.07.2012, 16:35
von M0rt3
Habe für mich jetzt eine Lösung gefunden und möchte diese kurz anreisen für die, die das selbe Problem haben.
Ich habe in der Lobby 2 Teams mit je 5 Slots erstellt.
Das Trigger-System muss ganz neuaufgebaut werden, da wir nicht mehr mit TriggeringPlayer arbeiten können. zumindest nicht mehr im eigentlichen Sinne.

Vorsicht: Ich benutze den englischen Editor

Ich setze eine Record Variable mit Array von 10 ein
  • PLAYER[10]
und den 2 Variablen
  • LobbyPlayer
  • lobbyslot
Jetzt speichern wir in LobbyPlayer die Spieler aus der Lobby der Reihe nach ab.
Das heißt LobbySlot1 = PLAYER[1]LobbyPlayer usw.

Code: Alles auswählen

    Events
        Game - Map initialization
    Local Variables
    Conditions
    Actions
        // TEAM 1
        Variable - Set PLAYER[1].lobbyplayer = (Player 1 from (Players on team 1))
        Variable - Set PLAYER[2].lobbyplayer = (Player 2 from (Players on team 1))
        Variable - Set PLAYER[3].lobbyplayer = (Player 3 from (Players on team 1))
        Variable - Set PLAYER[4].lobbyplayer = (Player 4 from (Players on team 1))
        Variable - Set PLAYER[5].lobbyplayer = (Player 5 from (Players on team 1))
        // Team 2
        Variable - Set PLAYER[6].lobbyplayer = (Player 1 from (Players on team 2))
        Variable - Set PLAYER[7].lobbyplayer = (Player 2 from (Players on team 2))
        Variable - Set PLAYER[8].lobbyplayer = (Player 3 from (Players on team 2))
        Variable - Set PLAYER[9].lobbyplayer = (Player 4 from (Players on team 2))
        Variable - Set PLAYER[10].lobbyplayer = (Player 5 from (Players on team 2))

Jetzt habe ich noch unter den richtigen Spielernummern die obige Variablenzahl gespeichert.

Beispiel: Wenn In PLAYER[1].lobby player = Spieler 8 ist dann Speichere ich nun unter PLAYER[8]lobbyslot die Zahl 1.
Somit kann ich dann aus einem Event mit TriggeringPlayer auf den Slot zu greifen, falls man zB ein Leaderboard hat usw.

Code: Alles auswählen

        General - For each integer p from 1 to 10 with increment 1, do (Actions)
            Actions
                General - For each integer slot from 1 to 5 with increment 1, do (Actions)
                    Actions
                        General - If (Conditions) then do (Actions) else do (Actions)
                            If
                                p == PLAYER[slot].lobby player
                            Then
                                Variable - Set PLAYER[p].lobby slot = slot
Ich hoffe das hilft ein wenig weiter. Ist zwar nur eine Kurzerklärung, doch für Ansätze um das Problem in Griff zu bekommen sollte es genügen.

Greets
M0rt3