Hallo,
ich möchte ein Strategiespiel wie Age of Empires erstellen. Ich habe aber nun das Problemm, dass egal wer das Gebäude erstellt hat es immer dem Server-Client gehört. Dadurch kan der Server-Client die gebäude benutzen aber die Clienten, die die Gebäude erstellt haben nicht.

Hier der Code:
Code:
var video_mode = 7;// 800x600 pixels
var video_depth = 32; // 32 bit mode
var shadow_stencil = on;
var startposition[3] = 0, 50,0;
var startposition2[3] = 0, -50,0;
var clicked_destroy = 0;
var breaking = 0;

string map_wmb = <testmap.wmb>;

bmap backmenue_tga = <backmenue.tga>;
bmap destroy_tga = <buttondestroy.tga>;

panel backmenue_pan 
{
	bmap = backmenue_tga;
	pos_x = 0;
	pos_y = 0;
	layer = 10;
	flags = overlay, refresh;
}

panel destroy_button_pan
{
	bmap = destroy_tga;
	pos_x = 0;
	pos_y = 0;
	layer = 11;
	flags = overlay, refresh;
	on_click = click_destroy();
}

function click_destroy(){
	clicked_destroy = 1;
	wait(1);
	clicked_destroy = 0;
	buttons_ausblenden();
}

function buttons_ausblenden(){
	destroy_button_pan.visible = off;
	breaking = 1;
	wait(1);
	breaking = 0;
}

function buttons_ausrichten(){
	backmenue_pan.visible = on;
	backmenue_pan.scale_x = screen_size.x/800;
	backmenue_pan.scale_y = screen_size.y/600;
	backmenue_pan.pos_x = screen_size.x - backmenue_pan.size_x * (screen_size.x/800);
	backmenue_pan.pos_y = screen_size.y - backmenue_pan.size_y * (screen_size.y/600);
	
	destroy_button_pan.scale_x = screen_size.x/800;
	destroy_button_pan.scale_y = screen_size.y/600;
	destroy_button_pan.pos_x =740 * screen_size.x/800;
  	destroy_button_pan.pos_y =540 * screen_size.y/600;
}

function clickevent(){	
	if (event_type == event_click){
		if (my.skill1 == player_name){
			if (my.skill2 == 1){
				breaking = 1;
				wait(1);
				breaking = 0;
				
				destroy_button_pan.visible = on;
				
				while(breaking == 0){
					my.skill3 = clicked_destroy;
					wait(1);
				}
			}
		}
		
		if (my.skill1 != player_name){
			if (my.skill2 == 1){
				
			}
		}
	}
	
	wait(1);
}

action roboterfabrik(){
	my.skill1 = player_name;
	my.skill2 = 1;
	my.skill3 = 0;
	my.skill4 = 0;
	my.enable_click = on;
	my.event = clickevent;
	ent_sendnow(my);
	while(my.skill3 == 0){
		wait(1);
	}
	ent_remove(me);
}

function server_event(){
	ent_create("dummy.mdl",startposition,roboterfabrik);
	wait(1);
}

function client_event(){
	ent_create("dummy.mdl", startposition2, roboterfabrik);
	wait(1);	
}

function main()
{
	fps_max = 140;
	level_load (map_wmb);
	ph_setgravity(vector(0,0,0));
	sky_color.red = 1;
	sky_color.green = 1;
	sky_color.blue = 1;
   
	buttons_ausrichten();
   
	wait (3);
	camera_player();
	maus();
	
	if (!connection){
		wait (-4);
		sys_exit(NULL);
	}
	if (connection == 3){
		server_event();
	}
	else {
		client_event();
	}
}

function camera_player(){
	camera.pos = startposition;
	camera.x = startposition[0] + cos(camera.pan)*-500;
	camera.y = startposition[1] + sin(camera.pan)*-500;
	camera.z += 1000;
	camera.tilt = -69;
	/**
	while(1){
		if (mouse_pos.x > screen_size.x -2||key_cur){
			camera.x += sin(camera.pan)*6;
			camera.y += cos(camera.pan)*-6;
		}
		if (mouse_pos.x < 2||key_cul){
			camera.x += sin(camera.pan)*-6;
			camera.y += cos(camera.pan)*6;
		}
		if (mouse_pos.y > screen_size.y -2||key_cud){
			camera.x += cos(camera.pan)*-6;
			camera.y += sin(camera.pan)*-6;
		}
		if (mouse_pos.y < 2||key_cuu){
			camera.x += cos(camera.pan)*6;
			camera.y += sin(camera.pan)*6;
		}
	*/	
		wait(1);
	}
}

Function maus() { 
	while(1) { 
		mouse_range=100000;
		mouse_mode=1;
		mouse_pos.x = Pointer.x;
		mouse_pos.y = Pointer.y;
		wait(1); 
	} 
}

on_click = buttons_ausblenden;

ich bin für jede Idee dankbar