Gamestudio Links
Zorro Links
Newest Posts
Trading Journey
by howardR. 04/28/24 09:55
basik85278
by basik85278. 04/28/24 08:56
Zorro Trader GPT
by TipmyPip. 04/27/24 13:50
Help with plotting multiple ZigZag
by M_D. 04/26/24 20:03
Data from CSV not parsed correctly
by jcl. 04/26/24 11:18
M1 Oversampling
by jcl. 04/26/24 11:12
Why Zorro supports up to 72 cores?
by jcl. 04/26/24 11:09
Eigenwerbung
by jcl. 04/26/24 11:08
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, Quad), 748 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
wandaluciaia, Mega_Rod, EternallyCurious, howardR, 11honza11
19049 Registered Users
Previous Thread
Next Thread
Print Thread
Rating: 4
Page 5 of 13 1 2 3 4 5 6 7 12 13
Re: New A.I !!! #13513
07/29/03 02:00
07/29/03 02:00
Joined: Mar 2003
Posts: 4,264
Wellington
Nems Offline

.
Nems  Offline

.

Joined: Mar 2003
Posts: 4,264
Wellington
Double post.

Re: New A.I !!! #13514
07/29/03 02:28
07/29/03 02:28
Joined: Feb 2003
Posts: 178
666 South The Underworld,
C
ChrispiZ Offline OP
Member
ChrispiZ  Offline OP
Member
C

Joined: Feb 2003
Posts: 178
666 South The Underworld,
hey nemesis, scary_man found out how to
solve the pointer problem.

here it is.
replace:
code:
  	  if (ally_target==null || ally_target.skill9<0)	{	allystate_wait(); 	ally_Target=null;	}

in the allystate_attack function with
this.
but dont put in same spot.
put in
code:
 
if (ally_target == null){allystate_wait(); return;}

code:
 
if (my._health <= 0) { allystate_die(); return; } if (my._health < 30) { allystate_escape(); return; } if (ally_target == null){allystate_wait(); return;}




.,.,.,., SiGh,
Re: New A.I !!! #13515
07/29/03 03:00
07/29/03 03:00
Joined: Feb 2003
Posts: 178
666 South The Underworld,
C
ChrispiZ Offline OP
Member
ChrispiZ  Offline OP
Member
C

Joined: Feb 2003
Posts: 178
666 South The Underworld,
In about 3 hours, I am posting a new
Ally Script. All fixed and free to use.
The New Ally A.I will now follow you.
When you stop, the ai will stop in a certain
distance and search out for enemies to fire at.
When you move away, It will continue on
following you.

-Chrispiz

remember check in about 3 hours to try out
the new Ally A.I script from
VS:AI


.,.,.,., SiGh,
Re: New A.I !!! #13516
07/29/03 09:13
07/29/03 09:13
Joined: Feb 2003
Posts: 178
666 South The Underworld,
C
ChrispiZ Offline OP
Member
ChrispiZ  Offline OP
Member
C

Joined: Feb 2003
Posts: 178
666 South The Underworld,
Ok! Here it is. This is just the beta
for the free edition of the AI. It is
bug free. There is one little problem tho,
when there are no enemies near by, it will
shoot you. Make shure there is always an
enemy near by so it wont shoot you. The
AI will follow you wherever you go like
on Halo.

Little note for nemesis,
Hey nemesis, if you could find out how
to make it so the ai wont shoot you anymore
it would be grateful.

anyway, enjoy!
[Smile] [Smile] [Smile] [Smile]

Shall whoever use this script without
credit would be haunted for the rest
of his life
[Mad] [Mad]
When you credit me, Dont put my name, put
ventelation studios.

there might be some functions i did not
include with this script.

Please feel free to delete where i called
functions that i didnt add.

-ChrispiZ
contact me regarding questions and concerns
dzung84088@yahoo.com
code:
 
//Ally_AI
//Basic Edition
//written by Chris Le
//copyright ©2001-2003 Ventelation Studios
//
//This script is used for fps style games
//It makes a character entity a frienly ally
//who helps you on your quest
//The Ally_AI follows you around
//when it spots an enemy, it will fire
//you could change what type of bullets it
//will fire below in the script
//enjoy!
//this version is v1.0
//Check for more updates on this ai
//For more advanced ally ai, purchase the following editions
//
//Silver Edition
//
//contains
//-Could here sounds
//-More advanced pathfinding
//-Could reload weapons
//-Could pickup weapons
//
//Gold Edition
//
//contains
//
//-Could here sounds
//-More advanced pathfinding
//-Could reload weapons
//-Could pickup weapons
//-Could communicate with other friendly AI
//-Could Use melee weapons in battle
//-Could Use Medkits if they could find one
//-Could heal you if they have a med kit
//-New ally ai could be used as bots for tournament style fps's

//please use at your own risk!
//This code uses template code
//also uses the advance_pathfinding code included with this script
//advance_pathfinding.wdl
//Instructions.

//
//
//ally follows player
//pointer
entity* ally_target; // Target entity, used in attacking
var indicator = 0;
synonym ally {type entity;}

action allystate_follow
//based on the actor_follow in the templates
{

if(my._FORCE == 0) { my._FORCE = 2; }
if(my._MOVEMODE == 0) { my._MOVEMODE = _MODE_WALKING; }
if(my._WALKFRAMES == 0) { my._WALKFRAMES = DEFAULT_WALK; }
if(my._RUNFRAMES == 0) { my._RUNFRAMES = DEFAULT_RUN; }
if(my._WALKSOUND == 0) { my._WALKSOUND = _SOUND_WALKER; }
if (my._health <= 0) { allystate_die(); return; }
if (my._health < 30) { allystate_escape(); return;}
anim_init();
my._force = 2.5; //2.5 for running effect
while(1)
{
// calculate a direction to walk into
temp.x = player.x - my.x;
temp.y = player.y - my.y;
temp.z = 0;
vec_to_angle(MY_ANGLE,temp);

// turn towards player
MY_ANGLE.tilt = 0;
MY_ANGLE.roll = 0;
force = my._FORCE * 2;
actor_turn();

// walk towards him
temp = (player.x - my.x)*(player.x - my.x)+(player.y - my.y)*(player.y - my.y);
if(temp < 50000) // 100^2
{
allystate_wait();
return;
}
if(temp > 50000) // 100^2
{
force = my._FORCE;
my._MOVEMODE = _MODE_WALKING;
actor_move();
}
wait(1);
}
}


//Dying Function
//You could modify this to do other several things like:
//when ally dies, you could add functions so that your ally
//could scream in pain

function allystate_die()
{
my._animdist = 0; // reset entity's animation time to zero
while (my._animdist < 100)
{
ent_frame("death",my._animdist); // set the frame from the percentage
my._animdist += 5 * time; // calculate next percentage for death in 1.25 secs
wait(1);
}
my.enable_scan = off; // becomes insensible
my.enable_shoot = off;
my.event = null; // does not react anymore
}

// event function that recieves hits
function myfight_event()
{
if (((event_type == event_scan) && (indicator == _explode)))
|| ((event_type == event_shoot) && (indicator == _gunfire))
{
my._signal = 1;
EMIT 30,my.POS,bloodspray;
if (my._armor <= 0) { my._health -= damage; }
else { my._armor -= damage; }
}
if ((event_type == event_detect) && (you != player) && (you.flag1 >0) && (you.skill9 > 0) ) {
my._signal = 1; }
ally_target = you;
wait(1);
}


//wait function. Ally stands
function allystate_wait()
{
my._animdist = 0;
while (1) {
if (my._health <= 0) { allystate_die(); return; }
if (my._health < 30) { allystate_escape(); return;}
ent_cycle("wait", my._animdist);
my._animdist += 5 * time;
// scan for the enemy
temp.pan = 180;
temp.tilt = 180;
temp.z = 1000;
indicator = _watch;
scan_entity(my.x,temp);
if (my._signal == 1) { allystate_attack(); return; }

force = 0; // no force from this actor
actor_move(); // react to outside forces (gravity, etc) even while waiting

waitt(1);
}
}


//attack state, my favorite!!!
// here is where you could modify what type on bullets it will shoot
// and how much damage it causes

function allystate_attack()
{

my._animdist = 0;
while (1) {
my._MOVEMODE = _MODE_ATTACK;
if (my._health <= 0) { allystate_die(); return; }
if (my._health < 30) { allystate_escape(); return; }
if (ally_target == null){allystate_follow(); return;}

//turns towards enemy
temp.x = ally_target.x - my.x;
temp.y = ally_target.y - my.y;
temp.z = ally_target.z - my.z;
vec_to_angle(my_angle,temp);
force = 4;
actor_turn();
ent_cycle("attack", my._animdist);
my._animdist += 5 * time;
if (my._animdist > 100) {
my._animdist -= 100;
shot_speed.x = 100;
shot_speed.y = 0;
shot_speed.z = 0;
my_angle.pan = my.pan;
vec_rotate(shot_speed, my_angle);
damage = 20;
fire_mode = 302.2;
create(fireball, my.x, bullet_shot);
wait(1);

}
wait(1);
}
}

//escape state. makes the ally a chicken and runoff
function allystate_escape()
{
while(1) {
if (my._health <= 0) { allystate_die(); return; }
temp.x = my.x - player.x;
temp.y = my.y - player.y;
temp.z = my.z - player.z;
vec_to_angle(my_angle,temp);
force = 4;
actor_turn();
//walks away like a chicken
actor_move();
wait(1);
}
}



action b_ally_ai_v1
{
ally = me;
my._walkframes = 1;
my._entforce = 0.7;
my._armor = 100;
my._health = 100;
my._signal = 0;
my._MUZZLE_VERT = 691;
my.enable_scan = on;
my.enable_shoot = on;
my.enable_detect = on;
my.event = myfight_event;

allystate_wait();

}





.,.,.,., SiGh,
Re: New A.I !!! #13517
07/29/03 09:16
07/29/03 09:16
Joined: Feb 2003
Posts: 178
666 South The Underworld,
C
ChrispiZ Offline OP
Member
ChrispiZ  Offline OP
Member
C

Joined: Feb 2003
Posts: 178
666 South The Underworld,
*UPDATES*

I have finally released a beta script of
the Basic Edition VS:AI ALLY A.I.

I will probably be finished with the AI
pretty soon.

So keep on checking back

-ChrispiZ
: )


.,.,.,., SiGh,
Re: New A.I !!! #13518
07/29/03 11:07
07/29/03 11:07
Joined: Mar 2003
Posts: 4,264
Wellington
Nems Offline

.
Nems  Offline

.

Joined: Mar 2003
Posts: 4,264
Wellington
Well, I've been having lots of fun with this script but the only way at present that I can get the 'Ally to not shoot the player is this;
code:
 if ((event_type == event_detect) && (you != player) && (you.flag1 <0) && 

(you.skill9 < 0) ) {
my._signal = 1; }
ally_target = you;
wait(1);
NEW PART BEGINS
{
if ((event_type == event_detect) && (you != player) ) {
my._signal = 1; }
ally_target = null;
} NEW PART ENDS

You have a number of crashes happening in "state wait" though which I'm trying to do something about but not getting any where yet.
I've also added this to the "die" state;
code:
 my.enable_scan = off; // becomes insensible
my.enable_shoot = off;
my.event = null; // does not react anymore

// new stuff from here on
MY.PASSABLE = ON; // body remains
my.transparent = on;
my.alpha = 100;
while (my.alpha > 0)
{
my.alpha -= 2 * time;
wait (1);
}
ent_remove (me);

I'm not a coder but I'll do what I can.
Thanks for making all this possible and definatly 'keep up the good work'.
Cheers.
}



Re: New A.I !!! #13519
07/29/03 11:34
07/29/03 11:34
Joined: Feb 2003
Posts: 178
666 South The Underworld,
C
ChrispiZ Offline OP
Member
ChrispiZ  Offline OP
Member
C

Joined: Feb 2003
Posts: 178
666 South The Underworld,
Thankz alot Nemesis, maybe i will give you
a free copy of the Gold Edition of VS:AI
[Smile] (for helping me out with the ally script


.,.,.,., SiGh,
Re: New A.I !!! #13520
07/29/03 12:05
07/29/03 12:05
Joined: Mar 2003
Posts: 4,264
Wellington
Nems Offline

.
Nems  Offline

.

Joined: Mar 2003
Posts: 4,264
Wellington
Heya ChrispiZ, I'm just playing with it right now but I've still got to get it working yet so no joy on my perk.
It may be that I'll never get it right but hope fully you or some one else might.
Oh well, back to it again....

Re: New A.I !!! #13521
07/29/03 13:03
07/29/03 13:03
Joined: Feb 2003
Posts: 178
666 South The Underworld,
C
ChrispiZ Offline OP
Member
ChrispiZ  Offline OP
Member
C

Joined: Feb 2003
Posts: 178
666 South The Underworld,
Hey nemesis, i tried out wat u told me
it didnt work. All we need to do is fix
that problem and then it will be perfect ai


.,.,.,., SiGh,
Re: New A.I !!! #13522
07/29/03 14:13
07/29/03 14:13
Joined: Mar 2003
Posts: 4,264
Wellington
Nems Offline

.
Nems  Offline

.

Joined: Mar 2003
Posts: 4,264
Wellington
ChrispiZ, I can get it to work as you want except that it crashes in the wait state after a little while due to a conflict in attack and wait states.
Still plugging away.....

Page 5 of 13 1 2 3 4 5 6 7 12 13

Moderated by  adoado, checkbutton, mk_1, Perro 

Gamestudio download | chip programmers | 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