sorry für die spät antwort. das problem ist eher der konzept deines codes. ich programmiere auch ein multiplayer strategiespiel.
wie du in der main-funktion schon richtig differenziert hast (connection kann aber auch auf dem server den wert 1 haben!) werden die _event funktionen jeweils auf dem server und dem clienten ausgeführt. die funktion roboterfabrik, die dann bei ent_create als parameter übergeben wird startet immer auf dem server! deshalb wird immer der wert player_name vom server genommen. ent_create funktioniert so. du musst den code also überdenken.
(warum my.skill1 = player_name keinen fehler produziert weiß ich nicht, aber man kann variablen (my.skill1) keine strings zuweisen.)
was du benötigst ist ein aufruf von proc_client am anfang von roboterfabrik (aber erst nach wait(-0.5)). die dort angegebene funktion läuft dann auf dem client der ent_create ausgelöst hat. hier kannst du den skill1 dann setzen und per send_skill senden.
bei meinem spiel bekommt jeder spieler seine ID (1, 2, 3, 4). dazu gibt es einige arbeiter als starteinheiten.
keines der gebäude wird dannach per ent_create beim client erzeugt, sondern alle beim server. die arbeiter bekommen den auftrag vom client durch die übertragung einiger skills (send_skill). die neuen gebäude übernehmen dort einfach die ID ihres erbauers. das setzt natürlich vorraus das man die gebäude durch einheiten erreichten lässt.
eins ist auch noch ganz wichtig: der server ist bei connection == 3 noch gleichzeitig client. es sollte daher das client_event auch dort ausgelöst werden, und der gleiche code laufen können wie bei clients. das server_event sollte für dinge wie das checken der siegbedingungen zuständig sein.
Last edited by SchokoKeks; 08/13/08 23:19.