Forum www.l2walkerpolska.fora.pl Strona Główna www.l2walkerpolska.fora.pl
L2Walker, Lineage II, L2.Net, L2Divine, L2Superman,
 
 FAQFAQ   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy   GalerieGalerie   RejestracjaRejestracja 
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Wystawianie sklepów pod Freya

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.l2walkerpolska.fora.pl Strona Główna -> L2.Net Scenariusze (scrypting)
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
akazel




Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Śro 13:18, 17 Lis 2010    Temat postu: Wystawianie sklepów pod Freya

Znalazłem gotowa klase Private Store na:
[link widoczny dla zalogowanych]
jednak cos tutaj nie działa/

Chce napisać skrypt do wystawiania sklepów:

(narazie analizuje pakiety)

####################################

wystawilem sklep:
sell shop : title ustawilem na : "tratatata"
item 1 : Wind Mantra ilosc: 1111 cena 2323232 UID 276319640
item 2 : Fire Mantra ilosc: 111 cena 2323232 UID 282031105

####################################
otrzymałem pakiety(jezeli chodzi o kolejnosc to patrz na godzine:P )
#####################################
10:12:00 :[CLIENT DUMP: 5C 3B 58 00 00 00 41 41 1F // nie wiem co to
10:12:00 :[CLIENT DUMP: 59 71 42 01 00 E2 45 02 00 6E F2 FF FF 3B 58 00 00 00 00 00 00 //nie wiem co to
10:12:00 :[CLIENT DUMP: 59 71 42 01 00 E2 45 02 00 6E F2 FF FF 3B 58 00 00 00 00 00 00 //nie wiem co to

10:11:59 :[CLIENT DUMP:
31 // info ze sell shop

00 00 00 00 // jakis pusty pakiet
02 00 00 00 // ile itemow wystawiamy
//item 1:
01 74 CF 10 // UID <- jak to pobrać ? znam tylko opcje do pobierania zwykłego ID itemu
6F 00 00 00 00 00 00 00 // ilosc
20 73 23 00 00 00 00 00 // cena
// item 2
98 4D 78 10 // UID
57 04 00 00 00 00 00 00 // ilosc
17 73 23 00 00 00 00 00 // cena

10:11:51 :[CLIENT DUMP: 97 74 00 72 00 61 00 74 00 61 00 74 00 61 00 74 00 61 00 00 00 // to jest title sklepu

10:10:38 :[CLIENT DUMP: 56 0A 00 00 00 00 00 00 00 00 // otwiera menu wystawiania sklepu

############################

Jeżeli ktos robił cos podobnego to prosze o pomoc rady sugestie Smile.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
FX
Moderator



Dołączył: 28 Sty 2010
Posty: 682
Przeczytał: 0 tematów

Pomógł: 17 razy
Ostrzeżeń: 0/5

PostWysłany: Śro 14:12, 17 Lis 2010    Temat postu:

56 0A 00 00 00 00 00 00 00 00 <- action use mozna olac i niewysylac

teraz pakiet sklepu

00 00 00 00 // jakis pusty pakiet <- to jest czy wystawiamy w "paczce" 0 oznacza ze nie

kolejnosc jes ttaka
wysylamy nazwe titla
potem pakiet shopa

co do uid
INVEN_GET_UID [VINT] [INT]

Stores the unique item id of the inventory ITEM with the type id INT2 in variable VINT as an int.


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
akazel




Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Śro 17:19, 17 Lis 2010    Temat postu:

Define int id
define int uid
define string name "Bracer"

ITEM_GET_ID id "<&name&>"
INVEN_GET_UID uid "<&id&>"

PRINT_TEXT "item <&name&> = <&id&> = <&uid&>"


END_SCRIPT




Funkcja działa dzieki. Widac na
wiki:
[link widoczny dla zalogowanych]
jest wiecej opsne niz na:
[link widoczny dla zalogowanych]

Co mi powiesz o tych pakietach ?

10:12:00 :[CLIENT DUMP: 5C 3B 58 00 00 00 41 41 1F // nie wiem co to
10:12:00 :[CLIENT DUMP: 59 71 42 01 00 E2 45 02 00 6E F2 FF FF 3B 58 00 00 00 00 00 00 //nie wiem co to
10:12:00 :[CLIENT DUMP: 59 71 42 01 00 E2 45 02 00 6E F2 FF FF 3B 58 00 00 00 00 00 00 //nie wiem co to


Post został pochwalony 0 razy

Ostatnio zmieniony przez akazel dnia Śro 21:22, 17 Lis 2010, w całości zmieniany 4 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
FX
Moderator



Dołączył: 28 Sty 2010
Posty: 682
Przeczytał: 0 tematów

Pomógł: 17 razy
Ostrzeżeń: 0/5

PostWysłany: Śro 19:24, 17 Lis 2010    Temat postu:

zeby nie zjadalo znaczka & musisz zaznaczyc przed wyslaniem "wylacz html w tym poscie" wtedy mozna pisac "<&aa&>"

59 71 42 01 00 E2 45 02 00 6E F2 FF FF 3B 58 00 00 00 00 00 00 - ValidatePosition - potwierdzenie pozycji gdzie stoimy

5C 3B 58 00 00 00 41 41 1F - FinishRotating

co do opisu na danej www to kwestia wprawy
ja sie uczylem sie na przykladach z innych skryptow jak co dziala w l2necie
teraz tylko ta 2 strone uzywam zeby zobaczec jak cos sie zwalo (funkcja) reszta intuicyjna Smile


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
akazel




Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Czw 10:35, 18 Lis 2010    Temat postu:

Tak na sztywno wpisałem i działa Smile. Dzieki za pomoc.

Kod:

DEFINE STRING TITLE "trataxjdiga"
DEFINE INT ILE 1
DEFINE STRING ITEM_NAME "Soulshot: S-grade"
DEFINE INT ITEM_ID
DEFINE INT ITEM_UID
DEFINE INT COUNT 1312     
DEFINE INT PRICE 2323232

INJECT "97 <&TITLE.GET_HEX&>"
print_text "title: <&TITLE&>"     
DEFINE BYTEBUFFER PACKET 256
PACKET.WRITE_BYTE #i49                         
PACKET.WRITE_INT32 #i0                         
PACKET.WRITE_INT32 ILE                       
ITEM_GET_ID ITEM_ID "<&ITEM_NAME&>"
INVEN_GET_UID ITEM_UID "<&ITEM_ID&>"     
PACKET.WRITE_INT32 "<&ITEM_UID&>"         
PACKET.WRITE_INT64 "<&COUNT&>"                         
PACKET.WRITE_INT64 "<&PRICE&>"     
PACKET.TRIM_TO_INDEX
INJECTBB PACKET
print_text "done"       
END_SCRIPT


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
FX
Moderator



Dołączył: 28 Sty 2010
Posty: 682
Przeczytał: 0 tematów

Pomógł: 17 razy
Ostrzeżeń: 0/5

PostWysłany: Czw 17:24, 18 Lis 2010    Temat postu:

to az tak przydatne ci bedzie ?Razz jakis bug na serwie jest ?
bo normalnie l2net moze tez tworzyc sklepy chyba ze chcesz jakeis dynamiczne


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
akazel




Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Czw 20:54, 18 Lis 2010    Temat postu:

Jak to moze tworzyc? Shocked

Mi chodzi o to zeby stawiac sklepy z automatu, a nie wpisywac po kolei title co za ile itd.

Chce ustawic tak ze do skupu to patrzy ile ma adeny po ile co skupowac no i w zaleznosci od ustawien np.: za 60% adeny fire mantre skupuje za 40% giant codexy. Aktualizowac sobie bede tylko ceny przedmiotow i ewentualnie proporcje.

Jak l2net tego w opcjach nie ma to mam kolejny problem.
Nie działa mi dzielenie ani mnożenie.

Kod:

define string item "Soulshot: S-grade"
define string item2 "Blessed Soulshot: S-grade"
define int count
define int pc 232323
define int count2
define string adena "Adena"
define int adena_count // tutaj byl blad chyba glupie string zamiast int wpisalem ... zaraz sprawdze
define int adena_id
define double tmp 0.6
ITEM_GET_ID adena_id "<&adena&>"
ITEM_COUNT adena_count "<&adena_id&>"   

print_text "ADENY: <&adena_count&>"
count = adena_count / tmp
print_text "count: <&tmp&>"
tmp = count / pc
count = tmp
print_text "count: <&tmp&>"

END_SCRIPT


Pełno opcji probowalem i zadna nie dziala. Może ktos umiałby to poprawic lub zamiescic prosty przykład dzielenia mnożenia z konwersja wyniku na int. Chodzi o zaokraglenie w dół.


Post został pochwalony 0 razy

Ostatnio zmieniony przez akazel dnia Czw 20:58, 18 Lis 2010, w całości zmieniany 2 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
FX
Moderator



Dołączył: 28 Sty 2010
Posty: 682
Przeczytał: 0 tematów

Pomógł: 17 razy
Ostrzeżeń: 0/5

PostWysłany: Czw 21:23, 18 Lis 2010    Temat postu:

mi wszystko dziala Razz
zobacz ten kod
Kod:

define int licz1 10
define int licz2 2
define int wynik 0


wynik = licz1 / licz2
print_text "<&wynik&>"

 end_script

niewiem czy specialnie czy nie ale chyba sie machles w linaich poprostu bo zobacz
kawalek twojego kodu
Kod:

count = adena_count / tmp
print_text "count: <&tmp&>"

wynik bedzie w count a wyswietlasz zmienna tmp

a i pamietaj o 1
ze jak robisz dzialania na roznych typach np double i int to zawsze wstawiaj double jako 1 tzn np
Kod:

define int aaa 2
define double asd 7.55
define double wynik 0
wynik = asd * aaa

jezyk niejest jeszcze jakis super jak znane jezyki c++ javy czy inne i ma pare - Razz
a to sie zmienilo z 3-4 wersje w tyl a ja sie dziwilem dlaczego mi nagle poty spamuja non stop a sie okazalo ze wynik dzialania to bylo 0 zawsze ...
co do sklepow w l2necie niby idzie robic normalne sklepy jak w w kliencie ale to co ty chcesz to wiadomo skrypt bo to juz myslenie logiczne bardziej Razz


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
akazel




Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pią 0:21, 19 Lis 2010    Temat postu:

No dobra to juz "prawie" bedzie dzialac. Potrzeba mi jeszcze jakiegos zaokraglania w dół. Bo l2net jakos tak za "ladnie po matematycznemu" zaokragla np 2.50001 jak sie do int przepisuje to wychodzi 3. Mysle ze to sie da jakos obejsc na kilka sposobow, ale jak jest jakas funkcja to prosze o info.

Jak narazie wymyslilem
Kod:

define double A 33.6
define int B 6
define double Dtmp 0
define int Itmp 0
define double test

//jak zrobic zeby to bylo w dół zaokraglone
Dtmp = A / B
Itmp = A / B
print_text "Dtmp: <&Dtmp&>"
print_text "Itmp: <&Itmp&>"
test = Dtmp - Itmp
if test < 0
     Itmp = Itmp - 1
endif
print_text "Zaokraglone w dol Itmp: <&Itmp&>"     
END_SCRIPT


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
FX
Moderator



Dołączył: 28 Sty 2010
Posty: 682
Przeczytał: 0 tematów

Pomógł: 17 razy
Ostrzeżeń: 0/5

PostWysłany: Pią 19:09, 19 Lis 2010    Temat postu:

ogulnie sam sie zdziwilem zdawalo mi sie ze poprostu ucina koncowke a nie zaokrangla (jak w c++ np)

mozesz napisac funkcje ktora poprawi ci to puki co
jak chcesz napsiz o tym na glownym forum l2neta jaksi dev moze sie wypowie np slothmo dlaczego tak to dziala Razz


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
akazel




Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Sob 0:55, 20 Lis 2010    Temat postu:

teraz mam nowy problemowy pakiet ...

Ustawilem shop BUY:

9A //komenda
03 00 00 00 //ile itemow sprzedajemy
BB 05 00 00 00 00 00 00 //normal id
E9 03 00 00 00 00 00 00 //COUNT
E8 03 00 00 00 00 00 00 //PRICE
FE FF 00 00 00 00 00 00 //65534 w int ??????? co to jest
00 00 00 00 00 00 00 00
BA 05 00 00 00 00 00 00 //normal id
E9 03 00 00 00 00 00 00 //COUNT
E8 03 00 00 00 00 00 00 //PRICE
FE FF 00 00 00 00 00 00 //65534
00 00 00 00 00 00 00 00
77 00 00 00 00 00 00 00 //normal id
01 00 00 00 00 00 00 00 //COUNT
E9 03 00 00 00 00 00 00 //PRICE
FE FF 00 00 00 00 00 00 //65534
00 00 00 00 00 00 00 00
-----------------------------------------------------------------
no napisalem juz all teraz tylko zostal ten pakiet

-----------------------------------------------------------------
Jak ktos by potrzebowal to to jest funkcja ktora zamienia double na int tak jak w c++
Kod:


Function DtoI 1 D
define double DTMP 0
define int I
I = D
DTMP = D - I
IF DTMP < 0
I = I - 1
ENDIF
RETURN I



Post został pochwalony 0 razy

Ostatnio zmieniony przez akazel dnia Nie 13:11, 21 Lis 2010, w całości zmieniany 5 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
FX
Moderator



Dołączył: 28 Sty 2010
Posty: 682
Przeczytał: 0 tematów

Pomógł: 17 razy
Ostrzeżeń: 0/5

PostWysłany: Pon 14:01, 22 Lis 2010    Temat postu:

poslalem ci na pm info co i jak

Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
akazel




Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów

Ostrzeżeń: 0/5

PostWysłany: Pią 14:54, 03 Gru 2010    Temat postu:

Mam nastepny problem Smile
musze zapakowac itemki na liste i ja obsłuzyc pozniej cos zrobic dla kazdego itemka np dodac do sklepu itp testowo napisalem wypisywanie zawartosci kazdego ale nie dziala i nie wiem gdzie jest blad.

Kod:
////////////////// l2s
INCLUDE ITEM.l2c

DEFINE ARRAYLIST L

DEFINE ITEM A
A.NAME = "#$Water Stone"
CALL A.GETALL void 0
A.PRICEBUY = #i1022
A.PRICESELL = #i1122
A.TITLE = "#$WATER"
L.ADD A

DEFINE ITEM B
B.NAME = "#$Dark Stone"
CALL B.GETALL void 0
B.PRICEBUY = #i1033
B.PRICESELL = #i1133
B.TITLE = "#$DARK"
L.ADD B


FOREACH C ITEM L
     // wykrylem cos takiego: jezeli zmienic w  liniach  print text C na A albo B to wypisze poprawnie dany item 2x czyli tyle ile jest obiektow na liscie

     PRINT_TEXT "ID:    <&C.ID&>"
     PRINT_TEXT "NAME:  <&C.NAME&>"
     PRINT_TEXT "UID:   <&C.UID&>"
     PRINT_TEXT "COUNT: <&C.COUNT&>"
NEXTEACH


END_SCRIPT


klasa


Kod:
/////////////// .l2c
CLASS ITEM NULL

     VAR_START
          PUBLIC STRING NAME
          PUBLIC INT PRICESELL
          PUBLIC INT PRICEBUY
          PUBLIC INT ID
          PUBLIC INT COUNT
          PUBLIC INT UID
          PUBLIC STRING TITLE
     VAR_END
     PUBLIC GETALL
     ITEM_GET_ID THIS.ID "<&THIS.NAME&>"
     ITEM_COUNT THIS.COUNT "<&THIS.ID&>"
     INVEN_GET_UID THIS.UID "<&THIS.ID&>"
     RETURN VOID



     PUBLIC CONSTRUCT 0
         THIS.NAME = "#$"
         THIS.PRICESELL = 0
         THIS.PRICEBUY  = 0
         THIS.ID = 0
         THIS.COUNT = 0
         THIS.UID = 0
         THIS.TITLE = "#$"
     RETURN VOID



END_CLASS



///////////////// JUZ TO ZROBILEM ZA POMOCA KOLEJKI ... ALE JAK KTOS WIE CO BYLO ZLE TO PROSZE O INFO

Kod:
INCLUDE ITEM.l2c
DEFINE INT NASTEPNY 1
DEFINE QUEUE L
DEFINE INT I 0
DEFINE ITEM TMP
DEFINE ITEM A

A.NAME = "#$Enria"
CALL A.GETALL void 0
A.PRICEBUY = #i1022
A.PRICESELL = #i1122
A.TITLE = "#$WATER"
L.ADD A

DEFINE ITEM B
L.ADD B


DO
     TMP = L.POP
     PRINT_TEXT "ID:    <&TMP.ID&>"
     PRINT_TEXT "NAME:  <&TMP.NAME&>"
     PRINT_TEXT "UID:   <&TMP.UID&>"
     PRINT_TEXT "COUNT: <&TMP.COUNT&>"
     IF L.COUNT == 0
          NASTEPNY = 0
     ENDIF
LOOP NASTEPNY != 0


END_SCRIPT


Post został pochwalony 0 razy

Ostatnio zmieniony przez akazel dnia Pią 15:51, 03 Gru 2010, w całości zmieniany 3 razy
Powrót do góry
Zobacz profil autora
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
FX
Moderator



Dołączył: 28 Sty 2010
Posty: 682
Przeczytał: 0 tematów

Pomógł: 17 razy
Ostrzeżeń: 0/5

PostWysłany: Pią 18:18, 03 Gru 2010    Temat postu:

hmm zapomniales o nazwie tablicy

Kod:
FOREACH C ITEM L
     // wykrylem cos takiego: jezeli zmienic w  liniach  print text C na A albo B to wypisze poprawnie dany item 2x czyli tyle ile jest obiektow na liscie

     PRINT_TEXT "ID:    <&C.ID&>"
     PRINT_TEXT "NAME:  <&C.NAME&>"
     PRINT_TEXT "UID:   <&C.UID&>"
     PRINT_TEXT "COUNT: <&C.COUNT&>"
NEXTEACH


zmienic na
Kod:

FOREACH C ITEM L
     // wykrylem cos takiego: jezeli zmienic w  liniach  print text C na A albo B to wypisze poprawnie dany item 2x czyli tyle ile jest obiektow na liscie

     PRINT_TEXT "ID:    <&l.C.ID&>"
     PRINT_TEXT "NAME:  <&l.C.NAME&>"
     PRINT_TEXT "UID:   <&l.C.UID&>"
     PRINT_TEXT "COUNT: <&l.C.COUNT&>"
NEXTEACH

i powinno dzialac


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.l2walkerpolska.fora.pl Strona Główna -> L2.Net Scenariusze (scrypting) Wszystkie czasy w strefie EET (Europa)
Strona 1 z 1

 
Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach

fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
Regulamin