Gamestudio Links
Zorro Links
Newest Posts
loading historical data 1st time
by AndrewAMD. 04/14/23 12:54
Trade at bar open
by juanex. 04/13/23 19:43
Bug in Highpass2 filter
by rki. 04/13/23 09:54
Adding Limit Orders For IB
by scatters. 04/11/23 16:16
FisherN
by rki. 04/11/23 08:38
AUM Magazine
Latest Screens
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Hecknex World
Who's Online Now
2 registered members (Quad, AndrewAMD), 1,007 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
rki, FranzIII, indonesiae, The_Judge, storrealba
18919 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
turn in to ragdoll problem with acknex #276486
07/05/09 11:31
07/05/09 11:31
Joined: Jul 2009
Posts: 150
B
Blackchuck Offline OP
Member
Blackchuck  Offline OP
Member
B

Joined: Jul 2009
Posts: 150
Finelly, there was no mor errors in my code.
But wenn I started it It shoud me the warning ; (Übersetzt)
Problem with acknex must shutdown energy!
that macks me sick! sick
The script is <lite c>
here is the code (But it`s very long...)

-----------------------------------------------------------------

#include <acknex.h>
#include <default.c>

///////////////////////////////////////////////////////////////////////

#define PRAGMA_PATH "parts";

VECTOR Hinge1, Hinge2;

var GroupID = 2;
var low_rot_dist = 5;

///////////////////////////////////////////////////////////////////////

function DEAD();
function player_moves();
function shoot();
function move_bullet();
function remove_bullet();

//////////////////////////////////////////////////////////////////////

var bullet_pos;

var player_speed;

//var player_shield = 100; //No need for this jet
//var enemy_shield = 100; //The same for this

//////////////////////////////////////////////////////////////////////

SOUND* bullet = "bullet.wav";

ENTITY* enemy;

STRING* bullet_mdl = "bullet.mdl";
//////////////////////////////////////////////////////////////////////

PANEL crosshair_pan =
{
bmap = "crosshair_pcx";
layer = 20;
pos_x = 0;
pos_y = 0;
flags = VISIBLE | OVERLAY;
}
//////////////////////////////////////////////////////////////////////

action actor()
{
enemy = my;
my.emask |= ENABLE_SHOOT;
my.emask |= ENABLE_BLOCK;
my.event = remove_bullet;
{
ent_blend("stand",0,25);
wait (1);
}
my.event = DEAD();
}

var time;
var temp;

var bullet_handel;

SOUND* bullet = "bullet.wav";

action player_moves()
{

player = my;

my.emask |= ENABLE_SHOOT;
my.emask |= ENABLE_BLOCK;
my.event = DEAD();

while (1)

{

c_move (my, vector(10 * (key_w - key_s) * time_step, 6 * (key_a - key_d) * time_step, 0), nullvector, GLIDE);

vec_set (camera.x, player.x);

camera.z += 30;

camera.pan -= 5 * mouse_force.x * time_step;

camera.tilt += 3 * mouse_force.y * time_step;

player.pan = camera.pan;

wait (1);

}
on_mouse_left = shoot;
wait (1);
}

void main() {

video_mode = 6;
video_screen = 1;

vec_set(Hinge1, nullvector);
vec_set(Hinge2, nullvector);

fps_max = 60;

time_smooth = 0;
ph_iterations = 20;

level_load("damage.wmb");
wait(5);

ph_setgravity(vector(0, 0, -1200));
ph_setcorrections(9000, 0);
ph_setcollisions(1000, 2);

// ent_create("test_ragdoll.mdl", vector(160, -64, -1208), move);
wait(1);
}

void updateBoneHinge(ENTITY* hingeEnt, STRING* bodyPart, ENTITY* actor) {
VECTOR temp_pos, temp_ang, temp_mov, temp_ang_1;

ENTITY* hingePointer = hingeEnt;
ENTITY* actorPointer = actor;
STRING* updatePart = bodyPart;

while(hingePointer) {

ent_bonereset(actorPointer, updatePart);

vec_for_bone(temp_pos, actorPointer, updatePart);
ang_for_bone(temp_ang, actorPointer, updatePart);

vec_set(temp_mov, hingePointer.x);
vec_sub(temp_mov, temp_pos);

temp_mov.x /= actorPointer.scale_x; temp_mov.y /= actorPointer.scale_y; temp_mov.z /= actorPointer.scale_z;
//vec_rotateback (temp_mov, temp_ang);
temp_ang.x = 360-temp_ang.x; temp_ang.y = 360-temp_ang.y; temp_ang.z = 360-temp_ang.z;

vec_set(temp_ang_1, nullvector);
ang_add(temp_ang_1, vector(temp_ang.x,0,0));
ang_add(temp_ang_1, vector(0,temp_ang.y,0));
ang_add(temp_ang_1, vector(0,0,temp_ang.z));

ang_rotate(temp_ang_1, hingePointer.pan);
ent_bonerotate(you, updatePart, temp_ang_1);
// ent_bonemove(you, updatePart, temp_mov);

wait(1);
}
}

void setLimit(VECTOR* vec1, VECTOR* vec2) {
vec_set(Hinge1, vec1);
vec_set(Hinge2, vec2);
}

void BodyPartInit(var mass, ENTITY* entityMe) {
set(entityMe, PASSABLE);

entityMe.pan = 180;

phent_settype(entityMe, PH_RIGID, PH_BOX);
phent_setmass(entityMe, mass, PH_BOX);

phent_setgroup(entityMe, GroupID);
phent_setfriction(entityMe, 35);
phent_setdamping(entityMe, 35, 35);
phent_setelasticity(entityMe, 8, 8);

reset(entityMe, PASSABLE);
}

void setHinge(ENTITY* constr_1, ENTITY* constr_2) {
var tempHinge;

// make constraint
tempHinge = phcon_add(PH_HINGE, constr_1, constr_2);
phcon_setparams1(tempHinge, constr_1.x, Hinge1, nullvector);
phcon_setparams2(tempHinge, Hinge2, nullvector, nullvector);
}

void setRagdollPart() {
set(my, INVISIBLE);
}

function DEAD() {
ENTITY* Ent_1;
ENTITY* Ent_2;
ENTITY* Ent_3;

GroupID += 1;

var tempVertex;

you = ent_create("test_ragdoll.mdl", nullvector, NULL);
set(you, PASSABLE);

Ent_1 = my;
setRagdollPart();
BodyPartInit(20, Ent_1);
setHinge(Ent_1, Ent_1);

vec_for_vertex(tempVertex, Ent_1, 23);
Ent_2 = ent_create("leg_up_left.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,1), vector(-40,40,0));
BodyPartInit(5, Ent_2);
// make constraint
setHinge(Ent_2, Ent_1);
updateBoneHinge(Ent_2, "leg_up_left", you);

// left lower leg
vec_for_vertex(tempVertex, Ent_2, 9);
Ent_3 = ent_create("leg_down_left.mdl", tempVertex, setRagdollPart);
setLimit(vector(0,1,0), vector(0,120,0));
BodyPartInit(20, Ent_3);
// make constraint
setHinge(Ent_3, Ent_2);
updateBoneHinge(Ent_3, "leg_down_left", you);

// right upper leg
vec_for_vertex(tempVertex, Ent_1, 22);
Ent_2 = ent_create("leg_up_right.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,1), vector(-40,40,0));
BodyPartInit(5, Ent_2);
// make constraint
setHinge(Ent_2, Ent_1);
updateBoneHinge(Ent_2, "leg_up_right", you);

// right lower leg
vec_for_vertex(tempVertex, Ent_2, 9);
Ent_3 = ent_create("leg_down_right.mdl", tempVertex, setRagdollPart);
setLimit(vector(0,1,0), vector(0,120,0));
BodyPartInit(20, Ent_3);
// make constraint
setHinge(Ent_3, Ent_2);
updateBoneHinge(Ent_3, "leg_down_right", you);

// abs
vec_for_vertex(tempVertex, Ent_1, 21);
Ent_2 = ent_create("abs.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,0), vector(-15,15,0));
BodyPartInit(20, Ent_2);
// make constraint
setHinge(Ent_2, Ent_1);
updateBoneHinge(Ent_2, "stomach", you);

//torso
vec_for_vertex(tempVertex, Ent_2, 17);
Ent_1 = ent_create("torso.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,0), vector(-20,20,0));
BodyPartInit(55, Ent_1);
// make constraint
setHinge(Ent_1, Ent_2);
updateBoneHinge(Ent_1, "torso", you);

// left upper arm
vec_for_vertex(tempVertex, Ent_1, 21);
Ent_2 = ent_create("arm_up_left.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,1), vector(-70, 116,20));
BodyPartInit(5, Ent_2);
// make constraint
setHinge(Ent_2, Ent_1);
updateBoneHinge(Ent_2, "arm_up_left", you);

// left lower arm
vec_for_vertex(tempVertex, Ent_2, 9);
Ent_3 = ent_create("arm_down_left.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,0), vector(270,0,0));
BodyPartInit(20, Ent_3);
// make constraint
setHinge(Ent_3, Ent_2);
updateBoneHinge(Ent_3, "arm_down_left", you);

// right upper arm
vec_for_vertex(tempVertex, Ent_1, 22);
Ent_2 = ent_create("arm_up_right.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,1), vector(-70,116,20));
BodyPartInit(5, Ent_2);
// make constraint
setHinge(Ent_2, Ent_1);
updateBoneHinge(Ent_2, "arm_up_right", you);

// right lower arm
vec_for_vertex(tempVertex, Ent_2, 9);
Ent_3 = ent_create("arm_down_right.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,0), vector(270,0,0));
BodyPartInit(20, Ent_3);
// make constraint
setHinge(Ent_3, Ent_2);
updateBoneHinge(Ent_3, "arm_down_right", you);

// head
vec_for_vertex(tempVertex, Ent_1, 23);
Ent_2 = ent_create("head.mdl", tempVertex, setRagdollPart);
setLimit(vector(1,1,0), vector(-45,45,0));
BodyPartInit(25, Ent_2);
// make constraint
setHinge(Ent_2, Ent_1);
updateBoneHinge(Ent_2, "head", you);

while(you) {
vec_set(you.x, my.x);
vec_set(you.pan, my.pan);

if(key_p) {
phent_addvelglobal(my, vector(0,0,0), nullvector);
}

wait(1);
}
}

function shoot()
{
ent_create("bullet.mdl", nullvector, move_bullet);
}
function move_bullet()
{
wait (1);
my.emask |= ENABLE_SHOOT;
my.emask |= ENABLE_BLOCK;
my.event = remove_bullet;
my.pan = player.pan;
my.tilt = camera.tilt;

my.skill20 = 0;
my.skill1 = 75;
my.skill2 = 0;
my.skill3 = 0;
}

function remove_bullet()
{
wait (1);
phent_settype(my,PH_RIGID,PH_BOX);
phent_setmass(my,1,PH_BOX);
phent_setfriction(my,45);
phent_setelasticity(my,15,10);
phent_setdamping(my,20,20);
wait (-10);
ent_remove (me);
}
---------------------------------------------------------------

Thank you (I hop :D_cry


I have know Gamestudio/A7 Commercial Edition 7.84
Re: turn in to ragdoll problem with acknex [Re: Blackchuck] #277080
07/07/09 16:52
07/07/09 16:52
Joined: Jul 2009
Posts: 150
B
Blackchuck Offline OP
Member
Blackchuck  Offline OP
Member
B

Joined: Jul 2009
Posts: 150
somebody???


I have know Gamestudio/A7 Commercial Edition 7.84
Re: turn in to ragdoll problem with acknex [Re: Blackchuck] #277182
07/08/09 07:54
07/08/09 07:54
Joined: Nov 2008
Posts: 946
T
the_clown Offline
User
the_clown  Offline
User
T

Joined: Nov 2008
Posts: 946
No () after "my.event = DEAD;
Dunno if this is the error, but it's definitely not good.

Re: turn in to ragdoll problem with acknex [Re: the_clown] #277194
07/08/09 09:15
07/08/09 09:15
Joined: Aug 2008
Posts: 2,838
take me down to the paradise c...
Cowabanga Offline
Expert
Cowabanga  Offline
Expert

Joined: Aug 2008
Posts: 2,838
take me down to the paradise c...
...And next time try to use "[ code]" and "[/ code]" to make it easier to read.

Re: turn in to ragdoll problem with acknex [Re: Cowabanga] #277568
07/09/09 16:46
07/09/09 16:46
Joined: Jul 2009
Posts: 150
B
Blackchuck Offline OP
Member
Blackchuck  Offline OP
Member
B

Joined: Jul 2009
Posts: 150
Cool that was reely the only problem!!! thanks.

But why nothing happens wenn I press mouseleft?
My chareckter schould schoot an bullet.

PS: The ragdoll is the one and only guard!!!!! blush


I have know Gamestudio/A7 Commercial Edition 7.84

Moderated by  HeelX, Spirit 

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