* *
Welcome, Guest. Please login or register.
Did you miss your activation email?
October 20, 2017, 01:43:12 PM

Login with username, password and session length

Training Lessons

  • 52 Replies
  • 1289 Views
*

Offline Bloodbane

  • Hero Member
  • *****
  • 3126
  • Dark Dragon
Re: Training Lessons
« Reply #45 on: October 04, 2017, 10:40:14 AM »
 Sorry for the late reply, I read your post before but forgot to reply  :-[

 Anyways, I've solved problem 1 and now still investigating problem 2

*

Online dantedevil

  • Hero Member
  • *****
  • 1435
  • Dante
Re: Training Lessons
« Reply #46 on: October 04, 2017, 10:45:12 AM »
Sorry for the late reply, I read your post before but forgot to reply  :-[

 Anyways, I've solved problem 1 and now still investigating problem 2

No problem my friend.
Thanks!
Dantedevil

*

Online dantedevil

  • Hero Member
  • *****
  • 1435
  • Dante
Re: Training Lessons
« Reply #47 on: October 06, 2017, 08:33:24 AM »
Well, still testing a lot this new system and now can confirm how can solve the last problem.
I only need this still working until now:
Quote
When the Lesson 22 ends, comes the 23 No Mercy. Here the enemy appear with low health (20), this is ok.

No other reset is necessary, because with my system, if the enemy dies for the wrong animation, a new enemy is spawned.

So I try tu update the script to work like this, but I can't.
Dantedevil

*

Offline Bloodbane

  • Hero Member
  • *****
  • 3126
  • Dark Dragon
Re: Training Lessons
« Reply #48 on: October 07, 2017, 12:33:02 AM »
 I've figured out a way to spawn new enemy after current one are is killed either with correct fatality or with anything else. Just need to figure out a trick to set immunity against regular attack during fatality lessons

*

Online dantedevil

  • Hero Member
  • *****
  • 1435
  • Dante
Re: Training Lessons
« Reply #49 on: October 07, 2017, 02:07:50 AM »
I've figured out a way to spawn new enemy after current one are is killed either with correct fatality or with anything else. Just need to figure out a trick to set immunity against regular attack during fatality lessons

I'm glad to know that, my friend!

After studying all the possibilities, I think everything would work well with ywo things:

1) When the Lesson 22 ends, comes the 23 No Mercy. Here the enemy appear with low health (20)

2) I need these animations to let the enemy die normally

22   FATALITY1                  anim follow20
23   FATALITY2                  anim follow42
24   FATALITY3                  anim follow43
25   FATALITY4                  anim follow44
26   Standard Stage Fat.  anim freespecial35

In  all this dead animation of the enemy : No Mercy  and the four fatalities, they actually have the spawn for a new enemy in the last frame.

In the last lesson : 26   Standard Stage Fat.  anim freespecial35
I want use jumptobranch or something like this, to end the training and goes to the menu again.


Ahh and do not forget this:
I'm going to update this further to accept projectiles too :)
« Last Edit: October 08, 2017, 08:48:52 AM by dantedevil »
Dantedevil

*

Online dantedevil

  • Hero Member
  • *****
  • 1435
  • Dante
Re: Training Lessons
« Reply #50 on: October 08, 2017, 09:29:41 AM »
Bravo, Bravo, Bloodbane !
You did it again, my dear friend!

The last demo you send me works ok. Your works it's wonderful.

There are only a few minor changes and corrections, but the most important thing is already.

1) I see that it still needs to be updated to accept projectiles.

Since these animations do not admit them as correct:

Here Raiden Spawn a ray:
Code: [Select]
anim attackbackward
loop 0
delay 4
offset 87 177
bbox 65 76 34 104
sound   data/chars/raiden/elec.wav
        @cmd    spawn01  "ray3" -8 35 1
frame data/chars/raiden/sp0.png
frame data/chars/raiden/back02.png
frame data/chars/raiden/back03.png
frame data/chars/raiden/back04.png
delay 30
frame data/chars/raiden/back04.png
delay 9
frame data/chars/raiden/back03.png
frame data/chars/raiden/t5.png

And here Jago spawn the shadows in his Super attack:
Code: [Select]
anim special
loop 0
   @script
   void vSelf = getlocalvar("self");
   int   iMP = getentityproperty(vSelf, "mp");
   if ( frame == 0 && iMP < 100 )
     {
        //then play can't animation
        performattack(vSelf, openborconstant("ANI_CANT"), 1);
     }
   if ( frame == 1 ){
        changeentityproperty(vSelf, "mp", iMP - 100);
        }
   @end_script
offset 87 177
delay   14
bbox 0 0 0 0
frame data/chars/jago/magic01.png
frame data/chars/jago/magic02.png
        @cmd    spawn01 "fmagic" 0 0 1
sound data/sounds/magic.wav
frame data/chars/jago/magic02.png
   @script
   void vSelf = getlocalvar("self");                 //Caller.
   void vEntity;                                     //Target entity placeholder.   
   int  iEntity;                                     //Entity enumeration holder.   
   int  iType;                                       //Entity type.   
   int  iMax      = openborvariant("ent_max");       //Entity count.   
   if(frame==1){                                     //Enumerate and loop through entity collection.     
   for(iEntity=0; iEntity<iMax; iEntity++){           
       vEntity = getentity(iEntity);                     //Get target entity from current loop. 
     
       iType   = getentityproperty(vEntity,    "type"); //Get target type.       
                                                        //Enemy type?       
       if (iType == openborconstant("TYPE_ENEMY")){         
   void iTime = openborvariant("elapsed_time") + getentityproperty(vEntity, "freezetime");         
   changeentityproperty(vEntity, "frozen", 1);         
   changeentityproperty(vEntity, "freezetime", iTime + 4*200);
         }      }    }
   @end_script
delay   14
frame data/chars/jago/magic01.png
delay   25
frame data/chars/jago/magic00.png
delay   12
frame data/chars/jago/magic01.png
frame data/chars/jago/magic02.png
delay   9
        @cmd    spawn01 "jshadows" 0 0 -1
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
delay   6
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
frame data/chars/jago/magic02.png
delay   14
frame data/chars/jago/magic02.png
frame data/chars/jago/magic01.png


2) And the other problem is that I have noticed that the training enemy does not use the random name (manUsa0) and randomPal scripts that it has in the anim spawn.

Code: [Select]
anim spawn
        loop 0
@script
    if(frame==1){
      void self = getlocalvar("self");

      setglobalvar("Opp", self);
    }
@end_script
offset 82 177
landframe  9 dust
bbox     0 0 0 0
        @cmd    layer -1
        fshadow 0
        @cmd    randomPal
        @cmd    manUsa0
sound   data/sounds/klunk.wav
delay   50
frame data/chars/gang1/bee/empty.png
delay   4
        jumpframe 2  1.3 4
sound   data/sounds/klunk.wav
frame data/chars/gang1/bee/fall2.png
frame data/chars/gang1/bee/fall2.png
frame data/chars/gang1/bee/fall2.png
frame data/chars/gang1/bee/fall2.png
delay   20
sound   data/sounds/m5fall.wav
frame data/chars/gang1/bee/fall2.png
sound   data/sounds/m5fall.wav
delay   10
        @cmd    layer 0
frame data/chars/gang1/bee/fall3.png
delay   999
frame data/chars/gang1/bee/fall3.png
delay   1
sound   data/sounds/fall1.wav
frame data/chars/gang1/bee/fall4.png
delay   100
frame data/chars/gang1/bee/fall4.png
delay   1
        @cmd    anichange "ANI_RISE" 0
frame data/chars/gang1/bee/fall4.png


PD: In the thread of my mod you can see the video of the Training Lessons. http://www.chronocrash.com/forum/index.php?topic=1871.msg49141#msg49141
« Last Edit: October 08, 2017, 08:14:58 PM by dantedevil »
Dantedevil

*

Offline Bloodbane

  • Hero Member
  • *****
  • 3126
  • Dark Dragon
Re: Training Lessons
« Reply #51 on: October 10, 2017, 06:37:08 AM »
 #1. Can you send lesson demo with Jago and Raiden? I have an idea to solve this but I'm gonna need them and their projectiles

 #2. I believe that's because of first frame bug. It usually happens when spawning an entity with script run in its first frame of SPAWN. Try adding a single frame like this:

Quote
anim spawn
          loop   0
@script
    if(frame==1){
      void self = getlocalvar("self");

      setglobalvar("Opp", self);
    }
@end_script
   offset   82 177
   delay   1
   landframe  10 dust
   bbox       0 0 0 0
        fshadow 0
   frame   data/chars/gang1/bee/empty.png # added frame
   delay   50
        @cmd    layer -1
        @cmd    randomPal
        @cmd    manUsa0
   sound   data/sounds/klunk.wav
   frame   data/chars/gang1/bee/empty.png
   delay   4
        jumpframe 2  1.3 4
   sound   data/sounds/klunk.wav
   frame   data/chars/gang1/bee/fall2.png
   frame   data/chars/gang1/bee/fall2.png
   frame   data/chars/gang1/bee/fall2.png
   frame   data/chars/gang1/bee/fall2.png
   delay   20
   sound   data/sounds/m5fall.wav
   frame   data/chars/gang1/bee/fall2.png
   sound   data/sounds/m5fall.wav
   delay   10
        @cmd    layer 0
   frame   data/chars/gang1/bee/fall3.png
   delay   999
   frame   data/chars/gang1/bee/fall3.png
   delay   1
   sound   data/sounds/fall1.wav
   frame   data/chars/gang1/bee/fall4.png
   delay   100
   frame   data/chars/gang1/bee/fall4.png
   delay   1
        @cmd    anichange "ANI_RISE" 0
   frame   data/chars/gang1/bee/fall4.png

 Related to this, this enemy is spawned using Lessoner entity which applies its alias to the former. With this randomname script, that feature is redundant. I suggest you clear the redundant lines by deleting blue lines from this script in Lessoner.txt:

Quote
anim   follow1
@script
    if(frame == 1){
      void self = getlocalvar("self");
      char Name = getentityproperty(self,"name");
      int x = getentityproperty(self, "x");
      int z = getentityproperty(self, "z");
      void e;

      clearspawnentry();
      setspawnentry("name", "Bee_Lesson");
      e = spawn();

      changeentityproperty(e, "position", x, z, 300);
      changeentityproperty(e, "name", Name);
    }
    if(frame == 2){
      void self = getlocalvar("self");

      setidle(self, openborconstant("ANI_IDLE"));
    }
@end_script
   delay   100
   offset   8 8
   frame   data/chars/misc/empty.png
   delay   10
   frame   data/chars/misc/empty.png
   frame   data/chars/misc/empty.png

*

Online dantedevil

  • Hero Member
  • *****
  • 1435
  • Dante
Re: Training Lessons
« Reply #52 on: October 10, 2017, 10:57:39 AM »
Thanks my friend!

I send you a PM with the link of a new demo with Raiden and Jago.
So now you can check how can solve the problem 1

About the problem 2, I follow your instructions and now the random  names work ok. But the randomPal still without working. I think you can see this better in the demo.

Thanks!
Dantedevil

 

Recent

Members
Stats
  • Total Posts: 46532
  • Total Topics: 3188
  • Online Today: 46
  • Online Ever: 316
  • (January 04, 2013, 09:43:02 AM)
Users Online
Users: 5
Guests: 43
Total: 48