[Release] ItemArray (PHP)

06/29/2015 21:53 xsrf#1
Hier mal das Array der PropItem.txt.

Es ist nur das Array kein fertiger Code. Wer ein wenig Ahnung hat wird es verwenden können, es soll den Leuten die es benutzen nur ein wenig Arbeit ersparen.

PHP:

PHP Code:
public function getItemStats($intItemId){
             
        
$valueArray $this->openFile;
        
$getLine explode("\t"trim($valueArray[$intItemId]));

        
$copyArray = array(
            
'ver6' => $getLine[0],
            
'dwID' => $getLine[1],
            
'szName' => $getLine[2],
            
'dwNum' => $getLine[3],
            
'dwPackMax' => $getLine[4],
            
'dwItemKind1' => $getLine[5],
            
'dwItemKind2' => $getLine[6],
            
'dwItemKind3' => $getLine[7],
            
'dwItemJob' => str_replace('_'' 'str_replace('JOB_'null$getLine[8])),
            
'bPermanence' => $getLine[9],
            
'dwUseable' => $getLine[10],
            
'dwItemsex' => $getLine[11],
            
'dwCost' => $getLine[12],
            
'dwEndurance' => $getLine[13],
            
'nAbrasion' => $getLine[14],
            
'nMaxRepair' => $getLine[15],
            
'dwHanded' => $getLine[16],
            
'dwFlag' => $getLine[17],
            
'dwParts' => $getLine[18],
            
'dwPartsub' => $getLine[19],
            
'bPartFile' => $getLine[20],
            
'dwExclusive' => $getLine[21],
            
'dwBasePartsIgnore' => $getLine[22],
            
'dwItemLV' => $getLine[23],
            
'dwItemRare' => $getLine[24],
            
'dwShopAble' => $getLine[25],
            
'bLog' => $getLine[26],
            
'bCharged' => $getLine[27],
            
'dwLinkKindBullet' => $getLine[28],
            
'dwLinkKind' => $getLine[29],
            
'dwAbilityMin' => $getLine[30],
            
'eItemType' => $getLine[31],
            
'wItemEAtk' => $getLine[32],
            
'dwParry' => $getLine[33],
            
'dwBlockRating' => $getLine[34],
            
'dwUseable' => $getLine[35],
            
'dwAddSkillMin' => $getLine[36],
            
'dwAddSkillMax' => $getLine[37],
            
'dwAtkStyle' => $getLine[38],
            
'dwWeaponType' => $getLine[39],
            
'dwItemAtkOrder1' => $getLine[40],
            
'dwItemAtkOrder2' => $getLine[41],
            
'dwItemAtkOrder3' => $getLine[42],
            
'dwItemAtkOrder4' => $getLine[43],
            
'bContinuousPain' => $getLine[44],
            
'dwShellQuantity' => $getLine[45],
            
'dwRecoil' => $getLine[46],
            
'dwLoadingTime' => $getLine[47],
            
'nAdjHitRate' => $getLine[48],
            
'dwAttackSpeed' => $getLine[49],
            
'dwDmgShift' => $getLine[50],
            
'dwAttackRange' => $getLine[51],
            
'dwProbability' => $getLine[52],
            
'dwDestParam1' => $getLine[53],
            
'dwDestParam2' => $getLine[54],
            
'dwDestParam3' => $getLine[55],
            
'nAdjParamVal1' => $getLine[56],
            
'nAdjParamVal2' => $getLine[57],
            
'nAdjParamVal3' => $getLine[58],
            
'dwChgParamVal1' => $getLine[59],
            
'dwChgParamVal2' => $getLine[60],
            
'dwChgParamVal3' => $getLine[61],
            
'dwdestData1' => $getLine[62],
            
'dwdestData2' => $getLine[63],
            
'dwdestData3' => $getLine[64],
            
'dwactiveskill' => $getLine[65],
            
'dwactiveskillLv' => $getLine[66],
            
'dwactiveskillper' => $getLine[67],
            
'dwReqMp' => $getLine[68],
            
'dwRepFp' => $getLine[69],
            
'dwReqDisLV' => $getLine[70],
            
'dwReSkill1' => $getLine[71],
            
'dwReSkillLevel1' => $getLine[72],
            
'dwReSkill2' => $getLine[73],
            
'dwReSkillLevel2' => $getLine[74],
            
'dwSkillReadyType' => $getLine[75],
            
'dwSkillReady' => $getLine[76],
            
'dwSkillRange' => $getLine[77],
            
'dwSfxElemental' => $getLine[78],
            
'dwSfxObj' => $getLine[79],
            
'dwSfxObj2' => $getLine[80],
            
'dwSfxObj3' => $getLine[81],
            
'dwSfxObj4' => $getLine[82],
            
'dwSfxObj5' => $getLine[83],
            
'wUseMotion' => $getLine[84],
            
'dwCircleTime' => $getLine[85],
            
'dwSkillTime' => $getLine[86],
            
'dwExeTarget' => $getLine[87],
            
'dwUseChance' => $getLine[88],
            
'dwSpellRegion' => $getLine[89],
            
'dwSpellType' => $getLine[90],
            
'dwReferStat1' => $getLine[91],
            
'dwReferStat2' => $getLine[92],
            
'dwReferTarget1' => $getLine[93],
            
'dwReferTarget2' => $getLine[94],
            
'dwReferValue1' => $getLine[95],
            
'dwReferValue2' => $getLine[96],
            
'dwSkillType' => $getLine[97],
            
'fItemResistElecricity' => $getLine[98],
            
'fItemResistFire' => $getLine[99],
            
'fItemResistWind' => $getLine[100],
            
'fItemResistWater' => $getLine[101],
            
'fItemResistEarth' => $getLine[102],
            
'nEvildoing' => $getLine[103],
            
'dwExpertLV' => $getLine[104],
            
'ExpertMax' => $getLine[105],
            
'dwSubDefine' => $getLine[106],
            
'dwExp' => $getLine[107],
            
'dwComboStyle' => $getLine[108],
            
'fFlightSpeed' => $getLine[109],
            
'fFlightLRAngle' => $getLine[110],
            
'fFlightTBAngle' => $getLine[111],
            
'dwFlightLimit' => $getLine[112],
            
'dwFFuelReMax' => $getLine[113],
            
'dwAFuelReMax' => $getLine[114],
            
'dwFuelRe' => $getLine[115],
            
'dwLimitLevel1' => $getLine[116],
            
'dwReflect' => $getLine[117],
            
'dwSndAttack1' => $getLine[118],
            
'dwSndAttack2' => $getLine[119],
            
'szIcon' => $getLine[120],
            
'dwQuestID' => $getLine[121],
            
'szTextFile' => $getLine[122],
            
'szComment' => $getLine[123],
            
'szIconPNG' => str_replace('dds''png'str_replace('"'null$getLine[120]))

            
        );
        
        return 
$copyArray;
           
    } 
Output:

Code:
Array
(
    [ver6] => 6
    [dwID] => II_ARM_M_ACR_SUIT0101
    [szName] => IDS_PROPITEM_TXT_002164
    [dwNum] => 1
    [dwPackMax] => 1
    [dwItemKind1] => IK1_ARMOR
    [dwItemKind2] => IK2_ARMOR
    [dwItemKind3] => IK3_SUIT
    [dwItemJob] => JOB_ACROBAT
    [bPermanence] => TRUE
    [dwUseable] => 0
    [dwItemsex] => SEX_MALE
    [dwCost] => 3895
    [dwEndurance] => 9000000
    [nAbrasion] => 100
    [nMaxRepair] => 180
    [dwHanded] => =
    [dwFlag] => =
    [dwParts] => PARTS_UPPER_BODY
    [dwPartsub] => =
    [bPartFile] => 1
    [dwExclusive] => PARTS_LOWER_BODY
    [dwBasePartsIgnore] => =
    [dwItemLV] => 18
    [dwItemRare] => 18
    [dwShopAble] => 1
    [bLog] => 1
    [bCharged] => =
    [dwLinkKindBullet] => =
    [dwLinkKind] => =
    [dwAbilityMin] => 135
    [eItemType] => 137
    [wItemEAtk] => _NONE
    [dwParry] => 0
    [dwBlockRating] => 0
    [dwAddSkillMin] => =
    [dwAddSkillMax] => =
    [dwAtkStyle] => =
    [dwWeaponType] => =
    [dwItemAtkOrder1] => =
    [dwItemAtkOrder2] => =
    [dwItemAtkOrder3] => =
    [dwItemAtkOrder4] => =
    [bContinuousPain] => =
    [dwShellQuantity] => =
    [dwRecoil] => =
    [dwLoadingTime] => =
    [nAdjHitRate] => =
    [dwAttackSpeed] => =
    [dwDmgShift] => =
    [dwAttackRange] => =
    [dwProbability] => =
    [dwDestParam1] => DST_FP_MAX
    [dwDestParam2] => =
    [dwDestParam3] => =
    [nAdjParamVal1] => 20
    [nAdjParamVal2] => =
    [nAdjParamVal3] => =
    [dwChgParamVal1] => =
    [dwChgParamVal2] => =
    [dwChgParamVal3] => =
    [dwdestData1] => =
    [dwdestData2] => =
    [dwdestData3] => =
    [dwactiveskill] => =
    [dwactiveskillLv] => =
    [dwactiveskillper] => =
    [dwReqMp] => =
    [dwRepFp] => =
    [dwReqDisLV] => =
    [dwReSkill1] => =
    [dwReSkillLevel1] => =
    [dwReSkill2] => =
    [dwReSkillLevel2] => =
    [dwSkillReadyType] => =
    [dwSkillReady] => =
    [dwSkillRange] => =
    [dwSfxElemental] => =
    [dwSfxObj] => =
    [dwSfxObj2] => =
    [dwSfxObj3] => =
    [dwSfxObj4] => =
    [dwSfxObj5] => =
    [wUseMotion] => =
    [dwCircleTime] => =
    [dwSkillTime] => =
    [dwExeTarget] => =
    [dwUseChance] => =
    [dwSpellRegion] => =
    [dwSpellType] => =
    [dwReferStat1] => =
    [dwReferStat2] => =
    [dwReferTarget1] => =
    [dwReferTarget2] => =
    [dwReferValue1] => =
    [dwReferValue2] => =
    [dwSkillType] => =
    [fItemResistElecricity] => 0
    [fItemResistFire] => 0
    [fItemResistWind] => 0
    [fItemResistWater] => 0
    [fItemResistEarth] => 0
    [nEvildoing] => 0
    [dwExpertLV] => =
    [ExpertMax] => =
    [dwSubDefine] => =
    [dwExp] => =
    [dwComboStyle] => =
    [fFlightSpeed] => =
    [fFlightLRAngle] => =
    [fFlightTBAngle] => =
    [dwFlightLimit] => =
    [dwFFuelReMax] => =
    [dwAFuelReMax] => =
    [dwFuelRe] => =
    [dwLimitLevel1] => 15
    [dwReflect] => =
    [dwSndAttack1] => =
    [dwSndAttack2] => =
    [szIcon] => """itm_mAcr01Upper.dds"""
    [dwQuestID] => 0
    [szTextFile] => """"""
    [szComment] => IDS_PROPITEM_TXT_002165
06/29/2015 22:41 Sedrika#2
Die Datenbank hat bereit eine Funktion die alle items aktuell hält und mit einem select Befehl hat man schneller alles als die Dateien durchzu laden
06/29/2015 23:43 xTwiLightx#3
Ohne $getLine überhaupt irgendwie zu erstellen, pastest du hier nen Array.Echt jetzt?
06/30/2015 05:39 xsrf#4
Ja TwiLight echt jetzt. Es ging lediglich um nutzlose Schreibarbeit. Ich wusste nicht, dass es in der Datenbank eine Funktion für die Items gibt, daher erstellte ich dieses Array. Wenn jemand also die PropItem.php auslesen möchte kann er diese direkt in einem asiozativen Array speichern. Es ist keine schwierige Arbeit aber relativ nervig. Mit dem Array hat man einen guten Überblick und das auslesen sollte man selbst können, da es nur 2 Zeilen sind die man hinzufügen muss. Man kann nun direkt mit 2 weitereb Zeilen das Arrwy durchsuchen und benötigt dafür nichtmal eine Datenbankverbindung. Es ist Ansichtssache allerdings vermeide ich Datenbanken wo s nur geht. Du kannst mithilfe des Array die Datein auch leicht in eine Datenbank parsen.

#function added
07/02/2015 21:10 FlyCraft.TobiLap#5
Quote:
Originally Posted by Sedrika View Post
Die Datenbank hat bereit eine Funktion die alle items aktuell hält und mit einem select Befehl hat man schneller alles als die Dateien durchzu laden
Währe super wenn du die Funktion auch beim Namen nennst sonst hat dein post wieder 0 Inhalt.
07/02/2015 22:22 xTwiLightx#6
Quote:
Originally Posted by FlyCraft.TobiLap View Post
Währe super wenn du die Funktion auch beim Namen nennst sonst hat dein post wieder 1,3cm ePenis aber 0 Inhalt.
Er hat die Datenbank dazu sogar in seinem WebShop mit released.

ITEM_DBF -> ITEM_STR


ITEMUPDATE in der DatabaseServer.ini setzen und go.
07/02/2015 23:21 xsrf#7
Dann bin ich schonmal etwas schlauer als vorher. Ich habe mir die Flyff Datenbank bisher nicht genau angesehen.

Das Array ist allerdings trotzdem ziemlich nützlich, auch wenn du es direkt parsen könntest, da du somit die Resource Dateien leichter bearbeiten und vergleichen kannst.

Ich werde mir die Prozedur mal ansehen und eventuell meinen Code ersetzen, je nachdem ob sie mir zusagt oder nicht :)
07/03/2015 17:24 xTwiLightx#8
Quote:
Originally Posted by AMAZEN View Post
Dann bin ich schonmal etwas schlauer als vorher. Ich habe mir die Flyff Datenbank bisher nicht genau angesehen.

Das Array ist allerdings trotzdem ziemlich nützlich, auch wenn du es direkt parsen könntest, da du somit die Resource Dateien leichter bearbeiten und vergleichen kannst.

Ich werde mir die Prozedur mal ansehen und eventuell meinen Code ersetzen, je nachdem ob sie mir zusagt oder nicht :)
Man muss nichts parsen, weil der Server der Prozedur direkt alles als einzelne Parameter übergibt.