diff --git a/mojotrollz/sai/autoload.inc.php b/mojotrollz/sai/autoload.inc.php
index e38f133..eb485b6 100644
--- a/mojotrollz/sai/autoload.inc.php
+++ b/mojotrollz/sai/autoload.inc.php
@@ -2,7 +2,6 @@
SYSTEM\autoload::registerFolder(dirname(__FILE__).'','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_mojotrollz_server_handling','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_mojotrollz_db_command','');
-SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_mojotrollz_db_creature','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_mojotrollz_db_event','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_mojotrollz_db_gossip','');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_mojotrollz_db_item','');
diff --git a/mojotrollz/sai/register_modules.php b/mojotrollz/sai/register_modules.php
index 663fc4b..d1546c2 100644
--- a/mojotrollz/sai/register_modules.php
+++ b/mojotrollz/sai/register_modules.php
@@ -1,7 +1,7 @@
query('SELECT * FROM creature_template LIMIT 100;');
-
- $result = '
- entry
- modelid_1
- modelid_2
- name
- subname
- minlevel
- maxlevel
- faction_A
- faction_H
- npcflag
- rank
- unit_class
- unit_flags
- dynamicflags
- family
- trainer_type
- trainer_spell
- trainer_class
- trainer_race
- type
- type_flags
- AIName
- MovementType
- InhabitType
- Civilian
- RacialLeader
- equipment_id
- trainer_id
- vendor_id
- flags_extra
- ScriptName
- ';
- while($row = $res->next()){
- $result .= '
- '.$row['Entry'].'
- '.$row['modelid_1'].'
- '.$row['modelid_2'].'
- '.$row['name'].'
- '.$row['subname'].'
- '.$row['minlevel'].'
- '.$row['maxlevel'].'
- '.$row['faction_A'].'
- '.$row['faction_H'].'
- '.$row['npcflag'].'
- '.$row['rank'].'
- '.$row['unit_class'].'
- '.$row['unit_flags'].'
- '.$row['dynamicflags'].'
- '.$row['family'].'
- '.$row['trainer_type'].'
- '.$row['trainer_spell'].'
- '.$row['trainer_class'].'
- '.$row['trainer_race'].'
- '.$row['type'].'
- '.$row['type_flags'].'
- '.$row['AIName'].'
- '.$row['MovementType'].'
- '.$row['InhabitType'].'
- '.$row['Civilian'].'
- '.$row['RacialLeader'].'
- '.$row['equipment_id'].'
- '.$row['trainer_id'].'
- '.$row['vendor_id'].'
- '.$row['mechanic_immune_mask'].'
- '.$row['flags_extra'].'
- '.$row['ScriptName'].'
- ';
- }
+class saimod_mojotrollz_db_creature extends \SYSTEM\SAI\SaiModule {
+ public static function sai_mod_saimod_mojotrollz_db_creature_action_search($search){
+ return self::sai_mod_saimod_mojotrollz_db_creature('%'.$search.'%');}
+
+ public static function sai_mod_saimod_mojotrollz_db_creature_action_creature($id){
+ $def = array('additional_tables' => array( '\DBD\DB_CREATURE_TEMPLATE_CREATURE_LOOT' => array('key' => 'LootId', 'caption' => 'Loot'),
+ '\DBD\DB_CREATURE_TEMPLATE_CREATURE_TEMPLATE_ADDON' => array('key' => 'Entry', 'caption' => 'Template Addon'),
+ '\DBD\DB_CREATURE_TEMPLATE_CREATURE_TEMPLATE_SPELLS' => array('key' => 'Entry', 'caption' => 'Template Spells'),
+ '\DBD\DB_CREATURE_TEMPLATE_CREATURE_QUESTRELATION' => array('key' => 'Entry', 'caption' => 'Questrelation'),
+ '\DBD\DB_CREATURE_TEMPLATE_CREATURE_ONKILL_REPUTATION' => array('key' => 'Entry', 'caption' => 'Onkill Reputation'),
+ '\DBD\DB_CREATURE_TEMPLATE_CREATURE_LINKING_TEMPLATE' => array('key' => 'Entry', 'caption' => 'Linking Template'),
+ '\DBD\DB_CREATURE_TEMPLATE_CREATURE_INVOLVEMENT_RELATION' => array('key' => 'Entry', 'caption' => 'Involvement Relation'),
+ '\DBD\DB_CREATURE_TEMPLATE_CREATURE_CREATURE' => array('key' => 'Entry', 'caption' => 'Spawns'),));
+
+ $result = '';
+ $base_row = \DBD\DB_CREATURE_TEMPLATE_CREATURE::Q1(array($id));
+ foreach($base_row as $key=>$value){
+ $result .= ''.$key.' '.$value.' ';}
$result .= '
';
- return $result;}
+
+
+ foreach($def['additional_tables'] as $key=>$value){
+ $result .= ''.$value['caption'].' ';
+ $res = \call_user_func($key.'::QQ',array($base_row[$value['key']]));
+ $first = true;
+ while($row = $res->next()){
+ if($first){
+ $result .= '';
+ foreach($row as $key=>$value){
+ $result .= ''.$key.' ';}
+ $result .= ' ';
+ }
+ $result .= '';
+ foreach($row as $key=>$value){
+ $result .= ''.$value.' ';}
+ $result .= ' ';
+ $first = false;
+ }
+ $result .= '
';
+
+ }
+
+ return $result;
+ }
+ public static function sai_mod_saimod_mojotrollz_db_creature($search='%'){
+ $subdef = array( 'key' => 'Entry'); //table identifier
+ $def = array( 'Entry' => array('caption' => 'ID'),
+ 'ModelId1' => array('hidden' => false),
+ 'ModelId2' => array('hidden' => false),
+ 'Scale' => array('hidden' => true),
+ 'Family' => array('hidden' => false),
+ 'CreatureType' => array('hidden' => true),
+ 'InhabitType' => array('hidden' => true),
+ 'RegenerateHealth' => array('hidden' => true),
+ 'RacialLeader' => array('hidden' => true),
+ 'NpcFlags' => array('hidden' => true),
+ 'UnitFlags' => array('hidden' => true),
+ 'DynamicFlags' => array('hidden' => true),
+ 'ExtraFlags' => array('hidden' => true),
+ 'CreatureTypeFlags' => array('hidden' => true),
+ 'SpeedWalk' => array('hidden' => true),
+ 'SpeedRun' => array('hidden' => true),
+ 'HealthMultiplier' => array('hidden' => true),
+ 'ManaMultiplier' => array('hidden' => true),
+ 'DamageMultiplier' => array('hidden' => true),
+ 'DamageVariance' => array('hidden' => true),
+ 'ArmorMultiplier' => array('hidden' => true),
+ 'ExperienceMultiplier' => array('hidden' => true),
+ 'MinLevelHealth' => array('hidden' => true),
+ 'MaxLevelHealth' => array('hidden' => true),
+ 'MinLevelMana' => array('hidden' => true),
+ 'MaxLevelMana' => array('hidden' => true),
+ 'MinMeeleDmg' => array('hidden' => true),
+ 'MaxMeeleDmg' => array('hidden' => true),
+ 'MinRangedDmg' => array('hidden' => true),
+ 'MaxRangedDmg' => array('hidden' => true),
+ 'Armor' => array('hidden' => true),
+ 'MeeleAttackPower' => array('hidden' => true),
+ 'RangedAttackPower' => array('hidden' => true),
+ 'MeeleBaseAttackTime' => array('hidden' => true),
+ 'MaxMeleeDmg' => array('hidden' => true),
+ 'MeleeAttackPower' => array('hidden' => true),
+ 'RangedBaseAttackTime' => array('hidden' => true),
+ 'DamageSchool' => array('hidden' => true),
+ 'MinLootGold' => array('hidden' => true),
+ 'MaxLootGold' => array('hidden' => true),
+ 'LootId' => array('hidden' => false),
+ 'PickpocketLootId' => array('hidden' => false),
+ 'SkinningLootId' => array('hidden' => false),
+ 'KillCredit1' => array('hidden' => true),
+ 'KillCredit2' => array('hidden' => true),
+ 'MechanicImmuneMask' => array('hidden' => true),
+ 'MinMeleeDmg' => array('hidden' => true),
+ 'MeleeBaseAttackTime' => array('hidden' => true),
+ 'ResistanceHoly' => array('hidden' => true),
+ 'ResistanceFire' => array('hidden' => true),
+ 'ResistanceNature' => array('hidden' => true),
+ 'ResistanceFrost' => array('hidden' => true),
+ 'ResistanceShadow' => array('hidden' => true),
+ 'ResistanceArcane' => array('hidden' => true),
+ 'PetSpellDataId' => array('hidden' => true),
+ 'MovementType' => array('hidden' => true),
+ 'TrainerType' => array('hidden' => true),
+ 'TrainerSpell' => array('hidden' => true),
+ 'TrainerClass' => array('hidden' => true),
+ 'TrainerRace' => array('hidden' => true),
+ 'TrainerTemplateId' => array('hidden' => true),
+ 'VendorTemplateId' => array('hidden' => true),
+ 'GossipMenuId' => array('hidden' => true),
+ 'EquipmentTemplateId' => array('hidden' => true),
+ 'Civilian' => array('hidden' => true),
+ 'AIName' => array('hidden' => true),
+ 'ScriptName' => array('hidden' => false),
+ );
+
+ $res = \DBD\DB_CREATURE_TEMPLATE_SEARCH::QQ(array($search,$search,$search));
+ $result = 'Search ';
+ $result .= '';
+ $result_body = ' ';
+ $first = true;
+ while($row = $res->next()){
+ $result_body .= ' ';
+ foreach($row as $key=>$data){
+ //hidden
+ if( array_key_exists($key, $def) &&
+ array_key_exists('hidden',$def[$key]) &&
+ $def[$key]['hidden']){
+ continue;
+ }
+
+ if($first){
+ if( array_key_exists($key, $def) &&
+ array_key_exists('caption',$def[$key])){
+ $key = $def[$key]['caption'];
+ }
+ $result .= ''.$key.' ';}
+ $result_body .= ''.$data.' ';
+ }
+ $first=false;
+ $result_body .= ' ';
+ }
+ $result .= ''.$result_body;
+ $result .= '
';
+ return $result;
+ }
+
public static function html_li_menu(){return 'DB:Creatures ';}
public static function right_public(){return false;}
public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);}
- public static function sai_mod_saimod_mojotrollz_db_creature_flag_js(){return \SYSTEM\LOG\JsonResult::toString(array());}
+ public static function sai_mod_saimod_mojotrollz_db_creature_flag_js(){return \SYSTEM\LOG\JsonResult::toString(array(
+ \SYSTEM\WEBPATH(new PSAI(),'saimod_mojotrollz_db_creature/saimod_mojotrollz_db_creature.js')));}
public static function sai_mod_saimod_mojotrollz_db_creature_flag_css(){}
-
}
\ No newline at end of file
diff --git a/mojotrollz/sai/saimod_mojotrollz_import/autoload.inc.php b/mojotrollz/sai/saimod_mojotrollz_import/autoload.inc.php
new file mode 100644
index 0000000..bf4bbc1
--- /dev/null
+++ b/mojotrollz/sai/saimod_mojotrollz_import/autoload.inc.php
@@ -0,0 +1,3 @@
+Import ';}
+ public static function right_public(){return false;}
+ public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);}
+ public static function sai_mod_saimod_mojotrollz_import_flag_js(){return \SYSTEM\LOG\JsonResult::toString(array(
+ \SYSTEM\WEBPATH(new PSAI(),'saimod_mojotrollz_import/saimod_mojotrollz_import.js')
+ ));}
+ public static function sai_mod_saimod_mojotrollz_import_flag_css(){}
+
+ public static function sai_mod_saimod_mojotrollz_import_action_import(){
+ return client::import('127.0.0.1');}
+}
\ No newline at end of file
diff --git a/mojotrollz/sai/saimod_mojotrollz_import/saimod_mojotrollz_import.sql b/mojotrollz/sai/saimod_mojotrollz_import/saimod_mojotrollz_import.sql
new file mode 100644
index 0000000..84da986
--- /dev/null
+++ b/mojotrollz/sai/saimod_mojotrollz_import/saimod_mojotrollz_import.sql
@@ -0,0 +1,2 @@
+INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1100, 42, 0, 0, 'saimod_mojotrollz_import', 'action', NULL);
+
diff --git a/mojotrollz/sai/saimod_mojotrollz_import/saimod_mojotrollz_import.tpl b/mojotrollz/sai/saimod_mojotrollz_import/saimod_mojotrollz_import.tpl
new file mode 100644
index 0000000..5d4784a
--- /dev/null
+++ b/mojotrollz/sai/saimod_mojotrollz_import/saimod_mojotrollz_import.tpl
@@ -0,0 +1,6 @@
+
+
Import
+
+ import char
+
+
\ No newline at end of file
diff --git a/mojotrollz/sai/saimod_mojotrollz_server_handling/saimod_mojotrollz_server_handling.js b/mojotrollz/sai/saimod_mojotrollz_server_handling/saimod_mojotrollz_server_handling.js
index 75f74cf..d4547a3 100644
--- a/mojotrollz/sai/saimod_mojotrollz_server_handling/saimod_mojotrollz_server_handling.js
+++ b/mojotrollz/sai/saimod_mojotrollz_server_handling/saimod_mojotrollz_server_handling.js
@@ -38,9 +38,42 @@ function init_saimod_mojotrollz_server_handling(){
data: { sai_mod: 'saimod_mojotrollz_server_handling',
action: 'worldstop'
},
+ type: 'POST',
+ });
+ update_worldstatus();
+ });
+
+ $('#update').click(function(){
+ $.ajax({
+ url: SAI_ENDPOINT,
+ data: { sai_mod: 'saimod_mojotrollz_server_handling',
+ action: 'update'
+ },
type: 'POST',
-
- });
+ });
+ update_realmstatus();
+ update_worldstatus();
+ });
+
+ $('#rights').click(function(){
+ $.ajax({
+ url: SAI_ENDPOINT,
+ data: { sai_mod: 'saimod_mojotrollz_server_handling',
+ action: 'rights'
+ },
+ type: 'POST',
+ });
+ });
+
+ $('#deploy').click(function(){
+ $.ajax({
+ url: SAI_ENDPOINT,
+ data: { sai_mod: 'saimod_mojotrollz_server_handling',
+ action: 'deploy'
+ },
+ type: 'POST',
+ });
+ update_realmstatus();
update_worldstatus();
});
}
@@ -50,6 +83,6 @@ function update_realmstatus(){
}
function update_worldstatus(){
- $('status_world').load(SAI_ENDPOINT+'sai_mod=saimod_mojotrollz_server_handling&action=world status');
+ $('status_world').load(SAI_ENDPOINT+'sai_mod=saimod_mojotrollz_server_handling&action=worldstatus');
}