Multiplayer KI baut nicht ab

» Siedler Map Source Forum » Siedler DEdK Script Forum » Multiplayer KI baut nicht ab

Seiten: 1 2 Nächste Seite

Play4FuN
#1
04.10.2014 22:01
Beiträge: 704

Multiplayer KI baut nicht ab

Ich versuche mich momentan an einer Multiplayerkarte, leider spielen die KI nicht so ganz mit

Nachdem ich die Computerspieler dazu gebracht habe Gebäude zu bauen und wieder zu reparieren bzw. neu bauen, bleibt (vorerst) nur ein was offen: obwohl einige Rohstoffhaufen in der Nähe der KI liegen UND extracting = 1 aufgerufen wurde, baut die KI keinerlei Rohstoffe ab!

Hat jemand Erfahrung damit oder eine Idee?

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

mcb
#2
04.10.2014 23:18
Beiträge: 1472

Generell ist die S5 KI zu nichts zu gebrauchen...
Versuch mal AI.Village_EnableExtracting(player, flag)

Play4FuN
#3
05.10.2014 09:34
Beiträge: 704

Auf ein Mal ...

Warum auch immer, nun funktioniert zumindest "extracting = 1".

Ich wollte der KI bspw. nach gewisser Zeit mehr Leibis geben - also das Maximum erhöhen. Dazu habe ich erneut SetupPlayerAI aufgerufen, das hat offenbar für Probleme gesorgt, da die KI weder reparierte noch den Bauplan befolgte. (Das Problem habe ich behoben durch AI.Village_SetSerfLimit)

Ich habe mit MP noch wenig Erfahrung, wie sieht es da mit Desyncs aus?
1. Kann ich "normale" Briefings ohne weiteres nutzen?
2. Tribute - kann ich die bspw. für pID 1 UND 2 erstellen, sodass jeder Spieler seine eigenen Tribute hat?
3. Kann ich normal für jeden Spieler Quests erstellen? (Analog zu Tributen, nur andere pID)
4. Message("..." - wird bei jedem Spieler gleichermaßen angezeigt?
5. Wovon sollte ich in einer Koop-Map evtl. die Finger lassen?

Ganz schön viel Hilfe wäre nett - besonders wegen den Quests etc.

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

mcb
#4
05.10.2014 10:48
Beiträge: 1472

So viel kann ich jetzt auch nicht dazu sagen...
1) Ja, Briefings laufen für jeden Spieler getrennt ab. Du solltest allerdings auf die finished und action -funktionen verzichten.
2) Tribute sind super, um das Script zu synchronisieren: Du erstellst für einen KI-Spieler bei Beginn der Map Tribute. Werden diese dann lokal von einem Spieler per GUI.PayTribute bezahlt, läuft die ausgelöste Funktion synchron ab.
3) Müsste eigentlich lokal für jeden Spieler sein, würde ich aber über Tribute synchronisieren.
4) Message ist lokal, für alle gibt es eine Funktion um eine Chatnachricht zu senden (die wird dann über Message ausgegeben).
5) GUI-Änderungen! Für jeden Button jeder Entity würdest du einen Tribut zum synchronisieren brauchen

Play4FuN
#5
05.10.2014 11:32
Beiträge: 704

Oh - das klingt mir etwas zu kompliziert!

Was genau heißt das jetzt für mich?

1. Briefings also ohne action und finished-function - ok.
2. Was meinst Du mit der Synchronisierung über Tribute?
3. Kann ich nun eine Aufgabe einfach zwei Mal erstellen, ein mal mit SpielerID 1 und ein mal mit Spieler ID 2, sodass beide Spieler jeweils die Quest bekommen?
4. Messages kann ich ganz normal verwenden - ok.
5. GUI-Änderungen werde ich nicht vornehmen...

Danke schonmal für Deine Hilfe, wäre nett, wenn Du mir das mit den Tributen erklären könntest!

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

mcb
#6
05.10.2014 12:36
Beiträge: 1472

Du erstellst in der FMA für jede Quest für jeden Spieler einen Tribut bei Spieler 8 (Gegner-KI => unsichtbar) . Wenn dann ein Spieler eine Quest löst, ruft das Script GUI.PayTribute(player, tributeId) auf, um den Tribut zu bezahlen. In der Callback-Funktion kann dann das Questmenü aktualisiert werden und z.B. Truppen erstellt werden.

Kantelo
#7
05.10.2014 16:36
Beiträge: 357

Wie läuft das eigentlich mit den Camera Funktionen?
Theoretisch ist doch dan auch so was wie RPG im Multiplayer möglich.

mcb
#8
05.10.2014 17:03
Beiträge: 1472

Theoretich ja, aber ich kann dazu nur das sagen, was ich Noigis DOTA-Script finde

Play4FuN
#9
06.10.2014 15:15
Beiträge: 704

DefeatCondition und Aufbau

Meine Koop-Map ist jetzt landschaftlich fertig, nur die KI sind noch nicht "reif" ...

Kann es sein, dass dieser Befehl:

MapEditor_CreateHQDefeatCondition


den Namen oder die ID des Hauptquartiers ändert?

Es gibt auf der ganzen Karte genau eine Einheit mit dem Namen "P1HQ", doch angeblich existiert dieses nicht.

Edit:

Mit dem LuaDebugger herausgefunden: Der Aufruf gibt der Burg automatisch den Namen "MapEditor_LastHQ" - was passiert, wenn ich mehrere Burgen habe, ist noch nicht getestet ...

Nun hänge ich erneut am Aufbau der KI. Trotz Ressis, Leibis und Platz hört sie auf ein mal auf mit Bauen...

Gibt es ein Maximum für den Constructionplan?

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

Dieser Beitrag wurde von Play4FuN am 06.10.2014 um 15:31 editiert.

mcb
#10
06.10.2014 15:35
Beiträge: 1472

Er ändert den Namen, soweit ich weiß...
Einfach nicht verwenden

Play4FuN
#11
06.10.2014 15:44
Beiträge: 704

Zitat von mcb:
Einfach nicht verwenden



Aber wenn ich den Aufruf weglasse, hat dann der entsprechende Spieler trotzdem verloren, wenn er seine (einzige) Burg verliert?

Nochwas: kann man einer KI verbieten best. Truppen zu rekrutieren, also ähnlich zu SetAIunitsToBuild?

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

Zedeg
#12
06.10.2014 16:00
Beiträge: 428

Der Aufruf gibt der Burg automatisch den Namen "MapEditor_LastHQ"


ERNSTHAFT?! Deshalb konnte ich nichts mit meiner Burg anfangen.

Aber wenn ich den Aufruf weglasse, hat dann der entsprechende Spieler trotzdem verloren, wenn er seine (einzige) Burg verliert?


Gerade 'mal getestet: Nö.

Nochwas: kann man einer KI verbieten best. Truppen zu rekrutieren, also ähnlich zu SetAIunitsToBuild?


Mit SetAIUnitsToBuild baut die KI nur diese Einheiten! Sonst keine --> Verbot.

____________________
Journalisten erkundigen sich bei Wissenschaftlern meist nicht nach Grundlagen, sondern eher nach Ergebnissen und Folgerungen. Das erklärt womöglich auch, warum sich Forschungsberichte in den Medien so häufig als feststehende Erkenntnisse lesen, nicht aber als Ideen, Entdeckungen oder Indizien, um die es sich genau genommen in den meisten Fällen handelt. -Axel Bojowski

mcb
#13
06.10.2014 16:03
Beiträge: 1472

Schreib selber einen SimpleJob. Wenn der in der FMA gestartet wird, läuft der auch synchron auf allen PCs.

Play4FuN
#14
06.10.2014 16:05
Beiträge: 704

Zitat von Zedeg:
ERNSTHAFT?! Deshalb konnte ich nichts mit meiner Burg anfangen.


Ja, eben getestet!

Zitat von Zedeg:
Gerade 'mal getestet: Nö.


Mist! Dann muss ich mir was einfallen lassen ...

Zitat von Zedeg:

Mit SetAIUnitsToBuild baut die KI nur diese Einheiten! Sonst keine --> Verbot.


Okay, es gibt also keine "umkehrte" Version!?

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

mcb
#15
06.10.2014 16:09
Beiträge: 1472

Du kannst Logic.PlayerSetGameStateToLost(playerId) nehmen. Viel mehr macht Defeat auch nicht

Play4FuN
#16
06.10.2014 16:10
Beiträge: 704

@mcb: Einen SimpleJob im Sinne von

if IsDead(Burg) then Defeat ...

Ne, das geht nicht so ganz.

Ungefähr so?

StartSimpleJob("NiederlageJobP1")

function NiederlageJobP1()
if IsDead("P1HQ") then
  PlayerSetGameStateToLost(1)
  return true
end
end



____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

mcb
#17
06.10.2014 16:17
Beiträge: 1472

Genau. Und Logic.PlayerSetGameStateToWon(pID) aufrufen, wenn der Gegner besiegt ist.

Play4FuN
#18
06.10.2014 16:30
Beiträge: 704

Zitat von mcb:
Genau. Und Logic.PlayerSetGameStateToWon(pID) aufrufen, wenn der Gegner besiegt ist.


Aber für den Sieg reicht doch der Aufruf von "Victory", dann haben beide Spieler gewonnen (falls beide überlebt haben).

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

mcb
#19
06.10.2014 16:33
Beiträge: 1472

Müsstest du ausprobieren... Ich kann dir nr das sagen was ich aus Noigis DOTA weiß...

Play4FuN
#20
06.10.2014 16:39
Beiträge: 704

Okay, ich gehe/ging davon aus, dass Victory() reicht/funktioniert, weil ich das aus einer anderen Koop-Map habe. Lasset die Tests beginnen. Vielleicht schaffe ich es, noch diese Woche fertig zu werden ... Ich liebe Koop-Karten

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

Play4FuN
#21
07.10.2014 11:19
Beiträge: 704

Kanonen und verdammt dumme KI

Kann ich den Befehl Logic.Upgtadesettlercategory auch auf Kanonen anwenden bzw. wie?

...

Ich hasse die KI, wie man die Siedler 5 KI nur hassen kann! >.<
Nachdem im Singleplaye alles reibungslos geklappt hat, versagen die KI im MP enttäuschend!

Es gibt u.a. 2 KI, die ihre Siedlungen relativ nah aneinander aufbauen mittels constructionplan. Im SP steht die erste Mine samt Wohnhaus und Bauernhof nach nicht ein mal 2 Minuten.
Ich habe jedoch alleine ein LAN-Spiel gestartet ("playalone" und siehe da: KI = doof!
1. Sie benötigen gut 10 min. um überhaupt etwas zu bauen, obwohl Ressis etc. vorhanden
2. Eine der KI bebaut Minen und DZs bei dem ANDEREN Computerspieler, sodass der keine Minen und DZs mehr besetzen kann!

Obwohl im SP alles einwandfrei lief - so ein .... Mist. WIe kann ich das Problem lösen?

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

Dieser Beitrag wurde von Play4FuN am 07.10.2014 um 12:13 editiert.

mcb
#22
07.10.2014 13:07
Beiträge: 1472

Jetzt weißt du, warum ich mir selber eine KI schreibe...

Ich hab leider keine Idee, wie das zu beeinflussen ist. Du kannst dir höchstens mal die anderen Koop-Karten ansehen und deren KI analysieren.

Play4FuN
#23
07.10.2014 13:12
Beiträge: 704

Ich habe ja einiges davon aus anderen MP Koop Maps.

Leider klappt es nur im MP nicht Im SP wie gesagt keine Probleme!!! Trotz selber Karte + Skript.

Liegt es evtl. daran, dass ich dieses "playalone" verwenden habe? Unwahrscheinlich aber ...

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

mcb
#24
07.10.2014 13:28
Beiträge: 1472

Keine Ahnung. Hab noch nie MP gespielt... Wir könnens mal im MP ausprobieren...

Play4FuN
#25
07.10.2014 13:58
Beiträge: 704

Mp

Über s Internet? An sich gerne aber ich hatte Probleme mit meinem Account und außerdem die alte Version und möchte nicht updaten

____________________
LG Play4FuN

Siedler DEdK Mapping + Scripting Tutorials

Seiten: 1 2 Nächste Seite

SiteEngine v1.5.0 by nevermind, ©2005-2007
Design by SpiderFive (www.siedler-games.de) - English translation by juja

Impressum