-- Lua player_hooks module function get_module_name() return "player_hooks" end function on_player_dead( name, lost_exp ) local player_level = get_value( "level" ) if player_level > 5 then message(sconv("@90019004", "#@lost_exp@#",tostring(lost_exp))) else message("@90019005") end save() end -- Revive type according to revive_type value -- 0: just die on the field and respawn -- 1: Resurrected from Death during a match in the Dalian chapter (existing Dalian system) -- 2: Resurrected from Death during a match by a new match system related to 1:1 PVP -- 3: Resurrected from Death during Dungeon Siege function revive_in_town( revive_type ) local current_x = get_value("x") local current_y = get_value("y") local is_training_camp = false local race = get_value( "race" ) if current_x >= 161280 and current_x <= 177408 then if current_y >= 48384 and current_y <= 64512 then is_training_camp = true end -- if current_y >= 48384 and current_y <= 64512 then end -- if current_x >= 161280 and current_x <= 177408 then if is_training_camp then local is_auto, quest_count quest_count, is_auto = anti_auto_quest_check() if is_auto then if race == 4 then RunTeleport_Auto_TO_City( 6625 , 6980 ) elseif race == 5 then RunTeleport_Auto_TO_City( 116799 , 58205 ) else RunTeleport_Auto_TO_City( 153506 , 77175 ) end else warp_to_revive_position() end -- if is_auto then else -- If it is not a trainee's island, fly to the set area. warp_to_revive_position() end kick_auto_to_another_world() -- The value of the conditional statement that determines the recovery HP at the time of resurrection is commented at the top. if revive_type == 0 then set_value( "hp" , get_value( "max_hp" ) ) -- Recover 100% by returning to town after being killed by a monster in a normal field elseif revive_type == 1 then set_value( "hp" , get_value( "max_hp" ) * 0.1 ) -- Recovers only 10% HP when choosing to revive in place after sparring in the arena. elseif revive_type == 2 then set_value( "hp" , get_value( "max_hp" ) * 0.1 ) -- After duel, only 10% HP is recovered when choosing to revive in place. elseif revive_type == 3 then set_value( "hp" , get_value( "max_hp" ) * 0.1 ) -- When resurrected after death during the dungeon siege, only 10% of HP is recovered and resurrected at the nearest owned strategic base. else set_value( "hp" , get_value( "max_hp" ) ) -- Recovers to max HP when resurrecting after normal death. end return end function on_player_kill( killer, is_killer_pk_on, victim, is_victim_pk_on ) local killer_pk, victim_pk if is_killer_pk_on == 1 then killer_pk = "ON" else killer_pk = "OFF" end if is_victim_pk_on == 1 then victim_pk = "ON" else victim_pk = "OFF" end notice( "[DEVELOPMENT_NOTICE] " .. killer .. " just killed " .. victim .. "! " .. killer .. " has PK mode " .. killer_pk .. "! " .. victim .. " has PK mode " .. victim_pk .. "!" ) end function on_player_update( name ) private_notice("[DEVELOPMENT_NOTICE] on_player_update(" .. name .. ") triggered") end -- Being called on leveling up JP function on_player_level_joblevel_guide() on_player_joblevel_up(0,0,gv("job_level")) end function on_player_joblevel_up( jp_spent, jp_total, current_job_level ) local lv = get_value( "level" ) local job_dp = get_value( "job_depth" ) if job_dp == 0 and lv >= 10 and current_job_level >= 10 then cprint( "@1200" ) cprint( "@1201" ) elseif lv == 20 then cprint( "@1202" ) elseif lv == 50 then cprint( "@1204" ) cprint( "@1205" ) elseif job_dp== 1 and lv >= 50 and current_job_level >= 40 then cprint( "@1206" ) cprint( "@1207" ) cprint( "@1208" ) elseif lv == 80 then cprint( "@1209" ) cprint( "@1210" ) elseif lv == 100 then cprint( "@1211" ) cprint( "@1212" ) end end function on_player_level_up() local lv = get_value( "level" ) local max_reached_level = gv( "max_reached_level" ) local state_code = get_local_info() local i for i = max_reached_level + 1 , lv do if i == 10 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 20 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 30 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 40 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 50 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 60 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 70 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 80 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 90 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 100 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 110 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 120 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 130 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 140 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) elseif i == 150 then private_notice( sconv( "@690000140" , "#@index_lv@#", i ) ) end end if lv == 5 then if (gv('rx') == nil or gv('rx') == "") and (gv('ry') == nil or gv('ry') == "") then current_x = get_flag( "rx" ) else current_x = gv( "rx" ) end if (gv('rx') == nil or gv('rx') == "") and (gv('ry') == nil or gv('ry') == "") then set_flag( "rx", 172543 + math.random(0,100)) set_flag( "ry", 51847 + math.random(0,100)) else sv( "rx", 172543 + math.random(0,100)) sv( "ry", 51847 + math.random(0,100)) end end local current_x = gv("x") local current_y = gv("y") local race = get_value( "race" ) if lv >= 18 then if current_x >= 161280 and current_x <= 177408 then if current_y >= 48384 and current_y <= 64512 then local is_auto, quest_count quest_count, is_auto = anti_auto_quest_check() if is_auto then if race == 4 then RunTeleport_Auto_TO_City( 6625 , 6980 ) elseif race == 5 then RunTeleport_Auto_TO_City( 116799 , 58205 ) else RunTeleport_Auto_TO_City( 153506 , 77175 ) end end -- if is_auto then local current_rx = gv("rx") local current_ry = gv("ry") if ( current_rx == nil or current_rx '' ) and ( current_ry == nil or current_ry == '' ) then sv("rx", get_flag( "rx" )) sv("ry", get_flag( "ry" )) end -- Check if return point is Trainee¡¯s Island if current_rx == 173183 and current_ry == 52299 then if race == 4 then sv( "rx", 6625 + math.random(0,100)) sv( "ry", 6980 + math.random(0,100)) elseif race == 5 then sv( "rx", 116799 + math.random(0,100)) sv( "ry", 58205 + math.random(0,100)) else sv( "rx", 153513 + math.random(0,100)) sv( "ry", 77203 + math.random(0,100)) end -- Sent a message that, because the player is on Trainee¡¯s Island and is level 18 or higher, they are forcibly returned to their race¡¯s village message( "@235") end end -- if current_y >= 48384 and current_y <= 64512 then end -- if current_x >= 161280 and current_x <= 177408 then end -- if lv >= 18 then kick_auto_to_another_world() local race = get_value( "race" ) on_player_level_joblevel_guide() if lv > max_reached_level then update_title_condition( 9002001, lv ) end end function auto_star() local starbuff_flag = get_flag("aSb") if starbuff_flag == nil or starbuff_flag == '' then starbuff_flag = 1 end if starbuff_flag == 1 then add_state(201085,1,1000) end end