07-04-20, 10:56 | #11 |
Member
Joined: Nov 2007
Posts: 7,582
|
Amazing work.
Having all items examinable is really neat. The advanced collision on that box was cool too. Shame this couldn't be used on a larger scale to make more complex level geometry like AOD |
07-04-20, 12:28 | #12 | |
Member
Joined: Oct 2006
Posts: 2,372
|
Quote:
This would also work similarly on a 768 units tall block. If you could get Lara to bypass the hanging animation and go straight to climbing up then it could work for any height. |
|
07-04-20, 12:46 | #13 |
Member
Joined: Sep 2015
Posts: 520
|
Nice features, looking forward.
|
07-04-20, 15:01 | #14 |
Member
Joined: Jul 2010
Posts: 858
|
Can I also make a pushable that can be climbed this way?
|
07-04-20, 16:09 | #15 |
Member
Joined: Jul 2010
Posts: 256
|
I don't quite understand the box setup. Why the need for both an animating AND a static? Is an animating with the collision altered not enough?
|
07-04-20, 16:29 | #16 | |
Member
Joined: Aug 2008
Posts: 32
|
Quote:
------------------------------------------- COMBINING ITEMS IN INVENTORY JMN's plugin is so powerful that you can create many new ways to customise the inventory. By default in the engine, you cannot create a combo of two of the same items. It just doesn't appear when you select combine. However, I needed to find a work around as some of the below combos meant combining two / three of the same: HERB COMBOS:
So for the "Combine Items" as we see in the images above, I used some of the "New" items as part of JMN's plugin. I create a inventory ring specially for the combined items: Code:
Customize= CUST_CINV_RING, CINV_RING_MISC3, 359+28 ;CREATE COMBINED ITEMS Code:
Customize=CUST_CINV_ITEM_RING, CINV_ITEM_NEW116, CINV_RING_MISC3, 5 ; Mixed Herb (G + G) Customize=CUST_CINV_ITEM_RING, CINV_ITEM_NEW117, CINV_RING_MISC3, 6 ; Mixed Herb (G + R) Customize=CUST_CINV_ITEM_RING, CINV_ITEM_NEW118, CINV_RING_MISC3, 7 ; Mixed Herb (G + B) Customize=CUST_CINV_ITEM_RING, CINV_ITEM_NEW119, CINV_RING_MISC3, 8 ; Mixed Herb (R + B) Customize=CUST_CINV_ITEM_RING, CINV_ITEM_NEW120, CINV_RING_MISC3, 9 ; Mixed Herb (G + G + G) Customize=CUST_CINV_ITEM_RING, CINV_ITEM_NEW121, CINV_RING_MISC3, 10 ; Mixed Herb (G + G + B) Customize=CUST_CINV_ITEM_RING, CINV_ITEM_NEW122, CINV_RING_MISC3, 11 ; Mixed Herb (G + R + B) Code:
Customize= CUST_CINV_ITEM, CINV_ITEM_NEW116, 359+35, 359+56 Customize= CUST_CINV_ITEM, CINV_ITEM_NEW117, 359+36, 359+57 Customize= CUST_CINV_ITEM, CINV_ITEM_NEW118, 359+37, 359+58 Customize= CUST_CINV_ITEM, CINV_ITEM_NEW119, 359+38, 359+59 Customize= CUST_CINV_ITEM, CINV_ITEM_NEW120, 359+39, 359+60 Customize= CUST_CINV_ITEM, CINV_ITEM_NEW121, 359+40, 359+61 Customize= CUST_CINV_ITEM, CINV_ITEM_NEW122, 359+41, 359+62 Code:
Customize= CUST_CINV_ITEM_MODEL, CINV_ITEM_NEW116, CINV_MODEL_ACTIVE, ROBOT_CLEANER, IGNORE, IGNORE, IGNORE, IGNORE, CINV_MODEL_IDLE, ROBOT_CLEANER, IGNORE, IGNORE, IGNORE, IGNORE ; g&g Customize= CUST_CINV_ITEM_MODEL, CINV_ITEM_NEW117, CINV_MODEL_ACTIVE, ROBOT_STAR_WARS, IGNORE, IGNORE, IGNORE, IGNORE, CINV_MODEL_IDLE, ROBOT_STAR_WARS, IGNORE, IGNORE, IGNORE, IGNORE ; g&r Customize= CUST_CINV_ITEM_MODEL, CINV_ITEM_NEW118, CINV_MODEL_ACTIVE, MECH_WARRIOR, IGNORE, IGNORE, IGNORE, IGNORE, CINV_MODEL_IDLE, MECH_WARRIOR, IGNORE, IGNORE, IGNORE, IGNORE ; g&b Customize= CUST_CINV_ITEM_MODEL, CINV_ITEM_NEW119, CINV_MODEL_ACTIVE, MECH_WARRIOR_LARA, IGNORE, IGNORE, IGNORE, IGNORE, CINV_MODEL_IDLE, MECH_WARRIOR_LARA, IGNORE, IGNORE, IGNORE, IGNORE ; r&b Customize= CUST_CINV_ITEM_MODEL, CINV_ITEM_NEW120, CINV_MODEL_ACTIVE, UW_PROPULSOR, IGNORE, IGNORE, IGNORE, IGNORE, CINV_MODEL_IDLE, UW_PROPULSOR, IGNORE, IGNORE, IGNORE, IGNORE ; g&g&g Customize= CUST_CINV_ITEM_MODEL, CINV_ITEM_NEW121, CINV_MODEL_ACTIVE, UW_PROPULSOR_LARA, IGNORE, IGNORE, IGNORE, IGNORE, CINV_MODEL_IDLE, UW_PROPULSOR_LARA, IGNORE, IGNORE, IGNORE, IGNORE ; g&g&b Customize= CUST_CINV_ITEM_MODEL, CINV_ITEM_NEW122, CINV_MODEL_ACTIVE, MINE_CART, IGNORE, IGNORE, IGNORE, IGNORE, CINV_MODEL_IDLE, MINE_CART, IGNORE, IGNORE, IGNORE, IGNORE ; g&r&b Code:
Customize= CUST_CINV_ITEM_ACTION, CINV_ITEM_NEW116, CINV_FACTION_CONFIRM, CINV_ACTION_CUSTOM, 359+76, IGNORE, 0, IGNORE, IGNORE, 2004 Customize= CUST_CINV_ITEM_ACTION, CINV_ITEM_NEW117, CINV_FACTION_CONFIRM, CINV_ACTION_CUSTOM, 359+77, IGNORE, 0, IGNORE, IGNORE, 2005 Customize= CUST_CINV_ITEM_ACTION, CINV_ITEM_NEW118, CINV_FACTION_CONFIRM, CINV_ACTION_CUSTOM, 359+78, IGNORE, 0, IGNORE, IGNORE, 2006 Customize= CUST_CINV_ITEM_ACTION, CINV_ITEM_NEW119, CINV_FACTION_CONFIRM, CINV_ACTION_CUSTOM, 359+79, IGNORE, 0, IGNORE, IGNORE, 2007 Customize= CUST_CINV_ITEM_ACTION, CINV_ITEM_NEW120, CINV_FACTION_CONFIRM, CINV_ACTION_CUSTOM, 359+80, IGNORE, 0, IGNORE, IGNORE, 2008 Customize= CUST_CINV_ITEM_ACTION, CINV_ITEM_NEW121, CINV_FACTION_CONFIRM, CINV_ACTION_CUSTOM, 359+81, IGNORE, 0, IGNORE, IGNORE, 2009 Customize= CUST_CINV_ITEM_ACTION, CINV_ITEM_NEW122, CINV_FACTION_CONFIRM, CINV_ACTION_CUSTOM, 359+82, IGNORE, 0, IGNORE, IGNORE, 2010 Code:
TriggerGroup= 2004, $032000, 701, $215, $032000, 700, $1DF, $2000, 70, $1F72 ; Mixed Herb (G + G) TriggerGroup= 2005, $032000, 701, $115, $032000, 701, $12F, $032000, 700, $1E0, $2000, 70, $1F72 ; Mixed Herb (G + R) TriggerGroup= 2006, $032000, 701, $115, $032000, 701, $130, $032000, 700, $1E1, $2000, 70, $1F72 ; Mixed Herb (G + B) TriggerGroup= 2007, $032000, 701, $12F, $032000, 701, $130, $032000, 700, $1E2, $2000, 70, $1F72 ; Mixed Herb (R + B) TriggerGroup= 2008, $062000, 805, $0, $032000, 700, $1E3, $2000, 70, $1F72 ; Mixed Herb (G + G + G) TriggerGroup= 2009, $062000, 806, $0, $032000, 700, $1E4, $2000, 70, $1F72 ; Mixed Herb (G + G + B) TriggerGroup= 2010, $062000, 807, $0, $032000, 700, $1E5, $2000, 70, $1F72 ; Mixed Herb (G + R + B) The code from the plugin for that flipeffect as below: Code:
case 805: //create g+g+g herb if ((GET.pInventory->MediPackSmall > 0) && (PerformConditionTrigger("Plugin_ClassicInventory", 101, 223, 1))) { PerformFlipeffect("Plugin_ClassicInventory", 701, 21, 1); PerformFlipeffect("Plugin_ClassicInventory", 701, 223, 1); } else {PerformFlipeffect("Plugin_ClassicInventory", 701, 21, 3);} break; Here is an excerpt to help any builders wishing to replicate this: Code:
void CreateCombineItems(void) { Get(enumGET.INVENTORY, 0, 0); //G&G if (GET.pInventory->MediPackSmall > 1) {PerformFlipeffect("Plugin_ClassicInventory", 702, 235, 1);} else {PerformFlipeffect("Plugin_ClassicInventory", 704, 235, 0);} //G&R if ((GET.pInventory->MediPackSmall > 0) && (GET.pInventory->PuzzleItem11 > 0)) {PerformFlipeffect("Plugin_ClassicInventory", 702, 236, 1);} else {PerformFlipeffect("Plugin_ClassicInventory", 704, 236, 0);} //G&B if ((GET.pInventory->MediPackSmall > 0) && (GET.pInventory->PuzzleItem12 > 0)) {PerformFlipeffect("Plugin_ClassicInventory", 702, 237, 1);} else {PerformFlipeffect("Plugin_ClassicInventory", 704, 237, 0);} //R&B if ((GET.pInventory->PuzzleItem11 > 0) && (GET.pInventory->PuzzleItem12 > 0)) {PerformFlipeffect("Plugin_ClassicInventory", 702, 238, 1);} else {PerformFlipeffect("Plugin_ClassicInventory", 704, 238, 0);} //G&G&G if ((GET.pInventory->MediPackSmall > 0) && (PerformConditionTrigger("Plugin_ClassicInventory", 101, 223, 1))) {PerformFlipeffect("Plugin_ClassicInventory", 702, 239, 1);} else if (GET.pInventory->MediPackSmall > 2) {PerformFlipeffect("Plugin_ClassicInventory", 702, 239, 1);} else {PerformFlipeffect("Plugin_ClassicInventory", 704, 239, 0);} //G&G&B if ((GET.pInventory->MediPackSmall > 0) && (PerformConditionTrigger("Plugin_ClassicInventory", 101, 225, 1))) {PerformFlipeffect("Plugin_ClassicInventory", 702, 240, 1);} else if ((PerformConditionTrigger("Plugin_ClassicInventory", 101, 223, 1)) && (GET.pInventory->PuzzleItem12 > 0)) {PerformFlipeffect("Plugin_ClassicInventory", 702, 240, 1);} else if ((GET.pInventory->MediPackSmall > 1) && (GET.pInventory->PuzzleItem12 > 0)) {PerformFlipeffect("Plugin_ClassicInventory", 702, 240, 1);} else {PerformFlipeffect("Plugin_ClassicInventory", 704, 240, 0);} //G&R&B if ((GET.pInventory->MediPackSmall > 0) && (PerformConditionTrigger("Plugin_ClassicInventory", 101, 226, 1))) {PerformFlipeffect("Plugin_ClassicInventory", 702, 241, 1);} else if ((GET.pInventory->PuzzleItem11 > 0) && (PerformConditionTrigger("Plugin_ClassicInventory", 101, 225, 1))) {PerformFlipeffect("Plugin_ClassicInventory", 702, 241, 1);} else if ((GET.pInventory->PuzzleItem12 > 0) && (PerformConditionTrigger("Plugin_ClassicInventory", 101, 224, 1))) {PerformFlipeffect("Plugin_ClassicInventory", 702, 241, 1);} else if ((GET.pInventory->MediPackSmall > 0) && (GET.pInventory->PuzzleItem11 > 0) && (GET.pInventory->PuzzleItem12 > 0)) {PerformFlipeffect("Plugin_ClassicInventory", 702, 241, 1);} else {PerformFlipeffect("Plugin_ClassicInventory", 704, 241, 0);} } If any one needs any help implementing anything similar in their own levels please let me know either here or PM me and I can help. Last edited by smcandrew; 08-04-20 at 12:15. |
|
08-04-20, 13:56 | #17 |
Member
Joined: Apr 2012
Posts: 10,346
|
slay queen
|
08-04-20, 15:11 | #18 |
Member
Joined: Jun 2007
Posts: 949
|
Impressive. Seriously!
|
09-04-20, 14:55 | #19 |
Member
Joined: Aug 2008
Posts: 32
|
@SrDanielPonces:
@WhiteTiger: Thank you very much! NEW PUZZLES: So I've been working on trying to implement new puzzles into the engine. I started working on this style quite some time ago. This first one was inspired by one of the puzzles in Shadow of the Tomb Raider: The idea here is that you select which stone you want to turn by pressing up or down. You can then press left or right to rotate the stone. Once you have turned the stones to the correct positions, set a trigger, e.g. a door opening. Press Enter to exit. This set up is completely done within the script and no plugins (other than AkyV's) were used. The second is inspired from the Resident Evil games: When Lara wants to unlock this journal, she needs to enter the correct combination. If she gets it incorrect after pressing ACTION, she says "No". If it's correct, the journal unlocks in the inventory (or you can have any TriggerGroup applied that you want.) This setup was mainly done within my plugin to try and avoid have to use any pre-existing variables to control it. I've ran into a few issues such as it didn't always show the lock. So I've done a tiny workaround for now which places Lara into the same room during the puzzle and transports her back to her original spot after (I want to stop that from happening but for now was only thing I could think of.) It's in a very basic form at the moment, and I want to create it a bit more "visually" pleasing and add sound effects to both etc. OTHER WIP CURRENTLY WORKING ON:
As always, if anyone wants any help implementing new ideas into their levels, I can always try and help! Just message |
09-04-20, 15:05 | #20 |
Member
Joined: Jan 2018
Posts: 56
|
I'm impressed! So glad to see that the TRLE Community still inovating.
|
Thread Tools | |
|
|