mirror of
https://gitlab.com/hashborgir/d2tools.git
synced 2024-11-30 04:26:03 +00:00
Processing custom strings for some properties, like skill-rand. https://d2mods.info/forum/kb/viewarticle?a=345
This commit is contained in:
parent
9ff7a97c9d
commit
c40f67545f
@ -128,4 +128,6 @@ magharv
|
|||||||
showkills
|
showkills
|
||||||
iforge
|
iforge
|
||||||
killcounter
|
killcounter
|
||||||
soulcounter
|
soulcounter
|
||||||
|
skill-rand
|
||||||
|
aura-rand
|
94
ironman-dev.sqbpro
Normal file
94
ironman-dev.sqbpro
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?><sqlb_project><db path="D:/Documents/D2Modder/D2Modder/ironman-dev.db" readonly="0" foreign_keys="1" case_sensitive_like="0" temp_store="0" wal_autocheckpoint="1000" synchronous="2"/><attached/><window><main_tabs open="structure browser pragmas query" current="3"/></window><tab_structure><column_width id="0" width="300"/><column_width id="1" width="0"/><column_width id="2" width="100"/><column_width id="3" width="58404"/><column_width id="4" width="0"/><expanded_item id="0" parent="1"/><expanded_item id="1" parent="1"/><expanded_item id="2" parent="1"/><expanded_item id="3" parent="1"/></tab_structure><tab_browse><current_table name="4,10:main_bufficons"/><default_encoding codec=""/><browse_table_settings/></tab_browse><tab_sql><sql name="1.sql">WITH cte_item_codes(code,flippyfile) AS (
|
||||||
|
SELECT code,flippyfile from armor WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT code,flippyfile from misc WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT code,flippyfile from weapons WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT normcode,flippyfile from armor WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT normcode,flippyfile from weapons WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT ubercode,flippyfile from armor WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT ubercode,flippyfile from weapons WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT ultracode,flippyfile from armor WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT ultracode,flippyfile from weapons WHERE code != ''
|
||||||
|
)
|
||||||
|
|
||||||
|
--SELECT u.code,c.flippyfile
|
||||||
|
--FROM uniqueitems as u
|
||||||
|
--JOIN cte_item_codes as c
|
||||||
|
--ON u.code = c.code
|
||||||
|
|
||||||
|
SELECT s.item,c.flippyfile
|
||||||
|
FROM setitems as s
|
||||||
|
JOIN cte_item_codes as c
|
||||||
|
ON s.item = c.code
|
||||||
|
WHERE s.item != '' AND c.code != ''</sql><sql name="SQL 2">select count(*) from setitems</sql><sql name="SQL 3">WITH cte_item_codes(code,flippyfile) AS (
|
||||||
|
SELECT code,flippyfile from armor WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT code,flippyfile from misc WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT code,flippyfile from weapons WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT normcode,flippyfile from armor WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT normcode,flippyfile from weapons WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT ubercode,flippyfile from armor WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT ubercode,flippyfile from weapons WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT ultracode,flippyfile from armor WHERE code != ''
|
||||||
|
UNION
|
||||||
|
SELECT ultracode,flippyfile from weapons WHERE code != ''
|
||||||
|
)
|
||||||
|
|
||||||
|
SELECT u.code,c.flippyfile
|
||||||
|
FROM uniqueitems as u
|
||||||
|
JOIN cte_item_codes as c
|
||||||
|
ON u.code = c.code
|
||||||
|
|
||||||
|
--SELECT s.item,c.flippyfile
|
||||||
|
--FROM setitems as s
|
||||||
|
--JOIN cte_item_codes as c
|
||||||
|
--ON s.item = c.code
|
||||||
|
|
||||||
|
WHERE
|
||||||
|
u.code <> ''
|
||||||
|
AND c.code <> '';</sql><sql name="SQL 4">WITH cte_item_codes(code,flippyfile) AS (
|
||||||
|
SELECT code,flippyfile from armor
|
||||||
|
UNION
|
||||||
|
SELECT code,flippyfile from misc
|
||||||
|
UNION
|
||||||
|
SELECT code,flippyfile from weapons
|
||||||
|
UNION
|
||||||
|
SELECT normcode,flippyfile from armor
|
||||||
|
UNION
|
||||||
|
SELECT normcode,flippyfile from weapons
|
||||||
|
UNION
|
||||||
|
SELECT ubercode,flippyfile from armor
|
||||||
|
UNION
|
||||||
|
SELECT ubercode,flippyfile from weapons
|
||||||
|
UNION
|
||||||
|
SELECT ultracode,flippyfile from armor
|
||||||
|
UNION
|
||||||
|
SELECT ultracode,flippyfile from weapons
|
||||||
|
)
|
||||||
|
|
||||||
|
select * from cte_item_codes</sql><sql name="SQL 5">SELECT a.flippyfile, m.flippyfile, w.flippyfile
|
||||||
|
FROM armor AS a,
|
||||||
|
misc AS m,
|
||||||
|
weapons AS w
|
||||||
|
WHERE a.code = 'axe'
|
||||||
|
OR a.normcode = 'axe'
|
||||||
|
OR a.ubercode = 'axe'
|
||||||
|
OR a.ultracode = 'axe'
|
||||||
|
OR m.code = 'axe'
|
||||||
|
OR w.code = 'axe'
|
||||||
|
OR w.ultracode = 'axe'
|
||||||
|
OR w.normcode = 'axe'
|
||||||
|
OR w.ubercode = 'axe'</sql><sql name="SQL 6">select item from setitems</sql><current_tab id="5"/></tab_sql></sqlb_project>
|
@ -95,10 +95,46 @@ class D2ItemData {
|
|||||||
// val = Prop1,Prop2 etc.
|
// val = Prop1,Prop2 etc.
|
||||||
// for each propr, get all 7 stats in ISC
|
// for each propr, get all 7 stats in ISC
|
||||||
// for now only get stat1, and for else, use dgrp
|
// for now only get stat1, and for else, use dgrp
|
||||||
|
|
||||||
|
|
||||||
|
// prop funcs
|
||||||
|
/*
|
||||||
|
* 1 - Applies a value to a stat, can use SetX parameter.
|
||||||
|
2 - defensive function only, similar to 1 ???
|
||||||
|
3 - Apply the same min-max range as used in the previous function block (see res-all).
|
||||||
|
4 - not used ???
|
||||||
|
5 - Dmg-min related ???
|
||||||
|
6 - Dmg-max related ???
|
||||||
|
7 - Dmg% related ???
|
||||||
|
8 - ??? use for speed properties (ias, fcr, etc ...)
|
||||||
|
9 - Apply the same param and value in min-max range, as used in the previous function block.
|
||||||
|
10 - skilltab skill group ???
|
||||||
|
11 - event-based skills ???
|
||||||
|
12 - random selection of parameters for parameter-based stat ???
|
||||||
|
13 - durability-related ???
|
||||||
|
14 - inventory positions on item ??? (related to socket)
|
||||||
|
15 - use min field only
|
||||||
|
16 - use max field only
|
||||||
|
17 - use param field only
|
||||||
|
18 - Related to /time properties.
|
||||||
|
19 - Related to charged item.
|
||||||
|
20 - Simple boolean stuff. Use by indestruct.
|
||||||
|
21 - Add to group of skills, group determined by stat ID, uses ValX parameter.
|
||||||
|
22 - Individual skill, using param for skill ID, random between min-max.
|
||||||
|
23 - ethereal
|
||||||
|
24 - property applied to character or target monster ???
|
||||||
|
25--32 can be used in custom code. Check plugin documentation for syntax.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$sql = "SELECT stat1 FROM properties WHERE code = ?";
|
$sql = "SELECT func1,stat1 FROM properties WHERE code = ?";
|
||||||
$props[$key]['stat'] = PDO_FetchRow($sql, [$val['prop' . $counter]]);
|
$props[$key]['stat'] = PDO_FetchRow($sql, [$val['prop' . $counter]]);
|
||||||
|
|
||||||
|
// if not empty, filter props key stat
|
||||||
if (!empty($props[$key]['stat'])) {
|
if (!empty($props[$key]['stat'])) {
|
||||||
$props[$key]['stat'] = array_filter($props[$key]['stat']);
|
$props[$key]['stat'] = array_filter($props[$key]['stat']);
|
||||||
}
|
}
|
||||||
@ -109,14 +145,13 @@ class D2ItemData {
|
|||||||
$counter = 1;
|
$counter = 1;
|
||||||
//each stat now goes into getIscStrings
|
//each stat now goes into getIscStrings
|
||||||
foreach ($props as $k => $v) {
|
foreach ($props as $k => $v) {
|
||||||
//ddump($v);
|
$props[$k]['desc'] = $this->getIscStrings($v['prop' . $counter]);
|
||||||
$props[$k]['desc'] = $this->getIscStrings($v['prop' . $counter]);
|
|
||||||
$counter++;
|
$counter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Values in params, so I can get generated string for that prop
|
// Values in params, so I can get generated string for that prop
|
||||||
$counter = 1;
|
$counter = 1;
|
||||||
foreach ($props as $k => $v) { // for each property Prop1 Prop2
|
foreach ($props as $k => $v) { // for each property Prop1 Prop2
|
||||||
$params = [
|
$params = [
|
||||||
'string1' => $v['desc']['string1'],
|
'string1' => $v['desc']['string1'],
|
||||||
'string2' => $v['desc']['string2'],
|
'string2' => $v['desc']['string2'],
|
||||||
@ -137,10 +172,15 @@ class D2ItemData {
|
|||||||
* getDesc should process string1, not file guide copy pasta
|
* getDesc should process string1, not file guide copy pasta
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
if (!empty($v['desc'])) {
|
if ( (!empty($v['desc'])) ) {
|
||||||
require_once 'D2ItemDesc.php';
|
require_once 'D2ItemDesc.php';
|
||||||
$idesc = new D2ItemDesc();
|
$idesc = new D2ItemDesc();
|
||||||
$props[$k]['string'][] = ($idesc->getDesc($params));
|
$props[$k]['string'][] = ($idesc->getDesc($params));
|
||||||
|
if ($v['stat']['func1'] == '12'){
|
||||||
|
$props[$k]['string'] = "+{$params['par']} to a Random Skill";
|
||||||
|
}
|
||||||
|
ddump($props[$k]['string']);
|
||||||
|
|
||||||
}
|
}
|
||||||
$counter++;
|
$counter++;
|
||||||
}
|
}
|
||||||
|
65
test.php
65
test.php
@ -18,12 +18,67 @@ define('DB_FILE', $_SESSION['modname'] . ".db");
|
|||||||
PDO_Connect("sqlite:" . DB_FILE);
|
PDO_Connect("sqlite:" . DB_FILE);
|
||||||
|
|
||||||
|
|
||||||
$sql = "SELECT code FROM uniqueitems";
|
//$sql = "SELECT code FROM uniqueitems";
|
||||||
|
//$res = PDO_FetchAll($sql);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//foreach ($res as $code){
|
||||||
|
// $c = $code['code'];
|
||||||
|
//
|
||||||
|
// $sql = "SELECT flippyfile FROM misc WHERE code = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
//
|
||||||
|
// if(empty($ret)){
|
||||||
|
// $sql = "SELECT flippyfile FROM armor WHERE code = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
// }
|
||||||
|
// if(empty($ret)){
|
||||||
|
// $sql = "SELECT flippyfile FROM armor WHERE normcode = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
// }
|
||||||
|
// if(empty($ret)){
|
||||||
|
// $sql = "SELECT flippyfile FROM armor WHERE ubercode = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
// }
|
||||||
|
// if(empty($ret)){
|
||||||
|
// $sql = "SELECT flippyfile FROM armor WHERE ultracode = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if(empty($ret)){
|
||||||
|
// $sql = "SELECT flippyfile FROM weapons WHERE code = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
// }
|
||||||
|
// if(empty($ret)){
|
||||||
|
// $sql = "SELECT flippyfile FROM weapons WHERE normcode = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
// }
|
||||||
|
// if(empty($ret)){
|
||||||
|
// $sql = "SELECT flippyfile FROM weapons WHERE ubercode = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
// }
|
||||||
|
// if(empty($ret)){
|
||||||
|
// $sql = "SELECT flippyfile FROM weapons WHERE ultracode = '$c'";
|
||||||
|
// $ret = PDO_FetchOne($sql);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// $return[] = $ret;
|
||||||
|
//
|
||||||
|
// echo $ret . "_uni<br>";
|
||||||
|
//}
|
||||||
|
|
||||||
|
//dump($return)
|
||||||
|
//
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
$sql = "SELECT item FROM setitems";
|
||||||
$res = PDO_FetchAll($sql);
|
$res = PDO_FetchAll($sql);
|
||||||
|
|
||||||
|
|
||||||
foreach ($res as $code){
|
foreach ($res as $code){
|
||||||
$c = $code['code'];
|
$c = $code['item'];
|
||||||
|
|
||||||
|
|
||||||
$sql = "SELECT flippyfile FROM misc WHERE code = '$c'";
|
$sql = "SELECT flippyfile FROM misc WHERE code = '$c'";
|
||||||
$ret = PDO_FetchOne($sql);
|
$ret = PDO_FetchOne($sql);
|
||||||
@ -64,7 +119,5 @@ foreach ($res as $code){
|
|||||||
|
|
||||||
$return[] = $ret;
|
$return[] = $ret;
|
||||||
|
|
||||||
echo $ret . "_uni<br>";
|
echo $ret . "_set<br>";
|
||||||
}
|
};
|
||||||
|
|
||||||
//dump($return);
|
|
Loading…
Reference in New Issue
Block a user