Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Version 1
- SubGoalCombiner SGC_AND
- INITSECTION
- DB_Shapeshifting_OriginalTags((TAG)DWARF_486a2562-31ae-437b-bf63-30393e18cbdd, (TAG)REALLY_DWARF_ad129444-0f41-4114-9ee5-2b9902d7ca8d);
- DB_Shapeshifting_OriginalTags(HILLDWARF_534098fa-601d-4f6e-8c4e-b3a8d4b1f141, (TAG)REALLY_HILLDWARF_9a92ac6d-b7cc-4ccb-8965-074c6b36a342);
- DB_Shapeshifting_OriginalTags(MOUNTAINDWARF_1dc20a7a-00e7-4126-80ad-aa1152a2136c, (TAG)REALLY_MOUNTAINDWARF_18659b46-73ae-49d2-85a8-7e6cc43ce94f);
- DB_Shapeshifting_OriginalTags(DUERGARDWARF_78adf3cd-4741-47a8-94f6-f3d322432591, (TAG)REALLY_DUERGARDWARF_45b007f7-f4f6-46e2-9480-395a49b87ef3);
- DB_Shapeshifting_OriginalTags((TAG)ELF_351f4e42-1217-4c06-b47a-443dcf69b111, (TAG)REALLY_ELF_772b1dc6-14be-417f-afa3-c6cf364f45b4);
- DB_Shapeshifting_OriginalTags((TAG)HALFELF_34317158-8e6e-45a2-bd1e-6604d82fdda2, (TAG)REALLY_HALFELF_277f9609-ad0c-4883-b56d-0850904e88df);
- DB_Shapeshifting_OriginalTags((TAG)HIGHELF_492c3200-1226-4114-bad1-f6b1ba737f3d, (TAG)REALLY_HIGHELF_78884c5f-9504-41af-912d-ce212df0ebea);
- DB_Shapeshifting_OriginalTags((TAG)HIGHHALFELF_52b71dea-9d4e-402d-9700-fb9c360a44c9, (TAG)REALLY_HIGHHALFELF_bb7c731c-7af7-4c2d-b3d7-b4e8bd86a244);
- DB_Shapeshifting_OriginalTags((TAG)WOODELF_889e0db5-d03e-4b63-86d7-13418f69729f, (TAG)REALLY_WOODELF_b12e8dff-c1f0-4e9c-9ec0-1cafd22bb637);
- DB_Shapeshifting_OriginalTags((TAG)WOODHALFELF_5ffb703c-3ef4-493b-966d-749bc038f6bd, (TAG)REALLY_WOODHALFELF_8ac1b27c-c5c4-4a2c-95dd-256e4349e483);
- DB_Shapeshifting_OriginalTags((TAG)DROWELF_a672ac1d-d088-451a-9537-3da4bf74466c, (TAG)REALLY_DROWELF_676e854b-d74b-44f3-8363-3ef27164a54d);
- DB_Shapeshifting_OriginalTags((TAG)SELDARINEDROWELF_6e913b6e-58b1-41bf-8751-89250dd17bff, (TAG)REALLY_SELDARINEDROWELF_d2d60a81-688e-4d3d-ba56-3e467cae37fc);
- DB_Shapeshifting_OriginalTags((TAG)LOLTHDROWELF_ef9c5b74-56a8-48cc-b0b9-169ee16bf026, (TAG)REALLY_LOLTHDROWELF_c71eb8de-74e3-4d70-9826-22da7e2dc607);
- DB_Shapeshifting_OriginalTags((TAG)DROWHALFELF_4fa13243-199d-4c9a-b455-d844276a98f5, (TAG)REALLY_DROWHALFELF_3dbe23e0-2c9f-4a81-b586-ec6e50f720e1);
- DB_Shapeshifting_OriginalTags((TAG)ASMODEUSTIEFLING_c3fd1fc3-2edf-4d17-935d-44ab92406df1, (TAG)REALLY_ASMODEUSTIEFLING_6591a20a-12de-46ff-bf82-b866cd97bb9a);
- DB_Shapeshifting_OriginalTags((TAG)MEPHISTOPHELESTIEFLING_ec5bea6b-26f1-4917-919c-375f67ac13d1, (TAG)REALLY_MEPHISTOPHELESTIEFLING_c70e1dc2-72d4-44f9-83fd-c63d247edd9b);
- DB_Shapeshifting_OriginalTags((TAG)TIEFLING_aaef5d43-c6f3-434d-b11e-c763290dbe0c, (TAG)REALLY_TIEFLING_7bf7207f-7406-49c0-b501-eaaa2bb4efd7);
- DB_Shapeshifting_OriginalTags((TAG)ZARIELTIEFLING_ab677895-e08a-479f-a043-eac2d8447188, (TAG)REALLY_ZARIELTIEFLING_3a5efd84-5925-4a75-83ee-4f336b56f716);
- DB_Shapeshifting_OriginalTags((TAG)GNOME_1f0551f3-d769-47a9-b02b-5d3a8c51978c, (TAG)REALLY_GNOME_42483542-7915-4de5-a7d9-ac0d15fe301c);
- DB_Shapeshifting_OriginalTags((TAG)DEEPGNOME_2bbc3217-3d8c-46e6-b599-a0f1c9063f9a, (TAG)REALLY_DEEPGNOME_17d29357-beba-4096-accc-c28bdea88fda);
- DB_Shapeshifting_OriginalTags((TAG)FORESTGNOME_09518377-4ea1-4ce2-b8e8-61477c26ebdd, (TAG)REALLY_FORESTGNOME_b0401c02-70b3-47f5-998f-8d440ad6954f);
- DB_Shapeshifting_OriginalTags((TAG)ROCKGNOME_664cc044-a0ea-43a1-b21f-d8cad7721102, (TAG)REALLY_ROCKGNOME_df697d73-5469-405a-aa95-6e1e720c5ee6);
- DB_Shapeshifting_OriginalTags((TAG)HALFLING_b99b6a5d-8445-44e4-ac58-81b2ee88aab1, (TAG)REALLY_HALFLING_2b40a033-7a5c-47e9-92f0-7de9b5cd3a42);
- DB_Shapeshifting_OriginalTags((TAG)LIGHTFOOTHALFLING_57a00605-9e74-477c-bd9d-53c721e25e56, (TAG)REALLY_LIGHTFOOTHALFLING_da1d4f47-8583-49a1-b262-d77d361b2e09);
- DB_Shapeshifting_OriginalTags((TAG)STOUTHALFLING_8d545fa1-8416-493f-8325-7d112bceced8, (TAG)REALLY_STOUTHALFLING_058df86a-97b6-4dc4-a246-a1db65ff3c0f);
- DB_Shapeshifting_OriginalTags((TAG)GITHYANKI_677ffa76-2562-4217-873e-2253d4720ba4, (TAG)REALLY_GITHYANKI_e49c027c-6ec6-4158-9afb-8b59236d10fd);
- DB_Shapeshifting_OriginalTags((TAG)HUMAN_69fd1443-7686-4ca9-9516-72ec0b9d94d7, (TAG)REALLY_HUMAN_8e288154-e7ca-4277-b2df-e61639b1cce8);
- DB_Shapeshifting_OriginalTags((TAG)UNDERDARK_60f6b464-752f-4970-a855-f729565b5e07, (TAG)REALLY_UNDERDARK_2d0a73b9-f113-4d35-bdee-a31ab9163d74);
- KBSECTION
- PROC
- PROC_RemovePolymorphs((CHARACTER)_Char)
- THEN
- RemoveStatusesWithGroup(_Char,"SG_Polymorph");
- PROC
- PROC_RemovePolymorphs((CHARACTER)_Char)
- AND
- DB_PolymorphedInto(_Char,_Race)
- AND
- DB_PolymorphStatuses(_Race,(STRING)_Status)
- THEN
- RemoveStatus(_Char,_Status);
- IF
- PolymorphedInto(_Char,_Race)
- THEN
- DB_PolymorphedInto(_Char,_Race);
- SetFlag((FLAG)GLO_Polymorphed_ff4902e1-37b6-4fef-aa98-6f4eaa32720b, _Char); // flagType: Object
- IF
- PolymorphedInto(_Char,_)
- AND
- DB_PolymorphTags(_Char,(TAG)_Tag)
- THEN
- SetTag(_Char,_Tag);
- IF
- PolymorphedInto(_Char,_)
- AND
- NOT DB_PolymorphTags(_Char,_)
- THEN
- SetTag(_Char,(TAG)SHAPESHIFT_GENERIC_e2014927-5738-45d0-a04e-c79d71f229bc);
- IF
- PolymorphedInto(_Char,_)
- THEN
- SetTag(_Char,(TAG)GENERIC_730e82f3-c067-44a4-985b-0dfe079d4fea);
- IF
- PolymorphStopped(_Char)
- AND
- DB_PolymorphTags(_Char,_Tag)
- AND
- _Tag != MASKED_UNDEAD_765d3cd9-cf63-4462-9c72-e1c103749446
- THEN
- ClearTag(_Char,(TAG)GENERIC_730e82f3-c067-44a4-985b-0dfe079d4fea);
- IF
- PolymorphStopped(_Char)
- AND
- DB_PolymorphTags(_Char,_Tag)
- THEN
- ClearTag(_Char,_Tag);
- IF
- PolymorphStopped(_Char)
- THEN
- ClearTag(_Char,(TAG)SHAPESHIFT_GENERIC_e2014927-5738-45d0-a04e-c79d71f229bc);
- ClearFlag((FLAG)GLO_Polymorphed_ff4902e1-37b6-4fef-aa98-6f4eaa32720b, _Char); // flagType: Object
- IF
- PolymorphStopped(_Char)
- AND
- DB_PolymorphedInto(_Char,_Race)
- THEN
- NOT DB_PolymorphedInto(_Char,_Race);
- //REGION Polymorph block in dialogs
- PROC
- PROC_DialogFlagSetup((DIALOGRESOURCE)_Dialog,(GUIDSTRING)_Speaker1)
- AND
- QRY_DropPolymorph(_Dialog)
- THEN
- PROC_RemovePolymorphsFromPlayer(_Speaker1);
- PROC
- PROC_DialogFlagSetup((DIALOGRESOURCE)_Dialog,(GUIDSTRING)_Speaker1,(GUIDSTRING)_Speaker2)
- AND
- QRY_DropPolymorph(_Dialog)
- THEN
- PROC_RemovePolymorphsFromPlayer(_Speaker1);
- PROC_RemovePolymorphsFromPlayer(_Speaker2);
- PROC
- PROC_DialogFlagSetup((DIALOGRESOURCE)_Dialog,(GUIDSTRING)_Speaker1,(GUIDSTRING)_Speaker2,(GUIDSTRING)_Speaker3)
- AND
- QRY_DropPolymorph(_Dialog)
- THEN
- PROC_RemovePolymorphsFromPlayer(_Speaker1);
- PROC_RemovePolymorphsFromPlayer(_Speaker2);
- PROC_RemovePolymorphsFromPlayer(_Speaker3);
- PROC
- PROC_DialogFlagSetup((DIALOGRESOURCE)_Dialog,(GUIDSTRING)_Speaker1,(GUIDSTRING)_Speaker2,(GUIDSTRING)_Speaker3,(GUIDSTRING)_Speaker4)
- AND
- QRY_DropPolymorph(_Dialog)
- THEN
- PROC_RemovePolymorphsFromPlayer(_Speaker1);
- PROC_RemovePolymorphsFromPlayer(_Speaker2);
- PROC_RemovePolymorphsFromPlayer(_Speaker3);
- PROC_RemovePolymorphsFromPlayer(_Speaker4);
- PROC
- PROC_DialogFlagSetup((DIALOGRESOURCE)_Dialog,(GUIDSTRING)_Speaker1,(GUIDSTRING)_Speaker2,(GUIDSTRING)_Speaker3,(GUIDSTRING)_Speaker4,(GUIDSTRING)_Speaker5)
- AND
- QRY_DropPolymorph(_Dialog)
- THEN
- PROC_RemovePolymorphsFromPlayer(_Speaker1);
- PROC_RemovePolymorphsFromPlayer(_Speaker2);
- PROC_RemovePolymorphsFromPlayer(_Speaker3);
- PROC_RemovePolymorphsFromPlayer(_Speaker4);
- PROC_RemovePolymorphsFromPlayer(_Speaker5);
- PROC
- PROC_DialogFlagSetup((DIALOGRESOURCE)_Dialog,(GUIDSTRING)_Speaker1,(GUIDSTRING)_Speaker2,(GUIDSTRING)_Speaker3,(GUIDSTRING)_Speaker4,(GUIDSTRING)_Speaker5,(GUIDSTRING)_Speaker6)
- AND
- QRY_DropPolymorph(_Dialog)
- THEN
- PROC_RemovePolymorphsFromPlayer(_Speaker1);
- PROC_RemovePolymorphsFromPlayer(_Speaker2);
- PROC_RemovePolymorphsFromPlayer(_Speaker3);
- PROC_RemovePolymorphsFromPlayer(_Speaker4);
- PROC_RemovePolymorphsFromPlayer(_Speaker5);
- PROC_RemovePolymorphsFromPlayer(_Speaker6);
- QRY
- QRY_DropPolymorph((DIALOGRESOURCE)_Dialog)
- AND
- DB_BlockPolymorphDialog(_Dialog)
- THEN
- DB_NOOP(1);
- QRY
- QRY_DropPolymorph((DIALOGRESOURCE)_Dialog)
- AND
- DB_OriginDialog(_,_Dialog) //Origin dialogs are only recorded for one race, so no polymorphing
- THEN
- DB_NOOP(1);
- PROC
- PROC_RemovePolymorphsFromPlayer((GUIDSTRING)_Object)
- AND
- DB_Players((CHARACTER)_Object)
- THEN
- PROC_RemovePolymorphs(_Object);
- //END_REGION
- //REGION Remove Poly in Dialog
- IF
- TextEvent("addpolyflag")
- AND
- GetHostCharacter(_Player)
- THEN
- SetFlag((FLAG)GLO_Polymorphed_ff4902e1-37b6-4fef-aa98-6f4eaa32720b, _Player); // flagType: Object
- IF
- FlagSet(GLO_RemovePolymorph_ac08aa18-f4b8-4a5e-ae4e-f788811fa149, (CHARACTER)_Player, _) // flagType: Object
- THEN
- PROC_RemovePolymorphs(_Player);
- ClearFlag((FLAG)GLO_RemovePolymorph_ac08aa18-f4b8-4a5e-ae4e-f788811fa149, _Player); // flagType: Object
- //END_REGION
- //REGION Undead origins
- IF
- DB_Players(_Char)
- THEN
- PROC_MarkUndeadOrigin(_Char);
- PROC
- PROC_MarkUndeadOrigin((CHARACTER)_Player)
- AND
- IsTagged(_Player,(TAG)UNDEAD_33c625aa-6982-4c27-904f-e47029a9b140,1)
- THEN
- DB_UndeadCharacter(_Player);
- //END_REGION
- //REGION Get current polymorph status for _Char (even if none)
- // Returns it in DB_GLOBAL_Shapeshifting_PolymorphStatus(_Race). In case not polymorphed, _Race is an empty string
- QRY
- QRY_GLOBAL_Shapeshifting_GetPolymorphStatus((CHARACTER)_Char)
- AND
- DB_GLOBAL_Shapeshifting_PolymorphStatus(_Race)
- THEN
- NOT DB_GLOBAL_Shapeshifting_PolymorphStatus(_Race);
- QRY
- QRY_GLOBAL_Shapeshifting_GetPolymorphStatus((CHARACTER)_Char)
- AND
- DB_PolymorphedInto(_Char,_Race)
- THEN
- DB_GLOBAL_Shapeshifting_PolymorphStatus(_Race);
- QRY
- QRY_GLOBAL_Shapeshifting_GetPolymorphStatus((CHARACTER)_Char)
- AND
- NOT DB_PolymorphedInto(_Char,_)
- THEN
- DB_GLOBAL_Shapeshifting_PolymorphStatus("");
- //END_REGION
- //REGION True race query
- QRY
- QRY_IsTrueRace((CHARACTER)_Character,(STRING)_Race)
- AND
- GetRace(_Character,0,_Race)
- THEN
- DB_NOOP(1);
- QRY
- QRY_IsTrueUndead((CHARACTER)_Character)
- AND
- GetRace(_Character,0,_TrueRace)
- AND
- DB_UndeadRacePresets((INTEGER)_,_TrueRace)
- THEN
- DB_NOOP(1);
- //END_REGION
- IF
- TextEvent("getrace")
- AND
- GetHostCharacter(_Player)
- AND
- GetRace(_Player,0,_TrueRace)
- THEN
- DebugText(_Player,_TrueRace);
- //REGION Keeping track of true race
- IF
- DB_Players(_Player)
- THEN
- ObjectTimerLaunch(_Player, "GLO_SetGameStartTags",0);
- IF
- ObjectTimerFinished((CHARACTER)_Player, "GLO_SetGameStartTags")
- THEN
- PROC_GLO_SetGameStartTags(_Player);
- PROC
- PROC_GLO_SetGameStartTags((CHARACTER)_Player)
- AND
- DB_Shapeshifting_OriginalTags(_TrueRace, (TAG)_Tag)
- AND
- IsTagged(_Player, _TrueRace, 1)
- THEN
- SetTag(_Player, _Tag);
- //END_REGION
- EXITSECTION
- ENDEXITSECTION
- ParentTargetEdge "__Shared_Campaign"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement