|
www.l2walkerpolska.fora.pl L2Walker, Lineage II, L2.Net, L2Divine, L2Superman,
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Briann1974
Administrator
Dołączył: 04 Gru 2008
Posty: 209
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5
|
Wysłany: Czw 15:03, 11 Lut 2010 Temat postu: Scrypt na Manor? sianie ziarenek |
|
|
Mam prośbę bo do tej pory nie obczaiłem jak napisać taki skrypt na sianie ziarenek. Jest strona pięknie opisana przez L2Net, ale ja nie wiele z tego czaje.
[link widoczny dla zalogowanych]
Może ty FX wiesz jak to napisać? Gdzieś mi śmigneła informacja że to jest podobne C++ ? tak?
"...jingjing uses a stack to order it's memory... similar to the actual stack used in c or c++ program..."
Post został pochwalony 0 razy
Ostatnio zmieniony przez Briann1974 dnia Czw 15:09, 11 Lut 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 16:57, 11 Lut 2010 Temat postu: |
|
|
c++ i troszke pascal
chodzi o sedy ?
pod wariora
w petli wktorej atakujesz
np
Kod: |
tu funkcja targetu mozna cos prostego napisac lub tak jak ja na arreylist
czyli wypelniamy tablice npc wokol nas i kasujemy zniej npc/moby ktore nas nieinteresuaj + sortowanie wedlug dystansu a potem wziecie 1 moba z tablicy :P
nastepnie petelka ataku na szybko .. niepamietam czy tam hp musial miec mobek odpowiednie ale to latwo idzie skorygowac (gra na high racie i sie zapomina potem :P)
sed = 0
do
ATTACK_TARGET
if sed == 0
USE_ITEM xx // sed id
sleep 1000
sed = 1
endif
sleep 300
loop TARGET_CUR_HP != 0
sleep 100
USE_ITEM havester // id od niego
|
seed tez moze miec faila ?i trzeba az do skutku ? jezeli tak to by trzeba dopisac cos takiego na poczatku skryptu ztym ze pakiet phxzem znalez lub na forum pszukac
Kod: |
SET_EVENT "<SCRIPTEVENT_SERVERPACKET>" "<SYSTEM_CURRENTFILE>" funSED xx // pakied odpowiedzialny za fail seda
FUNCTION funsed
sed = 0
RETURN VOID
|
oczywiscie ja tu niedeklarowalem zmiennych wiec czyste copy paste nie zadziala to jako przykladzik
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Briann1974
Administrator
Dołączył: 04 Gru 2008
Posty: 209
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5
|
Wysłany: Pią 11:17, 12 Lut 2010 Temat postu: |
|
|
Ok tu jest skrypt, który by trzeba było pewnie poprawić. Ja nie znam się na programowaniu.
Kod: | //SET_TARGETING COMBAT TWO
//lets make a variable to store the hp to rest when we drop below
DEFINE INT HP 2
MATH HP CHAR_MAX_HP DIVIDE HP
//we make it equal to half our max
//let set a range to pick up loot
DEFINE INT loot_range 150
//variables for detecting if we are blocked
DEFINE INT StartTime 0
DEFINE INT CurTime 0
DEFINE INT TotTime 0
DEFINE INT MaxTime 50000000
//make a variable to store our rest info
DEFINE INT Rest "<&ONE&>"
//just a printout
PRINT_TEXT "rest below <&HP&>"
PRINT_TEXT "Max time is <&MaxTime&>"
//lets make sure we start with decent hp
IF CHAR_CUR_HP < HP
CALLSUB Rest
ENDIF
DO
DO
CALLSUB Target
//if we got a target
IF TARGET_CUR_HP > ZERO
//lets spoil it
CALLSUB Spoil
//lets kill it
CALLSUB KillTarget
ENDIF
PRINT_TEXT "target dead"
//now our target is dead
//PRINT_TEXT "<&NEAREST_ITEM_DISTANCE&>"
WHILE NEAREST_ITEM_DISTANCE < loot_range
//PRINT_TEXT "loot is nearby"
CALLSUB pickup
WEND
//do we need to rest? if not lets keep fighting
LOOP CHAR_CUR_HP > HP
PRINT_TEXT "lower than <&HP&>, resting"
CALLSUB Rest
PRINT_TEXT "hp is full, starting to fight again"
LOOP ZERO == ZERO
END_SCRIPT
////////SUBS//////////
SUB Target
TARGET_NEAREST
SLEEP 300
RETURNSUB
SUB pickup
CLICK_NEAREST_ITEM
SLEEP 100
RETURNSUB
SUB Spoil
//lets run over to the target first
ATTACK_TARGET
SLEEP 7500
PRINT_TEXT "Spoiling"
USE_SKILL 254
SLEEP 50
SUB Manor
ATTACK_TARGET
if sed == 0
USE_ITEM xx // sed id
sleep 1000
sed = 1
endif
sleep 300
loop TARGET_CUR_HP != 0
sleep 100
USE_ITEM havester //
SUB KillTarget
//when do we start the killtarget sub?
GET_TIME StartTime
While TARGET_CUR_HP > ZERO
//what time is it now?
GET_TIME CurTime
ATTACK_TARGET
SLEEP 2000
PRINT_TEXT "Attack"
//how much time have we used to kill the mob?
MATH TotTime CurTime SUBTRACT StartTime
PRINT_TEXT "Calculate time"
PRINT_TEXT "<&TotTime&>"
//5 seconds and still no attack? we must be stuck, lets switch target
IF TotTime > MaxTime
PRINT_TEXT "First IF"
IF TARGET_CUR_HP == TARGET_MAX_HP
PRINT_TEXT "Second IF"
TARGET_NEAREST
ENDIF
ENDIF
Wend
PRINT_TEXT "While loop complete"
//target is dead, lets check if its spoiled and sweep
IF TARGET_SPOILED == ONE
PRINT_TEXT "Target is spoiled, sweeping"
USE_SKILL 42
ENDIF
PRINT_TEXT "killtarget sub finished"
RETURNSUB
SUB Rest
PRINT_TEXT "Were starting the sitting loop sitting"
SET Rest "<&ONE&>"
DO
//check if anything has us targeted
IF COUNT_NPC_TARGETME > ZERO
//we are targeted, let not be sitting shall we?
SET Rest "<&ZERO&>"
PRINT_TEXT "Some monster attacked us, lets defend ourselves"
ENDIF
//check if we are rested to full
IF CHAR_CUR_HP == CHAR_MAX_HP
//full hp, lets get up
SET Rest "<&ZERO&>"
PRINT_TEXT "We are ready to go."
ENDIF
//are we still resting?
IF Rest == ONE
//lets sleep a bit (first off to not look so bot like)
//second of all, because we need hpzzz
SLEEP 1000
COMMAND "/sit"
//PRINT_TEXT "Were sitting"
ENDIF
//are we still resting? if so lets run the loop again
LOOP Rest == ONE
//done resting lets stand
COMMAND "/stand"
loop TARGET_CUR_HP != 0
sleep 100
USE_ITEM havester //
RETURNSUB |
dobrze rozumuje?
Post został pochwalony 0 razy
Ostatnio zmieniony przez Briann1974 dnia Pią 11:22, 12 Lut 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: Pią 17:37, 12 Lut 2010 Temat postu: |
|
|
raczej to stary skrypt jest ?
np to
DEFINE INT HP 2
MATH HP CHAR_MAX_HP DIVIDE HP
mozna zapisac tak
DEFINE INT HP 0
hp = CHAR_MAX_HP / 2
dodales sub manor
ale to nic robic niebedzie
bo niemasz nigdzie odwolania do tego
dotego musisz zdeklarowac gdzies zmienna sed (z suby manor bo wywali blad)
ogulnie ten sub manor powinienes dodac to suby KillTarget
i dodac wyciaganie ziarenek
ja to raczej cos w ten desen widze ale nietestowalem go
Kod: |
//SET_TARGETING COMBAT TWO
Define_global int hav 0 // deklaracja mojej zmiennej
//lets make a variable to store the hp to rest when we drop below
DEFINE INT HP 2
MATH HP CHAR_MAX_HP DIVIDE HP
//we make it equal to half our max
//let set a range to pick up loot
DEFINE INT loot_range 150
//variables for detecting if we are blocked
DEFINE INT StartTime 0
DEFINE INT CurTime 0
DEFINE INT TotTime 0
DEFINE INT MaxTime 50000000
//make a variable to store our rest info
DEFINE INT Rest "<ONE>"
//just a printout
PRINT_TEXT "rest below <HP>"
PRINT_TEXT "Max time is <MaxTime>"
//lets make sure we start with decent hp
IF CHAR_CUR_HP <HP> ZERO
CALLSUB Spoil
CALLSUB KillTarget
ENDIF
PRINT_TEXT "target dead"
WHILE NEAREST_ITEM_DISTANCE <loot_range> HP
PRINT_TEXT "lower than <HP>, resting"
CALLSUB Rest
PRINT_TEXT "hp is full, starting to fight again"
LOOP ZERO == ZERO
END_SCRIPT
/////////////////////////////////////////////////////////////////////////////
////////SUBS//////////
SUB Target
TARGET_NEAREST
SLEEP 300
RETURNSUB
SUB pickup
CLICK_NEAREST_ITEM
SLEEP 100
RETURNSUB
SUB Spoil
//lets run over to the target first
ATTACK_TARGET
SLEEP 7500
PRINT_TEXT "Spoiling"
USE_SKILL 254
SLEEP 50
RETURNSUB
SUB KillTarget
Define int hav
GET_TIME StartTime
While TARGET_CUR_HP > ZERO
GET_TIME CurTime
ATTACK_TARGET
SLEEP 2000
USE_ITEM xx // sed id
PRINT_TEXT "Attack"
MATH TotTime CurTime SUBTRACT StartTime
PRINT_TEXT "Calculate time"
PRINT_TEXT "<TotTime>"
//5 seconds and still no attack? we must be stuck, lets switch target
IF TotTime > MaxTime
PRINT_TEXT "First IF"
IF TARGET_CUR_HP == TARGET_MAX_HP
PRINT_TEXT "Second IF"
TARGET_NEAREST
ENDIF
ENDIF
Wend
PRINT_TEXT "While loop complete"
//target is dead, lets check if its spoiled and sweep
IF TARGET_SPOILED == ONE
USE_ITEM havester // trzeba wyciagnac ziarenka przed spoilem prawda ?
sleep 200
hav = 1
PRINT_TEXT "Target is spoiled, sweeping"
USE_SKILL 42
ENDIF
if hav == 0
USE_ITEM havester //
ENDIF
hav = 0
PRINT_TEXT "killtarget sub finished"
RETURNSUB
SUB Rest
PRINT_TEXT "Were starting the sitting loop sitting"
SET Rest "<ONE>"
DO
//check if anything has us targeted
IF COUNT_NPC_TARGETME > ZERO
//we are targeted, let not be sitting shall we?
SET Rest "<ZERO>"
PRINT_TEXT "Some monster attacked us, lets defend ourselves"
ENDIF
//check if we are rested to full
IF CHAR_CUR_HP == CHAR_MAX_HP
//full hp, lets get up
SET Rest "<ZERO>"
PRINT_TEXT "We are ready to go."
ENDIF
//are we still resting?
IF Rest == ONE
//lets sleep a bit (first off to not look so bot like)
//second of all, because we need hpzzz
SLEEP 1000
COMMAND "/sit"
//PRINT_TEXT "Were sitting"
ENDIF
//are we still resting? if so lets run the loop again
LOOP Rest == ONE
//done resting lets stand
COMMAND "/stand"
loop TARGET_CUR_HP != 0
sleep 100
USE_ITEM havester //
RETURNSUB |
warto samemu troszke potestowac po pewnym czasie sam bedziesz pisac niezle skrypty
ten skrypt jest taki sobie i tak moze gdzies utknac ale do zrozumienia jak dziala ujdzie
btw musisz jeszcze id ziarenka i havestera dodac do skryptu
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Devi
Moderator
Dołączył: 30 Mar 2010
Posty: 25
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 12:46, 30 Mar 2010 Temat postu: |
|
|
Nie lepiej napisać taki scrypt od początku, zaważyłem ze skrypty z l2net prawie zawsze trzeba przerabiać. Przykład z funkcjami Math
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Briann1974
Administrator
Dołączył: 04 Gru 2008
Posty: 209
Przeczytał: 0 tematów
Pomógł: 2 razy Ostrzeżeń: 0/5
|
Wysłany: Wto 15:51, 30 Mar 2010 Temat postu: |
|
|
ja manoru uzywam bez skryptu
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: Wto 16:02, 30 Mar 2010 Temat postu: |
|
|
Devi napisał: | Nie lepiej napisać taki scrypt od początku, zaważyłem ze skrypty z l2net prawie zawsze trzeba przerabiać. Przykład z funkcjami Math |
co do math... to bylo uzywane w starych wersjach l2neta od jakiejs tam wersji inaczej sie juz dzialania zapisuje , inaczej mowiac problem z dosyc starymi skryptami
jak ktos potrafi to wiadomo ze sobie napisze skrypt odpowiedni pod server/warunki
gorzej jak ktos nieumi
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Devi
Moderator
Dołączył: 30 Mar 2010
Posty: 25
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Wto 23:15, 30 Mar 2010 Temat postu: |
|
|
Wiem bo przerabiałem cały skrypt z lataniem na HS Trochę roboty było
Ale po modyfikacjach całą nockę potrafił latać bez zacinki:D
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Szperka
Dołączył: 24 Sie 2011
Posty: 1
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Czw 0:37, 25 Sie 2011 Temat postu: |
|
|
Briann1974 napisał: | ja manoru uzywam bez skryptu |
Pierwszy mój post na forum, cześć!
Co do powyższego - przesiedziałem ładnych kilka godzin próbując ustawić sianie i zbieranie z poziomu opcji bota (L2Net 389, Epilogue, serwer L2j), niestety, nie udało się:
- jeśli nie włączam 'auto target', tylko mychą wskazuję cele nie ma problemu - postać sieje, leje i zbiera, a następnie czeka, aż wskażę następny cel;
- jeśli opcja 'auto target' jest włączona, niestety poza sianiem i laniem zbierania nie ma - natychmiast po zabiciu mobka cel przeskakuje na kolejnego i sianie/lanie się powtarza.
Zapytuję więc, jak przy pełnym automacie/bocie wymusić na nim chwilkę przed zmianą celu, aby użyć kosy?
Opcje siania i zbierania mam ustawione w zakładce 'Combat', tak, jak to gdzieś tu na forum znalazłem (ale już po samodzielnym ich ustawieniu )
Przy okazji, wydaje mi się, że od prawie roku nic na stronie oficjalnej L2Net się nie zmienia, a ichniejsze forum chyba zniknęło... Wywala mi błąd '404 Not Found error'.
Pozdrawiam i proszę o pomoc!
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
|