home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC Gamer 5.14
/
2000-11_-_Disc_5.14.iso
/
Goodies
/
3DGameStudio
/
Adeptus
/
actions.wdl
< prev
next >
Wrap
Text File
|
2000-02-04
|
5KB
|
270 lines
//@
# VR GAMES WDL-Script Project: DEMO ADEPTUS
#
# Auftraggeber : Conitec GmbH
#
#*********************************************************************
# Module : actions.wdl - Kundenversion
# Version : 2.0 (Made with WDL-STUDIO)
# Date : 19.8.99
# Responsible : Harald Schmidt
# Description : Conitec Demo-RPG
# *********************************************************************
//@
//
BMAP blood_splash_map <redspots.pcx>;
///////// player skills /////////////////
///Experiencepoints
SKILL gem_exp {VAL 150;}
SKILL cynth_exp {VAL 80;}
SKILL m_sc_exp {VAL 250;}
SKILL sc_exp {VAL 450;}
SKILL STAT {}
SKILL p_hp {VAL 20;}
SKILL p_akt_hp {VAL 20;}
SKILL p_mana {VAL 0;}
SKILL p_akt_mana {VAL 0;}
SKILL p_str {VAL 20;}
SKILL p_akt_str {VAL 20;}
SKILL p_gew {VAL 20;}
SKILL p_mut {VAL 20;}
SKILL p_int {VAL 20;}
SKILL p_exp {VAL 0;}
SKILL next_exp {VAL 1000;}
SKILL p_lvl {VAL 1;}
SKILL p_bon {VAL 0;}
////////////Skills Monster ////////////////
SKILL sc_str {VAL 12;}#scorpio stats
SKILL sc_gew {VAL 12;}
SKILL sc_mut {VAL 12;}
SKILL sc_int {VAL 12;}
SKILL HP_TEST {}
SKILL STR {}
SKILL GEW {}
SKILL MUT {}
SKILL INT {}
SKILL ATT {}
SKILL DEF {}
SKILL P_DEF {}
SKILL P_ATT {}
SKILL p_hp_minus {}
SKILL hp_minus {}
SKILL dead {}
SKILL life_pan_hp {}
SKILL life_pan_str {}
SKILL life_pan_mana {}
STRING name, " ";
PANEL blood_pan
{
POS_X 3;
POS_Y 4;
LAYER 2;
BMAP blood_splash_map;
FLAGS REFRESH, OVERLAY;
}
ACTION create_stats
{
p_hp = 20 + RANDOM (5);
p_akt_hp = p_hp;
p_str = 15 + RANDOM (25);
p_akt_str = p_str;
p_gew = 15 + RANDOM (25);
p_mut = 15 + RANDOM (25);
p_int = 15 + RANDOM (25);
p_bon = 10;
p_exp = 0;
p_lvl = 1;
next_exp = 1000;
}
ACTION stats_time
{
IF (p_akt_hp < p_hp)
{
p_akt_hp += 0.03;
}
IF (p_akt_str < p_str)
{
p_akt_str += 0.03;
}
life_pan_hp = 90 - p_akt_hp;
life_pan_str = 90 - p_akt_str;
life_pan_mana = 90 - p_akt_mana;
}
ACTION player_stats
{
WHILE (1) {
CALL stats_time;
WAIT 1;
}
}
ACTION hp_cheat
{
SET p_akt_hp, p_hp;
SET p_akt_str, p_str;
}
ACTION bonus_hp
{
IF (p_bon > 0)
{
p_hp += 1;
p_akt_hp += 1;
p_bon += -1;
}
ELSE
{
CALL close_all;
}
}
ACTION bonus_str
{
IF (p_bon > 0)
{
p_str += 1;
p_akt_str += 1;
p_bon += -1;
}
ELSE
{
CALL close_all;
}
}
ACTION bonus_gew
{
IF (p_bon > 0)
{
p_gew += 1;
p_bon += -1;
}
ELSE
{
CALL close_all;
}
}
ACTION bonus_mut
{
IF (p_bon > 0)
{
p_mut += 1;
p_bon += -1;
}
ELSE
{
CALL close_all;
}
}
ACTION bonus_int
{
IF (p_bon > 0)
{
p_int += 1;
p_bon += -1;
}
ELSE
{
CALL close_all;
}
}
ACTION check_exp
{
p_exp += give_exp;
IF (p_exp >= next_exp)
{
CALL next_level;
}
SET give_exp, 0;
}
ACTION next_level
{
IF (next_exp == 5000)
{
SET next_exp, 8000;
SET p_lvl, 4;
}
IF (next_exp == 2500)
{
SET next_exp, 5000;
SET p_lvl, 3;
}
IF (next_exp == 1000)
{
SET next_exp, 2500;
SET p_lvl, 2;
}
p_bon += 10;
CALL new_lvl_text;
CALL show_char;
}
ACTION sc_att_probe
{
SET STR, sc_str;
SET MUT, sc_mut;
SET GEW, sc_gew;
CALL player_defense;
}
ACTION sc_def_probe
{
SET INT, sc_int;
SET MUT, sc_mut;
SET GEW, sc_gew;
CALL player_attack;
}
ACTION player_defense
{
ATT = (STR + MUT + GEW) / 3; #NPC Attack
P_DEF = (p_mut + p_gew + p_int) / 3; #Player Defense
p_hp_minus = RANDOM (ATT / P_DEF * 10); #Fight
p_hp_minus = INT (p_hp_minus);
p_akt_hp = p_akt_hp - p_hp_minus;
IF (p_hp_minus > 0)
{
CALL player_hit;
}
}
ACTION player_attack
{
DEF = (GEW + MUT + INT) / 3; #NPC Defense
P_ATT = (p_mut + p_gew + p_str) / 3; #Player Attack
hp_minus = RANDOM (P_ATT / DEF * 10); #Fight
hp_minus = INT (hp_minus);
MY._HEALTH = MY._HEALTH - hp_minus;
HP_TEST = MY._HEALTH;
IF (MY._HEALTH <= 0)
{
MY._STATE = DEAD;
}
}
ACTION fball_hit
{
p_akt_hp -= 5;
CALL player_hit;
}
//
ACTION player_hit
{
IF (p_akt_hp <= 0)
{
BRANCH player_dead;
}
IF (PLAYER.BUSY)
{
RETURN;
}
SET PLAYER.BUSY, TRUE;
PLAY_SOUND hurt_snd, 40;
SET blood_pan.TRANSPARENT, TRUE;
SET blood_pan.VISIBLE, TRUE;
WAIT 1;
SET blood_pan.TRANSPARENT, FALSE;
WAIT 1;
SET blood_pan.TRANSPARENT, TRUE;
SET blood_pan.VISIBLE, FALSE;
SET PLAYER.BUSY, FALSE;
}