From: <lyn...@us...> - 2009-02-20 13:22:52
|
Revision: 5729 http://gemrb.svn.sourceforge.net/gemrb/?rev=5729&view=rev Author: lynxlupodian Date: 2009-02-20 12:09:17 +0000 (Fri, 20 Feb 2009) Log Message: ----------- bg2::cg: add class/kit abilities and bhaal powers apply spell works, learn spell unknown (setupcontrols is buggy) Modified Paths: -------------- gemrb/trunk/gemrb/GUIScripts/bg2/CharGen9.py gemrb/trunk/gemrb/override/bg2/clskills.2da Modified: gemrb/trunk/gemrb/GUIScripts/bg2/CharGen9.py =================================================================== --- gemrb/trunk/gemrb/GUIScripts/bg2/CharGen9.py 2009-02-19 23:04:51 UTC (rev 5728) +++ gemrb/trunk/gemrb/GUIScripts/bg2/CharGen9.py 2009-02-20 12:09:17 UTC (rev 5729) @@ -46,9 +46,10 @@ ClassName = ClassTable.GetRowName (ClassIndex) GemRB.SetPlayerStat (MyChar, IE_CLASS, Class) - TmpTable = GemRB.LoadTableObject ("clskills") + ClassSkillsTable = GemRB.LoadTableObject ("clskills") + #mage spells - TableName = TmpTable.GetValue (Class, 2, 0) + TableName = ClassSkillsTable.GetValue (Class, 2, 0) # TODO check if this is really needed KitIndex = GemRB.GetVar ("Class Kit") @@ -63,16 +64,44 @@ print "KitValue**********:",KitValue GemRB.SetPlayerStat (MyChar, IE_KIT, KitValue) + # apply kit abilities + TmpTable = KitTable.GetValue (str(KitIndex), "ABILITIES") + ABTable = TmpTable + if KitValue != 0x4000 and TmpTable != "*": + TmpTable = GemRB.LoadTableObject (TmpTable) + elif KitValue == 0x4000: + # classes get clab**01 + TmpTable = ClassSkillsTable (ClassName, "ABILITIES") + if TmpTable != "*" and TmpTable != ABTable: + if KitValue == 0x4000 and "," in TmpTable: + # multiclass + classes = TmpTable.split(",") + for j in classes: + AddClassAbilities (MyChar, "CLAB"+j) + else: + AddClassAbilities (MyChar, TmpTable) + + # Lay on hands + # Turn undead + + # set the starting reputation TmpTable=GemRB.LoadTableObject ("repstart") AlignmentTable = GemRB.LoadTableObject ("aligns") t = AlignmentTable.FindValue (3, t) t = TmpTable.GetValue (t,0) * 10 GemRB.SetPlayerStat (MyChar, IE_REPUTATION, t) - #slot 1 is the protagonist if MyChar == 1: GemRB.GameSetReputation( t ) + # apply starting (alignment dictated) abilities + TmpTable = GemRB.LoadTableObject ("abstart") + AlignmentAbbrev = AlignmentTable.FindValue (3, GemRB.GetPlayerStat (MyChar, IE_ALIGNMENT)) + AlignmentAbbrev = AlignmentTable.GetValue (AlignmentAbbrev, 4) + for i in range(TmpTable.GetColumnCount()): + ab = TmpTable.GetValue (AlignmentAbbrev, str(i)) + GemRB.LearnSpell (MyChar, ab) + TmpTable=GemRB.LoadTableObject ("strtgold") t = GemRB.Roll (TmpTable.GetValue (Class,1),TmpTable.GetValue (Class,0), TmpTable.GetValue (Class,2) ) GemRB.SetPlayerStat (MyChar, IE_GOLD, t*TmpTable.GetValue (Class,3) ) @@ -199,3 +228,14 @@ GemRB.SetNextScript ("ExportFile") #export return +def AddClassAbilities (MyChar, TmpTable): + for i in range(TmpTable.GetRowCount()): + ab = TmpTable.GetValue (i, 0) # only add level 1 abilities + if ab != "****": + # apply spell (AP_) or gain spell (GA_) + if ab[:2] == "AP": + GemRB.ApplySpell (MyChar, ab[3:]) + elif ab[:2] == "GA": + GemRB.LearnSpell (MyChar, ab[3:]) + else: + print "ERROR, unknown class ability (type): ", ab Modified: gemrb/trunk/gemrb/override/bg2/clskills.2da =================================================================== --- gemrb/trunk/gemrb/override/bg2/clskills.2da 2009-02-19 23:04:51 UTC (rev 5728) +++ gemrb/trunk/gemrb/override/bg2/clskills.2da 2009-02-20 12:09:17 UTC (rev 5729) @@ -1,24 +1,24 @@ 2DA V1.0 * - DRUIDSPELL CLERICSPELL MAGESPELL STARTXP BARDSKILL THIEFSKILL LAYHANDS TURNLEVEL BOOKTYPE HATERACE -UNUSED * * * * * * * 0 0 * -MAGE * * MXSPLWIZ 89000 * * * 0 1 * -FIGHTER * * * 89000 * * * 0 0 * -CLERIC * MXSPLPRS * 89000 * * * 1 1 * -THIEF * * * 89000 * SKILLS * 0 0 * -BARD * * MXSPLBRD 89000 SKILLBRD * * 0 1 * -PALADIN * MXSPLPAL * 89000 * * PALADIN 5 1 * -FIGHTER_MAGE * * MXSPLWIZ 89000 * * * 0 1 * -FIGHTER_CLERIC * MXSPLPRS * 89000 * * * 0 1 * -FIGHTER_THIEF * * * 89000 * SKILLS * 0 0 * -FIGHTER_MAGE_THIEF * * MXSPLWIZ 89000 * SKILLS * 0 1 * -DRUID MXSPLDRU * * 89000 * * * 0 1 * -RANGER MXSPLRAN * * 89000 * * * 0 1 HATERACE -MAGE_THIEF * * MXSPLWIZ 89000 * SKILLS * 0 1 * -CLERIC_MAGE * MXSPLPRS MXSPLWIZ 89000 * * * 0 1 * -CLERIC_THIEF * MXSPLPRS * 89000 * SKILLS * 0 1 * -FIGHTER_DRUID MXSPLDRU * * 89000 * * * 0 1 * -FIGHTER_MAGE_CLERIC * MXSPLPRS MXSPLWIZ 89000 * * * 0 1 * -CLERIC_RANGER MXSPLRAN MXSPLPRS * 89000 * * * 0 1 HATERACE -SORCERER * * MXSPLSRC 89000 * * * 0 2 * -MONK * * * 89000 * SKILLS * 0 0 * + DRUIDSPELL CLERICSPELL MAGESPELL STARTXP BARDSKILL THIEFSKILL LAYHANDS TURNLEVEL BOOKTYPE HATERACE ABILITIES +UNUSED * * * * * * * 0 0 * * +MAGE * * MXSPLWIZ 89000 * * * 0 1 * * +FIGHTER * * * 89000 * * * 0 0 * CLABFI01 +CLERIC * MXSPLPRS * 89000 * * * 1 1 * CLABPR01 +THIEF * * * 89000 * SKILLS * 0 0 * CLABTH01 +BARD * * MXSPLBRD 89000 SKILLBRD * * 0 1 * CLABBA01 +PALADIN * MXSPLPAL * 89000 * * PALADIN 5 1 * CLABPA01 +FIGHTER_MAGE * * MXSPLWIZ 89000 * * * 0 1 * CLABFI01 +FIGHTER_CLERIC * MXSPLPRS * 89000 * * * 0 1 * FI01,PR01 +FIGHTER_THIEF * * * 89000 * SKILLS * 0 0 * FI01,TH01 +FIGHTER_MAGE_THIEF * * MXSPLWIZ 89000 * SKILLS * 0 1 * FI01,TH01 +DRUID MXSPLDRU * * 89000 * * * 0 1 * CLABDR01 +RANGER MXSPLRAN * * 89000 * * * 0 1 HATERACE CLABRN01 +MAGE_THIEF * * MXSPLWIZ 89000 * SKILLS * 0 1 * CLABTH01 +CLERIC_MAGE * MXSPLPRS MXSPLWIZ 89000 * * * 0 1 * CLABPR01 +CLERIC_THIEF * MXSPLPRS * 89000 * SKILLS * 0 1 * PR01,TH01 +FIGHTER_DRUID MXSPLDRU * * 89000 * * * 0 1 * FI01,DR01 +FIGHTER_MAGE_CLERIC * MXSPLPRS MXSPLWIZ 89000 * * * 0 1 * FI01,PR01 +CLERIC_RANGER MXSPLRAN MXSPLPRS * 89000 * * * 0 1 HATERACE PR01,RN01 +SORCERER * * MXSPLSRC 89000 * * * 0 2 * * +MONK * * * 89000 * SKILLS * 0 0 * CLABMO01 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |