Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Baza Danych] Konwertor item_proto_dump.xml do SQL


Zonni

Rekomendowane odpowiedzi

Opublikowano

Polskie znaki, chińskie znaki, wszystko wrzuca się dobrze łącznie ze znakami specjalnymi w name i locale_name.

 


<?php
if(!file_exists('item_proto_dump.xml')) { echo'item_proto_dump.xml nie istnieje<br/> najpierw wrzuc item_proto_dump w katalog gdzie masz ten plik'; exit; }
$line = 0;
function strtohex($string)
{
$hex='';
for ($i=0; $i < strlen($string); $i++)
{
$hex .= dechex(ord($string[$i]));
}
return $hex;
}
$attr_list = file("item_proto_dump.xml");
while($attr_list[$line]) {
$exploded = explode('"', $attr_list[$line]);
$vnum = $exploded[1];
$name = $exploded[3];
$gb2312name = $exploded[5];
$type = $exploded[7];
$subtype = $exploded[9];
$weight = $exploded[11];
$size = $exploded[13];
$antiflag = $exploded[15];
$flag = $exploded[17];
$wearflag = $exploded[19];
$immuneflag = "";
$gold = $exploded[23];
$buy_price = $exploded[25];
$refine_vnum = $exploded[71];
$refine_set = $exploded[73];
$magic_pct = $exploded[75];
$limittype0 = $exploded[27];
$limitvalue0 = $exploded[29];
$limittype1 = $exploded[31];
$limitvalue1 = $exploded[33];
$applytype0 = $exploded[35];
$applyvalue0 = $exploded[37];
$applytype1 = $exploded[39];
$applyvalue1 = $exploded[41];
$applytype2 = $exploded[43];
$applyvalue2 = $exploded[45];
$value0 = $exploded[47];
$value1 = $exploded[49];
$value2 = $exploded[51];
$value3 = $exploded[53];
$value4 = $exploded[55];
$value5 = $exploded[57];
$socket0 = $exploded[59];
$socket1 = $exploded[61];
$socket2 = $exploded[63];
$socket3 = $exploded[65];
$socket4 = $exploded[67];
$socket5 = $exploded[69];
$specular = $exploded[77];
$socket_pct = $exploded[79];
$addon_type = 0;
if ($limitvalue0 == 30) { $addon_type = -1; }
if ($limitvalue0 == 75) { $addon_type = -1; }
if ($gb2312name != "") {
echo "INSERT INTO `item_proto` VALUES ('$vnum',";
$name2 = strtohex($name);
echo" 0x$name2,";
$locale_name = strtohex($gb2312name);
echo " 0x$locale_name, '$type', '$subtype', '$weight', '$size',
'$antiflag', '$flag', '$wearflag', '$immuneflag', '$gold', '$buy_price', '$refine_vnum', '$refine_set', '0',
'$magic_pct', '$limittype0', '$limitvalue0', '$limittype1', '$limitvalue1', '$applytype0', '$applyvalue0',
'$applytype1', '$applyvalue1', '$applytype2', '$applyvalue2', '$value0', '$value1', '$value2', '$value3',
'$value4', '$value5', '$socket0', '$socket1', '$socket2', '$socket3', '$socket4', '$socket5', '$specular',
'$socket_pct', '$addon_type');<br/>";
}
$line++;
}
?>

 

Twórcą nie jestem, nie pamiętam skąd mam skrypt, bynajmniej dodałem wrzucanie bezproblemowe znaków specjalnych.

skrypt i item proto dump musi mieć kodowanie znaków ANSI

30.01.2010 - 16.06.2013 - Główny technik i administrator Yitian2/XLasT. <3


 


 


Tworzę i sprzedaje: Lib'y, Questy, GUI, nowe systemy, funkcje bla bla bla. Wszystko prócz grafiki i przeniesienia metina na nowy silnik graficzny.


Kontakt na PW.

  • 4 tygodnie później...
Opublikowano

Mistrzostwo. Świetne, szybkie działanie. Dzięki bardzo

 

EDIT 1: Musiałem jedynie zmienić wartości binarne 27 czyli ' przy chińskich znakach. Na szczęście istnieje notepad++

EDIT 2: Buty+9 lv 75 mają średnie ;D (Item proto z PL)

EDIT 3: Wędka i kilof też

Kiedyś wam wszystkim udowodnię ;)

  • 1 miesiąc temu...
  • 3 tygodnie później...
  • 2 miesiące temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...