Please Log-in or Register to get full access to the forums.

Lost Password?

Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
AIO Auto Enchant v1.2 script (for Gracia Final ct2.3 and safe from auto kick )
01-09-2010, 15:40
Post: #1
AIO Auto Enchant v1.2 script (for Gracia Final ct2.3 and safe from auto kick )
[hide]AIO Auto Enchant v1.2 script for Gracia Final, that has 7 methods of enchanting and is safe for auto kick.

Change Log v1.2(12:30 AM +2GMT 10.06.09):
Changed the "little_delay" with a random one, and added to enchantsteps too, for more variety. This added some delay to the whole process.
Changed the SET_EVENT-s positions, for more safety. But still if youclose the ingame enchant window and do something else you will mess upthe whole thing.

The 7 methods of enchanting are:

1 - Enchanting with normal enchantscroll all items at a time one by one level, (all items lvl to +1 ...then all items to +2 ...) and it will keep the number of items that youset.
With this method you will need to set:
    - the name of the item ( "item_name" ) (ex: "Vesper Caster") - just the name nothing else
    - the normal enchant scroll name ( "normal_enchant_name" ) (ex: "Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the method of enchant that you want in this case is "type_of_enchanting 1"
    - and the number of items that you want to keep ( "keep_items_num" )
The rest you can ignore

2 - Enchanting with normal enchantscroll one item to a given limit, once the limit level of enchantreached it starts enchanting the next item.
With this method you will need to set:
    - the name of the item ( "item_name" ) (ex: "Vesper Caster") - just the name nothing else
    - the normal enchant scroll name ( "normal_enchant_name" ) (ex: "Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the method of enchant that you want in this case is "type_of_enchanting 2"
    - and the top limit that enchant should stop and enchant the next item ( "enchant_to_top" )
The rest you can ignore

3 - Enchanting with blessed and normalenchant scroll only one item, first enchant with normal scroll till theenchant lvl reach the given safe limit, then starts enchanting withblessed scroll till the given top limit.
With this method you will need to set:
    - the name of the item ( "item_name" ) (ex: "Vesper Caster") - just the name nothing else
    - the normal enchant scroll name ( "normal_enchant_name" ) (ex: "Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the blessed encahnt scroll name ( "blessed_enchant_name" ) (ex: "Blessed Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the method of enchant that you want in this case is "type_of_enchanting 3"
    - the safe enchant limit that normal enchant will be changed with blessed enchant ( "enchant_safe" )
    - and the top limit that enchant should stop ( "enchant_to_top" )
The rest you can ignore

4 - Enchanting with blessed and normalenchant scroll one item at a time (all items when them time come),first starting with normal scroll till the given safe limit from thereit's enchanting with blessed scroll till the top limit, and then takethe next item to enchant
With this method you will need to set:
    - the name of the item ( "item_name" ) (ex: "Vesper Caster") - just the name nothing else
    - the normal enchant scroll name ( "normal_enchant_name" ) (ex: "Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the blessed encahnt scroll name ( "blessed_enchant_name" ) (ex: "Blessed Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the method of enchant that you want in this case is "type_of_enchanting 4"
    - the safe enchant limit that normal enchant will be changed with blessed enchant ( "enchant_safe" )
    - and the top limit that enchant should stop and enchant the next item ( "enchant_to_top" )
The rest you can ignore

5 - Enchanting with blessed and normalenchant scroll all items in a row one by one level starting with normalscrolls till safe enchant limit then with blessed scrolls, and it willkeep enchanted the number of items that you set, the items that failwith blessed remain at 0.
With this method you will need to set:
    - the name of the item ( "item_name" ) (ex: "Vesper Caster") - just the name nothing else
    - the normal enchant scroll name ( "normal_enchant_name" ) (ex: "Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the blessed encahnt scroll name ( "blessed_enchant_name" ) (ex: "Blessed Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the method of enchant that you want in this case is "type_of_enchanting 5"
    - the safe enchant limit that normal enchant will be changed with blessed enchant ( "enchant_safe" )
    - and the number of items that you want to keep ( "keep_items_num" )
The rest you can ignore

6 - Enchanting with normal enchantscroll all items at a time one by one level, keeping the number ofitems that you set or it stop to a given top limit if there are moreitems that was set.
With this method you will need to set:
    - the name of the item ( "item_name" ) (ex: "Vesper Caster") - just the name nothing else
    - the normal enchant scroll name ( "normal_enchant_name" ) (ex: "Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the method of enchant that you want in this case is "type_of_enchanting 6"
    - the top limit that enchant should stop if the items remaining at this level are more that you set to retain ( "enchant_to_top" )
    - and the number of items that you want to keep if the top limit is not reached ( "keep_items_num" )
The rest you can ignore

7 - Enchanting with blessed and normalenchant scroll all items at a time one by one level with normal enchanttill safe limit then with blessed scroll till a top limit, if itemsfail at a given point it start enchant thoes items till they reach top.
With this method you will need to set:
    - the name of the item ( "item_name" ) (ex: "Vesper Caster") - just the name nothing else
    - the normal enchant scroll name ( "normal_enchant_name" ) (ex: "Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the blessed encahnt scroll name ( "blessed_enchant_name" ) (ex: "Blessed Scroll: Enchant Weapon (S)" ) - the exact name with grade ...
    - the method of enchant that you want in this case is "type_of_enchanting 7"
    - the top limit that enchant should stop ( "enchant_to_top" )
    - and the safe enchant limit that normal enchant will be changed with blessed enchant ( "enchant_safe" )
The rest you can ignore[/hide]
Quote
01-09-2010, 15:41
Post: #2
Re: AIO Auto Enchant v1.2 script (for Gracia Final ct2.3 and safe from auto kick )
[pre]INCLUDE StdLib\inventory.l2c
// ========================================================= ==========================================================

// START OF EDITING PART (YOU SHOULD CHANGE THE SETTINGS FROM BELOW TO YOUR NEEDS)
// ========================================================= ==========================================================
DEFINE_GLOBAL STRING item_name "Vesper Buster"        // Here you need to change with what item you want to enchant
DEFINE_GLOBAL STRING normal_enchant_name "Scroll: Enchant Weapon (S)"        // The exact name of your normal enchant scroll
DEFINE_GLOBAL STRING blessed_enchant_name "Blessed Scroll: Enchant Weapon (S)"        // The exact name of you blessed enchant scroll(only for blessed enchants)

DEFINE_GLOBAL INT type_of_enchanting 6    // The method of enchanting you want set from 1-7 (see below):
        // 1 - Normal enchant each One by One;
        // 2 - Normal enchant each One to Top;
        // 3 - Blessed enchant only one item;
        // 4 - Blessed enchant each One to Top;
        // 5 - Blessed enchant each One by One an keep the highest;
        // 6 - Normal enchant each One by One and stop to Top;
        // 7 - Blessed enchant each One by One and stop to Top;
                                             
DEFINE_GLOBAL INT keep_items_num 5        // How meny items you want to keep when enchanting One by One (for One by One enchanting + blessed)

DEFINE_GLOBAL INT enchant_to_top 16        // The top level witch enchantig should stop at (for One to Top enchanting + blessed)

DEFINE_GLOBAL INT enchant_safe 3        // Safe enchant level on witch normal anchant stop and continues with blessed (for Blessed enchanting)

DEFINE_GLOBAL INT min_little_delay 205        // min_little_delay should be always lower than max_little_delay - these two are for random delay between the values.
DEFINE_GLOBAL INT max_little_delay 327        // max_little_delay should be always higher than main_little_delay - this two will add some delay so carefull what you set.
// ========================================================== =========================================================
// END OF EDITING PART (DON'T CHANGE NOTHING FROM BELOW)
// ========================================================== =========================================================
// 
// AIO Auto Enchant v1.2 - have 7 methods of enchanting and is safe for auto kick
//                                                                  (don't cancel the enchant window when ingame)
// Fully working with L2NET v37x and on L2J Gracia Final (ct2.3) servers.
//
// special thanks to: slothmo, mpj123, rocket666, easy2k4, trixy and everybody working for l2net project
// made by iosc
// ========================================================== =========================================================
// ========================================================== =========================================================

DEFINE_GLOBAL INT min_delay 2118
DEFINE_GLOBAL INT max_delay 2533
DEFINE_GLOBAL INT rand_delay 0
DEFINE_GLOBAL INT some_loop 0
DEFINE_GLOBAL INT item_uid 0
DEFINE_GLOBAL INT enchant_result 9999
DEFINE_GLOBAL INT n_scroll_id 0
DEFINE_GLOBAL INT b_scroll_id 0
DEFINE_GLOBAL INT n_scrolls_count 0
DEFINE_GLOBAL INT b_scrolls_count 0
DEFINE_GLOBAL Inventory n_enchant_scroll 0
DEFINE_GLOBAL Inventory b_enchant_scroll 0
DEFINE_GLOBAL ARRAYLIST full_inventory 0

ITEM_GET_ID n_scroll_id "<&normal_enchant_name&>"
ITEM_GET_ID b_scroll_id "<&blessed_enchant_name&>"

GET_INVENTORY full_inventory
PRINT_TEXT "10 seconds ========================"
PRINT_TEXT "== AIO Auto Enchant Script v1.2"
PRINT_TEXT "================================"
SLEEP 1000
//SLEEP "<&little_delay&>"
ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
ITEM_COUNT b_scrolls_count "<&b_scroll_id&>"

FOREACH x Inventory full_inventory
    IF full_inventory.x.name == normal_enchant_name
        n_enchant_scroll = full_inventory.x
    ENDIF
    IF full_inventory.x.name == blessed_enchant_name
        b_enchant_scroll = full_inventory.x
    ENDIF
NEXTEACH

IF n_scrolls_count == ONE
    PRINT_TEXT "You don't have <&normal_enchant_name&>"
    JUMP_TO_LABEL THE_END
ENDIF

SWITCH type_of_enchanting
    CASE #i3
    CASE #i4
    CASE #i5
    CASE #i7
        IF b_scrolls_count == ONE
            PRINT_TEXT "You don't have <&blessed_enchant_name&>"
            JUMP_TO_LABEL THE_END
        ENDIF
        BREAK 1
    DEFAULT
        BREAK 1
ENDSWITCH

SWITCH type_of_enchanting
    CASE #i1
        PRINT_TEXT "== "
        PRINT_TEXT "== You chosed the One by One method"
        PRINT_TEXT "== Enchanting: <&item_name&>"
        PRINT_TEXT "== Keeping: <&keep_items_num&>"
        PRINT_TEXT "== "
        PRINT_TEXT "9 seconds ========================="
        SLEEP 9000
        CALL EnchantEachOnebyOne
        BREAK 1
    CASE #i2
        PRINT_TEXT "== "
        PRINT_TEXT "== You chosed the One to Top method"
        PRINT_TEXT "== Enchanting: <&item_name&>"
        PRINT_TEXT "== Enchant till: +<&enchant_to_top&>"
        PRINT_TEXT "== "
        PRINT_TEXT "9 seconds ========================="
        SLEEP 9000
        CALL EnchantEachOnetoTop
        BREAK 1
    CASE #i3
        PRINT_TEXT "== "
        PRINT_TEXT "== You chosed Blessed Enchant one item"
        PRINT_TEXT "== Enchanting: <&item_name&>"
        PRINT_TEXT "== Enchant till: +<&enchant_to_top&>"
        PRINT_TEXT "== Safe enchant is set to: +<&enchant_safe&>"
        PRINT_TEXT "== "
        PRINT_TEXT "9 seconds ========================="
        SLEEP 9000
        CALL BlessedEnchantOne
        BREAK 1
    CASE #i4
        PRINT_TEXT "== "
        PRINT_TEXT "== You chosed Blessed Enchant each One to Top"
        PRINT_TEXT "== Enchanting: <&item_name&>"
        PRINT_TEXT "== Enchant till: +<&enchant_to_top&>"
        PRINT_TEXT "== Safe enchant is set to: +<&enchant_safe&>"
        PRINT_TEXT "== "
        PRINT_TEXT "9 seconds ========================="
        SLEEP 9000
        CALL EnchantEachOnetoTop
        BREAK 1
    CASE #i5
        PRINT_TEXT "== "
        PRINT_TEXT "== You chosed Blessed Enchant each One by One"
        PRINT_TEXT "== Enchanting: <&item_name&>"
        PRINT_TEXT "== Keep enchanted: <&keep_items_num&>"
        PRINT_TEXT "== Safe enchant is set to: +<&enchant_safe&>"
        PRINT_TEXT "== "
        PRINT_TEXT "9 seconds ========================="
        SLEEP 9000
        CALL EnchantEachOnebyOne
        BREAK 1
    CASE #i6
        PRINT_TEXT "== "
        PRINT_TEXT "== You chosed each One by One and stop to Top"
        PRINT_TEXT "== Enchanting: <&item_name&>"
        PRINT_TEXT "== Keep - <&keep_items_num&> - items or stop to +<&enchant_to_top&>"
        PRINT_TEXT "== "
        PRINT_TEXT "9 seconds ========================="
        SLEEP 9000
        CALL EnchantEachOnebyOne
        BREAK 1
    CASE #i7
        PRINT_TEXT "== "
        PRINT_TEXT "== You chosed Blessed - One by One and stop to Top"
        PRINT_TEXT "== Enchanting: <&item_name&>"
        PRINT_TEXT "== Enchant till: +<&enchant_to_top&>"
        PRINT_TEXT "== "
        PRINT_TEXT "9 seconds ========================="
        SLEEP 9000
        CALL EnchantEachOnebyOne
        BREAK 1
    DEFAULT
        PRINT_TEXT "Bad option chosen at Type of Enchant"
ENDSWITCH


LABEL THE_END
GET_RAND rand_delay "<&min_little_delay&>" "<&max_little_delay&>"
SLEEP "<&rand_delay&>"
full_inventory.clear
GET_INVENTORY full_inventory
GET_RAND rand_delay "<&min_little_delay&>" "<&max_little_delay&>"
SLEEP "<&rand_delay&>"

PRINT_TEXT "==============================="
PRINT_TEXT "== Thanks for using AIO Auto Enchant Script =="
PRINT_TEXT "==============================="
FOREACH x Inventory full_inventory
    IF full_inventory.x.name == item_name
        PRINT_TEXT "==  <&item_name&> +<&full_inventory.x.enchant&>"
    ENDIF
NEXTEACH
PRINT_TEXT "=======================iosc======"


END_SCRIPT


[/pre]
Quote
01-09-2010, 15:42
Post: #3
Re: AIO Auto Enchant v1.2 script (for Gracia Final ct2.3 and safe from auto kick )
-continue....
 
[pre]FUNCTION EnchantEachOnebyOne

    DEFINE ARRAYLIST current_items 0
   
    DEFINE INT total_items 0
    DEFINE INT enchanting_level 0
    DEFINE INT lag_flag1 0
    DEFINE INT lag_flag2 0
    DEFINE INT lag_flag6 0
    DEFINE INT bless_start 0
    LABEL A_FLAGS
   
    current_items.clear
    full_inventory.clear
    GET_INVENTORY full_inventory
    GET_RAND rand_delay "<&min_little_delay&>" "<&max_little_delay&>"
    SLEEP "<&rand_delay&>"
   
    enchanting_level = #i65535
    total_items = ZERO
    ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
    ITEM_COUNT b_scrolls_count "<&b_scroll_id&>"

    IF ( type_of_enchanting == #i5 ) && ( bless_start == ONE )
        FOREACH x Inventory full_inventory
            IF ( full_inventory.x.name == item_name ) && ( full_inventory.x.enchant > ZERO )
                total_items = total_items + ONE
                IF  full_inventory.x.enchant < enchanting_level
                    enchanting_level = full_inventory.x.enchant
                ENDIF
            ENDIF
        NEXTEACH
    ELSE
        IF type_of_enchanting == #i6
            FOREACH x Inventory full_inventory
                IF full_inventory.x.name == item_name
                    total_items = total_items + ONE
                    IF (full_inventory.x.enchant < enchanting_level) && ( full_inventory.x.enchant < enchant_to_top )
                        enchanting_level = full_inventory.x.enchant
                    ENDIF
                ENDIF
            NEXTEACH
        ELSE
            IF type_of_enchanting == #i7
                FOREACH x Inventory full_inventory
                    IF full_inventory.x.name == item_name
                        IF ( full_inventory.x.enchant < enchanting_level ) && ( full_inventory.x.enchant < enchant_to_top )
                            enchanting_level = full_inventory.x.enchant
                        ENDIF
                    ENDIF
                NEXTEACH
            ELSE
                FOREACH x Inventory full_inventory
                    IF full_inventory.x.name == item_name
                        total_items = total_items + ONE
                        IF full_inventory.x.enchant < enchanting_level
                            enchanting_level = full_inventory.x.enchant
                        ENDIF
                    ENDIF
                NEXTEACH
            ENDIF
        ENDIF
    ENDIF
    FOREACH x Inventory full_inventory
        IF full_inventory.x.name == item_name
            IF full_inventory.x.enchant == enchanting_level
                current_items.ADD full_inventory.x.id
            ENDIF
        ENDIF
    NEXTEACH
   
    IF current_items.count == ZERO
        lag_flag1 = lag_flag1 + ONE
        IF lag_flag1 == #i3
            PRINT_TEXT "No more items to echant."
            JUMP_TO_LABEL THE_END
        ENDIF
        JUMP_TO_LABEL A_FLAGS
        lag_flag1 = ZERO
    ENDIF

    FOREACH y INT current_items
        IF type_of_enchanting != #i7
            IF total_items <= keep_items_num
                lag_flag1 = lag_flag1 + ONE
                IF lag_flag1 == #i3
                    PRINT_TEXT "We are done here. Your items number is <&total_items&>"
                    JUMP_TO_LABEL THE_END
                ENDIF
                JUMP_TO_LABEL A_FLAGS
            ENDIF
        ENDIF
        IF n_scrolls_count == ONE
            lag_flag2 = lag_flag2 + ONE
            IF lag_flag2 == #i3
                PRINT_TEXT "You are out of <&normal_enchant_name&>"
                JUMP_TO_LABEL THE_END
            ENDIF
            JUMP_TO_LABEL A_FLAGS
        ENDIF
        IF ( type_of_enchanting == #i5 ) || ( type_of_enchanting == #i7 )
            IF b_scrolls_count == ONE
                lag_flag6 = lag_flag6 + ONE
                IF lag_flag6 == #i3
                    PRINT_TEXT "You are out of <&blessed_enchant_name&>"
                    JUMP_TO_LABEL THE_END
                ENDIF
                JUMP_TO_LABEL A_FLAGS
            ENDIF
        ENDIF
        lag_flag1 = ZERO
        lag_flag2 = ZERO
        lag_flag6 = ZERO
       
        item_uid = current_items.y
       
        IF ( type_of_enchanting == #i5 ) || ( type_of_enchanting == #i7 )
   
            IF enchanting_level < enchant_safe
                CALL Enchanting VOID 1 n_enchant_scroll.id
            ELSE
                CALL Enchanting VOID 1 b_enchant_scroll.id
                IF type_of_enchanting == #i5
                bless_start = ONE
                ENDIF
            ENDIF

            ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
            ITEM_COUNT b_scrolls_count "<&b_scroll_id&>"

            IF enchant_result > ZERO
                IF type_of_enchanting == #i5
                    total_items = total_items - ONE
                ELSE
                    JUMP_TO_LABEL A_FLAGS
                ENDIF
                PRINT_TEXT "Enchanting <&item_name&> faild at +<&enchanting_level&>. (<&n_scrolls_count&>/<&b_scrolls_count&> scrolls left)"
            ELSE
                PRINT_TEXT "Enchanting <&item_name&> succeeded from +<&enchanting_level&>. (<&n_scrolls_count&>/<&b_scrolls_count&> scrolls left)"
            ENDIF

        ELSE
                   
            CALL Enchanting VOID 1 n_enchant_scroll.id
           
            ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
           
            IF enchant_result > ZERO
                total_items = total_items - ONE
                PRINT_TEXT "<&item_name&> was cristalized at +<&enchanting_level&>. (<&n_scrolls_count&> scrolls left)"
            ELSE
                PRINT_TEXT "Enchanting <&item_name&> succeeded from +<&enchanting_level&>. (<&n_scrolls_count&> scrolls left)"
            ENDIF
        ENDIF
    NEXTEACH
    JUMP_TO_LABEL A_FLAGS

RETURN VOID



FUNCTION EnchantEachOnetoTop

    DEFINE INT enchant_level 0
    DEFINE INT lag_flag3 0
    DEFINE INT lag_flag4 0
    DEFINE INT lag_flag5 0
    LABEL B_FLAGS
   
    full_inventory.clear
    GET_INVENTORY full_inventory
    GET_RAND rand_delay "<&min_little_delay&>" "<&max_little_delay&>"
    SLEEP "<&rand_delay&>"

    item_uid = ZERO
    enchant_level = ZERO
    ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
    ITEM_COUNT b_scrolls_count "<&b_scroll_id&>"
   
    FOREACH x Inventory full_inventory
        IF full_inventory.x.name == item_name
            IF full_inventory.x.enchant < enchant_to_top
                item_uid = full_inventory.x.id
                enchant_level = full_inventory.x.enchant
            ENDIF
        ENDIF
    NEXTEACH
   
    IF item_uid == ZERO
        lag_flag3 = lag_flag3 + ONE
        IF lag_flag3 == #i3
            PRINT_TEXT "We are done here. No more items to enchant."
            JUMP_TO_LABEL THE_END
        ENDIF
        JUMP_TO_LABEL B_FLAGS
    ENDIF
    IF n_scrolls_count == ONE
        lag_flag4 = lag_flag4 + ONE
        IF lag_flag4 == #i3
            PRINT_TEXT "You are out of <&normal_enchant_name&>"
            JUMP_TO_LABEL THE_END
        ENDIF
        JUMP_TO_LABEL B_FLAGS
    ENDIF
    IF type_of_enchanting == #i4
        IF b_scrolls_count == ONE
            lag_flag5 = lag_flag5 + ONE
            IF lag_flag5 == #i3
                PRINT_TEXT "You are out of <&blessed_enchant_name&>"
                JUMP_TO_LABEL THE_END
            ENDIF
            JUMP_TO_LABEL B_FLAGS
        ENDIF
        lag_flag5 = ZERO
    ENDIF
    lag_flag3 = ZERO
    lag_flag4 = ZERO
   
   
    DO
        IF n_scrolls_count == ONE
            PRINT_TEXT "You are out of <&normal_enchant_name&>"
            JUMP_TO_LABEL THE_END
        ENDIF
   
        IF type_of_enchanting == #i4

            IF b_scrolls_count == ONE
                PRINT_TEXT "You are out of <&blessed_enchant_name&>"
                JUMP_TO_LABEL THE_END
            ENDIF
       
            IF enchant_level < enchant_safe
                CALL Enchanting VOID 1 n_enchant_scroll.id
            ELSE
                CALL Enchanting VOID 1 b_enchant_scroll.id
            ENDIF

            ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
            ITEM_COUNT b_scrolls_count "<&b_scroll_id&>"

            IF enchant_result > ZERO
                PRINT_TEXT "Enchanting <&item_name&> faild at +<&enchant_level&>. (<&n_scrolls_count&>/<&b_scrolls_count&> scrolls left)"
                enchant_level = ZERO
            ELSE
                enchant_level = enchant_level + ONE
                PRINT_TEXT "Enchanting <&item_name&> succeeded to +<&enchant_level&>. (<&n_scrolls_count&>/<&b_scrolls_count&> scrolls left)"
            ENDIF

        ELSE
   
            CALL Enchanting VOID 1 n_enchant_scroll.id
   
            ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
           
            IF enchant_result > ZERO
                PRINT_TEXT "<&item_name&> was cristalized at +<&enchant_level&>. (<&n_scrolls_count&> scrolls left)"
                JUMP_TO_LABEL B_FLAGS
            ELSE
                enchant_level = enchant_level + ONE
                PRINT_TEXT "Enchanting <&item_name&> succeeded to +<&enchant_level&>. (<&n_scrolls_count&> scrolls left)"
            ENDIF
       
        ENDIF
   
    LOOP enchant_level < enchant_to_top
   
    JUMP_TO_LABEL B_FLAGS

RETURN VOID


FUNCTION BlessedEnchantOne

    DEFINE INT enchant_level 0
    DEFINE INT lag_flag8 0
    LABEL C_FLAGS
   
    full_inventory.clear
    GET_INVENTORY full_inventory
    GET_RAND rand_delay "<&min_little_delay&>" "<&max_little_delay&>"
    SLEEP "<&rand_delay&>"

    item_uid = ZERO
    enchant_level = ZERO
    ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
    ITEM_COUNT b_scrolls_count "<&b_scroll_id&>"
   
    FOREACH x Inventory full_inventory
        IF full_inventory.x.name == item_name
            IF full_inventory.x.enchant < enchant_to_top
                item_uid = full_inventory.x.id
                enchant_level = full_inventory.x.enchant
            ENDIF
        ENDIF
    NEXTEACH
   
    IF item_uid == ZERO
        lag_flag8 = lag_flag8 + ONE
        IF lag_flag8 == #i3
            PRINT_TEXT "No item to enchant!"
            JUMP_TO_LABEL THE_END
        ENDIF
        JUMP_TO_LABEL C_FLAGS
    ENDIF
    lag_flag8 = ZERO
   
    DO
   
        IF n_scrolls_count == ONE
            PRINT_TEXT "You are out of <&normal_enchant_name&>"
            JUMP_TO_LABEL THE_END
        ENDIF
        IF b_scrolls_count == ONE
            PRINT_TEXT "You are out of <&blessed_enchant_name&>"
            JUMP_TO_LABEL THE_END
        ENDIF
   
        IF enchant_level < enchant_safe
            CALL Enchanting VOID 1 n_enchant_scroll.id
        ELSE
            CALL Enchanting VOID 1 b_enchant_scroll.id
        ENDIF
   
        ITEM_COUNT b_scrolls_count "<&b_scroll_id&>"
        ITEM_COUNT n_scrolls_count "<&n_scroll_id&>"
       
        IF enchant_result > ZERO
            PRINT_TEXT "Enchanting <&item_name&> faild at +<&enchant_level&>. (<&n_scrolls_count&>/<&b_scrolls_count&> scrolls left)"
            enchant_level = ZERO
        ELSE
            enchant_level = enchant_level + ONE
            PRINT_TEXT "Enchanting <&item_name&> succeeded to +<&enchant_level&>. (<&n_scrolls_count&>/<&b_scrolls_count&> scrolls left)"
        ENDIF
   
    LOOP enchant_level < enchant_to_top
   
    JUMP_TO_LABEL THE_END

RETURN VOID


FUNCTION Enchanting 1 scroll_id

    enchant_result = #i9999
    some_loop = ZERO
    GET_RAND rand_delay "<&min_little_delay&>" "<&max_little_delay&>"
    SLEEP "<&rand_delay&>"
    SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" InsertItem 124
    DEFINE BYTEBUFFER use_scroll_buffer 256
    use_scroll_buffer.write_byte #i25
    use_scroll_buffer.write_int32 scroll_id
    use_scroll_buffer.write_int32 #i0
    use_scroll_buffer.trim_to_index
    INJECTBB use_scroll_buffer
    DELETE use_scroll_buffer
   
    WHILE some_loop == ZERO
    SLEEP 50
    WEND
    LOCK A
    SLEEP 50
    UNLOCK A
   
RETURN VOID



FUNCTION InsertItem
   
    LOCK A
    some_loop = ONE
   
    SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" BlankFunc 124
    SET_EVENT "<&SCRIPTEVENT_SERVERPACKETEX&>" "<&SYSTEM_CURRENTFILE&>" ClickOK 129
   
    GET_RAND rand_delay "<&min_little_delay&>" "<&max_little_delay&>"
    SLEEP "<&rand_delay&>"
   
    DEFINE BYTEBUFFER use_item_buffer 256
    use_item_buffer.write_byte #i208
    use_item_buffer.write_int16 #i76
    use_item_buffer.write_int32 item_uid
    use_item_buffer.trim_to_index
    INJECTBB use_item_buffer
    DELETE use_item_buffer
   
RETURN VOID


FUNCTION ClickOK

    SET_EVENT "<&SCRIPTEVENT_SERVERPACKETEX&>" "<&SYSTEM_CURRENTFILE&>" BlankFunc 129
    SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" EnchantComplete 135

    GET_RAND rand_delay "<&min_delay&>" "<&max_delay&>"
    SLEEP "<&rand_delay&>"
   
    DEFINE BYTEBUFFER confirm_enchant_buffer 256
    confirm_enchant_buffer.write_byte #i95
    confirm_enchant_buffer.write_int32 item_uid
    confirm_enchant_buffer.write_int32 #i0
    confirm_enchant_buffer.trim_to_index
    INJECTBB confirm_enchant_buffer
    DELETE confirm_enchant_buffer

RETURN VOID


FUNCTION EnchantComplete

    SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" BlankFunc 135
   
    DEFINE INT result_byte 0
   
    PACKET.READ_BYTE result_byte
    PACKET.READ_INT32 enchant_result
   
    DELETE result_byte
   
    UNLOCK A

RETURN VOID


FUNCTION BlankFunc

SLEEP 25 //e = mc^2 nonsence

RETURN VOID[/pre]
The mothods 3 and 4 are almost the same just that the 3 method enchantonly one item and the method 4 continues to the next item ...

If you are using in a lagging server and only if you get GET_IVENTORY errors you can rise the delays a little bit ( "min_little_delay" and "max_little_delay" ). A little i mean like 400 and 600 at most this will slow the enchanting process a lot. Bare in mind that "min_little_delay" <  "max_little_delay".

The One by One technique uses a different approach than the method usedin easy2k4s script, this is not using get_inventory everytime, justonce per enchant level.
Quote
01-09-2010, 16:17
Post: #4
Re: AIO Auto Enchant v1.2 script (for Gracia Final ct2.3 and safe from auto kick
My auto enchant is better  :Smile
That is way to complicated Mirjan xD
Dont forget G-Hacks has alot of penguins here...

[Image: pedobeargoldensealbyinvg.png]
Quote
Post Reply 


Possibly Related Threads...
Thread: Author Replies: Views: Last Post
  [Bot] New L2 Auto Helper For Human Archers herort 0 687 11-10-2011 16:29
Last Post: herort
  l2w script Outbreak 0 618 10-19-2010 08:45
Last Post: Outbreak
  [Share]AUto CP MP HP clicker drdos 3 2,523 01-09-2010 01:08
Last Post: drdos
  OOG That work for Gracia Final iorie3008 0 494 12-21-2009 08:24
Last Post: iorie3008
  [Share] Gracia Final System. Open Editable Unlimited Zoom/Wallhack/Colored Sy Pod3r 3 1,444 11-24-2009 18:18
Last Post: Soul

Forum Jump:


User(s) browsing this thread: 1 Guest(s)