Lobby und ingame Player. Wie mache ich das richtig!

Habt ihr Fragen zum Galaxy Editor, oder möchtet ihr eure Karte vorstellen? Alles was mit dem Thema Editor und Modding zu tun hat, gehört hier rein.

Moderatoren: Exekutor[NHF], Deathwing, GarfieldKlon, G A F, SaVi

Antworten
M0rt3
Space-Marine
Beiträge: 42
Registriert: 31.05.2012, 11:51

Lobby und ingame Player. Wie mache ich das richtig!

Beitrag 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
Benutzeravatar
Jack
Belagerungspanzer
Beiträge: 900
Registriert: 26.07.2007, 10:39
Liga 1vs1: Diamant
Liga 2vs2: Diamant
Mainrace: Protoss
Wohnort: Baden Würtemberg

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

Beitrag 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
Bild

You speak of knowledge, Judicator? You speak of experience? I have journeyed through the darkness between the most distant stars. I have beheld the births of negative-suns and borne witness to the entropy of entire realities...-Zeratul
SaVi
Moderator des Zwielichts
Moderator des Zwielichts
Beiträge: 616
Registriert: 21.05.2008, 16:53
Liga 1vs1: Diamant
Liga 2vs2: Platin
Mainrace: Protoss

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

Beitrag 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
Bild
M0rt3
Space-Marine
Beiträge: 42
Registriert: 31.05.2012, 11:51

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

Beitrag 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
M0rt3
Space-Marine
Beiträge: 42
Registriert: 31.05.2012, 11:51

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

Beitrag 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
Antworten