Hello, Nightborn,
I am getting busy again with my game implementation and I keep getting new ideas...
I stumbled upon a couple of days on Kala's module 'variedvillage', on Dragonprime, a module that changes encountered creatures based on DK, and I found it usefull for my themed game scenario.
I tried to adapt and get rid of unneeded code for my game and I got it to this :
<?php
function variedvillage_getmoduleinfo(){
$info=array(
"name"=>"Varied Villages",
"author" => "Alchemion with help from Nightborn, based on`4Kara Abbott's variedvillage",
"version"=>"1.0",
"download"=>"http://dragonprime.net/index.php?module=Downloads;sa=dlview;id=639",
"category"=>"Administrative",
"description"=>"Change creatures and dragon names depending upon dk",
"settings"=>array(
"Varied Village Settings,title",
"dk"=>"First dk level?,int|",
"dk2"=>"Second dk level?,int|",
"dragon1"=>"First Dragon Name?,text|",
"dragon2"=>"Second Dragon Name?,text|",
),
"prefs-creatures"=>array(
"Varied Villages - Creature Settings,title",
"city1creature"=>"This monster may appear in the First Village?,bool|0",
"city2creature"=>"This monster may appear in the Second Village?,bool|0"
),
);
return $info;
}
function variedvillage_install(){
module_addhook("creatureencounter");
if (!is_module_installed('variedvillages')) {
foreach ($sql_statements as $intext => $outtext) {
$sql = "INSERT INTO ".db_prefix("translations")." (intext, outtext, uri, language) VALUES ('".addslashes($intext)."', '".addslashes($outtext)."', 'module-variedvillages', 'en')";
db_query($sql);
}
}
return true;
}
function variedvillage_uninstall(){
return true;
}
function variedvillage_dohook($hookname,$args){
global $session;
$dk=$session['user']['dragonkills'];
$dkc=get_module_setting("dk");
$dkc2=get_module_setting("dk2");
switch($hookname){
case "creatureencounter":
if ($dk>=$dkc && $dk<$dkc2){
//first city creatures
$dragon=get_module_setting("dragon1");
preg_replace("Green Dragon","$dragon");
preg_replace("Dragon","$dragon");
$creatures = db_prefix("creatures");
$module_objprefs = db_prefix("module_objprefs");
$sql = "SELECT c.creaturename AS creaturename, c.creatureweapon AS creatureweapon
FROM $creatures AS c
INNER JOIN $module_objprefs AS mo ON mo.objid = c.creatureid
WHERE mo.objtype='creatures'
AND mo.modulename='variedvillage'
AND mo.setting='city1creature'
AND mo.value=1
AND c.creaturelevel = {$args['creaturelevel']}
ORDER BY rand(".e_rand().")
LIMIT 1";
$result = db_query($sql);
if (db_num_rows($result)) {
$row = db_fetch_assoc($result);
$args['creaturename'] = $row['creaturename'];
$args['creatureweapon'] = $row['creatureweapon'];
$args['creaturehealth'] = round($args['creaturehealth'] * (0.1 + get_module_setting("expbonus")));
$args['creatureattack'] = round($args['creatureattack'] * (0.1 + get_module_setting("expbonus")));
$args['creaturedefense'] = round($args['creaturedefense'] * (0.1 + get_module_setting("expbonus")));
} else {
$args['creaturename'] = "`4Avenging Angel";
$args['creatureweapon'] = "`4Flames of Light";
}
}elseif($dk>=$dkc2){
//second cities creatures
$dragon=get_module_setting("dragon2");
preg_replace("Green Dragon","$dragon");
preg_replace("Dragon","$dragon");
$creatures = db_prefix("creatures");
$module_objprefs = db_prefix("module_objprefs");
$sql = "SELECT c.creaturename AS creaturename, c.creatureweapon AS creatureweapon
FROM $creatures AS c
INNER JOIN $module_objprefs AS mo ON mo.objid = c.creatureid
WHERE mo.objtype='creatures'
AND mo.modulename='variedvillage'
AND mo.setting='city2creature'
AND mo.value=1
AND c.creaturelevel = {$args['creaturelevel']}
ORDER BY rand(".e_rand().")
LIMIT 1";
$result = db_query($sql);
if (db_num_rows($result)) {
$row = db_fetch_assoc($result);
$args['creaturename'] = $row['creaturename'];
$args['creatureweapon'] = $row['creatureweapon'];
$args['creaturehealth'] = round($args['creaturehealth'] * (0.1 + get_module_setting("expbonus")));
$args['creatureattack'] = round($args['creatureattack'] * (0.1 + get_module_setting("expbonus")));
$args['creaturedefense'] = round($args['creaturedefense'] * (0.1 + get_module_setting("expbonus")));
} else {
$args['creaturename'] = "`4Avenging Angel";
$args['creatureweapon'] = "`4Flames of Light";
}
}
break;
}
return $args;
}
?>
With the Kala's file, the dragon didn't change its name on encountering, and i remember something about the need to use translation engine to get the job done...
I thought of simplifying it, but still does not show the dragon name modified in battle...
Please, have a look on the upper code and point what is lacking so the code would work also for the Dragon name change ( to have the same effect as encountering different creatures on different dk's) ...
Regarding other hard coded "dragon" name in the game, i plan to replace it with a generic name that would not pose a problem with the specificity of this encounter... or maybe you would suggest something more efficient ... though you're the fan of modularizing changes...

Thank you, very much.