Skip to content

Commit

Permalink
Merge pull request #11 from Gitjas/master
Browse files Browse the repository at this point in the history
update to v7
  • Loading branch information
Gitjas authored Nov 6, 2021
2 parents 08a6c26 + 810fa7a commit e517eb9
Show file tree
Hide file tree
Showing 26 changed files with 1,500 additions and 254 deletions.
16 changes: 13 additions & 3 deletions c#greythedog/Setup-c#greythedog.tp2
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ AUTHOR ~https://www.gibberlings3.net/forums/forum/211-grey-the-dog/~

//MODDER

VERSION ~6~
VERSION ~7~

README ~c#greythedog/readme.greythedog.%LANGUAGE%.txt~ ~c#greythedog/readme.greythedog.english.txt~

Expand Down Expand Up @@ -236,8 +236,17 @@ LANGUAGE ~Deutsch~
~c#greythedog/tra/deutsch/baf.tra~
~c#greythedog/tra/deutsch/journal.tra~

LANGUAGE ~Russian~
~russian~
~c#greythedog/tra/english/setup.tra~
~c#greythedog/tra/russian/game.tra~
~c#greythedog/tra/russian/baf.tra~
~c#greythedog/tra/russian/journal.tra~


BEGIN @90004 /* ~Grey The Dog NPC~ */
DESIGNATED 0
LABEL c#greythedog-main
REQUIRE_PREDICATE (ENGINE_IS ~tob bgee bg2ee~) @90005 /* ~You either need TOB installed or the Enhanced Editions to play this mod.~ */
REQUIRE_PREDICATE (GAME_IS ~tob bgee bg2ee bgt eet~) @90006 /* ~This mod is not compatible with your game.~ */
FORBID_COMPONENT ~EET_end.tp2~ ~0~ @90008
Expand Down Expand Up @@ -1886,13 +1895,14 @@ END
/* additions to script for BGII-engine */

ACTION_IF (GAME_IS ~bgt tob~ OR (GAME_IS ~bgee~ AND NOT FILE_EXISTS_IN_GAME ~bd0103.are~)) THEN BEGIN
EXTEND_BOTTOM ~c#grey.bcs~ ~c#greythedog/script/c#grey_lvl.baf~
EXTEND_BOTTOM ~c#grey.bcs~ ~c#greythedog/script/c#_lvl.baf~
END

/* additions to script for EE-engine */

ACTION_IF (GAME_IS ~bg2ee~ OR (GAME_IS ~bgee eet~ AND FILE_EXISTS_IN_GAME ~bd0103.are~)) THEN BEGIN
EXTEND_BOTTOM ~c#grey.bcs~ ~c#greythedog/script/c#grey_lvl_ee.baf~
EXTEND_BOTTOM ~c#grey.bcs~ ~c#greythedog/script/c#_lvl_ee.baf~
EXTEND_BOTTOM ~c#grey.bcs~ ~c#greythedog/script/c#grey_ee.baf~
END


Expand Down
3 changes: 3 additions & 0 deletions c#greythedog/c#greythedog.ini
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ Forum = https://www.gibberlings3.net/forums/forum/211-grey-the-dog/
# If you use other hosting sites, please check requirements and put direct download link
Download = https://github.com/Gibberlings3/Grey_The_Dog

# Type of LABELs used by the mod, read more here https://www.gibberlings3.net/forums/topic/32516-tutorial-what-is-label
LabelType = GloballyUnique

# Dynamic Install Order Category
Type = NPC

Expand Down
13 changes: 7 additions & 6 deletions c#greythedog/dialog/bg2_taxcollect.d
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,11 @@ IF ~~ THEN + tax_04
END

IF ~~ THEN tax_04
SAY ~War dogs are a weapon, my <PRO_LADYLORD>, but one with an own mind. City rules are very strict if it comes to war dogs. I need to inform you that your war dog needs to have a collar, and a right one it needs to be - one where the dog could be put on a leash, if necessary. Your war dog doesn't have a collar. Therefore... (He fumbles inside a bag for a paper note.)~
= ~Therefore you are bound to pay a fee of 50 gold coins, due in three days to be payed in the Councellor Building in the Government District. *And* you need to get your dog a collar as of today, or the fee will be doubled.~
SAY ~War dogs are a weapon, my <PRO_LADYLORD>, but one with an own mind. City rules are very strict if it comes to war dogs. I need to inform you that your war dog needs to have a collar, and a right one it needs to be - one where the dog could be put on a leash, if necessary. Your war dog doesn't have a collar. Therefore... One moment..~
= ~Therefore you are bound to pay a fee of 50 gold coins, due in three days to be payed in the Councellor Building in the Government District. *And* you need to get your dog a collar as of today, or the fee will be doubled. Here is your fine.~
++ ~I will do so as soon as I have the gold and find a vendor who sells dog collars.~ + tax_07
++ ~Good man! I barely made it out alive from a foe that tortured me the last weeks. Where was the city when this happened under its area?!~ + tax_05
++ ~Oh, haha - did you say war dog? See, Grey here wouldn't hurt a *fly* now, would you, Grey?~ + tax_08
++ ~I really have other problems currently.~ + tax_08
++ ~Get lost, before my collarless dog decides to play fetch with you.~ + tax_09
END
Expand Down Expand Up @@ -313,31 +314,31 @@ EraseJournalEntry(%Grey's Collar
Grey needs a collar inside Athkatla... and I need to pay a fee inside the Councellor Building during the next three days because he didn't have one, yet.%)~ EXIT
IF ~HasItem("c#grtax0","C#Solaufein")
OR(2) InParty("C#Solaufein") Global("C#SolauJoined","GLOBAL",0)
OR(2) InParty("C#Solaufein") Global("C#SolauJoined","GLOBAL",2)
InMyArea("C#Solaufein")~ THEN DO ~ActionOverride("C#Solaufein",GiveItem("c#grtax0","C#GRTAX1"))
ActionOverride("C#GRTAX1",DestroyItem("c#grtax0"))
SetGlobal("C#Grey_FeeSum","LOCALS",1000)
EraseJournalEntry(%Grey's Collar
Grey needs a collar inside Athkatla... and I need to pay a fee inside the Councellor Building during the next three days because he didn't have one, yet.%)~ EXIT
IF ~HasItem("c#grtax0","C#Husam1")
OR(2) InParty("C#Husam1") Global("C#HusamJoined","GLOBAL",0)
OR(2) InParty("C#Husam1") Global("C#HusamJoined","GLOBAL",2)
InMyArea("C#Husam1")~ THEN DO ~ActionOverride("C#Husam1",GiveItem("c#grtax0","C#GRTAX1"))
ActionOverride("C#GRTAX1",DestroyItem("c#grtax0"))
SetGlobal("C#Grey_FeeSum","LOCALS",1000)
EraseJournalEntry(%Grey's Collar
Grey needs a collar inside Athkatla... and I need to pay a fee inside the Councellor Building during the next three days because he didn't have one, yet.%)~ EXIT
IF ~HasItem("c#grtax0","C#Brandock")
OR(2) InParty("C#Brandock") Global("C#BrandockJoined","GLOBAL",0)
OR(2) InParty("C#Brandock") Global("C#BrandockJoined","GLOBAL",2)
InMyArea("C#Brandock")~ THEN DO ~ActionOverride("C#Brandock",GiveItem("c#grtax0","C#GRTAX1"))
ActionOverride("C#GRTAX1",DestroyItem("c#grtax0"))
SetGlobal("C#Grey_FeeSum","LOCALS",1000)
EraseJournalEntry(%Grey's Collar
Grey needs a collar inside Athkatla... and I need to pay a fee inside the Councellor Building during the next three days because he didn't have one, yet.%)~ EXIT
IF ~HasItem("c#grtax0","C#Grey")
OR(2) InParty("C#Grey") Global("C#GreyJoined","GLOBAL",0)
OR(2) InParty("C#Grey") Global("C#GreyJoined","GLOBAL",2)
InMyArea("C#Grey")~ THEN DO ~ActionOverride("C#Grey",GiveItem("c#grtax0","C#GRTAX1"))
ActionOverride("C#GRTAX1",DestroyItem("c#grtax0"))
SetGlobal("C#Grey_FeeSum","LOCALS",1000)
Expand Down
5 changes: 3 additions & 2 deletions c#greythedog/dialog/c#greyp.d
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,6 @@ END
IF ~~ follow_charname
SAY @0 /* ~Woof!~ */
IF ~~ THEN DO ~SetInterrupt(FALSE)
//##RealSetGlobalTimer("C#GreyNPCBanterTimer","GLOBAL",400)
SetGlobal("C#GreyJoined","GLOBAL",2)
%Grey_MakeGlobalOverride%
ChangeEnemyAlly(Myself, FAMILIAR)
AddFamiliar()
Expand All @@ -53,6 +51,9 @@ ChangeAIScript("DEFAULT",CLASS)
ChangeAIScript("",RACE)
ChangeAIScript("",GENERAL)
ChangeAIScript("",DEFAULT)
//##RealSetGlobalTimer("C#GreyNPCBanterTimer","GLOBAL",400)
SetGlobal("C#GreyJoined","GLOBAL",2)
SetGlobal("C#LevelUp","LOCALS",0)
SetInterrupt(TRUE)~ EXIT
END

Expand Down
2 changes: 1 addition & 1 deletion c#greythedog/items.txt
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ Merchants for wardog armor and weaponry:


From Albert if Rufie is brought to him:
-c#grtoy3.ITM chew toy (+9 HP bonus tow times a day) (*special: cannot be bought*)
-c#grtoy3.ITM chew toy (+9 HP bonus two times a day) (*special: cannot be bought*)


Chapter 3:
Expand Down
25 changes: 24 additions & 1 deletion c#greythedog/readme.greythedog.english.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Some ideas take time. For Grey this was from 2005 when Rabain first brainstormed

GAMEPLAY

Grey cannot be send to wait somewhere. If he is in party, he is in party. He can be sent back to Jondalar but that will be final. If you need the party slot for someone else, Grey can be kicked out of the party and told to "stay close", then he will follow as a "familiar" or, as I call it "7th party member". If in 7th party member mode he needs to join the group from time to time to level up. See below for more info on 7th party member mode.
Grey cannot be send to wait somewhere. If he is in party, he is in party. He can be sent back to Jondalar but that will be final. If you need the party slot for someone else, Grey can be kicked out of the party and told to "stay close", then he will follow as a "familiar" or, as I call it "7th party member". If in 7th party member mode he needs to join the group from time to time to level up. See below for more info on 7th party member mode. (No, seriously - please read up on playing in 7th party member mode to get the most out of it. The engine was not created for additional party members that carry important items.)
To rejoin the group, talk to him and tell him you need "access to (his) inventory", and he will rejoin as a full party member. If you time this accordingly, the moment he is in group before any other kicked out NPC reaches the PC for his post-kickout dialogue is sufficient to let Grey level up and rearrange his items, without having to finally kick out any other party NPC to achieve this. (Unless those just leave without a follow-up dialogue, of course.)

Grey's claws will update to more powerful versions when he levels up (not every level). To improve his teeth force, items need to be used that can be found and bought throughout the game. Without a tooth enforcer, the engine will treat his attacks with the first hand like fist attacks ("bar handed".)
Expand All @@ -37,6 +37,19 @@ He cannot die while following as a 7th party member, but will remain at 1 HP. If
The 1 HP drop out can be prevented if Grey is healed in time during a fight. If told to he will give a warning before his HP drop too low, but this seems to be buggy in BGT.


QUIRKS OF THE 7TH PARTY MEMBER MODE INGAME

Unfortunately, the "7th party member mode" in the game requires special handling to accommodate all restrictions: (The hints are a mix of the existing engine restrictions and the workarounds I used).
-The NPC has no "Clear Fog of War" around him in the 7th GM. So he can "disappear" in the "black" area of the map. (If you click on the whole group and let them gather at one place, the NPC will also try to do so, if they are not stuck somewhere. In that case only the teleportation cheat "Ctrl+j" helps to gather the group again. This has not happened to me yet, but it is theoretically possible if the NPC is chasing an enemy, for example).
-Items in the NPC's inventory are *not* recognized as items owned by the group. This is an engine problem. It follows that quest items that are needed in the game should not be in the NPC's inventory if they are to be recognized by the quest giver. Examples: Elvenhair's book, Ankheg shell for Taerom, etc.
-Quest items tagged as "critical" will be moved to the PC's inventory when moving to the 7th PMM. This may cause items from the PC's inventory to end up on the floor. This is an engine problem. As a result, you should always check after switching the NPC to the 7th PMM to see if items have landed on the floor!
-When new items are given to one of my NPCs in 7th PMM in a quest specifically for this NPC, they always appear in the inventory of the group or PC, even if the NPC is supposed to receive them. This is an engine problem. Even if I scripted it so that the items would end up in the NPC's inventory after the encounter, they would still be handled via the PC's inventory. And thus, items from the inventory may have ended up on the floor.
-For my NPCs, I have tried to have their own quest items (even if they are original in-game items, as long as they are necessary for my NPC's quest) recognized in the NPC's inventory as well. This works with the following restrictions:
-- All items in question are handled through the PC's inventory before they are either given to or received from a quest giver. This means that other items may have ended up on the floor.
-- If the item was in a bottomless bag (this includes all kind of bags, gem bags, bags for bottles etcpp.), then the item will not be removed in a dialogue with the quest giver. It is still in the bottomless bag afterwards and can cause problems if the scripting of the quest does not consider this (and assumes that the item should be gone).
-- 2. Problem with items in bottomless bags: If the item was in a bottomless bag, then the game crashes for unknown reasons if the NPC is to be taken afterwards into the group as a full member. This "crash bug" can be worked around by saving the game and reloading it.


WHERE TO MEET In GAME

For a first interlude, Grey can be met inside Candlekeep at the side of Jondalar. Jondalar will have an extra line referring to the PC's friendship with Grey. If Jondalar is not present (because a "tutors begone" mod is installed) Grey will just sit at is place.
Expand Down Expand Up @@ -100,6 +113,7 @@ CREDITS

Acifer: Portrait edit with dark bandana (original by Rabain was red), alpha testing
Brokenkatana: Proof reading (English)
scheele: Russian translation


TOOLS USED
Expand Down Expand Up @@ -140,6 +154,15 @@ This mod is also not developed, supported, or endorsed by BioWare, Black Isle St

HISTORY

Version 7:
-Russian version added, by scheele.
-Changed Brandock's level-up system: He will only level up to the PC's level if: he joins the first time for BG1/SoD/BGII OR he joins after being a 7th party member. No more automatic level-up although he is in party.
-Optimized item handling at the beginning of BGII (Grey should not have paw in inventory).
-Corrected bug in tax collector's dialogue (PC should hand over tax note always).
-Unified Power Levels for effects in c#greyba.spl ("Bark").
-Added paragraph "Quirks of the 7th party member mode ingame" to readme.
-Added globally unique LABELs to uspport Project Infinity.

Version 6:
-traified and translated all lines for PID
-fixed text format error for EE (non-English versions)
Expand Down
Loading

0 comments on commit e517eb9

Please sign in to comment.