ok.. i updated the Script a bit.

here´s the mainscript:
Click to reveal.. ("tankwars.c")
Code:
//=================================================================================================================================
//
//                                       EINBINDEN DER UNTERORDNER UND SCRIPTS
//
//=================================================================================================================================
#include <acknex.h>
#include <default.c>
#include "defines.c"
#include "particles.c"




var debugvar_1;
var debugvar_2;
var debugvar_3;
var playercount = 0;

ENTITY* my_id[3000];
//=================================================================================================================================
//
//                                               FUNKTIONEN
//
//=================================================================================================================================
function on_client_event() // terminate client when server disconnects
{ 
	if (event_type == EVENT_LEAVE) sys_exit("Spiel verlassen!"); 
}

function player_rungame() // reskill2 player when client disconnects
{ 
	if (event_type == EVENT_DISCONNECT) ent_remove(me);
}

//=================================================================================================================================
//
//                                               AKTIONEN
//
//=================================================================================================================================
action flybullet()
{
	set(my, PASSABLE | SHADOW | CAST);
	while(1)
	{
		c_move(my, vector(40*time_step,0,0), NULL, GLIDE | IGNORE_FLAG2 | IGNORE_PASSABLE);
		c_scan(my, my.pan, vector(360,0,20), IGNORE_FLAG2 | IGNORE_PASSABLE | IGNORE_ME);
		if(you)
		{
			if(you.status == 3)
			{
				break;
			}
			else if((you.player_id != my.own_id) && (you.player_team != my.own_team) && (you.status == 2 || you.status == 0))
			{
				you.health -= 50;
				break;
			}
			else if(my.x >= 5000 && my.x <= -5000 && my.y >= 5000 && my.y <= -5000)
			{
				break;
			}
		}
		wait(1);
	}
	ExploA2();
	ExploB2();
	ExploC2();
	ExploD2();
	killflare2();
	ent_remove(my);
}


action spieleraktion()
{
	////////////////////////////////////////////////////// ERSTELLEN DER VIEWS UND LOKALEN OBJEKTE
	VIEW* mycam = view_create(500);
	mycam.size_x = screen_size.x;
	mycam.size_y = screen_size.y;
	mycam.tilt = -90;
	set(mycam, SHOW);
	VIEW* minimap = view_create(1000);
	minimap.pos_x = 10;
	minimap.pos_y = 10;
	minimap.size_x = 250;
	minimap.size_y = 150;
	set(minimap, SHOW);
	reset(camera, SHOW);
	
	PANEL* MM_border = pan_create("", 2000);
	MM_border.pos_x = 6;
	MM_border.pos_y = 6;
	MM_border.bmap = bmap_create("MM_Frame.tga");
	set(MM_border, SHOW);
	
	ENTITY* bulget[3000];
	////////////////////////////////////////////////////// ERSTELLEN DER EVENTS UND FLAGS
	my.event = player_rungame;
	my.emask |= ENABLE_DISCONNECT;
	my.smask |= NOSEND_FRAME; // don't send animation
	set(my, CAST | SHADOW | FAT);
	////////////////////////////////////////////////////// ERSTELLEN DER SKILLS
	//my.skill1 wird vom Mainscript erstellt und gibt die SpielerID an.
	my.health = 1000;
	my.energy = 3000;
	
	////////////////////////////////////////////////////// ERSTELLEN DER LOKALEN DATENTYPEN
	var aniprozent = 0;
	var skill1_old = 0, skill2_old = 0, skill3_old = 0, skill4_old = 0, skill5_old = 0, skill6_old = 0, skill7_old = 0, skill8_old = 0, skill9_old = 0, skill10_old = 0;
	var skill11_old = 0, skill12_old = 0, skill13_old = 0, skill14_old = 0, skill15_old = 0;
	var skill42_old = 0, skill43_old = 0, skill44_old = 0;
	var skill59_old = 0, skill50_old = 0, skill51_old = 0, skill52_old = 0, skill53_old = 0;
	var skill97_old = 0, skill98_old = 0, skill99_old = 0;
	var bulnumb = 0;
	var distance = 0;
	VECTOR* my_vertex = nullvector;
	VECTOR* my_boneang = {x=0; y=0; z=0;}
	ANGLE* my_newboneang;
	////////////////////////////////////////////////////// ERSTELLEN DER KOLLISIONSHÜLLE
	wait(1);
	c_setminmax(my);
	vec_set(my.max_x, vector(my.max_x-12, my.max_y, my.max_z+30));
	vec_set(my.min_x, vector(my.min_x, my.min_y, my.min_z));
	
	////////////////////////////////////////////////////// MAINCODE
	while (1) 
	{
		if (my.client_id == dplay_id)   // player created by this client?
		{
			if (key_w-key_s != my.skill2) { // forward/backward key state changed?
				my.skill2 = key_w-key_s;
				send_skill(my.skill2,0); // send the key state in reliable mode
			}
			if (key_a-key_d != my.skill3) { // rotation key changed?
				my.skill3 = key_a-key_d; 
				send_skill(my.skill3,0); // send rotation state in reliable mode
			}
			if (key_shift != my.skill8) { // running key state changed?
				my.skill8 = key_shift;
				send_skill(my.skill8,0); // send the key state in reliable mode
			}
			if (mouse_right != my.skill6) {
				my.skill6 = mouse_right;
				send_skill(my.skill6,0);
			}
			if (mouse_left != my.skill5) {
				my.skill5 = mouse_left;
				send_skill(my.skill5,0);
			}
			if (key_e != my.button_e) {
				my.button_e = key_e;
				send_skill(my.button_e,0);
			}
			if (key_space != my.button_space) {
				my.button_space = key_space;
				send_skill(my.button_space,0);
			}
			if (key_enter != my.button_enter) {
				my.button_enter = key_enter;
				send_skill(my.button_enter,0);
			}
			if (key_tab != my.button_tab) {
				my.button_tab = key_tab;
				send_skill(my.button_tab,0);
			}
		}

		if (connection & CONNECT_SERVER) // running on the server?
		{
			if (my.skill1 != skill1_old) {
				send_skill(my.skill1,SEND_ALL);
				skill1_old = my.skill1;
			}
			if (my.skill2 != skill2_old) {
				send_skill(my.skill2,SEND_ALL);
				skill2_old = my.skill2;
			}
			if (my.skill3 != skill3_old) {
				send_skill(my.skill3,SEND_ALL);
				skill3_old = my.skill3;
			}
			if (my.skill4 != skill4_old) {
				send_skill(my.skill4,SEND_ALL);
				skill4_old = my.skill4;
			}
			if (my.skill5 != skill5_old) {
				send_skill(my.skill5,SEND_ALL);
				skill5_old = my.skill5;
			}
			if (my.skill5 != skill5_old) {
				send_skill(my.skill5,SEND_ALL);
				skill5_old = my.skill5;
			}
			if (my.skill6 != skill6_old) {
				send_skill(my.skill6,SEND_ALL);
				skill6_old = my.skill6;
			}
			if (my.skill8 != skill8_old) {
				send_skill(my.skill8,SEND_ALL);
				skill8_old = my.skill8;
			}
			if (my.skill10 != skill10_old) {
				send_skill(my.skill10,SEND_ALL);
				skill10_old = my.skill10;
			}
			if (my.skill11 != skill11_old) {
				send_skill(my.skill11,SEND_ALL);
				skill11_old = my.skill11;
			}
			
			if (my.skill42 != skill12_old) {
				send_skill(my.skill12,SEND_ALL);
				skill12_old = my.skill12;
			}
			if (my.skill15 != skill15_old) {
				send_skill(my.skill15,SEND_ALL);
				skill15_old = my.skill15;
			}
			if (my.skill42 != skill42_old) {
				send_skill(my.skill12,SEND_ALL);
				skill12_old = my.skill12;
			}
			if (my.skill43 != skill43_old) {
				send_skill(my.skill13,SEND_ALL);
				skill13_old = my.skill13;
			}
			if (my.skill44 != skill44_old) {
				send_skill(my.skill14,SEND_ALL);
				skill14_old = my.skill14;
			}
			
			if (my.skill50 != skill50_old) {
				send_skill(my.skill50,SEND_ALL);
				skill50_old = my.skill50;
			}
			if (my.skill51 != skill51_old) {
				send_skill(my.skill51,SEND_ALL);
				skill51_old = my.skill51;
			}
			if (my.skill53 != skill53_old) {
				send_skill(my.skill53,SEND_ALL);
				skill53_old = my.skill53;
			}
			
			if (my.skill97 != skill97_old) {
				send_skill(my.skill97,SEND_ALL);
				skill97_old = my.skill97;
			}
			if (my.skill98 != skill98_old) {
				send_skill(my.skill98,SEND_ALL);
				skill98_old = my.skill98;
			}
			if (my.skill99 != skill99_old) {
				send_skill(my.skill99,SEND_ALL);
				skill99_old = my.skill99;
			}
		}
		
		
		if(my.status == 0)
		{
			my.pan += my.skill3*10*time_step;
			distance = my.skill2*(10*(my.skill8+1))*time_step;
			c_move(my, vector(distance,0,0), NULL, GLIDE | IGNORE_SPRITES | IGNORE_PASSABLE);

			if(my.y < -500 && my.y > -1160 && (my.x > 530 || my.x < -530))
			{
				vec_set(mycam.x, vector(my.x, my.y, my.z + 400));
			}
			else
			{
				c_move(my, NULL, vector(0,0,-1), GLIDE | IGNORE_SPRITES | IGNORE_PASSABLE);
				vec_set(mycam.x, vector(my.x, my.y, my.z + 800));
			}
			minimap.tilt = -90;
			vec_set(minimap.x, vector(my.x, my.y, my.z + 1300));
			
			
			if(my.button_e == 1 && my.get_e == 0)
			{
				if(my.get_map == 0)
				{
					set(minimap, SHOW); set(MM_border, SHOW); my.get_map = 1;
				}
				else
				{
					reset(minimap, SHOW); reset(MM_border, SHOW); my.get_map = 0;
				}
				my.get_e = 1;
			}
			else if(my.button_e == 0 && my.get_e == 1)
			{
				my.get_e = 0;
			}
			
			
			if(my.skill5 == 1 && my.get_shot1 == 0)
			{
				if(bulget[bulnumb] != NULL)
				{
					ent_remove(bulget[bulnumb]);
					bulget[bulnumb] = NULL;
				}
				bulget[bulnumb] = ent_create("Bullet.mdl", my.x, flybullet);
				bulget[bulnumb].own_id = my.player_id;
				bulget[bulnumb].own_team = my.player_team;
				bulget[bulnumb].pan = my.pan;
				bulnumb ++;
				if(bulnumb >= 2980){bulnumb = 0;}
				my.get_shot1 = 1;
			}
			else if(my.skill5 == 0 && my.get_shot1 == 1)
			{
				my.get_shot1 = 0;
			}
			
			
			if(my.health <= 1)
			{
				ExploA();
				ExploB();
				ExploC();
				ExploD();
				killflare();
				ent_morph(my, "Spielmodell_killed.mdl");
				my.status = 1;
			}
		}
		else
		{
			if(my.button_space == 1 && my.get_space == 0)
			{
				ent_morph(my, "Spielmodell.mdl");
				my.health = 1000;
				random_seed(0);
				vec_set(my.x, vector(-350+random(700),0,50));
				wait(1);
				my.status = 0;
				my.get_space = 1;
			}
			else if(my.button_enter == 1 && my.get_enter == 0)
			{
				ent_morph(my, "Spielmodell.mdl");
				my.health = 1000;
				random_seed(0);
				vec_set(my.x, vector(-350+random(700),0,50));
				wait(1);
				my.status = 0;
				my.get_enter = 1;
			}
		}
		
		if(my.button_space == 0 && my.get_space == 1){my.get_space = 0;}
		if(my.button_enter == 0 && my.get_enter == 1){my.get_enter = 0;}
		
		wait(1);
	}
}


//=================================================================================================================================
//
//                                               DAS MAINSCRIPT UND SERVERTEST/SENDEN
//
//=================================================================================================================================
function main() 
{
	video_mode = 8;
	if (!connection) { // not started with -cl / -sv -cl?
		if (!session_connect(app_name,"")) // no client found on the localhost?
		session_open(app_name); // start as server
	}
	do { wait(1); }
	while (dplay_status < 2); // wait until the session is opened or joined
	dplay_entrate = 4;  // 16 ticks/4 = 4 updates per second
	dplay_smooth = 0;   // dead reckoning not needed
	dplay_localfunction = 2;

	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Basis
	shadow_stencil = 2;
	shadow_mode |= IGNORE_MODELS;
	
	level_load ("mp_game.wmb");
	vec_set(camera.x, vector(0, 0, 0));
	vec_set(camera.pan, vector (0, -90, 0)); // set a proper camera rotation
	vec_set(sky_color.red, vector (10, 10, 10)); // Sky Color
	mouse_mode = 2;
	mouse_pointer = 1;
	mouse_spot.x = 16;
	mouse_spot.y = 16; 
	mouse_map = bmap_create("cursor.png");
	
	
	//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	if (connection & CONNECT_SERVER) { // this instance of the game runs on the server
		video_window(0,0,0,"Servertest");
		random_seed(0); // allow random player positions
		my_id[playercount] = ent_create ("Spielmodell.mdl", vector(-350+random(700),0,50), spieleraktion); // create OWN player
		wait(1);
		my_id[playercount].skill1 = playercount;
		playercount += 1;
		send_var_to(NULL,playercount);
	} 
	else 
	{ // otherwise, it runs on a connected client
		video_window(0,0,0,player_name);
		random_seed(0); // allow random player positions
		my_id[playercount] = ent_create ("Spielmodell.mdl", vector(-350+random(700),0,50), spieleraktion); // create other players
		wait(1);
		my_id[playercount].skill1 = playercount;
		playercount += 1;
		send_var_to(NULL,playercount);
	}
	while(1)
	{
		vec_set(mouse_pos.x, mouse_cursor.x);
		wait(1);
	}
}


Click to reveal.. ("defines.c")
Code:
#define player_id    skill1  // The id of this Player
#define own_id       skill99 // The id of this Player
#define player_team  skill97  // The id of this Player        
#define own_team     skill98 // The id of this Player     

#define move         skill2  // movement in X-Direction
#define rotate       skill3  // rotating left/right

#define skinning     skill4  // Wich Model is chosen by the player?
#define shot1        skill5  // shot with primary ammo
#define shot2        skill6  // shot with secondary ammo
#define weapon       skill7  // Wich Weapon is Equiped?

#define button_shift skill8  // is Shift pressed?
#define button_e     skill9  // is E pressed?
#define button_space skill10 // is SPACE pressed?
#define button_enter skill11 // is ENTER pressed?
#define button_tab   skill12 // is TAB pressed?

#define health       skill42 // Health of the Player
#define energy       skill43 // Energy of the Player
#define status       skill44 // 0=alive, 1=Dead, 2=frozen, 3=wall

#define towerrotate  skill15 // The new Turret-tower angle


#define get_e     skill59 // is E pressed SWITCH?
#define get_space skill60 // is SPACE pressed SWITCH?
#define get_enter skill61 // is ENTER pressed SWITCH?
#define get_map   skill62 // is Minimap opened SWITCH?
#define get_shot1 skill63 // is Shit1 pressed SWITCH?



What are the Problem at the moment:
1.) The bullets are hitting.. nothing.... o.O
2.) The code creates multiple bullets at the same time...
3.) client seems to lag strong.

Last edited by Espér; 12/21/09 17:44. Reason: redone code

Selling my Acknex Engine Editions (A7 Com & A8 Pro):
>> click here if you are interested <<