buenas a todos, llevo poco tiempo usando l2net y me he encontrado con un problema en un script para augmentar.
Aqui el codigo
Como veran quiero un skill activo en esa arma, y cuando lo pongo a despues de augmentar 1 o dos veces se traba y no anda mas.... ayuda con esto??
Juego un servidor Epilogue con cliente freya, esto influye en algo??
Espero q me ayuden, muchas gracias y saludos!
Aqui el codigo
- Spoiler:
- --------------------------------------------------------------------------------
SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" CheckSkillList 95
INCLUDE StdLib\inventory.l2c
INCLUDE StdLib/npc.l2c
DEFINE_GLOBAL ARRAYLIST search_for_skills 0 // DON'T CHANGE
//===========================================================================================
//
// Augmentation script fully automated. v1.3
// Tested on tow lagfree servers and works flawlessly (03.06.09)
// L2NET v370 on Gracia Final (ct 2.3)
//
// made by undercover iosc :P
//===========================================================================================
DEFINE_GLOBAL STRING item_to_aug "Sprite's Staff" // The name of the weapon you want to augment
DEFINE_GLOBAL STRING gem_for_aug "Gemstone D" // Gemstone used for augment
DEFINE_GLOBAL STRING ls_for_aug "Life Stone: level 76" // The EXACT name of the Life Stone used for augment
DEFINE_GLOBAL INT num_of_gems 30 // The number of Gemstones used
//===========================================================================================
// The skill ID's that you want to get
// You can add or delete some "search_for_skills.ADD #i" lines
// The IDs of skills are after "#i" ex: #i3250 - 3250
//===========================================================================================
search_for_skills.ADD #i3135 // Item Skill: Shield - Active: Increases P. Def. temporarily.
search_for_skills.ADD #i3132 // Item Skill: Might - Active: Increases P. Atk. temporarily.
//===========================================================================================
DEFINE_GLOBAL INT packet_delay 800 // delay between sent packets ... if it's lag and get some errors you can increase this
DEFINE_GLOBAL INT little_delay 400
//===========================================================================================
// DON'T EDIT ANYTHING FROM BELOW UNLESS U KNOW WHAT U'RE DOING
//===========================================================================================
SET_TARGETING TYPE TWO
SET_TARGETING ATTACKABLE TWO
SET_TARGETING ALIVE TWO
SET_TARGETING INBOX TWO
DEFINE_GLOBAL INT npc_id 0
npc_id = "#i<&TARGET_TYPEID&>"
IF TARGET_TYPE != #I3
PRINT_TEXT "Target the augmentation NPC before start the script."
JUMP_TO_LABEL THE_END
ENDIF
DEFINE_GLOBAL INT random_delay 0
DEFINE_GLOBAL INT loop_flag 0
DEFINE_GLOBAL INT another_flag 0
DEFINE_GLOBAL ARRAYLIST skill_ids 0
DEFINE_GLOBAL ARRAYLIST full_invent 0
DEFINE_GLOBAL Inventory work_item 0
DEFINE_GLOBAL Inventory work_ls 0
DEFINE_GLOBAL Inventory work_gem 0
DEFINE_GLOBAL INT ls_count 0
DEFINE_GLOBAL INT gem_count 0
DEFINE_GLOBAL INT id_of_ls 0
DEFINE_GLOBAL INT id_of_gem 0
ITEM_GET_ID id_of_ls "<&ls_for_aug&>"
ITEM_GET_ID id_of_gem "<&gem_for_aug&>"
ITEM_COUNT ls_count "<&id_of_ls&>"
ITEM_COUNT gem_count "<&id_of_gem&>"
CALL reload_invet
GET_RAND random_delay 150 300
SLEEP "<&random_delay&>"
LABEL INFINITE_LOOP
WHILE loop_flag == ONE
SLEEP 1000
WEND
CALL reload_invet
CALL remove_augment
GET_RAND random_delay 150 300
SLEEP "<&random_delay&>"
CALL reload_invet
another_flag = ONE
CALL add_augment
loop_flag = ONE
GET_RAND random_delay 150 300
SLEEP "<&random_delay&>"
CALL equip_augmented_item
JUMP_TO_LABEL INFINITE_LOOP
LABEL THE_END
PRINT_TEXT "Script Ended."
END_SCRIPT
FUNCTION add_augment
IF work_item.aug_id > ZERO
RETURN VOID
ENDIF
ITEM_COUNT ls_count "<&id_of_ls&>"
GET_RAND random_delay 150 300
SLEEP "<&random_delay&>"
ITEM_COUNT gem_count "<&id_of_gem&>"
GET_RAND random_delay 150 300
SLEEP "<&random_delay&>"
IF ls_count < ONE
ITEM_COUNT ls_count "<&id_of_ls&>"
GET_RAND random_delay 700 1100
SLEEP "<&random_delay&>"
IF ls_count < ONE
PRINT_TEXT "Not enough <&ls_for_aug&>."
JUMP_TO_LABEL THE_END
ENDIF
ENDIF
IF gem_count < num_of_gems
ITEM_COUNT gem_count "<&id_of_gem&>"
GET_RAND random_delay 700 1100
SLEEP "<&random_delay&>"
IF gem_count < num_of_gems
PRINT_TEXT "Not enough <&gem_for_aug&>."
JUMP_TO_LABEL THE_END
ENDIF
ENDIF
TARGET_NEAREST_ID "<&npc_id&>"
SLEEP "<&little_delay&>"
TALK_TARGET
SLEEP "<&little_delay&>"
NPC_DIALOG "bypass -h npc_<&TARGET_ID&>_Link common/augmentation_01.htm"
SLEEP "<&little_delay&>"
NPC_DIALOG "bypass -h npc_<&TARGET_ID&>_Augment 1"
SLEEP "<&little_delay&>"
DEFINE BYTEBUFFER select_item_buffer 256
DEFINE BYTEBUFFER select_ls_buffer 256
DEFINE BYTEBUFFER select_gem_buffer 256
DEFINE BYTEBUFFER start_aug_buffer 256
select_item_buffer.write_byte #i208
select_item_buffer.write_int16 #i38
select_item_buffer.write_int32 work_item.id
select_item_buffer.trim_to_index
INJECTBB select_item_buffer
SLEEP "<&packet_delay&>"
select_ls_buffer.write_byte #i208
select_ls_buffer.write_int16 #i39
select_ls_buffer.write_int32 work_item.id
select_ls_buffer.write_int32 work_ls.id
select_ls_buffer.trim_to_index
INJECTBB select_ls_buffer
SLEEP "<&packet_delay&>"
select_gem_buffer.write_byte #i208
select_gem_buffer.write_int16 #i40
select_gem_buffer.write_int32 work_item.id
select_gem_buffer.write_int32 work_ls.id
select_gem_buffer.write_int32 work_gem.id
select_gem_buffer.write_int64 num_of_gems
select_gem_buffer.trim_to_index
INJECTBB select_gem_buffer
SLEEP "<&packet_delay&>"
start_aug_buffer.write_byte #i208
start_aug_buffer.write_int16 #i65
start_aug_buffer.write_int32 work_item.id
start_aug_buffer.write_int32 work_ls.id
start_aug_buffer.write_int32 work_gem.id
start_aug_buffer.write_int64 num_of_gems
start_aug_buffer.trim_to_index
INJECTBB start_aug_buffer
SLEEP "<&packet_delay&>"
DELETE select_item_buffer
DELETE select_ls_buffer
DELETE select_gem_buffer
DELETE start_aug_buffer
RETURN VOID
FUNCTION remove_augment
IF work_item.aug_id == ZERO
RETURN VOID
ENDIF
TARGET_NEAREST_ID "<&npc_id&>"
SLEEP "<&little_delay&>"
TALK_TARGET
SLEEP "<&little_delay&>"
NPC_DIALOG "bypass -h npc_<&TARGET_ID&>_Link common/augmentation_02.htm"
SLEEP "<&little_delay&>"
NPC_DIALOG "bypass -h npc_<&TARGET_ID&>_Augment 2"
SLEEP "<&little_delay&>"
DEFINE BYTEBUFFER select_item_buffer 256
DEFINE BYTEBUFFER rem_aug_buffer 256
select_item_buffer.write_byte #i208
select_item_buffer.write_int16 #i66
select_item_buffer.write_int32 work_item.id
select_item_buffer.trim_to_index
INJECTBB select_item_buffer
SLEEP "<&packet_delay&>"
rem_aug_buffer.write_byte #i208
rem_aug_buffer.write_int16 #i67
rem_aug_buffer.write_int32 work_item.id
rem_aug_buffer.trim_to_index
INJECTBB rem_aug_buffer
SLEEP "<&packet_delay&>"
DELETE select_item_buffer
DELETE rem_aug_buffer
RETURN VOID
FUNCTION CheckSkillList
IF another_flag == ZERO
RETURN VOID
ENDIF
another_flag = ZERO
DEFINE INT skill_byte 0
DEFINE INT skill_list_size 0
PACKET.READ_BYTE skill_byte
PACKET.READ_INT32 skill_list_size
FOR Z 0 "<&skill_list_size&>" 1
DEFINE INT _i64
PACKET.READ_INT64 _i64
DELETE _i64
DEFINE INT skillID
PACKET.READ_INT32 skillID
skill_ids.ADD skillID
DELETE skillID
DEFINE INT c_byte
PACKET.READ_BYTE c_byte
DELETE c_byte
NEXT
DELETE skill_byte
DELETE skill_list_size
FOREACH X INT skill_ids
FOREACH Z INT search_for_skills
IF skill_ids.X == search_for_skills.Z
PRINT_TEXT "Augmentation with Skill ID <&search_for_skills.Z&> was succesfull."
PRINT_TEXT " "
JUMP_TO_LABEL THE_END
ENDIF
NEXTEACH
NEXTEACH
PRINT_TEXT "No luck this round... "
PRINT_TEXT " "
CALL equip_augmented_item
GET_RAND random_delay 150 300
SLEEP "<&random_delay&>"
loop_flag = ZERO
RETURN VOID
FUNCTION reload_invet
GET_INVENTORY full_invent
GET_RAND random_delay 400 800
SLEEP "<&random_delay&>"
FOREACH item Inventory full_invent
if full_invent.item.name == item_to_aug
work_item = full_invent.item
endif
if full_invent.item.name == gem_for_aug
work_gem = full_invent.item
endif
if full_invent.item.name == ls_for_aug
work_ls = full_invent.item
endif
NEXTEACH
RETURN VOID
FUNCTION equip_augmented_item
DEFINE BYTEBUFFER equip_item 256
equip_item.write_byte #i25
equip_item.write_int32 work_item.id
equip_item.write_int32 #i0
equip_item.trim_to_index
INJECTBB equip_item
SLEEP "<&packet_delay&>"
DELETE equip_item
RETURN VOID
--------------------------------------------------------------------------------
Como veran quiero un skill activo en esa arma, y cuando lo pongo a despues de augmentar 1 o dos veces se traba y no anda mas.... ayuda con esto??
Juego un servidor Epilogue con cliente freya, esto influye en algo??
Espero q me ayuden, muchas gracias y saludos!