Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
2 registered members (TipmyPip, 1 invisible), 18,787 guests, and 8 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
wache schiesst zu langsam #93293
10/06/06 10:45
10/06/06 10:45
Joined: Oct 2006
Posts: 7
X
Xandaros Offline OP
Newbie
Xandaros  Offline OP
Newbie
X

Joined: Oct 2006
Posts: 7
wie bring ich meiner wache bei schneller zu schiessen? die hatn maschinengewehr und schiesst wie ne pistole was kann man machn das die schneller schiesst? welchen wert muss i ändern? plz help

Re: wache schiesst zu langsam [Re: Xandaros] #93294
10/06/06 12:17
10/06/06 12:17
Joined: Apr 2005
Posts: 3,076
Germany, NRW
rvL_eXile Offline

3D Artist
rvL_eXile  Offline

3D Artist

Joined: Apr 2005
Posts: 3,076
Germany, NRW
Poste mal deinen Code dann kann dir mit sicherheit weiter geholfen werden

cYa Angel


Tutorials:
[Blender]Terrain creation ENG/GER
[Blender]Low Poly Tree Modeling
[GIMP]Create a Texture for Terrains
CLICK HERE


Re: wache schiesst zu langsam [Re: rvL_eXile] #93295
10/06/06 13:04
10/06/06 13:04
Joined: Oct 2006
Posts: 7
X
Xandaros Offline OP
Newbie
Xandaros  Offline OP
Newbie
X

Joined: Oct 2006
Posts: 7
ifndef plBipedWeap00_wdl;
define plBipedWeap00_wdl;

// ver: 2
// date: 040505


// title: Biped Player Weapons (00)
// image: plBipedWeap00.pcx
// help: Give the player simple weapons.


// needs: gid01.wdl
// needs: plSelect.wdl, cameraTarget.wdl
// needs: miscInput01.wdl, plBipedInput01.wdl
// needs: bipedPhy01.wdl,
// needs: bipedAnim01.wdl, bipedSnd01.wdl, plBiped01.wdl,
// needs: trigger00.wdl, particle00.wdl,
// needs: weaponfx00.wdl, weapons00.wdl


// external:

// prefix: plBipedWeap00_
// idcode: 015

// enable: Debug Display?
// help: Display debug information for weapon.
// id: 1
//define PLBIPEDWEAP00_DEBUG;

ifdef PLBIPEDWEAP00_DEBUG;
font plBipedWeap00_debug_font = <ackfont.pcx>,6,9;
text plBipedWeap00_debug_txt
{
font = plBipedWeap00_debug_font;
pos_x = 600;
pos_y = 1;
string =
"Weapon Stats\n============\n->curr weapon\n->in clip\n->total ammo\n->cycle?\n->xxxx\n\n->xxx\n->xxx\n->xxx\n->xxxx\n->xxx\n->xxx\n->xxx\n->xxx\n->xxx\n->xxx";

flags = d3d, visible;
}
var plBipedWeap00_debug_data[16];
panel plBipedWeap00_debug_pan
{
pos_x = 570;
pos_y = 10;
digits = 0, 9, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[0]; //current weapon #
digits = 0, 18, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[1]; //ammo in current clip
digits = 0, 27, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[2]; //total ammo ammount
digits = 0, 36, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[3]; //cycle time left
digits = 0, 45, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[4]; //

digits = 0, 63, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[5]; //
digits = 0, 72, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[6]; //
digits = 0, 81, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[7]; //
digits = 0, 90, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[8]; //
digits = 0, 99, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[9]; //
digits = 0, 108, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[10];
digits = 0, 117, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[11];
digits = 0, 126, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[12];
digits = 0, 135, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[13];
digits = 0, 144, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[14];
digits = 0, 153, 5, plBipedWeap00_debug_font, 1, plBipedWeap00_debug_data[15];
flags = refresh, d3d, visible;

}
endif; // PLBIPEDWEAP00_DEBUG --------------------------------------------------------------------


// enable: 3rd Person Tilt?
// help: Use the 3rd person view "head angle" to tilt the gun up and down.
// id: 400
define PLBIPEDWEAP00_3RDPTILT;

//----------------------------------------------------------------------
// Ammo types [current,max]
//----------------------------------------------------------------------
define plBipedWeap00_ammo_tcount = 6; // number of types of ammo
define plBipedWeap00_ammo_count = 0; // ammo count offset
define plBipedWeap00_ammo_max = 1; // max ammo offset
define plBipedWeap00_ammo_field_count = 2; // number of fields in each ammo record
var plBipedWeap00_ammo[12]; //plBipedWeap00_ammo_tcount*2fields

//----------------------------------------------------------------------
// Weapons [valid,id]
//----------------------------------------------------------------------
define plBipedWeap00_weap_count = 8; // number of weapons
//offsets:
define plBipedWeap00_weap_id = 0; // id number of the weapon (from weapons00.wdl)
define plBipedWeap00_weap_valid = 1; // is weapon valid (owned by player)?
define plBipedWeap00_weap_rounds = 2; // current number of rounds in weapon
define plBipedWeap00_weap_field_count = 3; // # of fields
var plBipedWeap00_weapon[24]; // plBipedWeap00_weap_count*2 fields


// entry: Starting weapon
// help: (0 = none, 1-8 = weapon number)
// cntl: spin 0 8 1
// id: 2
var plBipedWeap00_current_weapon = 0; // current weapon equiped by player (0=none)

// current ammo count (can be used by external functions to track/display)
var plBipedWeap00_curr_ammo = 0;

// entry: SwitchTime
// help: Time it takes (in ticks) to switch weapons.
// id: 4
define plBipedWeap00_switch_wait = 6;

//----------------------------------------------------------------------
// section: Crosshair Panels

// todo: move to HUD?

// entry: Crosshair Image
// help: The bitmap image used as the player's crosshair.
// id: 5
bmap plBipedWeap00_crosshair1_bmp = <crosshair_64x64.tga>;

panel plBipedWeap00_crosshair1_pan
{
bmap = plBipedWeap00_crosshair1_bmp;
flags = overlay;
}

//----------------------------------------------------------------------
// Weapon entity (avatar view)

// Model animation format:
// - "stand" frames (idle animation)
// - "shot" frames
// - "reload" frames
// - "switch" weapon frames

entity* plBipedWeap00_cur_weapon_ent; // 3rd person weapon entity
var plBipedWeap00_cur_weapon_vertex = -1;// 3rd person weapon firing vertex

//-------------------------------------------
// section: Weapon #1 Model (avatar view)
entity plBipedWeap00_weapon1_ent
{
// entry: Model
// id: 6
type = <laser_1st.mdl>;
view = camera; // default view

// entry: Offset X
// help: Distance (quants) the model is offset ahead of the player origin.
// id: 7
x = 10;
// entry: Offset Y
// help: Distance (quants) the model is offset to the left of the player origin.
// id: 8
y = -4;
// entry: Offset Z
// help: Distance (quants) the model is offset above the player origin.
// id: 9
z = -5.5;
// entry: Reflectivity
// help: Albedo value.
// cntl: spin 0 100 1
// id: 10
albedo = 50;
// entry: Ambient
// help: The weapon's ambient light value.
// cntl: spin -100 100 1
// id: 11
ambient = 0;
// entry: Layer
// help: Higher layer elements are placed over lower layer elements.
// id: 12
layer = 2;


// entry: Muzzle X Offset
// help: Distance the muzzle is offset forward from the 1st person view.
// id: 93
skill1 = 60;
// entry: Muzzle Y Offset
// help: Distance the muzzle is offset left from the 1st person view.
// id: 94
skill2 = -14;
// entry: Muzzle X Offset
// help: Distance the muzzle is offset up from the 1st person view.
// id: 95
skill3 = -20;

}

// section: Weapon #1 Model (3rd person view)
// entry: 3rd person view model
// entry_help: Should be animated to follow the player's movements
// id: 13
string plBipedWeap00_weapon1_mdl = <tempgun_3rd.mdl>;

// entry: Firing vertex (-1 for none)
// entry_help: Gun muzzle vertex on the 3rd person gun model.
// id: 14
var plBipedWeap00_weapon1_vertex = 128;

//-------------------------------------------
// section: Weapon #2 Model (avatar view)
entity plBipedWeap00_weapon2_ent
{
// entry: model
// id: 15
type = <mgun_1st.mdl>;
view = camera; // default view

// entry: offset x (ahead)
// id: 16
x = 8;
// entry: offset y (left)
// id: 17
y = -4;
// entry: offset z (up)
// id: 18
z = -6;
// entry: Reflectivity
// help: Albedo value.
// cntl: spin 0 100 1
// id: 19
albedo = 50;
// entry: Ambient
// help: The weapon's ambient light value.
// cntl: spin -100 100 1
// id: 20
ambient = 0;
// entry: Layer
// help: Higher layer elements are placed over lower layer elements.
// id: 21
layer = 2;

// entry: Muzzle X Offset
// help: Distance the muzzle is offset forward from the 1st person view.
// id: 96
skill1 = 20;
// entry: Muzzle Y Offset
// help: Distance the muzzle is offset left from the 1st person view.
// id: 97
skill2 = -8;
// entry: Muzzle X Offset
// help: Distance the muzzle is offset up from the 1st person view.
// id: 98
skill3 = -16;

}

// section: Weapon #2 Model (3rd person view)
// entry: 3rd person view model
// entry_help: Should be animated to follow the player's movements
// id: 22
string plBipedWeap00_weapon2_mdl = <tempgun2_3rd.mdl>;

//entry: Firing vertex (-1 for none)
// entry_help: Gun muzzle vertex on the 3rd person gun model.
// id: 23
var plBipedWeap00_weapon2_vertex = 101;

//-------------------------------------------
// section: Weapon #3 Model (avatar view)
entity plBipedWeap00_weapon3_ent
{
// entry: model
// id: 24
type = <shotgun_1st.mdl>;
view = camera; // default view

// entry: offset x (ahead)
// id: 25
x = 10;
// entry: offset y (left)
// id: 26
y = -4;
// entry: offset z (up)
// id: 27
z = -6;
// entry: Reflectivity
// help: Albedo value.
// cntl: spin 0 100 1
// id: 28
albedo = 50;
// entry: Ambient
// help: The weapon's ambient light value.
// cntl: spin -100 100 1
// id: 29
ambient = 0;
// entry: Layer
// help: Higher layer elements are placed over lower layer elements.
// id: 30
layer = 2;

// entry: Muzzle X Offset
// help: Distance the muzzle is offset forward from the 1st person view.
// id: 99
skill1 = 80;
// entry: Muzzle Y Offset
// help: Distance the muzzle is offset left from the 1st person view.
// id: 103
skill2 = -22;
// entry: Muzzle X Offset
// help: Distance the muzzle is offset up from the 1st person view.
// id: 104
skill3 = -25;
}

// section: Weapon #3 Model (3rd person view)
// entry: 3rd person view model
// entry_help: Should be animated to follow the player's movements
// id: 31
string plBipedWeap00_weapon3_mdl = <tempgun3_3rd.mdl>;

//entry: Firing vertex (-1 for none)
// entry_help: Gun muzzle vertex on the 3rd person gun model.
// id: 32
var plBipedWeap00_weapon3_vertex = 101;

//-------------------------------------------
// section: Weapon #4 Model (avatar view)
entity plBipedWeap00_weapon4_ent
{
// entry: model
// id: 33
type = <laser_1st.mdl>;
view = camera; // default view

// entry: offset x (ahead)
// id: 34
x = 10;
// entry: offset y (left)
// id: 35
y = -4;
// entry: offset z (up)
// id: 36
z = -5.5;
// entry: Reflectivity
// help: Albedo value.
// cntl: spin 0 100 1
// id: 37
albedo = 50;
// entry: Ambient
// help: The weapon's ambient light value.
// cntl: spin -100 100 1
// id: 38
ambient = 0;
// entry: Layer
// help: Higher layer elements are placed over lower layer elements.
// id: 39
layer = 2;

// entry: Muzzle X Offset
// help: Distance the muzzle is offset forward from the 1st person view.
// id: 105
skill1 = 80;
// entry: Muzzle Y Offset
// help: Distance the muzzle is offset left from the 1st person view.
// id: 106
skill2 = -16;
// entry: Muzzle X Offset
// help: Distance the muzzle is offset up from the 1st person view.
// id: 107
skill3 = -20;
}

// section: Weapon #4 Model (3rd person view)
// entry: 3rd person view model
// entry_help: Should be animated to follow the player's movements
// id: 40
string plBipedWeap00_weapon4_mdl = <tempgun_3rd.mdl>;

//entry: Firing vertex (-1 for none)
// entry_help: Gun muzzle vertex on the 3rd person gun model.
// id: 41
var plBipedWeap00_weapon4_vertex = -1;

//-------------------------------------------
// section: Weapon #5 Model (avatar view)
entity plBipedWeap00_weapon5_ent
{
// entry: model
// id: 42
type = <laser_1st.mdl>;
view = camera; // default view

// entry: offset x (ahead)
// id: 43
x = 10;
// entry: offset y (left)
// id: 44
y = -4;
// entry: offset z (up)
// id: 45
z = -5.5;
// entry: Reflectivity
// help: Albedo value.
// cntl: spin 0 100 1
// id: 46
albedo = 50;
// entry: Ambient
// help: The weapon's ambient light value.
// cntl: spin -100 100 1
// id: 47
ambient = 0;
// entry: Layer
// help: Higher layer elements are placed over lower layer elements.
// id: 48
layer = 2;


// entry: Muzzle X Offset
// help: Distance the muzzle is offset forward from the 1st person view.
// id: 108
skill1 = 80;
// entry: Muzzle Y Offset
// help: Distance the muzzle is offset left from the 1st person view.
// id: 109
skill2 = -16;
// entry: Muzzle X Offset
// help: Distance the muzzle is offset up from the 1st person view.
// id: 113
skill3 = -20;
}

// section: Weapon #5 Model (3rd person view)
// entry: 3rd person view model
// entry_help: Should be animated to follow the player's movements
// id: 50
string plBipedWeap00_weapon5_mdl = <tempgun_3rd.mdl>;

//entry: Firing vertex (-1 for none)
// entry_help: Gun muzzle vertex on the 3rd person gun model.
// id: 51
var plBipedWeap00_weapon5_vertex = -1;

//-------------------------------------------
// section: Weapon #6 Model (avatar view)
entity plBipedWeap00_weapon6_ent
{
// entry: model
// id: 52
type = <laser_1st.mdl>;
view = camera; // default view

// entry: offset x (ahead)
// id: 53
x = 10;
// entry: offset y (left)
// id: 54
y = -4;
// entry: offset z (up)
// id: 55
z = -5.5;
// entry: Reflectivity
// help: Albedo value.
// cntl: spin 0 100 1
// id: 56
albedo = 50;
// entry: Ambient
// help: The weapon's ambient light value.
// cntl: spin -100 100 1
// id: 57
ambient = 0;
// entry: Layer
// help: Higher layer elements are placed over lower layer elements.
// id: 58
layer = 2;


// entry: Muzzle X Offset
// help: Distance the muzzle is offset forward from the 1st person view.
// id: 114
skill1 = 80;
// entry: Muzzle Y Offset
// help: Distance the muzzle is offset left from the 1st person view.
// id: 115
skill2 = -16;
// entry: Muzzle X Offset
// help: Distance the muzzle is offset up from the 1st person view.
// id: 116
skill3 = -20;
}

// section: Weapon #6 Model (3rd person view)
// entry: 3rd person view model
// entry_help: Should be animated to follow the player's movements
// id: 60
string plBipedWeap00_weapon6_mdl = <tempgun_3rd.mdl>;

//entry: Firing vertex (-1 for none)
// entry_help: Gun muzzle vertex on the 3rd person gun model.
// id: 61
var plBipedWeap00_weapon6_vertex = -1;

//-------------------------------------------
// section: Weapon #7 Model (avatar view)
entity plBipedWeap00_weapon7_ent
{
// entry: model
// id: 62
type = <laser_1st.mdl>;
view = camera; // default view

// entry: offset x (ahead)
// id: 63
x = 10;
// entry: offset y (left)
// id: 64
y = -4;
// entry: offset z (up)
// id: 65
z = -5.5;
// entry: Reflectivity
// help: Albedo value.
// cntl: spin 0 100 1
// id: 66
albedo = 50;
// entry: Ambient
// help: The weapon's ambient light value.
// cntl: spin -100 100 1
// id: 67
ambient = 0;
// entry: Layer
// help: Higher layer elements are placed over lower layer elements.
// id: 68
layer = 2;

// entry: Muzzle X Offset
// help: Distance the muzzle is offset forward from the 1st person view.
// id: 117
skill1 = 80;
// entry: Muzzle Y Offset
// help: Distance the muzzle is offset left from the 1st person view.
// id: 118
skill2 = -16;
// entry: Muzzle X Offset
// help: Distance the muzzle is offset up from the 1st person view.
// id: 119
skill3 = -20;
}

// section: Weapon #7 Model (3rd person view)
// entry: 3rd person view model
// entry_help: Should be animated to follow the player's movements
// id: 70
string plBipedWeap00_weapon7_mdl = <tempgun_3rd.mdl>;

//entry: Firing vertex (-1 for none)
// entry_help: Gun muzzle vertex on the 3rd person gun model.
// id: 71
var plBipedWeap00_weapon7_vertex = -1;

//-------------------------------------------
// section: Weapon #8 Model (avatar view)
entity plBipedWeap00_weapon8_ent
{
// entry: model
// id: 72
type = <laser_1st.mdl>;
view = camera; // default view

// entry: offset x (ahead)
// id: 73
x = 10;
// entry: offset y (left)
// id: 74
y = -4;
// entry: offset z (up)
// id: 75
z = -5.5;
// entry: Reflectivity
// help: Albedo value.
// cntl: spin 0 100 1
// id: 76
albedo = 50;
// entry: Ambient
// help: The weapon's ambient light value.
// cntl: spin -100 100 1
// id: 77
ambient = 0;
// entry: Layer
// help: Higher layer elements are placed over lower layer elements.
// id: 78
layer = 2;

// entry: Muzzle X Offset
// help: Distance the muzzle is offset forward from the 1st person view.
// id: 123
skill1 = 80;
// entry: Muzzle Y Offset
// help: Distance the muzzle is offset left from the 1st person view.
// id: 124
skill2 = -16;
// entry: Muzzle X Offset
// help: Distance the muzzle is offset up from the 1st person view.
// id: 125
skill3 = -20;
}


// section: Weapon #8 Model (3rd person view)
// entry: 3rd person view model
// entry_help: Should be animated to follow the player's movements
// id: 80
string plBipedWeap00_weapon8_mdl = <tempgun_3rd.mdl>;

//entry: Firing vertex (-1 for none)
// entry_help: Gun muzzle vertex on the 3rd person gun model.
// id: 81
var plBipedWeap00_weapon8_vertex = -1;


//----------------------------------------------------------------------
// Initialize Values
//----------------------------------------------------------------------

// image: plBipedWeap00_weapon.pcx
// section: Player Weapons
// Desc: Initialize player weapons
function PlBipedWeap00_Weapon_Init()
{
//-------------------
// section: Weapon #1
// entry: Weapon Template
// entry_help: Weapon from weapons00.wdl template (1-12)
// entry_help: Weapon from weapLaunch00.wdl template (101-106)
// id: 90
plBipedWeap00_weapon[plBipedWeap00_weap_id] = 1;
plBipedWeap00_weapon[plBipedWeap00_weap_id] -= 1; // offset
// entry: Starting Rounds
// help: Starting number of rounds in weapon
// id: 91
plBipedWeap00_weapon[plBipedWeap00_weap_rounds] = 999;
// enable: Player starts with weapon?
// id: 92
plBipedWeap00_weapon[plBipedWeap00_weap_valid] = 1;


//-------------------
// section: Weapon #2
// entry: Weapon Template
// entry_help: Weapon from weapons00.wdl template (1-12)
// entry_help: Weapon from weapLaunch00.wdl template (101-106)
// id: 100
plBipedWeap00_weapon[plBipedWeap00_weap_field_count + plBipedWeap00_weap_id] = 2;
plBipedWeap00_weapon[plBipedWeap00_weap_field_count + plBipedWeap00_weap_id] -= 1; // offset
// entry: Starting Rounds
// help: Starting number of rounds in weapon
// id: 101
plBipedWeap00_weapon[plBipedWeap00_weap_field_count + plBipedWeap00_weap_rounds] = 60;
// enable: Player starts with weapon?
// id: 102
plBipedWeap00_weapon[plBipedWeap00_weap_field_count + plBipedWeap00_weap_valid] = 1;


//-------------------
// section: Weapon #3
// entry: Weapon Template
// entry_help: Weapon from weapons00.wdl template (1-12)
// entry_help: Weapon from weapLaunch00.wdl template (101-106)
// id: 110
plBipedWeap00_weapon[(2*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] = 3;
plBipedWeap00_weapon[(2*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] -= 1; // offset
// entry: Starting Rounds
// help: Starting number of rounds in weapon
// id: 111
plBipedWeap00_weapon[(2*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_rounds] = 20;
// enable: Player starts with weapon?
// id: 112
plBipedWeap00_weapon[(2*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_valid] = 1;


//-------------------
// section: Weapon #4
// entry: Weapon Template
// entry_help: Weapon from weapons00.wdl template (1-12)
// entry_help: Weapon from weapLaunch00.wdl template (101-106)
// id: 120
plBipedWeap00_weapon[(3*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] = 101;
plBipedWeap00_weapon[(3*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] -= 1; // offset
// entry: Starting Rounds
// help: Starting number of rounds in weapon
// id: 121
plBipedWeap00_weapon[(3*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_rounds] = 6;
// enable: Player starts with weapon?
// id: 122
plBipedWeap00_weapon[(3*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_valid] = 1;


//-------------------
// section: Weapon #5
// entry: Weapon Template
// entry_help: Weapon from weapons00.wdl template (1-12)
// entry_help: Weapon from weapLaunch00.wdl template (101-106)
// id: 130
plBipedWeap00_weapon[(4*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] = 5;
plBipedWeap00_weapon[(4*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] -= 1; // offset
// entry: Starting Rounds
// help: Starting number of rounds in weapon
// id: 131
plBipedWeap00_weapon[(4*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_rounds] = 20;
// enable: Player starts with weapon?
// id: 132
// plBipedWeap00_weapon[(4*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_valid] = 1;


//-------------------
// section: Weapon #6
// entry: Weapon Template
// entry_help: Weapon from weapons00.wdl template (1-12)
// entry_help: Weapon from weapLaunch00.wdl template (101-106)
// id: 140
plBipedWeap00_weapon[(5*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] = 6;
plBipedWeap00_weapon[(5*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] -= 1; // offset
// entry: Starting Rounds
// help: Starting number of rounds in weapon
// id: 141
plBipedWeap00_weapon[(5*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_rounds] = 20;
// enable: Player starts with weapon?
// id: 142
// plBipedWeap00_weapon[(5*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_valid] = 1;


//-------------------
// section: Weapon #7
// entry: Weapon Template
// entry_help: Weapon from weapons00.wdl template (1-12)
// entry_help: Weapon from weapLaunch00.wdl template (101-106)
// id: 150
plBipedWeap00_weapon[(6*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] = 7;
plBipedWeap00_weapon[(6*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] -= 1; // offset
// entry: Starting Rounds
// help: Starting number of rounds in weapon
// id: 151
plBipedWeap00_weapon[(6*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_rounds] = 20;
// enable: Player starts with weapon?
// id: 152
// plBipedWeap00_weapon[(6*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_valid] = 1;


//-------------------
// section: Weapon #8
// entry: Weapon Template
// entry_help: Weapon from weapons00.wdl template (1-12)
// entry_help: Weapon from weapLaunch00.wdl template (101-106)
// id: 160
plBipedWeap00_weapon[(7*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] = 8;
plBipedWeap00_weapon[(7*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_id] -= 1; // offset
// entry: Starting Rounds
// help: Starting number of rounds in weapon
// id: 161
plBipedWeap00_weapon[(7*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_rounds] = 20;
// enable: Player starts with weapon?
// id: 162
// plBipedWeap00_weapon[(7*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_valid] = 1;


}

//--------------------------------------------------------------------
// section: Ammo types
// Desc: Initialize player ammo
function PlBipedWeap00_Ammo_Init()
{
// section: Ammo type #1
// entry: Starting Ammo
// id: 170
plBipedWeap00_ammo[plBipedWeap00_ammo_count] = 100;
// entry: Max Ammo
// id: 171
plBipedWeap00_ammo[plBipedWeap00_ammo_max] = 200;
// section: Ammo type #2
// entry: Starting Ammo
// id: 172
plBipedWeap00_ammo[(1*2)+plBipedWeap00_ammo_count] = 30;
// entry: Max Ammo
// id: 173
plBipedWeap00_ammo[(1*2)+plBipedWeap00_ammo_max] = 100;
// section: Ammo type #3
// entry: Starting Ammo
// id: 174
plBipedWeap00_ammo[(2*2)+plBipedWeap00_ammo_count] = 15;
// entry: Max Ammo
// id: 175
plBipedWeap00_ammo[(2*2)+plBipedWeap00_ammo_max] = 100;
// section: Ammo type #4
// entry: Starting Ammo
// id: 176
plBipedWeap00_ammo[(3*2)+plBipedWeap00_ammo_count] = 0;
// entry: Max Ammo
// id: 177
plBipedWeap00_ammo[(3*2)+plBipedWeap00_ammo_max] = 100;
// section: Ammo type #5
// entry: Starting Ammo
// id: 178
plBipedWeap00_ammo[(4*2)+plBipedWeap00_ammo_count] = 0;
// entry: Max Ammo
// id: 179
plBipedWeap00_ammo[(4*2)+plBipedWeap00_ammo_max] = 100;
// section: Ammo type #6
// entry: Starting Ammo
// id: 180
plBipedWeap00_ammo[(5*2)+plBipedWeap00_ammo_count] = 0;
// entry: Max Ammo
// id: 181
plBipedWeap00_ammo[(5*2)+plBipedWeap00_ammo_max] = 100;
}



//----------------------------------------------------------------------
// Default keys
//----------------------------------------------------------------------
// section: Player Input
// entry: Fire Weapon key
// id: 200
string plBipedWeap00_fire_key_c = "mouse_left";
var plBipedWeap00_fire_scancode = 0;
// entry: Reload Weapon key
// id: 201
string plBipedWeap00_reload_key_c = "r";
var plBipedWeap00_reload_scancode = 0;
// entry: Select Next Weapon
// id: 202
string plBipedWeap00_next_key_c = "e";
var plBipedWeap00_next_scancode = 0;
// entry: Select Previous Weapon
// id: 203
string plBipedWeap00_prev_key_c = "q";
var plBipedWeap00_prev_scancode = 0;


// Desc: takes the current values stored in the user defined keys and create scancodes
function PlBipedWeap00_SetKeys()
{
// use MiscInput01_Key_For_Str() to convert strings into scancodes

// fire key
str_cpy(miscInput01_temp_str,plBipedWeap00_fire_key_c);
plBipedWeap00_fire_scancode = MiscInput01_Key_For_Str();

// reload key
str_cpy(miscInput01_temp_str,plBipedWeap00_reload_key_c);
plBipedWeap00_reload_scancode = MiscInput01_Key_For_Str();

// next weapon key
str_cpy(miscInput01_temp_str,plBipedWeap00_next_key_c);
plBipedWeap00_next_scancode = MiscInput01_Key_For_Str();

// prev weapon key
str_cpy(miscInput01_temp_str,plBipedWeap00_prev_key_c);
plBipedWeap00_prev_scancode = MiscInput01_Key_For_Str();

}









//----------------------------------------------------------------------
// Functions
//----------------------------------------------------------------------

//----------------------------------------------------------------------
// Animation
var plBipedWeap00_gun_state = 0;
define plBipedWeap00_state_idle = 0; // gun idle
define plBipedWeap00_state_fire = 1; // gun firing
define plBipedWeap00_state_reload = 2; // gun reloading
define plBipedWeap00_state_switch = 3; // switching gun
var plBipedWeap00_cycle = 0; // ticks left in current cycle

// Desc: animate the current weapon in hand (1st person view)
function PlBipedWeap00_Animate(per)
{
if(plBipedWeap00_gun_state == plBipedWeap00_state_fire)
{
//--old ent_cycle("shot",(per*100));
ent_animate(me,"shot",(per*100),ANM_CYCLE);
return;
}
if(plBipedWeap00_gun_state == plBipedWeap00_state_reload)
{
//--old ent_cycle("reload",(per*100));
ent_animate(me,"reload",(per*100),ANM_CYCLE);
return;
}
if(plBipedWeap00_gun_state == plBipedWeap00_state_switch)
{
//--old ent_cycle("switch",(per*100));
ent_animate(me,"switch",(per*100),ANM_CYCLE);
return;
}
// keep at main frame
//--old ent_cycle("shot",0);
ent_animate(me,"shot",0,ANM_CYCLE);
}


//----------------------------------------------------------------------



// Desc: Reload a weapon clip
//
// Mod: temp
function PlBipedWeap00_Reload_Clip(n_weapon)
{
var weap_offset; // offset into the weapon template array
var plWeap_offset; // offset into the player weapon array
var ammo_offset;
var reload_time; // time the weapon takes to reload

// Calculate Offsets ------------------------------------------------
// calculate offset into player weapon arrays
plWeap_offset = ((n_weapon - 1)*plBipedWeap00_weap_field_count);
if(plWeap_offset < 0) { return(0); }

// use player weapon id to calculate offset into weapons template
weap_offset = plBipedWeap00_weapon[plWeap_offset + plBipedWeap00_weap_id];
if(weap_offset < 100) // using a weapon00 template
{
////////////////////////////////////////
// using a weapons00.wdl weapon template
weap_offset = (weap_offset*weapons00_weap_field_count);
if(weap_offset < 0) { return(0); }

ammo_offset = plBipedWeap00_ammo_field_count * (weapons00_template[weap_offset+weapons00_weap_ammotype]-1);
if(ammo_offset < 0) { return(0); }

// calculate number of rounds short of full clip
temp = weapons00_template[weap_offset+weapons00_weap_clipmax]
- plBipedWeap00_weapon[plWeap_offset+plBipedWeap00_weap_rounds];

// get reload clip time
reload_time = (weapons00_template[weap_offset + weapons00_weap_reloadtime]);
}
else // using a weapLaunch00 template
{
///////////////////////////////////////////
// using a weapLaunch00.wdl weapon template
weap_offset -= 100;
weap_offset = (weap_offset*weapLaunch00_weap_field_count);
if(weap_offset < 0) { return(0); }

ammo_offset = plBipedWeap00_ammo_field_count * (weapLaunch00_template[weap_offset+weapLaunch00_weap_ammotype]-1);
if(ammo_offset < 0) { return(0); }

// calculate number of rounds short of full clip
temp = weapLaunch00_template[weap_offset+weapons00_weap_clipmax]
- plBipedWeap00_weapon[plWeap_offset+plBipedWeap00_weap_rounds];

// get reload clip time
reload_time = (weapLaunch00_template[weap_offset + weapons00_weap_reloadtime]);
}

// remove ammo from total
if(temp <= plBipedWeap00_ammo[ammo_offset])
{
// remove diff from ammo store
plBipedWeap00_ammo[ammo_offset] -= temp;
}
else
{
// empty ammo store
temp = plBipedWeap00_ammo[ammo_offset];
plBipedWeap00_ammo[ammo_offset] = 0;
}

// add to clip
plBipedWeap00_weapon[plWeap_offset+plBipedWeap00_weap_rounds] += temp;

// play reload sound
ent_playsound(plBiped01_entity,weaponfx00_reload_snd,weaponfx00_reload_vol);

// return the reload time
return(reload_time);

}



// Set fx_vec to the 1st person muzzle offset of the current gun
function PlBipedWeap00_1st_Muzzle(&fx_vec,num)
{
if((num < 1) || (num > plBipedWeap00_weap_count))
{
vec_set(fx_vec,vector(0,0,0));
return;
}

if(num < 2) //1
{
vec_set(fx_vec,plBipedWeap00_weapon1_ent.skill1);
return;
}
if(num < 3) //2
{
vec_set(fx_vec,plBipedWeap00_weapon2_ent.skill1);
return;
}
if(num < 4) //3
{
vec_set(fx_vec,plBipedWeap00_weapon3_ent.skill1);
return;
}
if(num < 5) //4
{
vec_set(fx_vec,plBipedWeap00_weapon4_ent.skill1);
return;
}
if(num < 6) //5
{
vec_set(fx_vec,plBipedWeap00_weapon5_ent.skill1);
return;
}
if(num < 7) //6
{
vec_set(fx_vec,plBipedWeap00_weapon6_ent.skill1);
return;
}
if(num < 8) //7
{
vec_set(fx_vec,plBipedWeap00_weapon7_ent.skill1);
return;
}

// 8
vec_set(fx_vec,plBipedWeap00_weapon8_ent.skill1);
}


//----------------------------------------------------------------------
// Weapon fire, cycle, sound functions

// DescL Fire the current weapon00 template weapon
function PlBipedWeap00_Fire_Weapon00(weap_fx,weap_offset,plWeap_offset)
{
var loop; // temp loop value
var temp_vec[3];

// use ammo
if(weapons00_template[weap_offset+weapons00_weap_ammotype] != 0)
{
// weapon uses ammo...
if(plBipedWeap00_weapon[plWeap_offset+plBipedWeap00_weap_rounds] <= 0)
{
//play 'empty' noise
ent_playsound(plBiped01_entity,weaponfx00_empty_snd,weaponfx00_empty_vol);

return(-1);
}
plBipedWeap00_weapon[plWeap_offset+plBipedWeap00_weap_rounds] -= 1; // remove round
}

// in a avatar (first person) view?
if(cameraTarget_avatar_view_q == 1)
{
// use camera rotation and camera target pos for gunshot
vec_set(weapons00_from_vec,cameraTarget_pos_vec);
vec_set(weapons00_to_vec,cameraTarget_ang_vec);

// fx comes from a different place then shot...
PlBipedWeap00_1st_Muzzle(weapons00_fx_vec,plBipedWeap00_current_weapon);// set muzzle offset

/* vec_set(weapons00_fx_vec,vector(80,-16,-20)); // set to current muzzle fx offset
vec_for_vertex(weapons00_from_vec, plBipedWeap00_weapon1_ent, 158);
breakpoint;
weapons00_from_vec.x = weapons00_from_vec.x;
weapons00_from_vec.y = weapons00_from_vec.y;
weapons00_from_vec.x = weapons00_from_vec.z;
/* */
vec_rotate(weapons00_fx_vec,cameraTarget_ang_vec); // rotate by view facing
vec_add(weapons00_fx_vec,cameraTarget_pos_vec.x); // add view pos

}
else
{
// use entity rotation and gun vertex pos for gunshot
if(plSelect_curr_ent == NULL) { return(1); } // no entity
if((plBipedWeap00_cur_weapon_vertex > 0) && (plBipedWeap00_cur_weapon_ent != NULL))
{
vec_for_vertex(weapons00_from_vec, plBipedWeap00_cur_weapon_ent, plBipedWeap00_cur_weapon_vertex);
}
else
{
vec_set(weapons00_from_vec,plSelect_curr_ent.x);
}

vec_set(weapons00_to_vec,plSelect_curr_ent.pan);

ifdef PLBIPEDWEAP00_3RDPTILT;
// use 3rd Person "head angle" to tilt the gun
weapons00_to_vec.tilt = plBiped01_head_ang_vec[1];
endif;

// fx comes from the same area shoot comes from
vec_set(weapons00_fx_vec,weapons00_from_vec);
}

// ignore the current player model
me = plSelect_curr_ent;

if(weap_fx & weapons00_fx_shotgun)
{
// section: Shotgun
// "shotgun" pattern
// entry: Shot Number
// help: Number of 'pellets' in a shotgun shot
// id: 300
loop = 7;
vec_set(temp_vec,weapons00_to_vec); // store angle value (changed in 'Weapons00_Gun_Fire_AngleA')
while(loop > 0)
{
// fire weapon with param: accuracy,range,damage,gun_fx
Weapons00_Gun_Fire_AngleA(weapons00_template[weap_offset + weapons00_weap_acc],
weapons00_template[weap_offset + weapons00_weap_range],
weapons00_template[weap_offset + weapons00_weap_damage],
weap_fx);//plBipedWeap00_weapon[offset + plBipedWeap00_weap_fx]);
loop -= 1;
vec_set(weapons00_to_vec,temp_vec); // restore angle value
}
}
else
{
// fire weapon with param: accuracy,range,damage,gun_fx
Weapons00_Gun_Fire_AngleA(weapons00_template[weap_offset + weapons00_weap_acc],
weapons00_template[weap_offset + weapons00_weap_range],
weapons00_template[weap_offset + weapons00_weap_damage],
weap_fx);//plBipedWeap00_weapon[offset + plBipedWeap00_weap_fx]);
}

// play weapon noise
WeaponFX00_Play_Shot(plBiped01_entity,weapons00_template[weap_offset + weapons00_weap_snd]);

// return reload time
return(weapons00_template[weap_offset + weapons00_weap_cycle]); // cycle time
}


// Desc: Fire the current weapLaunch00 template weapon
function PlBipedWeap00_Fire_WeapLaunch00(weap_fx,weap_offset,plWeap_offset)
{
// use ammo
if(weapLaunch00_template[weap_offset+weapLaunch00_weap_ammotype] != 0)
{
// weapon uses ammo...
if(plBipedWeap00_weapon[plWeap_offset+plBipedWeap00_weap_rounds] <= 0)
{
//play 'empty' noise
ent_playsound(plBiped01_entity,weaponfx00_empty_snd,weaponfx00_empty_vol);

return(-1);
}
plBipedWeap00_weapon[plWeap_offset+plBipedWeap00_weap_rounds] -= 1; // remove round
}

// in a avatar (first person) view?
if(cameraTarget_avatar_view_q == 1)
{
// use camera rotation and camera target pos for gunshot
vec_set(weapons00_from_vec,cameraTarget_pos_vec);
vec_set(weapons00_to_vec,cameraTarget_ang_vec);

// disable any 3rd person only fx
//-- if(weap_fx & weapons00_fx_muzzleflash) { weap_fx -= weapons00_fx_muzzleflash; }
}
else
{
// use entity rotation and gun vertex pos for gunshot
if(plSelect_curr_ent == NULL) { return(1); } // no entity
if((plBipedWeap00_cur_weapon_vertex > 0) && (plBipedWeap00_cur_weapon_ent != NULL))
{
vec_for_vertex(weapons00_from_vec, plBipedWeap00_cur_weapon_ent, plBipedWeap00_cur_weapon_vertex);
}
else
{
vec_set(weapons00_from_vec,plSelect_curr_ent.x);
}

vec_set(weapons00_to_vec,plSelect_curr_ent.pan);
}

// ignore the current player model
me = plSelect_curr_ent;

// launch shell
weapLaunch00_shell_data[0] = weapLaunch00_template[weap_offset + weapLaunch00_weap_speed]; // launch speed
weapLaunch00_shell_data[1] = weapLaunch00_template[weap_offset + weapLaunch00_weap_grav]; // gravity effect
weapLaunch00_shell_data[2] = weapLaunch00_template[weap_offset + weapLaunch00_weap_damage];// base damage
weapLaunch00_shell_data[3] = weapLaunch00_template[weap_offset + weapLaunch00_weap_radius];// blast radius

WeapLaunch00_Fire_AngleA(weapLaunch00_template[weap_offset + weapLaunch00_weap_shell]);


// play weapon launch noise
WeaponFX00_Play_Shot(plBiped01_entity,weapLaunch00_template[weap_offset + weapLaunch00_weap_snd]);

// play launching fx
Weapons00_Gun_FX(weap_fx);

// return reload time
return(weapLaunch00_template[weap_offset + weapLaunch00_weap_cycle]); // cycle time
}


// Desc: Fire the current weapon.
function PlBipedWeap00_Fire_Current(weap_fx)
{
var weap_offset; // offset into the weapon template array
var plWeap_offset; // offset into the player weapon array

if((plBipedWeap00_current_weapon <= 0) || (plBipedWeap00_current_weapon >= plBipedWeap00_weap_count))
{
// no weapon
return(-1);
}

// Calculate Offsets ------------------------------------------------
// calculate offset into player weapon arrays
plWeap_offset = ((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count);
if(plWeap_offset < 0) { return(0); }
// use player weapon id to calculate offset into weapons template
weap_offset = plBipedWeap00_weapon[plWeap_offset + plBipedWeap00_weap_id];
if(weap_offset < 100) // using a weapon00 template
{
////////////////////////////////////////
// using a weapons00.wdl weapon template
weap_offset = ((weap_offset)*weapons00_weap_field_count);
if(weap_offset < 0) { return(0); }

return(PlBipedWeap00_Fire_Weapon00(weap_fx,weap_offset,plWeap_offset));

}
else
{
////////////////////////////////////////////
// using a weapLaunch00.wdl weapon template
weap_offset -= 100;
weap_offset = (weap_offset*weapLaunch00_weap_field_count);
if(weap_offset < 0) { return(0); }

return(PlBipedWeap00_Fire_WeapLaunch00(weap_fx,weap_offset,plWeap_offset));
}

return(0);
}



// Desc: select the 'next' weapon
function PLWeapons00_Select_Next()
{
temp = plBipedWeap00_current_weapon; // save the current weapon_number
plBipedWeap00_current_weapon += 1;
while(temp != plBipedWeap00_current_weapon)
{
if(plBipedWeap00_current_weapon > plBipedWeap00_weap_count)
{
plBipedWeap00_current_weapon = 0;
if(temp == 0) // started with no weapon
{
return(0);
}
}
if(plBipedWeap00_current_weapon > 0)
{
if( plBipedWeap00_weapon[((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_valid]== 1)
{
return(plBipedWeap00_current_weapon);
}
}
plBipedWeap00_current_weapon += 1; // try next weapon
}

// check to make sure the starting weapon is valid
if( plBipedWeap00_weapon[((temp - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_valid]== 1)
{
plBipedWeap00_current_weapon = temp;
return(plBipedWeap00_current_weapon);
}
return(0); // no weapon
}

// Desc: select the 'prev' weapon
function PLWeapons00_Select_Prev()
{
temp = plBipedWeap00_current_weapon; // save the current weapon_number
plBipedWeap00_current_weapon -= 1;
while(temp != plBipedWeap00_current_weapon)
{
if(plBipedWeap00_current_weapon < 0)
{
plBipedWeap00_current_weapon = plBipedWeap00_weap_count;
if(temp == plBipedWeap00_weap_count) // started with max weapon
{
return(plBipedWeap00_weap_count);
}
}
if(plBipedWeap00_current_weapon > 0)
{
if( plBipedWeap00_weapon[((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_valid]== 1)
{
return(plBipedWeap00_current_weapon);
}
}
plBipedWeap00_current_weapon -= 1; // try prev weapon
}
}


// Desc: hide all weapons (reset)
function PlBipedWeap00_Hide_All_Weapons()
{
plBipedWeap00_weapon1_ent.visible = off;
plBipedWeap00_weapon2_ent.visible = off;
plBipedWeap00_weapon3_ent.visible = off;
plBipedWeap00_weapon4_ent.visible = off;
plBipedWeap00_weapon5_ent.visible = off;
plBipedWeap00_weapon6_ent.visible = off;
plBipedWeap00_weapon7_ent.visible = off;
plBipedWeap00_weapon8_ent.visible = off;
}



// Desc: show the current weapon in hand
function PlBipedWeap00_Display_Weapon(num,per)
{
if((num < 1) || (num > plBipedWeap00_weap_count)) { PlBipedWeap00_Hide_All_Weapons(); }


if(num < 2) //1
{
my = plBipedWeap00_weapon1_ent;
my.visible = on;
PlBipedWeap00_Animate(per);
return;
}

if(num < 3) //2
{
my = plBipedWeap00_weapon2_ent;
my.visible = on;
PlBipedWeap00_Animate(per);
return;
}

if(num < 4) //3
{
my = plBipedWeap00_weapon3_ent;
my.visible = on;
PlBipedWeap00_Animate(per);
return;
}

if(num < 5) //4
{
my = plBipedWeap00_weapon4_ent;
my.visible = on;
PlBipedWeap00_Animate(per);
return;
}

if(num < 6) //5
{
my = plBipedWeap00_weapon5_ent;
my.visible = on;
PlBipedWeap00_Animate(per);
return;
}

if(num < 7) //6
{
my = plBipedWeap00_weapon6_ent;
my.visible = on;
PlBipedWeap00_Animate(per);
return;
}

if(num < 8) //7
{
my = plBipedWeap00_weapon7_ent;
my.visible = on;
PlBipedWeap00_Animate(per);
return;
}

//8
my = plBipedWeap00_weapon8_ent;
my.visible = on;
PlBipedWeap00_Animate(per);
}


// Desc: hide weapon in hand
function PlBipedWeap00_Hide_Weapon(num)
{
if((num < 1) || (num > plBipedWeap00_weap_count)) { PlBipedWeap00_Hide_All_Weapons(); }

if(num < 2) { plBipedWeap00_weapon1_ent.visible = off; return; } //1
if(num < 3) { plBipedWeap00_weapon2_ent.visible = off; return; } //2
if(num < 4) { plBipedWeap00_weapon3_ent.visible = off; return; } //3
if(num < 5) { plBipedWeap00_weapon4_ent.visible = off; return; } //4
if(num < 6) { plBipedWeap00_weapon5_ent.visible = off; return; } //5
if(num < 7) { plBipedWeap00_weapon6_ent.visible = off; return; } //6
if(num < 8) { plBipedWeap00_weapon7_ent.visible = off; return; } //7
plBipedWeap00_weapon8_ent.visible = off; //8
}




// Desc: display the crosshair
function PlBipedWeap00_Display_Crosshair()
{
// Display crosshair
plBipedWeap00_crosshair1_pan.visible = on;
plBipedWeap00_crosshair1_pan.pos_x = (screen_size.x - bmap_width(plBipedWeap00_crosshair1_bmp))/2;
plBipedWeap00_crosshair1_pan.pos_y = (screen_size.y - bmap_height(plBipedWeap00_crosshair1_bmp))/2;
}

// Desc: Hide crosshair
function PlBipedWeap00_Hide_Crosshair()
{
// Display crosshair
plBipedWeap00_crosshair1_pan.visible = off;
}


//----------------------------------------------------------------------

// Desc: used to update the 3rd person weapon model
function PlBipedWeap00_Model_Update()
{
proc_late(); // should run after player is updated

my.passable = on;
while(1)
{
while(plBiped01_entity != 0)
{
vec_set(my.x,plBiped01_entity.x);
vec_set(my.pan,plBiped01_entity.pan);
my.frame = plBiped01_entity.frame;
my.next_frame = plBiped01_entity.next_frame;
wait(1);
}
wait(1);
}
}

// Desc: morph to the current weapon
function PlBipedWeap00_Model_Switch(ent,num)
{
if((num < 1) || (num > plBipedWeap00_weap_count)) { plBipedWeap00_cur_weapon_ent.invisible = on; return; }

if(num < 2) //1
{
ent_morph(ent,plBipedWeap00_weapon1_mdl);
plBipedWeap00_cur_weapon_vertex = plBipedWeap00_weapon1_vertex;
return;
}

if(num < 3) //2
{
ent_morph(ent,plBipedWeap00_weapon2_mdl);
plBipedWeap00_cur_weapon_vertex = plBipedWeap00_weapon2_vertex;
return;
}

if(num < 4) //3
{
ent_morph(ent,plBipedWeap00_weapon3_mdl);
plBipedWeap00_cur_weapon_vertex = plBipedWeap00_weapon3_vertex;
return;
}

if(num < 5) //4
{
ent_morph(ent,plBipedWeap00_weapon4_mdl);
plBipedWeap00_cur_weapon_vertex = plBipedWeap00_weapon4_vertex;
return;
}

if(num < 6) //5
{
ent_morph(ent,plBipedWeap00_weapon5_mdl);
plBipedWeap00_cur_weapon_vertex = plBipedWeap00_weapon5_vertex;
return;
}

if(num < 7) //6
{
ent_morph(ent,plBipedWeap00_weapon6_mdl);
plBipedWeap00_cur_weapon_vertex = plBipedWeap00_weapon6_vertex;
return;
}

if(num < 8) //7
{
ent_morph(ent,plBipedWeap00_weapon7_mdl);
plBipedWeap00_cur_weapon_vertex = plBipedWeap00_weapon7_vertex;
return;
}
// 8
ent_morph(ent,plBipedWeap00_weapon8_mdl);
plBipedWeap00_cur_weapon_vertex = plBipedWeap00_weapon8_vertex;
}


// Desc: create/restore 3rd person weapon entity model
function PlBipedWeap00_Restore_Weapon_Ent()
{
if(plBipedWeap00_cur_weapon_ent != NULL) // already have a current weapon
{
return;
}

// create a placeholder weapon model
plBipedWeap00_cur_weapon_ent = ent_create(plBipedWeap00_weapon1_mdl,nullvector,PlBipedWeap00_Model_Update);
// switch to current weapon (if one is active)
PlBipedWeap00_Model_Switch(plBipedWeap00_cur_weapon_ent,plBipedWeap00_current_weapon);
}

//----------------------------------------------------------------------
// Starter Functions
//----------------------------------------------------------------------

// Desc: Initialize the starting values
starter PlBipedWeap00_Init()
{
var timer; // while timer < plBipedWeap00_cycle weapon is "busy"
var q_trigger_up; // has the fire button been released since last shot?
var burst_count; // shots left in the burst
var local_temp; // local temp value

// wait for the level to load before running
while(gid01_level_state == gid01_level_not_loaded) { wait(1); }

diag("\nWDL-Loaded:plBipedWeap00.wdl");
// Init:
PlBipedWeap00_Ammo_Init(); // ..ammo
PlBipedWeap00_Weapon_Init(); // ..weapons
plBipedWeap00_SetKeys(); // ..keys
PlBipedWeap00_Hide_All_Weapons(); // reset weapon panels
PlBipedWeap00_Restore_Weapon_Ent(); //create/restore 3rd person weapon entity model

// set current gun state to idle
plBipedWeap00_gun_state = plBipedWeap00_state_idle;

// Main loop...
while(1)
{
// only loop while we have a valid player, a level loaded, and the player is active
while((plSelect_curr_ent != NULL) && (gid01_level_state == gid01_level_loaded) && (plSelect_state == plSelect_state_active))
{
plSelect_curr_ent._biped01_state2_mod = biped01_state2_mod_none_const; // reset fire mode

// does player have a weapon active?
if(plBipedWeap00_current_weapon > 0)
{


// Display weapon and crosshair
if(cameraTarget_avatar_view_q == 1)
{
PlBipedWeap00_Display_Crosshair();

// Show 1st person weapon (and animate)
if(plBipedWeap00_cycle <= 0) { plBipedWeap00_cycle = 1; }
PlBipedWeap00_Display_Weapon(plBipedWeap00_current_weapon,(timer/plBipedWeap00_cycle));

// Hide 3rd person weapon
plBipedWeap00_cur_weapon_ent.invisible = on;
}
else
{
// Hide crosshair
PlBipedWeap00_Hide_Crosshair();

// Hide 1st person weapon
PlBipedWeap00_Hide_Weapon(plBipedWeap00_current_weapon);

// Show 3rd person weapon
plBipedWeap00_cur_weapon_ent.invisible = off;
}

// reset trigger down flag?
if(!Key_Pressed(plBipedWeap00_fire_scancode)) // wait until player releases fire key..
{
q_trigger_up = 1;
// section: Burst
// entry: Rounds
// entry: Number of rounds in a 'burst'
// id: 301
burst_count = 3; // 3 rounds burst reset.
}


// Is the player done with previous action?
if(timer >= plBipedWeap00_cycle)
{
// set current gun state to idle
plBipedWeap00_gun_state = plBipedWeap00_state_idle;

// if the player wants to fire...
if(Key_Pressed(plBipedWeap00_fire_scancode))
{
temp = plBipedWeap00_weapon[((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_id];
if(temp < 100) // use weapon00 template
{
local_temp = weapons00_template[(temp*weapons00_weap_field_count) + weapons00_weap_fx];
}
else // use weapLaunch00 template
{
local_temp = weapLaunch00_template[((temp-100)*weapLaunch00_weap_field_count) + weapons00_weap_fx];
}
// check to see if we can fire
if((q_trigger_up == 1) // trigger let up...
|| (local_temp & weapons00_fx_auto) // ..or auto fire weapon
|| ((local_temp & weapons00_fx_burst)&&(burst_count>0))) // ..or burst with shots left
{
burst_count -= 1;
timer = 0; // reset timer
plBipedWeap00_gun_state = plBipedWeap00_state_fire; // change states to fire
plSelect_curr_ent._biped01_state2_mod = biped01_state2_mod_attack_const; // biped anim
wait(1); // allow animation to get to first frame!
plBipedWeap00_cycle = PlBipedWeap00_Fire_Current(local_temp); // fire weapon
q_trigger_up = 0; // trigger down
}
}
else // not firing
{
// player wants to reload?
if(Key_Pressed(plBipedWeap00_reload_scancode))
{
plBipedWeap00_cycle = plBipedWeap00_Reload_Clip(plBipedWeap00_current_weapon); // reload weapon?
timer = 0; // reset timer
plBipedWeap00_gun_state = plBipedWeap00_state_reload;
}
}
} // if(plBipedWeap00_cycle <= 0)
} // if(plBipedWeap00_current_weapon > 0) // weapon active

// Execute even if no weapon in hand...

// is the player done with previous action?
if(timer >= plBipedWeap00_cycle)
{
// switch to next weapon..
if(Key_Pressed(plBipedWeap00_next_scancode))
{
PlBipedWeap00_Hide_Weapon(plBipedWeap00_current_weapon); // hide current weapon
PLWeapons00_Select_Next();
plBipedWeap00_cycle = plBipedWeap00_switch_wait; // switch weapon wait
timer = 0; // reset timer
plBipedWeap00_gun_state = plBipedWeap00_state_switch;

// morph the 3rd person model to new weapon
PlBipedWeap00_Model_Switch(plBipedWeap00_cur_weapon_ent,plBipedWeap00_current_weapon);
}

// switch to previous weapon..
if(Key_Pressed(plBipedWeap00_prev_scancode))
{
PlBipedWeap00_Hide_Weapon(plBipedWeap00_current_weapon); // hide current weapon
PLWeapons00_Select_Prev();
plBipedWeap00_cycle = plBipedWeap00_switch_wait; // switch weapon wait
timer = 0; // reset timer
plBipedWeap00_gun_state = plBipedWeap00_state_switch;

// morph the 3rd person model to new weapon
PlBipedWeap00_Model_Switch(plBipedWeap00_cur_weapon_ent,plBipedWeap00_current_weapon);
}
}
else
{
timer += TIME; // increase timer
}

// if a valid weapon is active...
if((plBipedWeap00_current_weapon>0)&&(plBipedWeap00_current_weapon<=8))
{
// update the ammo counter for things like HUDs
plBipedWeap00_curr_ammo = plBipedWeap00_weapon[((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_rounds];
}

/*ifdef PLBIPEDWEAP00_DEBUG;
plBipedWeap00_debug_data[0] = plBipedWeap00_current_weapon;
if((plBipedWeap00_current_weapon>0)&&(plBipedWeap00_current_weapon<=8))
{
plBipedWeap00_debug_data[1] = plBipedWeap00_weapon[((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_rounds];
if((plBipedWeap00_weapon[((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_ammotype]-1)>=0)
{
plBipedWeap00_debug_data[2] = plBipedWeap00_ammo[(plBipedWeap00_weapon[((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_ammotype]-1)*plBipedWeap00_ammo_field_count];
}

// plBipedWeap00_debug_data[5] = plBipedWeap00_weapon[((plBipedWeap00_current_weapon - 1)*plBipedWeap00_weap_field_count)+plBipedWeap00_weap_fx];
}
plBipedWeap00_debug_data[3] = plBipedWeap00_cycle;
plBipedWeap00_debug_data[4] = timer;
plBipedWeap00_debug_data[5] = plBipedWeap00_gun_state;
endif;
*/
wait(1);
}
// while(plSelect_curr_ent != NULL) && ( gid01_level_state == gid01_level_loaded )

if( gid01_level_state == gid01_level_change) // changing level
{
while( gid01_level_state == gid01_level_change) // changing level
{
wait(1);
}
PlBipedWeap00_Restore_Weapon_Ent(); //create/restore 3rd person weapon entity model
}

wait(1);
}

}

//----------------------------------------------------------------------
//----------------------------------------------------------------------
//----------------------------------------------------------------------
// Actions

// SKILL DEFINES
define _type__015,SKILL1;
define _amount__015,SKILL2;
define _message_time__015,SKILL3;
define _spin__015,SKILL4;

// Desc: pickup event for ammo
function PlBipedWeap00_Ammo_Pickup_Event()
{
if(you._gid01_id != gid01_player_const) { return; } // only react to player
// only react to player activate scans
if((event_type == event_scan) && (gid01_event_type != gid01_event_scan_activate)) { return; }

// hide object
my.passable = on;
my.invisible = on;
my.shadow = off;
my.enable_scan = off;
my.enable_impact = off;
my.enable_sonar = off;

// add ammo
plBipedWeap00_ammo[plBipedWeap00_ammo_field_count * my._type__015] += my._amount__015;

// clip to max
if(plBipedWeap00_ammo[plBipedWeap00_ammo_field_count * my._type__015]
> plBipedWeap00_ammo[(plBipedWeap00_ammo_field_count * my._type__015)+plBipedWeap00_ammo_max])
{
plBipedWeap00_ammo[plBipedWeap00_ammo_field_count * my._type__015]
= plBipedWeap00_ammo[(plBipedWeap00_ammo_field_count * my._type__015)+plBipedWeap00_ammo_max];
}

// play sound++

// display message++


// pause for set ammount of seconds
// sleep(my._message_time__015);

// remove object
wait(1);
remove(ME);
}

// Desc: when picked up, add ammo to player
//
// uses _type__015, _amount__015,
// uses _message_time__015, _spin__015
//------------------
// cntl: spin 1 x 1
// help: Ammo ID given to player on pickup.
// skill1: AmmoID 1
//
// cntl: spin 0 x 1
// help: Amount of ammo.
// skill2: Ammo 10
//
// cntl: spin 0 x 1
// help: How many seconds the "pickup message" sould be displayed.
// skill3: MessageTime 0
//
// cntl: spin x x 1
// help: How fast the object rotates (0 = no rotation).
// skill4: Spin 0
action PlBipedWeap00_AmmoP
{
ifdef GID01_OLD_COLLIDE; // use the old collision code
my.fat = OFF; my.narrow = ON;
ifelse; // use A6 collison
my.fat = ON; my.narrow = ON;
c_setminmax(my);
endif;

// check range
if((my._type__015 <= 0) || (my._type__015 > plBipedWeap00_ammo_tcount))
{
diag("\nWARNING! plBipedWeap00.wdl::PlBipedWeap00_Ammo_Pickup- ammo type out of range!");
my._type__015 = 0; // default ammo type is 1
}
else
{
my._type__015 -= 1; // correct for offset
}

// default ammo amount
if(my._amount__015 == 0)
{
diag("\nWARNING! plBipedWeap00.wdl::PlBipedWeap00_Ammo_Pickup- ammo ammount out of range!");
my._amount__015 = 10;
}

if(my._message_time__015 < 0)
{
my._message_time__015 = 0;
}

my.enable_scan = on; // player scans
my.enable_impact = on; // player hits
my.enable_sonar = on; // player steps on
my.event = PlBipedWeap00_Ammo_Pickup_Event;

if(my._spin__015 != 0)
{
while(1)
{
my.pan += TIME*my._spin__015;
wait(1);
}
}
}


// Desc: pickup event for weapon boxes
function PlBipedWeap00_Weapon_Pickup_Event()
{
if(you._gid01_id != gid01_player_const) { return; } // only react to player
// only react to player activate scans
if((event_type == event_scan) && (gid01_event_type != gid01_event_scan_activate)) { return; }

// hide object
my.passable = on;
my.invisible = on;
my.shadow = off;
my.enable_scan = off;
my.enable_impact = off;
my.enable_sonar = off;

// add weapon
plBipedWeap00_weapon[(my._type__015*plBipedWeap00_weap_field_count) + plBipedWeap00_weap_valid] = 1;

// add ammo
temp = weapons00_template[(my._type__015*weapons00_weap_field_count) + weapons00_weap_ammotype] - 1;
if(temp >= 0)
{
plBipedWeap00_ammo[plBipedWeap00_ammo_field_count * temp] += my._amount__015;

// clip to max
if(plBipedWeap00_ammo[plBipedWeap00_ammo_field_count * temp]
> plBipedWeap00_ammo[(plBipedWeap00_ammo_field_count * temp)+plBipedWeap00_ammo_max])
{
plBipedWeap00_ammo[plBipedWeap00_ammo_field_count * temp]
= plBipedWeap00_ammo[(plBipedWeap00_ammo_field_count * temp)+plBipedWeap00_ammo_max];
}
}

// play sound++

// display message++


// pause for set ammount of seconds
//sleep(my._message_time__015);

// remove object
my.enable_scan = off; // deactivate player scans
my.enable_impact = off; // deactivate player hits
my.enable_sonar = off; // deactivate player steps on
wait(1);
remove(ME);
}

// Desc: when picked up allow the player to use that weapon
//
// uses _type__015, _amount__015,
// uses _message_time__015, _spin__015
//
//------------------
// cntl: spin 1 x 1
// help: Weapon ID given to player on pickup.
// skill1: WeaponID 1
//
// cntl: spin 0 x 1
// help: Amount of ammo in this gun.
// skill2: Ammo 0
//
// cntl: spin 0 x 1
// help: How many seconds the "pickup message"

Re: wache schiesst zu langsam [Re: Xandaros] #93296
10/06/06 16:48
10/06/06 16:48
Joined: Apr 2005
Posts: 3,076
Germany, NRW
rvL_eXile Offline

3D Artist
rvL_eXile  Offline

3D Artist

Joined: Apr 2005
Posts: 3,076
Germany, NRW
Naja das hättest du dir auch sparen können... Templates zuändern in bestimmten Variablen macht glaube ich keiner hier, wenn doch ich habe nichts gesagt

cYa Angel

P.S. nächstes mal auch schreiben das du ein template benutzt und dann pls in den Template Topic...


Tutorials:
[Blender]Terrain creation ENG/GER
[Blender]Low Poly Tree Modeling
[GIMP]Create a Texture for Terrains
CLICK HERE


Re: wache schiesst zu langsam [Re: rvL_eXile] #93297
10/11/06 13:11
10/11/06 13:11
Joined: Oct 2006
Posts: 7
X
Xandaros Offline OP
Newbie
Xandaros  Offline OP
Newbie
X

Joined: Oct 2006
Posts: 7
dann hab ich ma die frage: was meinste mit Template???

Re: wache schiesst zu langsam [Re: Xandaros] #93298
10/12/06 00:38
10/12/06 00:38
Joined: Apr 2005
Posts: 3,076
Germany, NRW
rvL_eXile Offline

3D Artist
rvL_eXile  Offline

3D Artist

Joined: Apr 2005
Posts: 3,076
Germany, NRW
Templates sind die Scripte die im Gamestudio schon vorhanden sind. Also die Scripte die der GS User nur noch auf sein Model Packen muss und schon los spielen kann!

cYa Angel

Last edited by Angel; 10/12/06 00:39.

Tutorials:
[Blender]Terrain creation ENG/GER
[Blender]Low Poly Tree Modeling
[GIMP]Create a Texture for Terrains
CLICK HERE


Re: wache schiesst zu langsam [Re: rvL_eXile] #93299
10/13/06 06:17
10/13/06 06:17
Joined: Apr 2005
Posts: 1,058
Luzern
Nicolas_B Offline
Serious User
Nicolas_B  Offline
Serious User

Joined: Apr 2005
Posts: 1,058
Luzern
Du kannst vieleicht mit den Defines im WED (also unter Modell Propertions) sie schussrate verändern. Weiss ned genau. Kenn mich mit den Templants ned mer so aus.
Und wenn ich mir das so ansehe glaube ich, dass du die änderung in der weapons.wdl machen musst.

Last edited by Nicolas_B; 10/13/06 06:19.

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1