Siema!
Tak jak obiecałem. Poradnik do NPC opartego na multisellu.
To zaczynamy:
1.Tworzymy plik htmOtwieramy notatnik. Wpisujemy taką treść:
Cytat<html><body>Imie NPC<br>
Tekst jaki ma być w chacie.<br>
<a action="bypass -h npc_%objectId%_multisell Nazwa multisellu">Tutaj cos co po kliknięciu otworzy nam multisell <./a> <br>
</body></html>
. - prosze usnac z <
./a>
Zapisujemy :)
Przykładowy plik Html dla NPC:
Cytat<html><body>Exchanger<br>
<font color="64e986">You are very rich and you can't carry more adena? I think I can help you... <br>
I'm able to trade your Adena for very precious thing - a Gold Bar :) <br>
You can get your Adena back, just give me Gold Bar and I will give you 100kk for it!<br></font>
<br>
<br>
<br>
<a action="bypass -h npc_%objectId%_multisell 909091"><font color="30787e">Yes, I want to trade my Adena/Gold Bars!</font></a><br>
</body></html>
2.Plik multisellu :)Tak więc zaczynamy od notatnika :)
Cytat<?xml version='1.0' encoding='utf-8'?>
- ta linijka odpowiada za informacje na temat wersji xml'a.
POtem dodajemy:
Cytat<list>
A teraz przechodzimy do itemów. Najprostszym multisellem jest coś za coś:
Cytat<item id="1">
<ingredient id="4356" count="400"/>
<production id="6373" count="1"/>
</item>
czyli wymiana. Item 4356 za 6373 :)
Cytat<item id="1">
- ta linijka odpowada za miejsce itemu na liście. (tutaj miejsce nr 1)
Cytat<item id="1">
<ingredient id="4356" count="400"/>
- ta linijka odpowiada za item który będzie potrzebny do wymiany (Uwaga: Można dodac kilka rzeczy które będą potrzebne do wymiany np:
Cytat<item id="1">
<ingredient id="4356" count="400"/>
<ingredient id="5248" count="500"/>
<production id="6373" count="1"/>
</item>
)
Cytat<ingredient id="4356"
- w miejscu id="4356" możemy podac ID itemu który chcemy że był na wymiane.
Cytatcount="500"/>
- ta linijka odpowiada ile danego itemu co podaliśmy będzie potrzebne :)
Ale niekiedy w multisellu jest więcej itemów. Jeżeli chcemy miec więcej po
Cytat<item id="1">
<ingredient id="4356" count="400"/>
<production id="6373" count="1"/>
</item>
Mozemy dodac nastepny item np:
Cytat<item id="2">
<ingredient id="4356" count="400"/>
<production id="6374" count="1"/>
</item>
oczywiście zmieniamy wedle uznania. Oczywiście zmieniamy:
Cytat<item id="2">
i tak dalej przy następnych itemach zmieniając kolejno Item 3 na 3, item 4 na 4 etc :)
kończymy plik xml dopisując:
Cytat</list>
Teraz zapisujemy plik.
Teraz dodajemy go do sql:
wykonujemy coś takiego:
CytatINSERT INTO `npc` (`id`,`idTemplate`,`name`,`serverSideName`,`title`,`serverSideTitle`,`class`,`collision_radius`,`collision_height`,`level`,`sex`,`type`,`attackrange`,`hp`,`mp`,`hpreg`,`mpreg`,`str`,`con`,`dex`,`int`,`wit`,`men`,`exp`,`sp`,`patk`,`pdef`,`matk`,`mdef`,`atkspd`,`aggro`,`matkspd`,`rhand`,`lhand`,`armor`,`walkspd`,`runspd`,`faction_id`,`faction_range`,`isUndead`,`absorb_level`,`absorb_type`) VALUES
(ID-NPC,12077,'ImieTegoNPC',0,'',0,'Monster.pet_wolf',13.00,11.50,15,'male','L2Merchant',40,195,164,3.95,1.21,40,43,30,21,20,25,0,0,9,19,3,17,282,0,333,0,0,0,26,137,NULL,0,0,0,'LAST_HIT')
A tutaj przykład:
CytatINSERT INTO `npc` (`id`,`idTemplate`,`name`,`serverSideName`,`title`,`serverSideTitle`,`class`,`collision_radius`,`collision_height`,`level`,`sex`,`type`,`attackrange`,`hp`,`mp`,`hpreg`,`mpreg`,`str`,`con`,`dex`,`int`,`wit`,`men`,`exp`,`sp`,`patk`,`pdef`,`matk`,`mdef`,`atkspd`,`aggro`,`matkspd`,`rhand`,`lhand`,`armor`,`walkspd`,`runspd`,`faction_id`,`faction_range`,`isUndead`,`absorb_level`,`absorb_type`) VALUES
(919191,12077,'Wolf',0,'',0,'Monster.pet_wolf',13.00,11.50,15,'male','L2Merchant',40,195,164,3.95,1.21,40,43,30,21,20,25,0,0,9,19,3,17,282,0,333,0,0,0,26,137,NULL,0,0,0,'LAST_HIT'),
Po dodaniu NPC do bazy trzeba dograc pliki htm i xml.
Teraz zmieniamy nazwe pliku xml na np 9999999999 (można urzyc tylko samych liczb) np 999999.xml
Teraz zmieniamy nazwe pliku htm na
IdTegoNPc.htm
np: 9999999.htm
Teraz otwieramy ten plik htm i szukamy linijki:
Cytat<a action="bypass -h npc_%objectId%_multisell 909090">Tutaj cos co po kliknięciu otworzy nam multisell
W miejscu którym pogrubiłem wpisujemy nazwe xml'a.
Teraz plik htm wgrywamy do /data/html/merchant/
a plik xml do /data/multisell.
Teraz w grze wpisujemy
//reload npc
//reload html
//reload multisell
a jak nie pomorze to restart. Kiedy to zrobiliśmy to wpisujemy //spawn IDNaszegoNpc.
Jeżeli coś jest nie jasne prosze pisac
LOL :o proponuję małą zmianę tytułu posta"" [Poradnik] NPC-shop oparty na mulltisell"u -wersja dla profesjonalistów
Ale spróbuję:
1.Co to jest " Coś " co po kliknięciu otworzy nam multisell[/url]-Poproszę o przykład...
-reszta wydaje się prosta :)
Czy buffera tworzy się podobnie ,zamieniając ewentualne itemy na skile ??
Buffer tworzy się na zasadzie questu :)
Cytat: Maślan w Kwiecień 11, 2008, 10:27:27 PM
Buffer tworzy się na zasadzie questu :)
Hhhmmm..na zasadzie questu :shock:
Maślan>Wielkie Kompedium Wiedzy...niechcę być nachalny ale może poświęcisz odrobinę swego Wielce Cennego Czasu i napiszesz kolejny [PORADNIK] pt. Jak Postawić NPC-Buffera do plików Nightly KAMAEL (Pls.o wersję dla kompletnych noobów) :bangin:
Dobra :) Jutro się tym zajme
A wiec tak , mam problem z Multisellem ...
Robię wszystko z tego tutoriala , multiselle , xml , htm , sql ... Nie zgadzała mi się ilość tabel w pliku .sql z Twojego przykładu ale rozwiązałem ten problem. NPC jest już wgrany , spawnuje go, plik .htm się zgadza ale nie zgadzają mi się multiselle ... Wpisuje wszystko tak jak trzeba , obejrzałem i porównałem te pliki z tutorialem około 15 razy i wszystko było jak należy... Jak klikam np " Armor S80 " to wyskakuje mi do kupienia set Apella za Klanową reputacje oO ID się zgadza , nic nie podmieniałem ( tzn. nie zastąpiłem obecnych plików tylko stworzyłem nowe w Multisell i Merchant ). Wie ktoś czym jest to spowodowane ? :(
Coś na 100% musisz miec zle . Sprawdz wszystko ponownie , bardziej dokładnie . Najlepiej zrób nowe pliki xml z nowymi rzeczami .
Plik HTM :
<html><body>ASD
<br>
<font color="64e986"blablablabla:
</font>
<br>
<br>
<br>
<br>
<br>
<br>
<a action="bypass -h npc_%objectId%_multisell 9979972">Armor s </a><br>
</body></html>
Plik HML :
<?xml version='1.0' encoding='utf-8'?>
<list>
<item id="1">
<ingredient id="2807" count="100"/>
<production id="6373" count="1"/>
</item>
<item id="2">
<ingredient id="2807" count="50"/>
<production id="6373" count="1"/>
</item>
<item id="3">
<ingredient id="2807" count="50"/>
<production id="6374" count="1"/>
</item>
<item id="4">
<ingredient id="2807" count="100"/>
<production id="6383" count="1"/>
</item>
</list>
Moje przykładowe pliki wyglądają jak te u góry
EDIT: Już zrobiłem , problem rozwiązany.