Gamestudio Links
Zorro Links
Newest Posts
AlpacaZorroPlugin v1.3.0 Released
by kzhao. 05/20/24 01:28
Free Live Data for Zorro with Paper Trading?
by AbrahamR. 05/18/24 13:28
Change chart colours
by 7th_zorro. 05/11/24 09:25
Data from CSV not parsed correctly
by dr_panther. 05/06/24 18:50
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (AndrewAMD, Ayumi), 903 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Newest Members
Hanky27, firatv, wandaluciaia, Mega_Rod, EternallyCurious
19051 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 3 1 2 3
Wieso geht das nicht!! :mad: #227039
09/12/08 13:09
09/12/08 13:09
Joined: Jul 2008
Posts: 191
M
MDMDFSS Offline OP
Member
MDMDFSS  Offline OP
Member
M

Joined: Jul 2008
Posts: 191
ich arbeite an einen Player der springen und kämpfen kann nur das mit den springen geht nicht, hiers ist meine Arbeit (Ich habe A6.40) :


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

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

var video_mode = 7; // 800x600
var video_depth = 16; // 16 bit mode

var player_distance; // moves the player
var enemy_distance; // moves the enemy

var jump_z; //temporary variable, is copied into player_diff.z before the move instruction
var jump_force = 10; //change this variable to affect how high the player jumps
var jumping_mode = 0; //0 for not jumping, 1 if jumping
var z_force = 0;
var center[3];
var result = 0;


define sword_base = skill12; // using skill12, 13, 14 to store the sword_base coords
define sword_tip = skill15; // using skill15, 16, 17 to store the sword_tip coords
define healthpoints = skill18; // just another name for skill18

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

font swc_font = <font.pcx>, , 24, 23; // sword combat font

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

bmap spark_map = <spark.pcx>; // for spark particles
bmap blood_map = <blood.pcx>; // for blood particles

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

sound beep_sound = <beep.wav>;
sound sword_snd = <sword.wav>;

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

function particle_sparks();
function particle_blood();
function fade_particle();

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

string level1_wmb = <level1.wmb>;
string health_str = "Player Health";

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

entity* enemy; // useful only if you want to display its health

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

panel health_panel // displays the numbers
{
pos_x = 0;
pos_y = 0;
digits = 120, 575, 4, swc_font, 1, player.healthpoints;
flags = refresh, visible;
}

text health_text // displays the text
{
pos_x = 0;
pos_y = 550;
font = swc_font;
string = health_str;
flags = visible;
}

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

function main()
{
level_load (level1_wmb);
wait (2); // wait for the level to be loaded
clip_size = 0; // show all the triangles for all the models
on_d = null; // disable the debug panel (key "D") because it is used for movement
fps_max = 40; // lock the frame rate to 40 fps
}

action player_fight // attached to the player
{
player = me; // I'm the player
player.healthpoints = 100; // and I have 100 health points
while (player.healthpoints > 0) // as long as I'm alive
{
camera.x = player.x - 150 * cos(player.pan); // 200 = distance between the player and the camera
camera.y = player.y - 150 * sin(player.pan); // same value here
camera.z = player.z + 20; // above the player
camera.pan = player.pan; // looks in the same direction with the player
camera.tilt = -12; // look down at the player

my.pan += 5 * (key_a - key_d) * time - 60 * mouse_force.x * time; // rotates with the keys A and D or with the mouse
player_distance.x = 20 * (key_w - key_s) * time; // moves forward / backward with W / S
player_distance.y = 0;
player_distance.z = 0;

if ((key_w == 1) || (key_s == 1)) // the player is walking
{
ent_cycle("run", my.skill20); // play walk frames animation
my.skill20 += 5 * time; // "walk" animation speed
if (my.skill20 > 100) {my.skill20 = 0;} // loop animation
}
else // the player is standing
{
ent_cycle("stand", my.skill21); // play stand frames animation
my.skill21 += 2 * time; // "stand" animation speed
if (my.skill21 > 100) {my.skill21 = 0;} // loop animation
}

ent_move(player_distance, nullvector);

if (key_j == 1) // if we press the left mouse button
{
my.skill22 = 0; // reset "attack" frames
while (my.skill22 < 100)
{
ent_vertex(my.sword_tip, 2698); // sword tip vertex coords - get the value in Med
ent_vertex(my.sword_base, 2698); // sword base vertex coords - get the value in Med
trace_mode = ignore_me + ignore_passable; // ignore me (the player) and all the entities that are passable
trace (my.sword_base, my.sword_tip); // trace between these sword positions
if (result != 0) // the player has hit something
{
effect (particle_sparks, 10, target, normal);
if (you != null) {you.healthpoints -= 5 * time;} // if it hasn't hit a wall, decrease health
ent_playsound (my, sword_snd, 50); // sword sound
}
ent_cycle("attack_a", my.skill22); // play attack frames animation
my.skill22 += 8 * time; // "attack" animation speed
wait (1);
}
while (key_j == 1) {wait (1);} // can't use autofire on a sword smile
}
wait (1);
}
while (my.skill23 < 90) // the player is dead
{
ent_cycle("knockdown", my.skill23); // play death frames animation
my.skill23 += 3 * time; // "death" animation speed
wait (1);
}
my.passable = on; // the corpse can't be hit by the enemy sword from now on
}

if (key_space == 1) // if we press the space button
{
ent_cycle("jump", my.skill22);
my.skill22 += 5 * time;
wait (1);
(jumping_mode == 1) {
}
(z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; }
(jumping_mode == 0) {
(z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; }
}
(z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; }
}
}


action enemy_fight // attached to the enemy
{
enemy = me; // I'm the enemy
enemy.healthpoints = 10; // and I have 100 healthpoints
while (my.healthpoints > 0) // as long as I'm alive
{
if (vec_dist (my.x, player.x) < 500 && player.healthpoints > 0) // the player approaches the enemy
{
vec_set(temp, player.x);
vec_sub(temp, my.x);
vec_to_angle(my.pan, temp);
my.tilt = 0; // I'm a maniac smile
enemy_distance.x = 7 * time;
enemy_distance.y = 0;
enemy_distance.z = 0;
ent_move(enemy_distance, nullvector);
ent_cycle("run", my.skill19); // play walk frames animation
my.skill19 += 5 * time; // "walk" animation speed
if (my.skill19 > 100) {my.skill19 = 0;} // loop animation
if (vec_dist (my.x, player.x) < 60) // if the player comes closer than 50 quants attack him
{
my.skill20 = 0; // reset "attack" frames
while (my.skill20 < 100)
{
ent_vertex(my.sword_tip, 2698); // sword tip vertex coords - get the value in Med
ent_vertex(my.sword_base, 2698); // sword base vertex coords - get the value in Med
trace_mode = ignore_me + ignore_passable;
trace (my.sword_base, my.sword_tip); // trace between these sword positions
if (result != 0) // hit something, could be the player or another enemy
{
effect (particle_blood, 2, target, normal);
if (you != null) {you.healthpoints -= 4 * time;}
ent_playsound (my, sword_snd, 50); // sword sound
}
ent_cycle("attack_c", my.skill20); // play attack frames animation
my.skill20 += 5 * time; // "attack" animation speed
wait (1);
}
waitt (6); // slows down the enemy and reduces the number of traces per second
}
}
else // the player is farther than 200 quants away
{
ent_cycle("stand", my.skill21); // play stand frames animation
my.skill21 += 2 * time; // "stand" animation speed
if (my.skill21 > 100) {my.skill21 = 0;} // loop animation
}
wait (1);
}
while (my.skill22 < 80) // the enemy is dead
{
my.event = null;
my.enable_shoot = on;
my.enable_scan = on;
my.transparent = on;
my.bright = on;
my.alpha = 100;
ent_cycle("knockdown", my.skill22);
my.skill22 += 4 * time;
wait(1);}
my.passable = on;
wait(20);
while(my.alpha > 0)
{
my.alpha -= time * 5;
my.z -= time * 0.5;
wait(1);
}
ent_remove(my);
}

function particle_sparks()
{
temp.x = random(2) - 1;
temp.y = random(2) - 1;
temp.z = random(1) - 1.5;
vec_add (my.vel_x, temp);
my.alpha = 30 + random(50);
my.bmap = spark_map;
my.size = 10;
my.flare = on;
my.bright = on;
my.move = on;
my.lifespan = 20;
my.function = fade_particle;
}

function particle_blood()
{
temp.x = random(2) - 1;
temp.y = random(2) - 1;
temp.z = random(1) - 1.5;
vec_add (my.vel_x, temp);
my.alpha = 70 + random(30);
my.bmap = blood_map;
my.size = 6;
my.flare = on;
my.bright = on;
my.move = on;
my.lifespan = 20;
my.function = fade_particle;
}

function fade_particle()
{
my.alpha -= 5 * time;
if (my.alpha < 0) {my.lifespan = 0;}
}

Re: Wieso geht das nicht!! :mad: [Re: MDMDFSS] #227040
09/12/08 13:10
09/12/08 13:10
Joined: Jul 2008
Posts: 191
M
MDMDFSS Offline OP
Member
MDMDFSS  Offline OP
Member
M

Joined: Jul 2008
Posts: 191
die Problemstelle ist:


if (key_space == 1) // if we press the space button
{
ent_cycle("jump", my.skill22);
my.skill22 += 5 * time;
wait (1);
(jumping_mode == 1) {
}
(z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; }
(jumping_mode == 0) {
(z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; }
}
(z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; }
}
}

Re: Wieso geht das nicht!! :mad: [Re: MDMDFSS] #227041
09/12/08 13:11
09/12/08 13:11
Joined: Jul 2008
Posts: 191
M
MDMDFSS Offline OP
Member
MDMDFSS  Offline OP
Member
M

Joined: Jul 2008
Posts: 191
dancke in vorraus!!!!

Re: Wieso geht das nicht!! :mad: [Re: MDMDFSS] #227053
09/12/08 13:37
09/12/08 13:37
Joined: Aug 2005
Posts: 343
Germany
HPW Offline
Senior Member
HPW  Offline
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Den Code konntest du so ausführen ohne Fehlermeldung? O_o
Ich weiss nicht obs nur ein Kopierfehler hier im Forum von dir ist, oder ob das so genau in deinem Script steht, aber da fehlen die "if" bei deinen Abfragen:

Code:
...
if (z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; } 
if (jumping_mode == 0)
{
  if (z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; } 
} 
  if (z_force > -20) { z_force -= 3 * time; } ELSE { z_force = -20; } 
}
...


Last edited by HPW; 09/12/08 13:38.

Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)
Re: Wieso geht das nicht!! :mad: [Re: HPW] #227113
09/12/08 17:34
09/12/08 17:34
Joined: Jul 2008
Posts: 191
M
MDMDFSS Offline OP
Member
MDMDFSS  Offline OP
Member
M

Joined: Jul 2008
Posts: 191
nein ich konnte es nicht ausführen ohne Fehlermeldungen, die Fehlermeldungen nerven total.

Re: Wieso geht das nicht!! :mad: [Re: MDMDFSS] #227115
09/12/08 17:38
09/12/08 17:38
Joined: Jul 2008
Posts: 191
M
MDMDFSS Offline OP
Member
MDMDFSS  Offline OP
Member
M

Joined: Jul 2008
Posts: 191
Ich habe zuerst alles ohne springen geschrieben und das ging prima, dann fand ich er müsste springen können und habe versucht sowas hinzuzufügen, ging aber nicht. frown

Re: Wieso geht das nicht!! :mad: [Re: MDMDFSS] #227131
09/12/08 19:26
09/12/08 19:26
Joined: Aug 2005
Posts: 343
Germany
HPW Offline
Senior Member
HPW  Offline
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Gehts denn jetzt wenn du die "if" da hin schreibst wie in meinem Codesnipsel?


Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)
Re: Wieso geht das nicht!! :mad: [Re: HPW] #227149
09/12/08 21:00
09/12/08 21:00
Joined: Jul 2008
Posts: 191
M
MDMDFSS Offline OP
Member
MDMDFSS  Offline OP
Member
M

Joined: Jul 2008
Posts: 191
nein immernoch das selbe Problem

Re: Wieso geht das nicht!! :mad: [Re: MDMDFSS] #227159
09/12/08 21:30
09/12/08 21:30
Joined: Aug 2005
Posts: 343
Germany
HPW Offline
Senior Member
HPW  Offline
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Welche Fehlermeldungen kommen denn? Kann man da was raus erkennen oder sind es nichtssagende Fehlermeldungen? Am besten schriebst du die mal hier rein, wenn die eine Aussage haben.
Programmierst du mit einer name.c oder einer name.wdl Datei?
Bei einer name.c Datei sollten viele deiner Deklarationen anderst aussehen, wie z.b. anstelle von string health_str = "Player Health"; solltest du STRING* health_str = "Player Health"; schreiben. Verendest du allerdings die Dateiendung wdl, dann sind deine Deklarationen richtig.


Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)
Re: Wieso geht das nicht!! :mad: [Re: HPW] #227260
09/13/08 14:28
09/13/08 14:28
Joined: Jul 2008
Posts: 191
M
MDMDFSS Offline OP
Member
MDMDFSS  Offline OP
Member
M

Joined: Jul 2008
Posts: 191
aber alle strings gehen das einzigste was nicht geht ist der gravity oder die physic

Page 1 of 3 1 2 3

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