PORTAL
#1
Posted 28 October 2007 - 05:57 PM
http://portal.wecreatestuff.com/ < Flash game
http://youtube.com/watch?v=if3Qv2tHyfA <Movie
#2
Posted 28 October 2007 - 07:50 PM
it could be like projectiles that make new tilewarps and sidewarps or something
sorry man im kinda lost.
#3
Posted 28 October 2007 - 08:38 PM
#4
Posted 28 October 2007 - 09:15 PM
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
Posted 01 November 2007 - 07:20 PM
#6
Posted 01 November 2007 - 07:34 PM
#7
Posted 02 November 2007 - 12:43 AM
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
Posted 02 November 2007 - 02:40 PM
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
Posted 03 November 2007 - 10:50 PM
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!
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!
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!!!
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
Posted 03 November 2007 - 11:06 PM
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:
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
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
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
Posted 04 November 2007 - 09:36 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
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
Posted 05 November 2007 - 10:14 PM
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.
#14
Posted 06 November 2007 - 09:40 AM
Waka Waka Waka Waka Waka Waka Waka Waka Doodaloop....
Waka Waka Waka Waka Waka Waka Waka Waka ...
Waka Waka...
#15
Posted 06 November 2007 - 06:08 PM
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users