Author Topic: Scene Repair  (Read 5226 times)

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #15 on: November 24, 2019, 04:08:21 am »
I've taken a long look at the scripts and am not totally sure how I can incorporate the control script without linking my own parent controller. I code in Lua and Python so Action Script is totally alien to me. I'm going to give it some more thought and effort in the morning and I'll get back to you with results

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #16 on: November 25, 2019, 02:15:50 am »
OK so I now know how to script the camera but I don;t know how to set the zoom. Any thoughts?

  • Administrator
  • Sr. Member
  • *****
  • Posts: 407
    • View Profile
Re: Scene Repair
« Reply #17 on: November 25, 2019, 09:32:51 am »
There are two ways to make a zoom:
1. Flash style: Find a suitable node of object tree:
  The jasmine_sex_a SWF file contains following object tree:
Main time line
-area (DefineSprite 324)
  -char (DefineSprite 323)
    -sky (DefineSprite 216)
    -(unnamed) DefineSprite 218 (background)
    -jasmin (DefineSprite 322) (sex animation)
      -... body parts
      -player (DefineSprite 299)
-controller (DefineSprite 342)

Where the "area" object instance defined by DefineSprite(324) object class is the best candidate as it has only one frame with one child object instance "char".
So now add second frame to DefineSprite(324) in which you change "char" object instance scale: I don't know how it's done in Adobe Flash tool, but in FFDec SWF editor you add PlaceObject2 tag where you fill the same depth (1) already occupied by "char" object, set move flag, leave character parameter empty and fill scale parameter in matrix record. xscale and yscale in SWF is 16.16 fixed point number, where value of 1 (0x00010000 for 16.16 fixed point) means 1:1 or 100%. Also change x and y coordinates, both are in pixels of parent object scale.
Now you can add third frame with third zoom level the same way.
But flash would play the frames by default so you need to stop the sequence on load.
You can either add script to the first frame of object class DefineSprite(324), or as an onLoad() event script to the object instance (in the PlaceObject2 record in the main timeline). In both cases the script should contain only one statement stop().
Now how to control the zoom sequence. First add frame labels to all frames you have, i.e. "zoom1", "zoom2", "zoom3". Avoid using numbers as names, because when you have 6th frame labeled by name "2", then flash player get confused on gotoAndStop("2); statement whether to go to the frame number 2 or frame number 6 labeled "2". That's what Crow has done and then swears that Flash is breaking his game.
Now set the control buttons. Each button has mouse event script, either on(press) or on(release), doesn't really matter which one. I may have on(keyPress "z") event defined too.
For each button add gotoAndStop("zoom1"); statement for particular frame label. But because the zoom button instance is in the unnamed child of "controller" object  (when using Anahi controller), not in the "char" object, you have to climb up the object tree using _parent reference and then down the zoom object by it's "char" instance name, so you have _parent._parent.char.gotoAndStop("zoom1"); /zoom2 or zoom3 statement in each button script. Alternatively you can go from the top of the object hierarchy using _root reference. However top of the hierarchy depends whether is the file played standalone (file main timeline is _root) or file is loaded by the launcher (launcher main timeline is _root, file main timeline is mounted as _root.LVL object), so statements using _root reference works only one mode.
Still keep zoom button green sign movement statement in each button script, i.e. _parent.camera_controls_glow.gotoAndStop("d"); when using Anahi controller. Do not use Crow's favorite tellTarget(){} statement, it has been deprecated since AS1 before Crow even started creating HTH.

2. ActionScript style: It's actually easier way to do this but Crow cannot code in AS2 even after 20 years of doing that.
Each object instance of MovieClip class (which is represented by DefineSprite in SWF) has coordinates and scale properties:
_x and _y numbers in pixels of parent object scale,
_xscale and _yscale numbers in percentage (100 = 1:1).
So in order to create a zoom you only need to change zoom button scripts. For example:
_parent._parent.char._xscale = 200;
_parent._parent.char._yscale = 200;
_parent._parent.char._x = -500;
_parent._parent.char._y = 2000;
... and keep _parent.camera_controls_glow.gotoAndStop("b");

I hope it's clear enough.
I'm not a programmer either, I've learnt Flash & ActionScript barely an year ago with single purpose of hacking HTH game :-)
Well, neither is Crow, that's why he uses only like 5 basic AS2 statements and often wrong way.

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #18 on: November 25, 2019, 01:26:56 pm »
The guy is going to kill himself I swear

  • Administrator
  • Sr. Member
  • *****
  • Posts: 407
    • View Profile
Re: Scene Repair
« Reply #19 on: November 26, 2019, 07:41:38 pm »
I can do scripts for you, if it's too overwhelming.
I'm not a programmer myself, but I use to do some programming (albeit in assembler, C, C++) as minor side tasks for my job.

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #20 on: November 26, 2019, 11:09:49 pm »
I’m definitely going to give it a try in order to get better at AS2

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #21 on: December 01, 2019, 03:13:53 am »
Ok so I haven’t really had time to learn ActionScript and I’m quickly realizing that I’m holding up our collective progress so I’d like to apologize. I’ve defined all the buttons and update the gui, but this time I’ll have to leave the scripting to you. The file will be attached by Monday if not tomorrow.  I’m getting some 8 or 9 days free time over Christmas so assign me some scenes to repair or a character to dialogue.

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #22 on: December 02, 2019, 04:28:32 pm »
Before I post the file, will you need a symbol movie clip for the Camera control buttons?

  • Administrator
  • Sr. Member
  • *****
  • Posts: 407
    • View Profile
Re: Scene Repair
« Reply #23 on: December 02, 2019, 06:33:23 pm »
I'm not sure what is a symbol movie clip. Just make sure that each key frame of controller has a script tag as FFDec does not support adding these.

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #24 on: December 02, 2019, 11:40:36 pm »
So you will need a separate controller for the camera?

  • Administrator
  • Sr. Member
  • *****
  • Posts: 407
    • View Profile
Re: Scene Repair
« Reply #25 on: December 03, 2019, 11:08:53 pm »
Upload swf file of what you have. I'll look inside and tell back if something needs to be different way.

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #26 on: December 04, 2019, 12:29:59 pm »
That won’t be necessary.
I Have everything except one thing

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #27 on: December 04, 2019, 02:00:27 pm »
OK this is what I've got so far. Everything works I'm pretty sure except for the cam buttons. I can't get them to behave for some reason... I'll repost if I figure it out. After this I'm moving on to jeanette cowgirl and filling in the player's arm

[ Attachment Invalid Or Does Not Exist ]

  • Administrator
  • Sr. Member
  • *****
  • Posts: 407
    • View Profile
Re: Scene Repair
« Reply #28 on: December 04, 2019, 09:02:26 pm »
There are multiple things wrong with that file.
1. Main sex sequence: You have a script on each speed first frame, but you somehow lost script on last frame of each speed to loop animation back to the first frame of particular speed.
So when the first speed first frame number 50 named "a" has script:
play();
tellTarget("_root.LVL.NPC.area.char.jasmin.****")
{
   gotoAndStop("a");
   play();
}
player.gotoAndPlay("a");

Which is botched Crow style script telling "****" object to play "a" sequence and "player" object to play "a" sequence.
(first play() is unnecessary, object is is already called to play starting at particular frame; tellTarget is deprecated statement but still working to move focus of following statements to object "_root.LVL.NPC.area.char.jasmin.****" which is unnecessary referenced from the top of the hierarchy while this script is already in "jasmin" object; gotoAndStop() followed by play() is equal to gotoAndPlay() statement which should be used instead; so the 5 middle lines should be replaced by simple ****.gotoAndPlay("a") statement).
You need also a script in the last frame (unnamed frame 100) of the first speed telling to play again from the first frame of this speed. That's done by single statement gotoAndPlay("a") = play this from frame named "a".

The same with the second and third speed: Add script gotoAndPlay("b") to the frame 140 (last of the second speed) and gotoAndPlay("c") to the frame 155.

The climax sequnce need script to stop in the last frame of the sequence, otherwise playing restarts from the first frame of object (sprite) timeline. So add script with stop() statement to the frame 200.

Now about the camera controller:
First, you have camera buttons in separate invisible object (sprite). There is no reason for that. In the object (sprite) where you have visible button drawings, you place the object with buttons in the first frame of camera controller, then in the second frame you remove object with buttons and place it again back. That deletes state of the object with button and creates it again starting in the first frame. I suggest to place each button object to particular frame of camera controller object.
Then gotoAndStop(...); will work at least moving this camera controller frame.
There is still no object with multiple frames of different zoom for the sex scene. You don't need to create one, you can change it's zoom and position instead of creating multiple frames.
To change zoom of not just sex scene, but also with background together, manipulate "area.char" object:
Place following statements in your button scripts:
_parent.area.char._xscale = 200; (use any number you want)
_parent.area.char._yscale = 200; (use the same number as above to keep aspect ratio)
_parent.area.char._x = ...; (some number of new relative horizontal position)
_parent.area.char._y = ...; (some number of new relative vertical position)

The default zoom and position offset for "char" object in default zoom (use for camera1) is: _xscale = 100; _yscale = 100; _x = 0; _y = 0;

The censored object name is t-i-t-s.
I hope Crow's lawyer nukes this board soon so I can setup new decent one and don't need to deal with F-U-C-K-I-N-G SmfNew boards anymore. I didn't expect that a pirate board could live on public free forums site longer than 3 weeks.
« Last Edit: December 04, 2019, 09:10:09 pm by Tabby »

  • Hero Member
  • *****
  • Posts: 509
    • View Profile
Re: Scene Repair
« Reply #29 on: December 04, 2019, 10:13:38 pm »
Ok I’ll look into it. This is my first time really working with flash so thanks for being patient. I’ve almost completely finished redrawing the Jeanette scene so I’ll post then