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 = ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '; - while($row = $res->next()){ - $result .= ' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '; - } +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 = '
entrymodelid_1modelid_2namesubnameminlevelmaxlevelfaction_Afaction_Hnpcflagrankunit_classunit_flagsdynamicflagsfamilytrainer_typetrainer_spelltrainer_classtrainer_racetypetype_flagsAINameMovementTypeInhabitTypeCivilianRacialLeaderequipment_idtrainer_idvendor_idflags_extraScriptName
'.$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'].'
'; + $base_row = \DBD\DB_CREATURE_TEMPLATE_CREATURE::Q1(array($id)); + foreach($base_row as $key=>$value){ + $result .= '';} $result .= '
'.$key.''.$value.'
'; - 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 .= '';} + $result .= ''; + } + $result .= ''; + foreach($row as $key=>$value){ + $result .= '';} + $result .= ''; + $first = false; + } + $result .= '
'.$key.'
'.$value.'
'; + + } + + 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 = ''; + $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 .= '';} + $result_body .= ''; + } + $first=false; + $result_body .= ''; + } + $result .= ''.$result_body; + $result .= '
'.$key.''.$data.'
'; + 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

    +
    + +
    +
    \ 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'); }