|
www.l2walkerpolska.fora.pl L2Walker, Lineage II, L2.Net, L2Divine, L2Superman,
|
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
|
Wysł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 .
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
|
|
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
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
akazel
Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysł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 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
|
Wysł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
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
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
|
Wysłany: Czw 10:35, 18 Lis 2010 Temat postu: |
|
|
Tak na sztywno wpisałem i działa . 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 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
|
Wysłany: Czw 17:24, 18 Lis 2010 Temat postu: |
|
|
to az tak przydatne ci bedzie ? 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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
akazel
Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Czw 20:54, 18 Lis 2010 Temat postu: |
|
|
Jak to moze tworzyc?
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 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
|
Wysłany: Czw 21:23, 18 Lis 2010 Temat postu: |
|
|
mi wszystko dziala
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 -
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
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
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
|
Wysł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 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
|
Wysł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
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
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
|
Wysł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 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
|
Wysł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 poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
akazel
Dołączył: 04 Wrz 2010
Posty: 24
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Pią 14:54, 03 Gru 2010 Temat postu: |
|
|
Mam nastepny problem
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 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
|
Wysł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 |
|
|
|
|
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
|