They're all dead, probably. Fixed it a while ago. Try using this in knight.rpy:Not sure why knight combat just crashed.
python:
for tr in traps:
if len(knight.party) <= 0:
break
if tr.id.startswith('trap_generic'):
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 1 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_tentacle'):
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 2 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_spike'):
unit = knight.party[random.randrange(0,len(knight.party))]
if unit.id == 'champion' and not 'spike_trap_evasion' in knight.ability_list:
unit.hp -= 9 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
else:
unit.hp -= 3 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_fire'):
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 5 * unit.resist('fire')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_ice'):
for unit in knight.party:
unit.hp -= 2 * unit.resist('ice')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_arrow'):
for y in xrange(6):
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 1 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
if len(knight.party) < 1:
window hide
$log.clear()
"The Dragon\'s mighty trap collection finished off all the invaders before they even reached his minions. Oh well, not all Knights are the stuff of legend."
jump knight_fight_end
python:
for x in range(lair.get_defence(mode = 'minion')):
if len(knight.party) <= 0:
break
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 1 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
window hide
$log.clear()
if len(knight.party) < 1:
"The Knight\'s party found an ignoble end while fighting the Dragon\'s minions. Oh well, not all Knights are the stuff of legend."
jump knight_fight_end
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/_script/lair/lair - sleep report.rpy", line 44, in script call
call lb_event_knight_go_to_lair
File "game/_script/lair/knight.rpy", line 656, in script
python:
File "game/_script/lair/knight.rpy", line 657, in <module>
for x in range(lair.get_defence(mode = 'minion')):
AttributeError: 'Lair' object has no attribute 'get_defence'
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/_script/lair/lair - sleep report.rpy", line 44, in script call
call lb_event_knight_go_to_lair
File "game/_script/lair/knight.rpy", line 656, in script
python:
File "F:\test\Time_for_Dragons-1.1.1-pc-DDM\renpy\ast.py", line 900, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File "F:\test\Time_for_Dragons-1.1.1-pc-DDM\renpy\python.py", line 1930, in py_exec_bytecode
exec bytecode in globals, locals
File "game/_script/lair/knight.rpy", line 657, in <module>
for x in range(lair.get_defence(mode = 'minion')):
AttributeError: 'Lair' object has no attribute 'get_defence'
Windows-8-6.2.9200
Ren'Py 7.2.2.491
Время для Драконов: Королевство Монстров 29-07-20
Tue Sep 01 10:14:56 2020
python:
for tr in traps:
if tr.id.startswith('trap_generic'):
attempts = 0
unit = knight.party[random.randrange(0,len(knight.party))]
while unit.hp < 1 and attempts < 1000000:
unit = knight.party[random.randrange(0,len(knight.party))]
attempts += 1
unit.hp -= 1
if tr.id.startswith('trap_tentacle'):
attempts = 0
unit = knight.party[random.randrange(0,len(knight.party))]
while unit.hp < 1 and attempts < 1000000:
unit = knight.party[random.randrange(0,len(knight.party))]
attempts += 1
unit.hp -= 2
elif tr.id.startswith('trap_spike'):
attempts = 0
unit = knight.party[random.randrange(0,len(knight.party))]
while unit.hp < 1 and attempts < 1000000:
unit = knight.party[random.randrange(0,len(knight.party))]
attempts += 1
if unit.id == 'champion' and not 'spike_trap_evasion' in knight.ability_list:
unit.hp -= 9
else:
unit.hp -= 3
elif tr.id.startswith('trap_fire'):
attempts = 0
unit = knight.party[random.randrange(0,len(knight.party))]
while unit.hp < 1 and attempts < 1000000:
unit = knight.party[random.randrange(0,len(knight.party))]
attempts += 1
unit.hp -= 5
elif tr.id.startswith('trap_ice'):
for unit in knight.party:
unit.hp -= 2
elif tr.id.startswith('trap_arrow'):
for y in xrange(6):
attempts = 0
unit = knight.party[random.randrange(0,len(knight.party))]
while unit.hp < 1 and attempts < 1000000:
unit = knight.party[random.randrange(0,len(knight.party))]
attempts += 1
unit.hp -= 1
for x in range(lair.defence - traps_defence):
attempts = 0
unit = knight.party[random.randrange(0,len(knight.party))]
while unit.hp < 1 and attempts < 1000000:
unit = knight.party[random.randrange(0,len(knight.party))]
attempts += 1
unit.hp -= 1
window hide
$log.clear()
It is fully (but sometimes poorly) translated, but I might have broken something. Tell me what encounter has an issue with translations and I'll see what I can do.On another note, is the "Time_for_Dragons-1.1.1-pc-DDM\game\_story\hunt" code not translated fully, or am I missing something?
For locations, it's e.g. 'dragon.landmark('castle_cleared')'. For rooms, e.g. 'room_prototypes['wood_mana_crystal'].unlocked = True'.Also, is there a way to add a marker to a dragon, like the ones that unlock forest/frost/stone/fire hatcheries? I cannot seem to find those either, as I do not know what search terms to use.
AttributeError: 'Lair' object has no attribute 'get_defence'
def get_defence(self,mode = 'all'):
result = 0
if mode in ['minion','all']:
for minion in self.minions:
result += random.randint(int(minion.attack),int(minion.attack+minion.attack_mastery))
for room in self.rooms:
if room.id == 'guard_post':
if room.minion:
result += random.randint(int(2*minion.attack),int(2*minion.attack + 2*minion.attack_mastery))
if hasattr(self,'mob_power'):
result = int(result*self.mob_power)
if mode in ['traps','all']:
for room in self.rooms:
result += room.defence
if mode in ['all']:
if hasattr(self,'base_defence'):
result += self.base_defence
return result
These unlocks will move to post-conquest.Forest - kill the border guard, which also unlocks the alva home
stone - demolish the steamgun, unlocks the dwarf home
Probably a combination of traps and minions, 5*10 damage isn't enough to kill even a lone Knight.Apparently the ifrit's home has abt 8 explosive traps and I added 2 more, so like 10 explosions, pretty sure that did the knight in....
python:
for x in range(lair.get_defence(mode = 'minion')):
def get_defence(self,mode = 'all'):
result = 0
if mode in ['minion','all']:
for minion in self.minions:
result += random.randint(int(minion.attack),int(minion.attack+minion.attack_mastery))
for room in self.rooms:
if room.id == 'guard_post':
if room.minion:
result += random.randint(int(2*minion.attack),int(2*minion.attack + 2*minion.attack_mastery))
if hasattr(self,'mob_power'):
result = int(result*self.mob_power)
if mode in ['traps','all']:
for room in self.rooms:
result += room.defence
if mode in ['all']:
if hasattr(self,'base_defence'):
result += self.base_defence
return result
if len(knight.party) <= 0:
break
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 1 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
window hide
$log.clear()
if len(knight.party) < 1:
"The Knight\'s party found an ignoble end while fighting the Dragon\'s minions. Oh well, not all Knights are the stuff of legend."
jump knight_fight_end
I'm sorry, but an uncaught exception occurred.
While running game code:
File "game/_script/lair/lair - sleep report.rpy", line 44, in script call
call lb_event_knight_go_to_lair
File "game/_script/lair/knight.rpy", line 671, in script
jump knight_fight_end
ScriptError: could not find label 'knight_fight_end'.
-- Full Traceback ------------------------------------------------------------
Full traceback:
File "game/_script/lair/lair - sleep report.rpy", line 44, in script call
call lb_event_knight_go_to_lair
File "game/_script/lair/knight.rpy", line 671, in script
jump knight_fight_end
File "F:\test\Time_for_Dragons-1.1.1-pc-DDM\renpy\ast.py", line 1678, in execute
rv = renpy.game.script.lookup(target)
File "F:\test\Time_for_Dragons-1.1.1-pc-DDM\renpy\script.py", line 886, in lookup
raise ScriptError("could not find label '%s'." % str(original))
ScriptError: could not find label 'knight_fight_end'.
Windows-8-6.2.9200
Ren'Py 7.2.2.491
Время для Драконов: Королевство Монстров 29-07-20
Tue Sep 01 11:07:05 2020
evolution_prototypes = {}
for key in evolution_raw:
evolution_prototypes[key] = Evolution(key)
if not history.event('event_evolution_test') and room_prototypes['green_mana_crystal'].unlocked:
$history.flag('event_evolution_test')
$evolution_prototypes['locked_evolution'].unlocked = true
python:
for tr in traps:
if len(knight.party) <= 0:
break
if tr.id.startswith('trap_generic'):
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 1 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_tentacle'):
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 2 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_spike'):
unit = knight.party[random.randrange(0,len(knight.party))]
if unit.id == 'champion' and not 'spike_trap_evasion' in knight.ability_list:
unit.hp -= 9 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
else:
unit.hp -= 3 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_fire'):
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 5 * unit.resist('fire')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_ice'):
for unit in knight.party:
unit.hp -= 2 * unit.resist('ice')
if unit.hp < 1:
knight.party.remove(unit)
elif tr.id.startswith('trap_arrow'):
for y in xrange(6):
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 1 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
if len(knight.party) < 1:
window hide
$log.clear()
"The Dragon\'s mighty trap collection finished off all the invaders before they even reached his minions. Oh well, not all Knights are the stuff of legend."
jump knight_fight_end
python:
for x in range(lair.get_defence(mode = 'minion')):
def get_defence(self,mode = 'all'):
result = 0
if mode in ['minion','all']:
for minion in self.minions:
result += random.randint(int(minion.attack),int(minion.attack+minion.attack_mastery))
for room in self.rooms:
if room.id == 'guard_post':
if room.minion:
result += random.randint(int(2*minion.attack),int(2*minion.attack + 2*minion.attack_mastery))
if hasattr(self,'mob_power'):
result = int(result*self.mob_power)
if mode in ['traps','all']:
for room in self.rooms:
result += room.defence
if mode in ['all']:
if hasattr(self,'base_defence'):
result += self.base_defence
return result
if len(knight.party) <= 0:
break
unit = knight.party[random.randrange(0,len(knight.party))]
unit.hp -= 1 * unit.resist('phys')
if unit.hp < 1:
knight.party.remove(unit)
window hide
$log.clear()
if len(knight.party) < 1:
"The Knight\'s party found an ignoble end while fighting the Dragon\'s minions. Oh well, not all Knights are the stuff of legend."
jump knight_fight_end
def get_defence(self,mode = 'all'):
result = 0
if mode in ['minion','all']:
for minion in self.minions:
result += random.randint(int(minion.attack),int(minion.attack+minion.attack_mastery))
for room in self.rooms:
if room.id == 'guard_post':
if room.minion:
result += random.randint(int(2*minion.attack),int(2*minion.attack + 2*minion.attack_mastery))
if hasattr(self,'mob_power'):
result = int(result*self.mob_power)
if mode in ['traps','all']:
for room in self.rooms:
result += room.defence
if mode in ['all']:
if hasattr(self,'base_defence'):
result += self.base_defence
return result
Put in 'knight_fight_end' like this:ScriptError: could not find label 'knight_fight_end'.
label knight_fight_end:
$ knight.save_girls_combat_stats_attack = 0
$ knight.save_girls_combat_stats_attack_mastery = 0
$ knight.save_girls_combat_stats_hp = 0
Hmm, where? Nothing like that in my copy.I have found some pieces of code...
No such thing as an 'Evolution' class.Code:evolution_prototypes = {} for key in evolution_raw: evolution_prototypes[key] = Evolution(key)
With some more work, this would just lock all evolving until you have the first hatchery unlocked. Why would you want to do that?...this next snippet...
Code:if not history.event('event_evolution_test') and room_prototypes['green_mana_crystal'].unlocked: $history.flag('event_evolution_test') $evolution_prototypes['locked_evolution'].unlocked = true
In the 'history' object....where the $history.flag true/false statments are stored...
Close. It's 'if history.event('event_evolution_test'):' or 'if history.has_flag('event_evolution_test'):'....something like: if history.event('event_evolution_test').unlocked ?
Uh, somewhere in 'lair - classes.rpy'. Should have mentioned that, sorry.where does this code block go?
Code:def get_defence(self,mode = 'all'):