Okay, super - funktioniert einwandfrei.
Jetzt hab ich noch eine Frage, dann hab ich warscheinlich das Multiplayerplugin einigermaßen als Anwender kapiert ^^
Folgendes Problem:
Entity wird in WED gesetzt. (als "Medipack" - spieler läuft drüber und bekommt Hp gutgeschrieben)
Wenn ich es in WED setze, wird es dank synchronize-Befehl am Anfang ja ein globales Entity.
Trotzdem bekomme ich eine Empty-Pointermeldung, wenn ich das Entity mit
enet_ent_remove(enet_ent_globpointer(my));
entfernen möchte.
Per ent_remove geht, aber dann ists ja nur auf dem jeweiligen Clienten gelöscht und nicht global.
function item_hp_event()
{
my.passable = on;
if(you.gesinnung != spieler) {my.leben = 0; return;}
you.leben += my.leben;
my.leben = 0;
}
action item_hp
{
while(enet_get_connection() == NO_CONNECTION) {wait(1);} //wartet bis ein Service initialisiert wird
if(enet_get_connection() == SERVER_MODE || enet_get_connection() == CLIENT_SERVER_MODE) {enet_ent_register(my);} // Server registriert
while(enet_ent_globpointer(my) == ANET_ERROR) {wait(1);} //wartet bis der Entity ein globaler Pointer zugewiesen wird
my.push = -1;
my.leben = 25;
my.event = item_hp_event;
my.enable_push = on;
while(my.leben>0)
{
wait(1);
}
/*if(enet_get_connection() == CLIENT_SERVER_MODE) {*/enet_ent_remove(enet_ent_globpointer(my));//}
}
Meinem Code anzusehn habe ich schon etwas probiert:
- anfangs das Entity nochmal als globales Entity registrieren
- und am Ende die Entity nur vom Clientserver zu löschen, damit das nicht x-mal ausgeführt wird.
Irgendwie wieder ein Denkfehler meinerseits - ich hoff, ich muss euch diesbezüglich nicht mit noch mehr dupfbackenfragen plagen >.<