Jump to content

Photo

PORTAL


  • Please log in to reply
20 replies to this topic

#1 NineLives

NineLives

    Boom. Zoom. Dakota.

  • Members
  • Location:Los Angeles, California

Posted 28 October 2007 - 05:57 PM

I was wondering if PORTAL was possible to script.
http://portal.wecreatestuff.com/ < Flash game
http://youtube.com/watch?v=if3Qv2tHyfA <Movie

#2 Titanium Justice

Titanium Justice

    Justice is served!

  • Members
  • Real Name:Jared
  • Location:Ontario

Posted 28 October 2007 - 07:50 PM

Wow icon_eek.gif that would be a cool idea but you cant realy make it excatly the same BUT
it could be like projectiles that make new tilewarps and sidewarps or something icon_freak.gif
sorry man im kinda lost.

#3 Joe Dirt

Joe Dirt

    Wizard

  • Members

Posted 28 October 2007 - 08:38 PM

My guess is that you could not do it properly because there's no way to spawn a "warp return". You could spawn a "warp" FFC, but "warp return" flags are not like normal flags, as they can't be attached to combos.

#4 NineLives

NineLives

    Boom. Zoom. Dakota.

  • Members
  • Location:Los Angeles, California

Posted 28 October 2007 - 09:15 PM

well it'll still be nice if you can ONLY fire two. (Blue and orange portal)
I thought you can just...
link walkins into portal, he warps to the other portal.
And the other portal can warp him back.
like... tile warp from one screen to another, and back.
(Screen 1 > Screen 2) (Screen 2 > Screen 1)

EDIT:
http://www.megaupload.com/?d=QEIMSQLA
Here, I made a preview on how it should kinda look like.
(Stairs = Sideview)
(Down and Right = Bird's Eye)

(I made it in the LATEST BUILD. :O)

Edited by NineLives, 28 October 2007 - 09:36 PM.


#5 NineLives

NineLives

    Boom. Zoom. Dakota.

  • Members
  • Location:Los Angeles, California

Posted 01 November 2007 - 07:20 PM

nothing?

#6 Moonbread

Moonbread

    Playing With Psychos

  • Members
  • Pronouns:They / Them

Posted 01 November 2007 - 07:34 PM

Mmm. Sounds complicated. Because anything that goes through one of the portals would have to come out the other portal, too. Push blocks (which could mess things up), enemies, etc. Point is, I don't think Portal in ZC is a good idea. Frankly, I knew someone was going to try to script Portal to ZC, anyway.

#7 Gleeok

Gleeok

    It's dangerous to dough alone, bake this.

  • Members
  • Real Name:Pillsbury
  • Location:Magical Land of Dough

Posted 02 November 2007 - 12:43 AM

Well I think Portal in zc is a great idea.

I believe it can be done also, actually...I KNOW it can be done.

How I would do it:


Step 1: LINK DOES NOT USE THE BLUE SQUARES OR WARP VIA TILE OR SIDE WARP!

Step 2: The "PORTALS" are actually ffc's. they are shot from an item script and stop and change combos when (!(is_walkable)) or upon hitting a wall for instance, which at that point is handled by a seperate ffc script.

Step 3: Fire the item again, this time; If(ffc->Data == 1st_portal){ // Then fire second portal!!! which is again handled by loading a second ffc.

Step 4: Link enters one portal and exits the other portal. Since no actual screen warping is involved it's a matter of ffc; this and other, and reading the X and Y of Link, portal 1, and portal 2, along with the portal->Data.

Don't ever let anyone tell you that you can't do something. Even if it turns out they're right, then it's that much funnier when you stab them in the neck with a pencil.



Yeah, I could script this for you.


#8 NineLives

NineLives

    Boom. Zoom. Dakota.

  • Members
  • Location:Los Angeles, California

Posted 02 November 2007 - 02:40 PM

OMG REALLY?
I can't script.

At all.
I tried once, I don't get it
IT WOULD BE AWSOME IF YOU SCRIPTED IT!
YOU WILL MAKE HISTORY...

Edited by NineLives, 02 November 2007 - 02:40 PM.


#9 Gleeok

Gleeok

    It's dangerous to dough alone, bake this.

  • Members
  • Real Name:Pillsbury
  • Location:Magical Land of Dough

Posted 03 November 2007 - 10:50 PM

QUOTE(Moonwhisper @ Nov 1 2007, 06:34 PM) View Post

I don't think Portal in ZC is a good idea.


My, my, how wrong you are...


People of pure ZC...I give you ..*cue drumroll..* PORTAL!



CODE


int portal_warp_delay = 0;
//===========================================================
//                  ***ITEM SCRIPT PORTAL***
//D0 - Cset of portal 1
//D1 - Cset of portal 2
//D2 - speed of portals (not finished yet) :0
//===========================================================
item script PORTAL_item_ver2{

    void run(int cset, int cset2){

        int portal_data = 10;

        ffc portal1 = Screen->LoadFFC(29);
        ffc portal2 = Screen->LoadFFC(28);

        if(!((portal1->Data >= portal_data) && (portal1->Data <= portal_data+7) &&
            (portal2->Data >= portal_data+4) && (portal2->Data <= portal_data+7)) ) {


            if(!((portal1->Data >= portal_data) && (portal1->Data <= portal_data+7))){  

                Game->PlaySound(35);

                if(Link->Dir == 0) {
                    portal1->X = Link->X;
                    portal1->Y = Link->Y - 16;
                    portal1->Vy = -2;
                    portal1->Vx = 0;
                    portal1->Data = portal_data;
                    portal1->CSet = cset;
                }
                if(Link->Dir == 1) {
                    portal1->X = Link->X;
                    portal1->Y = Link->Y + 16;
                    portal1->Vy = 2;
                    portal1->Vx = 0;
                    portal1->Data = portal_data+1;
                    portal1->CSet = cset;
                }
                if(Link->Dir == 2) {
                    portal1->X = Link->X - 16;
                    portal1->Y = Link->Y;
                    portal1->Vx = -2;
                    portal1->Vy = 0;
                    portal1->Data = portal_data+2;
                    portal1->CSet = cset;
                }
                if(Link->Dir == 3) {
                    portal1->X = Link->X + 16;
                    portal1->Y = Link->Y;
                    portal1->Vx = 2;
                    portal1->Vy = 0;
                    portal1->Data = portal_data+3;
                    portal1->CSet = cset;
                }
            }
            else{
                if( (portal1->Data >= portal_data) && (portal1->Data <= portal_data+3) ){

                    portal1->Data = portal_data+4;
                    portal1->Vx = 0; portal1->Vy = 0;    

                }
                else{
                    if(portal2->Data >=portal_data){ portal2->Vx = 0;portal2->Vy = 0; portal2->Data = portal_data+4;}

                    if(!((portal2->Data >= portal_data) && (portal2->Data <= portal_data+7))){

                        Game->PlaySound(35);
            
                        if(Link->Dir == 0) {
                            portal2->X = Link->X;
                            portal2->Y = Link->Y - 16;
                            portal2->Vy = -2;
                            portal2->Vx = 0;
                            portal2->Data = portal_data;
                            portal2->CSet = cset2;
                        }
                        if(Link->Dir == 1) {
                            portal2->X = Link->X;
                            portal2->Y = Link->Y + 16;
                            portal2->Vy = 2;
                            portal2->Vx = 0;
                            portal2->Data = portal_data+1;
                            portal2->CSet = cset2;
                        }
                        if(Link->Dir == 2) {
                            portal2->X = Link->X - 16;
                            portal2->Y = Link->Y;
                            portal2->Vx = -2;
                            portal2->Vy = 0;
                            portal2->Data = portal_data+2;
                            portal2->CSet = cset2;
                        }
                        if(Link->Dir == 3) {
                            portal2->X = Link->X + 16;
                            portal2->Y = Link->Y;
                            portal2->Vx = 2;
                            portal2->Vy = 0;
                            portal2->Data = portal_data+3;
                            portal2->CSet = cset2;
                        }
                    }
                }        
            }    
        }
    }    
}



ITEM PART

D0 - D1 csets of portals

Don't touch that dial!

CODE

ffc script PORTAL_ffc_ver2{

    void run(int this_ffc_number, int other_ffc_number){

        ffc this_ffc = Screen->LoadFFC(this_ffc_number);
        ffc other_ffc = Screen->LoadFFC(other_ffc_number);

        int portal_data = 10;
        int portal_set = 0;

        int portal_position = 0;

        int enemy_number = 0;
        npc enemy;

        while(true){

            if(this_ffc->X <0 || this_ffc->X > 240 || this_ffc->Y <0 || this_ffc->Y >160) {
                this_ffc->Data = 1; this->Y = 0; this->X = 0;}

            if(portal_warp_delay > 0){ portal_warp_delay--;}

            if(portal_set == 0){

            

                if(other_ffc->Data >= portal_data + 4){

                    if(portal_warp_delay == 0){

                        if ( (Link->X <= this_ffc->X + 10)&&(Link->X >= this_ffc->X -10)&&
                            (Link->Y <= this_ffc->Y + 10)&&(Link->Y >= this_ffc->Y -10) ){

                            portal_warp_delay = 60;
                            Link->X = other_ffc->X;
                            Link->Y = other_ffc->Y;
                            Game->PlaySound(36);
                        }

                        enemy_number = Screen->NumNPCs();

                        while(enemy_number > 0){
            
                            enemy = Screen->LoadNPC(enemy_number);
                            if ( (enemy->X <= this_ffc->X + 10)&&(enemy->X >= this_ffc->X -10)&&
                                (enemy->Y <= this_ffc->Y + 10)&&(enemy->Y >= this_ffc->Y -10) ){
                            
                                enemy->X = other_ffc->X; enemy->Y = other_ffc->Y;Game->PlaySound(36);
                                portal_warp_delay = 60;
                            }    
                            enemy_number--;
                        }
                    }
                }
            }
        Waitframe();
        }
    }
}




Oh yes! Let there be Portals!! More portals!!!


CODE

ffc script PORTAL_ffc_ver3{

    void run(int this_ffc_number, int other_ffc_number){

        ffc this_ffc = Screen->LoadFFC(this_ffc_number);
        ffc other_ffc = Screen->LoadFFC(other_ffc_number);

        int portal_data = 10;
        int portal_set = 0;

        int portal_position = 0;

        int enemy_number = 0;
        npc enemy;

        while(true){

            if(this_ffc->X <16 || this_ffc->X > 224 || this_ffc->Y <16 || this_ffc->Y >144) {
                this_ffc->Data = 1; this->Y = 0; this->X = 0;}

            if(portal_warp_delay > 0){ portal_warp_delay--;}

            if(portal_set == 0){

            

                if(other_ffc->Data >= portal_data + 4){

                    if(portal_warp_delay == 0){

                        if ( (Link->X <= this_ffc->X + 10)&&(Link->X >= this_ffc->X -10)&&
                            (Link->Y <= this_ffc->Y + 10)&&(Link->Y >= this_ffc->Y -10) ){

                            portal_warp_delay = 60;
                            Link->X = other_ffc->X;
                            Link->Y = other_ffc->Y;
                            Game->PlaySound(36);
                        }

                        enemy_number = Screen->NumNPCs();

                        while(enemy_number > 0){
            
                            enemy = Screen->LoadNPC(enemy_number);
                            if ( (enemy->X <= this_ffc->X + 10)&&(enemy->X >= this_ffc->X -10)&&
                                (enemy->Y <= this_ffc->Y + 10)&&(enemy->Y >= this_ffc->Y -10) ){
                            
                                enemy->X = other_ffc->X; enemy->Y = other_ffc->Y;Game->PlaySound(36);
                                portal_warp_delay = 60;
                            }    
                            enemy_number--;
                        }
                    }
                }
            }
        Waitframe();
        }
    }
}




Explanation forthcoming and en route shortly. Stay tuned!

Edited by Gleeok, 04 November 2007 - 02:01 AM.


#10 Gleeok

Gleeok

    It's dangerous to dough alone, bake this.

  • Members
  • Real Name:Pillsbury
  • Location:Magical Land of Dough

Posted 03 November 2007 - 11:06 PM

Alright.. - PORTAL VERSION 2.0 AND 2.1


OH NOES! THAT'S ALOT. WOE IS ME, HOW DOES IT WORK?

...Sorry about that.


Set Item script to a B button Item. Change sprites for that Item to none...or whatever. Set DO and D1 on Item, set script number and then lets get to ffc's.


FFC- *READ*

It's currently set up to use ffc 29 and 28. NO CARRY OVER! Sorry.

But did you know about Edit->Paste special?

Set FFC 28 Like so:

set script #
set combo(trans.)
set D0 to 28
set D1 to 29

Set FFC 29 like so:

scrip #
change combo(again this ones blank also)
Set D0 to 29
set D1 to 28



==================MORE================

Create animation for portal projectile and portal in your tiles page.

4 combos will be portal beam, and 4 combos will be open portal in that order. see below.

Now make an 8 in a row block of combos on you combo page. Ex; 340-348

Now is the tricky part: You must change the code yourself in both the item and ffc scripts. Here's how:

CODE
int portal_data = 10;


see that 10 there at the beginning of each script? You have to change that 10 to whatever combo you chose to be the portal animation. The first of the block of 8. Got it?



...Oh, one more thing. There are 2 FFC scripts ver2.0 and ver2.1

the latter will block portals from being used on the edge of the screen.

Have fun.


Oh and Joe123, There's your emmy performance right there.


Oh, and did I mention: IT WILL ALSO WARP ENEMIES TOO!


Test and send Bugs!

Another version of PORTAL will be finished shortly. that one will open portals near walls or"noflying enemies" or something. It's in the process of stuff anyway.

Edited by Gleeok, 03 November 2007 - 11:59 PM.


#11 NineLives

NineLives

    Boom. Zoom. Dakota.

  • Members
  • Location:Los Angeles, California

Posted 04 November 2007 - 07:29 PM

!!!
anyway, I have a question.

I still don't get where the sprites are placed. (portal sprites)
Cause..... I don't really get what you just said icon_razz.gif

and...
"set combo (trans)"... what's that?

EDIT:
oh btw, the "ver. 3" of portal FFC doesnt really work. compared the version you gave me through PM.

Edited by NineLives, 04 November 2007 - 07:38 PM.


#12 Gleeok

Gleeok

    It's dangerous to dough alone, bake this.

  • Members
  • Real Name:Pillsbury
  • Location:Magical Land of Dough

Posted 04 November 2007 - 09:36 PM

QUOTE(NineLives @ Nov 4 2007, 06:29 PM) View Post

!!!
anyway, I have a question.

I still don't get where the sprites are placed. (portal sprites)
Cause..... I don't really get what you just said icon_razz.gif

and...
"set combo (trans)"... what's that?

EDIT:
oh btw, the "ver. 3" of portal FFC doesnt really work. compared the version you gave me through PM.


It doesn't use sprites. Instead it uses combos. Set up the combos on the combo page.

Transparent combo- that's non zero...that is, not combo number 0.

Don't mix and match between different versions. Use whats here.


...And i'm not getting a crash. Your using 635 yes?

#13 NineLives

NineLives

    Boom. Zoom. Dakota.

  • Members
  • Location:Los Angeles, California

Posted 05 November 2007 - 10:14 PM

Yuppie.
Ok I get it now.

Exept theres one problem...

Umm, are you getting the portal placed randomly?

Cause when I shoot it, it sometimes goes through walls and sometimes doesn't, also, it sometimes makes a portal on the floor. icon_neutral.gif

#14 jerome

jerome

    "Ducks eat for free at Subway"

  • Members
  • Real Name:Jerome
  • Location:Cocoa, FL

Posted 06 November 2007 - 09:40 AM

I bet with this, you could make a ZC version of PacMan!
Waka Waka Waka Waka Waka Waka Waka Waka Doodaloop....
Waka Waka Waka Waka Waka Waka Waka Waka ...


Waka Waka...



#15 NineLives

NineLives

    Boom. Zoom. Dakota.

  • Members
  • Location:Los Angeles, California

Posted 06 November 2007 - 06:08 PM

you already could WITHOUT the portal script.


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users