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 

Scrypt na Manor? sianie ziarenek

 
Napisz nowy temat   Odpowiedz do tematu    Forum www.l2walkerpolska.fora.pl Strona Główna -> L2.Net
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

PostWysł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 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 16:57, 11 Lut 2010    Temat postu:

c++ i troszke pascal
chodzi o sedy ?Razz

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 Razz to jako przykladzik


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
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

PostWysł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 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ą 17:37, 12 Lut 2010    Temat postu:

raczej to stary skrypt jest ?Razz
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 Razz
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 Smile
ten skrypt jest taki sobie i tak moze gdzies utknac ale do zrozumienia jak dziala ujdzie Smile
btw musisz jeszcze id ziarenka i havestera dodac do skryptu Razz


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
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

PostWysł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 profil autora
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

PostWysłany: Wto 15:51, 30 Mar 2010    Temat postu:

ja manoru uzywam bez skryptu 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: 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 Smile


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
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

PostWysłany: Wto 23:15, 30 Mar 2010    Temat postu:

Wiem bo przerabiałem cały skrypt z lataniem na HS Very Happy Trochę roboty byłoVery Happy
Ale po modyfikacjach całą nockę potrafił latać bez zacinki:D


Post został pochwalony 0 razy
Powrót do góry
Zobacz profil autora
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

PostWysłany: Czw 0:37, 25 Sie 2011    Temat postu:

Briann1974 napisał:
ja manoru uzywam bez skryptu Smile


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 Smile )

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
Zobacz profil autora
Wyświetl posty z ostatnich:   
Napisz nowy temat   Odpowiedz do tematu    Forum www.l2walkerpolska.fora.pl Strona Główna -> L2.Net 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