You are not logged in.

  • Login
Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

bubbleguj

User / Kunde

  • "bubbleguj" is male
  • "bubbleguj" started this thread

Posts: 704

Location: Vancouver, Canada

Occupation: Special Projects Assistant

Thanks: 9

  • Send private message

1

Thursday, June 18th 2015, 7:16pm

Wie baue ich ein großes War-Plugin auf?

Hallo Leute,

ich plane ein großes "War-Plugin". Es soll verschiedene Gamemodes geben und verschiedene Teams.
Meine Frage ist ganz einfach: Wie baue ich das ganze auf?

Ich habe meine Main Klasse, außerdem habe ich einen WarPlayer, in dem Punkte, Kills etc gespeichert werden.
Eine Game Klasse um das Spiel zu starten, zu stoppen, Spieler zu verwalten, etc.
Das ist so das Grundgerüst.

Aber wie setzte ich die Teams am besten um? Für jedes Team eine neue Klasse oder Teams als Enums? Die selbe Frage für die verschiedenen Gamemodes, was eignet sich am besten?

Wo werden die Spieler eines Teams gespeichert? In der Team Klasse/ dem Team Enum oder im Gamemanager in einer Liste?

Grüße,
bubbleguj
Programmer (noun.)
A person who fixed a problem that you don't have, in a way you don't understand.

Algorithm (noun.)
Word used by programmers when they don't want to explain what they did.

iSEVEN

User / Kunde

  • "iSEVEN" is male

Posts: 1,431

  • Send private message

2

Thursday, June 18th 2015, 7:28pm

Nehm eine Klasse für alle Teams und gestalte die Variablennamen generisch.

Kannst dann zb prefix, Suffix, chatcolor usw setzen

ketrwu14

Moderator

  • "ketrwu14" is male

Posts: 1,430

Thanks: 2

  • Send private message

3

Thursday, June 18th 2015, 8:39pm

Wie du die Teams gestaltest hängt davon ab ob du das Scoreboard verwenden willst. Ein Scoreboard bietet ja bereits die Möglichkeit für Teams.
Ich würde ein Enum für die Team-Bezeichnung machen (Grün, Rot oder wie du eben möchtest). In dem Enum kannst du auch schon Präfixe festlegen.
Falls du keine fixe Team-Anzahl willst lass den Enum weg und schreibs in die Team-Klasse
Dazu würde ich dann eine Team-Klasse mit einer List<Player> machen. In der Klasse dann noch den Enum hinterlegen wenn du dich für einen entscheidest.
Jetzt fehlt noch eine Klasse die die Teams managed. In der hast du dann eine List<Team>.
Dabei rum kommt ggf. eine variable Anzahl an Teams. Der Manager verteilt die Spieler ggf auf alle Teams gleichmäßig.

Ich weiß nicht ganz was du unter War-Plugin verstehst daher ist mir auch unklar was du mit Gamemodes meinst. Ich geh mal von Spielmodi im Sinne von Team, FFA etc aus.
Da kannst du zB mit Interfaces eine Gamemode Klasse erstellen die das Grundgerüst der Klasse hat. Nun erstellst du für jeden Gamemode eine Klasse die Gamemode erweitert.
Deiner Game-Klasse fügst du dann den Gamemode (zB FFA) hinzu. FFA enthält dann die Regeln, was geht und was nicht.

Nur mein erster Gedanke, müsste man genauer durchplanen.

iSEVEN

User / Kunde

  • "iSEVEN" is male

Posts: 1,431

  • Send private message

4

Thursday, June 18th 2015, 10:53pm

Wozu ein Enum? Das kannst du auch in einer Klasse machen und Sparst dir dadurch wieder x beliebige Klassen (variiert halt wv Teams erstellt werden sollen)

...

ketrwu14

Moderator

  • "ketrwu14" is male

Posts: 1,430

Thanks: 2

  • Send private message

5

Friday, June 19th 2015, 3:11pm

Weil es mit Enums objektorientierter ist. Ohne Enum müsste man Präfix und Team-Bezeichnung in Strings in der Team-Klasse ablegen, was einfach unschön ist.

iSEVEN

User / Kunde

  • "iSEVEN" is male

Posts: 1,431

  • Send private message

6

Friday, June 19th 2015, 3:18pm

Ah und Klassen sind nicht objektorientiert?

Nö eben nicht...

Du brauchst halt nur eine Klasse mit x beliebigen Instanzen und nicht x beliebige Klasse inkl Instanzen...

ketrwu14

Moderator

  • "ketrwu14" is male

Posts: 1,430

Thanks: 2

  • Send private message

7

Friday, June 19th 2015, 3:46pm

Doch sind sie, aber davon war nicht die Rede?
Was unschön ist, ist die Team-Bezeichnung (Rot, Grün, Gelb etc), als String in der Klasse abzuspeichern.
Dazu dann noch das Präfix, ebenfalls als String in der Klasse. Zudem ist es auch noch umständlicher.
Schöner, einfacherer ist ein Enum.

iSEVEN

User / Kunde

  • "iSEVEN" is male

Posts: 1,431

  • Send private message

8

Friday, June 19th 2015, 7:01pm

Wo ist das denn bitte umständlich?!

Ein Enum ist schwachsinniger mit x beliebigen Klassen als das ganze in nur einer Klasse zu haben...

ketrwu14

Moderator

  • "ketrwu14" is male

Posts: 1,430

Thanks: 2

  • Send private message

9

Friday, June 19th 2015, 9:11pm

Mit einem Enum ist es auch nur ein Klasse mehr als ohne.

Ohne Enums müsstest du alle Daten zB in HashMaps speichern.
Angenommen man braucht für ein Team 3 Daten
  1. Teamname
  2. Präfix
  3. Spielerlimit

Jetzt brauchst du schon 2 HashMaps.
Den Mist aus einzelnen HashMaps zu pflücken ist unnötig mühselig.
Trägst du nachträglich weitere Daten hinzu dann hast du noch mehr HashMaps.
Ein Enum leistet da Abhilfe, dafür ist er ja da. Das Hinzufügen von Daten ist viel einfacher.

This post has been edited 1 times, last edit by "ketrwu14" (Jun 20th 2015, 10:19am)


Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net

Similar threads