Witaj
Gość

Wątek: [Poradnik] NPC - shop oparty na multisellu - tzn wymianie  (Przeczytany 8473 razy)

  • ******
  • Wiadomości: 1390

  • Pochwał: 15

  • Urażona dzidzia, urażona dzidzia!
[Poradnik] NPC - shop oparty na multisellu - tzn wymianie
« dnia: Kwiecień 11, 2008, 08:23:15 pm »
Siema!

Tak jak obiecałem. Poradnik do NPC opartego na multisellu.

To zaczynamy:

1.Tworzymy plik htm

Otwieramy notatnik. Wpisujemy taką treść:
Cytuj
<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:

Cytuj
<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 :)

Cytuj
<?xml version='1.0' encoding='utf-8'?> 
- ta linijka odpowiada za informacje na temat wersji xml'a.

POtem dodajemy:
Cytuj
<list>

A teraz przechodzimy do itemów. Najprostszym  multisellem jest coś za coś:
Cytuj
   <item id="1">
      <ingredient id="4356" count="400"/>
      <production id="6373" count="1"/>
   </item>
czyli wymiana. Item 4356 za 6373 :)
Cytuj
   <item id="1">
      
- ta linijka odpowada za miejsce itemu na liście. (tutaj miejsce nr 1)

Cytuj
   <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:

Cytuj
   <item id="1">
      <ingredient id="4356" count="400"/>
                <ingredient id="5248" count="500"/>
      <production id="6373" count="1"/>
   </item>
)
Cytuj
<ingredient id="4356"
- w miejscu id="4356" możemy podac ID itemu który chcemy że był na wymiane.
Cytuj
count="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
Cytuj
   <item id="1">
      <ingredient id="4356" count="400"/>
      <production id="6373" count="1"/>
   </item>

Mozemy dodac nastepny item np:
Cytuj
<item id="2">
      <ingredient id="4356" count="400"/>
      <production id="6374" count="1"/>
   </item>

oczywiście zmieniamy wedle uznania. Oczywiście zmieniamy:
Cytuj
<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:
Cytuj
</list>

Teraz zapisujemy plik.

Teraz dodajemy go do sql:

wykonujemy coś takiego:

Cytuj
INSERT 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:

Cytuj
INSERT 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:
Cytuj
<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

« Ostatnia zmiana: Październik 03, 2010, 08:50:40 pm wysłana przez Matim »


  • Wiadomości: 5

  • Pochwał: 0

Odp: [Poradnik] NPC - shop oparty na multisell'u.
« Odpowiedź #1 dnia: Kwiecień 11, 2008, 10:19:01 pm »
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 ??

« Ostatnia zmiana: Kwiecień 11, 2008, 10:21:55 pm wysłana przez AnDrOx »
Jeżeli niechcesz pomóc ,to zignoruj tego posta ....a nie wyśilaj się na głupi komentarz


  • ******
  • Wiadomości: 1390

  • Pochwał: 15

  • Urażona dzidzia, urażona dzidzia!
Odp: [Poradnik] NPC - shop oparty na multisell'u.
« Odpowiedź #2 dnia: Kwiecień 11, 2008, 10:27:27 pm »
Buffer tworzy się na zasadzie questu :)


  • Wiadomości: 5

  • Pochwał: 0

Odp: [Poradnik] NPC - shop oparty na multisell'u.
« Odpowiedź #3 dnia: Kwiecień 11, 2008, 10:56:29 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:
Jeżeli niechcesz pomóc ,to zignoruj tego posta ....a nie wyśilaj się na głupi komentarz


  • ******
  • Wiadomości: 1390

  • Pochwał: 15

  • Urażona dzidzia, urażona dzidzia!
Odp: [Poradnik] NPC - shop oparty na wymianie :)
« Odpowiedź #4 dnia: Kwiecień 11, 2008, 11:04:21 pm »
Dobra :) Jutro się tym zajme


  • Wiadomości: 5

  • Pochwał: 0

Odp: [Poradnik] NPC - shop oparty na multisellu - tzn wymianie :)
« Odpowiedź #5 dnia: Styczeń 12, 2009, 08:05:14 pm »
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 ? :( 


  • *******
  • Wiadomości: 1092

  • Pochwał: 22

Odp: [Poradnik] NPC - shop oparty na multisellu - tzn wymianie :)
« Odpowiedź #6 dnia: Styczeń 12, 2009, 08:17:24 pm »
Coś na 100% musisz miec zle . Sprawdz wszystko ponownie , bardziej dokładnie . Najlepiej zrób nowe pliki xml z nowymi rzeczami .


  • Wiadomości: 5

  • Pochwał: 0

Odp: [Poradnik] NPC - shop oparty na multisellu - tzn wymianie :)
« Odpowiedź #7 dnia: Styczeń 12, 2009, 08:28:56 pm »
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.
« Ostatnia zmiana: Styczeń 12, 2009, 10:13:13 pm wysłana przez unn »