forked from metin2/server
CMake build system updates, the docker image automatically compiles quests at build
This commit is contained in:
parent
adabeb39a7
commit
fc3f2f232c
@ -5,5 +5,14 @@ cmake-build-release/
|
||||
# Dockerfile (in order to allow changes without rebuilding)
|
||||
Dockerfile
|
||||
|
||||
# Git files
|
||||
.gitignore
|
||||
.gitkeep
|
||||
|
||||
# Compiled quests
|
||||
gamefiles/locale/english/quest/object/
|
||||
gamefiles/locale/english/quest/pre_qc/
|
||||
gamefiles/locale/english/quest/qc
|
||||
|
||||
# Test folder
|
||||
test/
|
@ -23,15 +23,14 @@ set(METIN2_COMPILER "${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
|
||||
set(METIN2_CPU_TARGET ${CMAKE_SYSTEM_PROCESSOR})
|
||||
|
||||
# Git revision
|
||||
include(FindGit)
|
||||
find_package(Git)
|
||||
find_package(GitInfo)
|
||||
|
||||
if(GIT_FOUND)
|
||||
GIT_WC_INFO(${PROJECT_SOURCE_DIR} Metin2)
|
||||
set(METIN2_REVISION ${Metin2_WC_REVISION_NAME})
|
||||
set(METIN2_REVISION ${Metin2_WC_REVISION_HASH})
|
||||
set(METIN2_LAST_CHANGED_DATE ${Metin2_WC_LAST_CHANGED_DATE})
|
||||
|
||||
if (${Metin2_WC_LATEST_TAG} NOT STREQUAL "")
|
||||
if (Metin2_WC_LATEST_TAG)
|
||||
set(METIN2_LATEST_TAG ${Metin2_WC_LATEST_TAG})
|
||||
else()
|
||||
set(METIN2_LATEST_TAG "unknown")
|
||||
|
@ -13,6 +13,7 @@ RUN ./vcpkg/vcpkg install boost-system cryptopp effolkronium-random libmysql lib
|
||||
|
||||
COPY . .
|
||||
|
||||
# Build the binaries
|
||||
RUN mkdir build/
|
||||
RUN cd build && cmake -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake ..
|
||||
RUN cd build && make -j $(nproc)
|
||||
@ -20,16 +21,19 @@ RUN cd build && make -j $(nproc)
|
||||
FROM ubuntu:latest as app
|
||||
WORKDIR /app
|
||||
|
||||
RUN apt-get update && apt-get install -y libdevil-dev libbsd-dev && apt-get clean
|
||||
RUN apt-get update && apt-get install -y python2 libdevil-dev libbsd-dev && apt-get clean
|
||||
|
||||
# Copy the binaries from the build stage
|
||||
COPY --from=build /app/build/src/db/db /bin/db
|
||||
COPY --from=build /app/build/src/game/game /bin/game
|
||||
COPY --from=build /app/build/src/quest/quest /bin/quest
|
||||
COPY --from=build /app/build/src/quest/qc /bin/qc
|
||||
|
||||
# Copy the game files
|
||||
COPY ./gamefiles/ .
|
||||
|
||||
# Compile the quests
|
||||
RUN cd /app/locale/english/quest && python2 make.py
|
||||
|
||||
# Symlink the configuration files
|
||||
RUN ln -s "./conf/CMD" "CMD"
|
||||
RUN ln -s ./conf/item_names_en.txt item_names.txt
|
||||
|
@ -1,176 +0,0 @@
|
||||
################################################################################
|
||||
#
|
||||
# Program: 3D Slicer
|
||||
#
|
||||
# Copyright (c) Kitware Inc.
|
||||
#
|
||||
# See COPYRIGHT.txt
|
||||
# or http://www.slicer.org/copyright/copyright.txt for details.
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# This file was originally developed by Jean-Christophe Fillion-Robin, Kitware Inc.
|
||||
# and was partially funded by NIH grant 3P41RR013218-12S1
|
||||
#
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# The module defines the following variables:
|
||||
# GIT_EXECUTABLE - path to git command line client
|
||||
# GIT_FOUND - true if the command line client was found
|
||||
# GIT_VERSION_STRING - the version of git found (since CMake 2.8.8)
|
||||
#
|
||||
# If the command line client executable is found the macro
|
||||
# GIT_WC_INFO(<dir> <var-prefix>)
|
||||
# is defined to extract information of a git working copy at
|
||||
# a given location.
|
||||
#
|
||||
# The macro defines the following variables:
|
||||
# <var-prefix>_WC_REVISION_HASH - Current SHA1 hash
|
||||
# <var-prefix>_WC_REVISION - Current SHA1 hash
|
||||
# <var-prefix>_WC_REVISION_NAME - Name associated with <var-prefix>_WC_REVISION_HASH
|
||||
# <var-prefix>_WC_URL - output of command `git config --get remote.origin.url'
|
||||
# <var-prefix>_WC_ROOT - Same value as working copy URL
|
||||
# <var-prefix>_WC_LAST_CHANGED_DATE - date of last commit
|
||||
# <var-prefix>_WC_GITSVN - Set to false
|
||||
#
|
||||
# ... and also the following ones if it's a git-svn repository:
|
||||
# <var-prefix>_WC_GITSVN - Set to True if it is a
|
||||
# <var-prefix>_WC_INFO - output of command `git svn info'
|
||||
# <var-prefix>_WC_URL - url of the associated SVN repository
|
||||
# <var-prefix>_WC_ROOT - root url of the associated SVN repository
|
||||
# <var-prefix>_WC_REVISION - current SVN revision number
|
||||
# <var-prefix>_WC_LAST_CHANGED_AUTHOR - author of last commit
|
||||
# <var-prefix>_WC_LAST_CHANGED_DATE - date of last commit
|
||||
# <var-prefix>_WC_LAST_CHANGED_REV - revision of last commit
|
||||
# <var-prefix>_WC_LAST_CHANGED_LOG - last log of base revision
|
||||
#
|
||||
# Example usage:
|
||||
# find_package(Git)
|
||||
# if(GIT_FOUND)
|
||||
# GIT_WC_INFO(${PROJECT_SOURCE_DIR} Project)
|
||||
# message("Current revision is ${Project_WC_REVISION_HASH}")
|
||||
# message("git found: ${GIT_EXECUTABLE}")
|
||||
# endif()
|
||||
#
|
||||
|
||||
# Look for 'git' or 'eg' (easy git)
|
||||
#
|
||||
set(git_names git eg)
|
||||
|
||||
# Prefer .cmd variants on Windows unless running in a Makefile
|
||||
# in the MSYS shell.
|
||||
#
|
||||
if(WIN32)
|
||||
if(NOT CMAKE_GENERATOR MATCHES "MSYS")
|
||||
# Note: Due to a bug in 'git.cmd' preventing it from returning the exit code of 'git',
|
||||
# we excluded it from the list of executables to search.
|
||||
# See http://code.google.com/p/msysgit/issues/detail?id=428
|
||||
# TODO Check if 'git' exists, get the associated version, if the corresponding version
|
||||
# is known to have a working version of 'git.cmd', use it.
|
||||
set(git_names git eg.cmd eg)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_program(GIT_EXECUTABLE ${git_names}
|
||||
PATHS
|
||||
"C:/Program Files/Git/bin"
|
||||
"C:/Program Files (x86)/Git/bin"
|
||||
DOC "git command line client")
|
||||
# XXX Comment to workaround https://gitlab.kitware.com/cmake/cmake/issues/15448
|
||||
# mark_as_advanced(GIT_EXECUTABLE)
|
||||
|
||||
if(GIT_EXECUTABLE)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} --version
|
||||
OUTPUT_VARIABLE git_version
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if (git_version MATCHES "^git version [0-9]")
|
||||
string(REPLACE "git version " "" GIT_VERSION_STRING "${git_version}")
|
||||
endif()
|
||||
unset(git_version)
|
||||
|
||||
macro(GIT_WC_INFO dir prefix)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=7 HEAD
|
||||
WORKING_DIRECTORY ${dir}
|
||||
ERROR_VARIABLE GIT_error
|
||||
OUTPUT_VARIABLE ${prefix}_WC_REVISION_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(${prefix}_WC_REVISION ${${prefix}_WC_REVISION_HASH})
|
||||
if(NOT ${GIT_error} EQUAL 0)
|
||||
message(SEND_ERROR "Command \"${GIT_EXECUTBALE} rev-parse --verify -q --short=7 HEAD\" in directory ${dir} failed with output:\n${GIT_error}")
|
||||
else(NOT ${GIT_error} EQUAL 0)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} name-rev ${${prefix}_WC_REVISION_HASH}
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE ${prefix}_WC_REVISION_NAME
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif(NOT ${GIT_error} EQUAL 0)
|
||||
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE ${prefix}_WC_URL
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} show -s --format="%ci" ${${prefix}_WC_REVISION_HASH}
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE ${prefix}_show_output
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
string(REGEX REPLACE "^([0-9][0-9][0-9][0-9]\\-[0-9][0-9]\\-[0-9][0-9]).*"
|
||||
"\\1" ${prefix}_WC_LAST_CHANGED_DATE "${${prefix}_show_output}")
|
||||
|
||||
set(${prefix}_WC_GITSVN False)
|
||||
|
||||
# Check if this git is likely to be a git-svn repository
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} config --get-regexp "^svn-remote"
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE git_config_output
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
if(NOT "${git_config_output}" STREQUAL "")
|
||||
# In case git-svn is used, attempt to extract svn info
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} svn info
|
||||
WORKING_DIRECTORY ${dir}
|
||||
TIMEOUT 3
|
||||
ERROR_VARIABLE git_svn_info_error
|
||||
OUTPUT_VARIABLE ${prefix}_WC_INFO
|
||||
RESULT_VARIABLE git_svn_info_result
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if(${git_svn_info_result} EQUAL 0)
|
||||
set(${prefix}_WC_GITSVN True)
|
||||
string(REGEX REPLACE "^(.*\n)?URL: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_URL "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_REVISION "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Repository Root: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_ROOT "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Last Changed Author: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_LAST_CHANGED_AUTHOR "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Last Changed Rev: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_LAST_CHANGED_REV "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Last Changed Date: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_LAST_CHANGED_DATE "${${prefix}_WC_INFO}")
|
||||
endif(${git_svn_info_result} EQUAL 0)
|
||||
endif(NOT "${git_config_output}" STREQUAL "")
|
||||
|
||||
# If there is no 'remote.origin', default to "NA" value and print a warning message.
|
||||
if(NOT ${prefix}_WC_URL)
|
||||
message(WARNING "No remote origin set for git repository: ${dir}" )
|
||||
set( ${prefix}_WC_URL "NA" )
|
||||
else()
|
||||
set(${prefix}_WC_ROOT ${${prefix}_WC_URL})
|
||||
endif()
|
||||
|
||||
endmacro(GIT_WC_INFO)
|
||||
endif(GIT_EXECUTABLE)
|
||||
|
||||
# Handle the QUIETLY and REQUIRED arguments and set GIT_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Git DEFAULT_MSG GIT_EXECUTABLE)
|
244
cmake/Modules/FindGitInfo.cmake
Normal file
244
cmake/Modules/FindGitInfo.cmake
Normal file
@ -0,0 +1,244 @@
|
||||
################################################################################
|
||||
#
|
||||
# Program: FindGitInfo from Slicer
|
||||
#
|
||||
# Copyright (c) Kitware Inc.
|
||||
#
|
||||
# See COPYRIGHT.txt
|
||||
# or http://www.slicer.org/copyright/copyright.txt for details.
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# This file was originally developed by Jean-Christophe Fillion-Robin,
|
||||
# Kitware Inc. and was partially funded by NIH grant 3P41RR013218-12S1
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# If the command line client executable is found the macro
|
||||
# GIT_WC_INFO(<dir> <var-prefix>)
|
||||
# is defined to extract information of a git working copy at
|
||||
# a given location.
|
||||
#
|
||||
# The macro defines the following variables:
|
||||
# <var-prefix>_WC_REVISION_HASH - Current SHA1 hash
|
||||
# <var-prefix>_WC_REVISION - Current SHA1 hash
|
||||
# <var-prefix>_WC_REVISION_NAME - Name associated with <var-prefix>_WC_REVISION_HASH
|
||||
# <var-prefix>_WC_URL - output of command `git config --get remote.origin.url'
|
||||
# <var-prefix>_WC_ROOT - Same value as working copy URL
|
||||
# <var-prefix>_WC_LAST_CHANGED_DATE - date of last commit
|
||||
# <var-prefix>_WC_GITSVN - Set to false
|
||||
# <var-prefix>_WC_LATEST_TAG - Latest tag found in history
|
||||
# <var-prefix>_WC_LATEST_TAG_LONG - <last tag>-<commits since then>-g<actual commit hash>
|
||||
#
|
||||
# ... and also the following ones if it's a git-svn repository:
|
||||
# <var-prefix>_WC_GITSVN - Set to True if it is a
|
||||
# <var-prefix>_WC_INFO - output of command `git svn info'
|
||||
# <var-prefix>_WC_URL - url of the associated SVN repository
|
||||
# <var-prefix>_WC_ROOT - root url of the associated SVN repository
|
||||
# <var-prefix>_WC_REVISION - current SVN revision number
|
||||
# <var-prefix>_WC_LAST_CHANGED_AUTHOR - author of last commit
|
||||
# <var-prefix>_WC_LAST_CHANGED_DATE - date of last commit
|
||||
# <var-prefix>_WC_LAST_CHANGED_REV - revision of last commit
|
||||
# <var-prefix>_WC_LAST_CHANGED_LOG - last log of base revision
|
||||
#
|
||||
# Example usage:
|
||||
# find_package(GitInfo)
|
||||
# if(GIT_FOUND)
|
||||
# GIT_WC_INFO(${PROJECT_SOURCE_DIR} Project)
|
||||
# message("Current revision is ${Project_WC_REVISION_HASH}")
|
||||
# message("git found: ${GIT_EXECUTABLE}")
|
||||
# endif()
|
||||
#
|
||||
|
||||
# Look for git. Respect the quiet and required flags passed to this module.
|
||||
set(FIND_QUIETLY_FLAG "")
|
||||
if (DEFINED GitInfo_FIND_QUIETLY)
|
||||
set(FIND_QUIETLY_FLAG "QUIET")
|
||||
endif ()
|
||||
|
||||
set(FIND_REQUIRED_FLAG "")
|
||||
if (DEFINED GitInfo_FIND_REQUIRED)
|
||||
set(FIND_REQUIRED_FLAG "REQUIRED")
|
||||
endif ()
|
||||
|
||||
find_package(Git ${FIND_QUIETLY_FLAG} ${FIND_REQUIRED_FLAG})
|
||||
|
||||
|
||||
if(GIT_FOUND)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} --version
|
||||
OUTPUT_VARIABLE git_version
|
||||
ERROR_QUIET
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if (git_version MATCHES "^git version [0-9]")
|
||||
string(REPLACE "git version " "" GIT_VERSION_STRING "${git_version}")
|
||||
endif()
|
||||
unset(git_version)
|
||||
|
||||
macro(GIT_WC_INFO dir prefix)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --verify -q --short=7 HEAD
|
||||
WORKING_DIRECTORY ${dir}
|
||||
ERROR_VARIABLE GIT_error
|
||||
OUTPUT_VARIABLE ${prefix}_WC_REVISION_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
set(${prefix}_WC_REVISION ${${prefix}_WC_REVISION_HASH})
|
||||
if(NOT ${GIT_error} EQUAL 0)
|
||||
message(SEND_ERROR "Command \"${GIT_EXECUTBALE} rev-parse --verify -q --short=7 HEAD\" in directory ${dir} failed with output:\n${GIT_error}")
|
||||
else(NOT ${GIT_error} EQUAL 0)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} name-rev ${${prefix}_WC_REVISION_HASH}
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE ${prefix}_WC_REVISION_NAME
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif(NOT ${GIT_error} EQUAL 0)
|
||||
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} config --get remote.origin.url
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE ${prefix}_WC_URL
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} show -s --format="%ci" ${${prefix}_WC_REVISION_HASH}
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE ${prefix}_show_output
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
string(REGEX REPLACE "^([0-9][0-9][0-9][0-9]\\-[0-9][0-9]\\-[0-9][0-9]).*"
|
||||
"\\1" ${prefix}_WC_LAST_CHANGED_DATE "${${prefix}_show_output}")
|
||||
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags --abbrev=0
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE ${prefix}_WC_LATEST_TAG
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET)
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} describe --tags
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE ${prefix}_WC_LATEST_TAG_LONG
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
ERROR_QUIET)
|
||||
|
||||
set(${prefix}_WC_GITSVN False)
|
||||
|
||||
# Check if this git is likely to be a git-svn repository
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} config --get-regexp "^svn-remote"
|
||||
WORKING_DIRECTORY ${dir}
|
||||
OUTPUT_VARIABLE git_config_output
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
if(NOT "${git_config_output}" STREQUAL "")
|
||||
# In case git-svn is used, attempt to extract svn info
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} svn info
|
||||
WORKING_DIRECTORY ${dir}
|
||||
TIMEOUT 3
|
||||
ERROR_VARIABLE git_svn_info_error
|
||||
OUTPUT_VARIABLE ${prefix}_WC_INFO
|
||||
RESULT_VARIABLE git_svn_info_result
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if(${git_svn_info_result} EQUAL 0)
|
||||
set(${prefix}_WC_GITSVN True)
|
||||
string(REGEX REPLACE "^(.*\n)?URL: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_URL "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_REVISION "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Repository Root: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_ROOT "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Last Changed Author: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_LAST_CHANGED_AUTHOR "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Last Changed Rev: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_LAST_CHANGED_REV "${${prefix}_WC_INFO}")
|
||||
string(REGEX REPLACE "^(.*\n)?Last Changed Date: ([^\n]+).*"
|
||||
"\\2" ${prefix}_WC_LAST_CHANGED_DATE "${${prefix}_WC_INFO}")
|
||||
endif(${git_svn_info_result} EQUAL 0)
|
||||
endif(NOT "${git_config_output}" STREQUAL "")
|
||||
|
||||
# If there is no 'remote.origin', default to "NA" value and print a warning message.
|
||||
if(NOT ${prefix}_WC_URL)
|
||||
message(WARNING "No remote origin set for git repository: ${dir}" )
|
||||
set( ${prefix}_WC_URL "NA" )
|
||||
else()
|
||||
set(${prefix}_WC_ROOT ${${prefix}_WC_URL})
|
||||
endif()
|
||||
|
||||
endmacro(GIT_WC_INFO)
|
||||
|
||||
|
||||
# Get the version info from the latest tag and set it as the projects version.
|
||||
#
|
||||
# Parameters:
|
||||
# prefix The prefix for all version variables.
|
||||
#
|
||||
macro(GIT_VERSION_INFO prefix)
|
||||
# If this project is not deployed via git, the following version file will
|
||||
# be used as fallback and needs to be deployed along with the sources. These
|
||||
# will be generated automatically by depending on the global target
|
||||
# 'project-version-files', if this project has access to the related git
|
||||
# repositoy.
|
||||
set(VERSION_FILE "${PROJECT_SOURCE_DIR}/.version")
|
||||
if (NOT TARGET project-version-files)
|
||||
add_custom_target(project-version-files)
|
||||
endif ()
|
||||
|
||||
if (EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||
git_wc_info(${PROJECT_SOURCE_DIR} GIT)
|
||||
|
||||
# Add commands and targets for generating the required version file for
|
||||
# source package deploys. The file will also be to a global property, so
|
||||
# one is able to access a list of all generated version files, e.g. to
|
||||
# clean up the source directory after the package has been packed.
|
||||
add_custom_command(
|
||||
OUTPUT ${VERSION_FILE}
|
||||
COMMAND ${GIT_EXECUTABLE} describe --tags > ${VERSION_FILE}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
|
||||
set_property(GLOBAL APPEND
|
||||
PROPERTY GIT_GENERATED_VERSION_FILES "${VERSION_FILE}")
|
||||
add_custom_target(project-version-files-${prefix} DEPENDS ${VERSION_FILE})
|
||||
add_dependencies(project-version-files project-version-files-${prefix})
|
||||
|
||||
# If git is not available (e.g. this git was packed as .tar.gz), try to read
|
||||
# the version-info from a hidden file in the root directory. This file
|
||||
# should not be versioned, but added at packaging time.
|
||||
elseif (EXISTS "${VERSION_FILE}")
|
||||
file(READ "${VERSION_FILE}" GIT_WC_LATEST_TAG_LONG)
|
||||
string(STRIP "${GIT_WC_LATEST_TAG_LONG}" GIT_WC_LATEST_TAG_LONG)
|
||||
|
||||
# If no version could be gathered by git or the version file, print a
|
||||
# warning, so the user has to define a version in the backup version file.
|
||||
else ()
|
||||
if (${ARGN} EQUAL "REQUIRED")
|
||||
message(FATAL_ERROR "No version provided by git or .version file")
|
||||
else ()
|
||||
message(WARNING "No version provided by git or .version file")
|
||||
endif()
|
||||
endif ()
|
||||
|
||||
if (GIT_WC_LATEST_TAG_LONG MATCHES "^([^0-9]*)([0-9]+)[.]([0-9]+)(.*)")
|
||||
set(${prefix}_VERSION ${GIT_WC_LATEST_TAG_LONG} CACHE STRING "" FORCE)
|
||||
set(${prefix}_VERSION_MAJOR ${CMAKE_MATCH_2} CACHE STRING "" FORCE)
|
||||
set(${prefix}_VERSION_MINOR ${CMAKE_MATCH_3} CACHE STRING "" FORCE)
|
||||
|
||||
if (GIT_WC_LATEST_TAG_LONG MATCHES
|
||||
"^([^0-9]*)([0-9]+)[.]([0-9]+)[.]([0-9]+)")
|
||||
set(${prefix}_VERSION_PATCH ${CMAKE_MATCH_4} CACHE STRING "" FORCE)
|
||||
else ()
|
||||
set(${prefix}_VERSION_PATCH 0 CACHE STRING "" FORCE)
|
||||
endif()
|
||||
|
||||
if (GIT_WC_LATEST_TAG_LONG MATCHES
|
||||
"^([^0-9]*)([0-9]+)[.]([0-9]+)(.*)-([0-9]+)-")
|
||||
set(${prefix}_VERSION_TWEAK ${CMAKE_MATCH_5} CACHE STRING "" FORCE)
|
||||
else ()
|
||||
set(${prefix}_VERSION_TWEAK 0 CACHE STRING "" FORCE)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(${prefix}_VERSION
|
||||
${prefix}_VERSION_MAJOR
|
||||
${prefix}_VERSION_MINOR
|
||||
${prefix}_VERSION_PATCH
|
||||
${prefix}_VERSION_TWEAK)
|
||||
else ()
|
||||
message(FATAL_ERROR "Invalid version info: '${GIT_WC_LATEST_TAG_LONG}'.")
|
||||
endif ()
|
||||
endmacro()
|
||||
endif(GIT_FOUND)
|
6
gamefiles/locale/english/quest/.gitignore
vendored
6
gamefiles/locale/english/quest/.gitignore
vendored
@ -1,10 +1,12 @@
|
||||
# Ignore compiled quest folder
|
||||
# Ignore compiled quest folders
|
||||
object/
|
||||
pre_qc/
|
||||
|
||||
# Quest compiler binaries
|
||||
qc
|
||||
qc.core
|
||||
qc.exe
|
||||
|
||||
# Compilde Python files
|
||||
# Compiled Python files
|
||||
__pycache__/
|
||||
*.pyc
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/local/bin/python
|
||||
#!/bin/python2
|
||||
import pre_qc
|
||||
import os
|
||||
os.system('rm -rf object')
|
||||
@ -13,7 +13,7 @@ for line in file('locale_list'):
|
||||
else:
|
||||
filename = line
|
||||
|
||||
if os.system('./qc '+filename):
|
||||
if os.system('qc '+filename):
|
||||
print 'Error occured on compile ' + line
|
||||
os.system('chmod -R 770 object')
|
||||
import sys
|
||||
|
@ -1,151 +0,0 @@
|
||||
quest dragon_soul begin
|
||||
state start begin
|
||||
when levelup or letter with pc.level >= 30 begin
|
||||
send_letter(gameforge.dragon_soul._1010_sendLetter)
|
||||
local v = find_npc_by_vnum(20001)
|
||||
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20001))
|
||||
end
|
||||
end
|
||||
when info or button begin
|
||||
say(gameforge.dragon_soul._1020_say)
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.dragon_soul._1030_npcChat with pc.level >= 30 begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.dragon_soul._1040_say)
|
||||
set_state(state_learning)
|
||||
end
|
||||
end
|
||||
state state_learning begin
|
||||
when letter begin
|
||||
send_letter(gameforge.dragon_soul._1050_sendLetter)
|
||||
end
|
||||
when info or button begin
|
||||
say(gameforge.dragon_soul._1060_say)
|
||||
end
|
||||
when kill begin
|
||||
if npc.is_pc() then
|
||||
return
|
||||
end
|
||||
|
||||
if pc.count_item(30270) < 10 then
|
||||
if drop_gamble_with_flag("ds_drop") then
|
||||
game.drop_item_with_ownership(30270, 1, 300)
|
||||
end
|
||||
end
|
||||
end
|
||||
when 20001.chat.gameforge.dragon_soul._1050_sendLetter begin
|
||||
say_title(mob_name(20001))
|
||||
if pc.count_item(30270) >= 10 then
|
||||
say(gameforge.dragon_soul._1070_say)
|
||||
pc.remove_item(30270, 10)
|
||||
ds.give_qualification()
|
||||
char_log(pc.get_player_id(), 'DS_QUALIFICATION', 'SUCCESS')
|
||||
pc.give_item2(50255)
|
||||
local today = math.floor(get_global_time() / 86400)
|
||||
pc.setf("dragon_soul", "eye_timestamp", today)
|
||||
pc.setf("dragon_soul", "eye_left", 9)
|
||||
set_state(state_farming)
|
||||
else
|
||||
say(gameforge.dragon_soul._1080_say)
|
||||
end
|
||||
end
|
||||
end
|
||||
state state_farming begin
|
||||
when letter begin
|
||||
send_letter(gameforge.dragon_soul._1090_sendLetter)
|
||||
end
|
||||
when info or button begin
|
||||
say(string.format(gameforge.dragon_soul._1100_say, pc.getf("dragon_soul", "eye_left")))
|
||||
end
|
||||
when kill begin
|
||||
if npc.is_pc() then
|
||||
return
|
||||
end
|
||||
|
||||
if drop_gamble_with_flag("ds_drop") then
|
||||
local eye_left = pc.getf("dragon_soul", "eye_left")
|
||||
local haved_gemstone_number = pc.count_item(30270)
|
||||
|
||||
if eye_left > haved_gemstone_number / 10 then
|
||||
game.drop_item_with_ownership(30270, 1, 300)
|
||||
end
|
||||
end
|
||||
end
|
||||
when 30270.pick begin
|
||||
local eye_left = pc.getf("dragon_soul", "eye_left")
|
||||
if eye_left <= 0 then
|
||||
return
|
||||
end
|
||||
|
||||
if pc.count_item(30270) >= 10 then
|
||||
pc.setf("dragon_soul", "eye_left", eye_left - 1)
|
||||
pc.remove_item(30270, 10)
|
||||
pc.give_item2(50255)
|
||||
if 1 == eye_left then
|
||||
notice_multiline(gameforge.dragon_soul._1110_notice, notice)
|
||||
set_state(state_closed_season)
|
||||
end
|
||||
end
|
||||
end
|
||||
when 20001.chat.gameforge.dragon_soul._1120_npcChat begin
|
||||
say_title(mob_name(20001))
|
||||
local today = math.floor(get_global_time() / 86400)
|
||||
if today == pc.getf("dragon_soul", "eye_timestamp") then
|
||||
say(gameforge.dragon_soul._1130_say)
|
||||
else
|
||||
say(gameforge.dragon_soul._1140_say)
|
||||
pc.setf("dragon_soul", "eye_timestamp", today)
|
||||
pc.setf("dragon_soul", "eye_left", 10)
|
||||
end
|
||||
end
|
||||
end
|
||||
state state_closed_season begin
|
||||
when letter begin
|
||||
send_letter(gameforge.dragon_soul._1150_sendLetter)
|
||||
end
|
||||
when info or button begin
|
||||
say(gameforge.dragon_soul._1160_say)
|
||||
local today = math.floor(get_global_time() / 86400)
|
||||
if today == pc.getf("dragon_soul", "eye_timestamp") then
|
||||
say(gameforge.dragon_soul._1170_say)
|
||||
else
|
||||
say(gameforge.dragon_soul._1180_say)
|
||||
end
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.dragon_soul._1090_sendLetter begin
|
||||
say_title(mob_name(20001))
|
||||
local today = math.floor(get_global_time() / 86400)
|
||||
if today == pc.getf("dragon_soul", "eye_timestamp") then
|
||||
say(gameforge.dragon_soul._1130_say)
|
||||
else
|
||||
say(gameforge.dragon_soul._1140_say)
|
||||
pc.setf("dragon_soul", "eye_timestamp", today)
|
||||
pc.setf("dragon_soul", "eye_left", 10)
|
||||
set_state(state_farming)
|
||||
end
|
||||
end
|
||||
end
|
||||
-- deprecated states. so, jump to new state.
|
||||
state state_1 begin
|
||||
when login begin
|
||||
set_state(state_learning)
|
||||
end
|
||||
end
|
||||
state state_2 begin
|
||||
when login begin
|
||||
set_state(state_learning)
|
||||
end
|
||||
end
|
||||
state state_3 begin
|
||||
when login begin
|
||||
set_state(state_closed_season)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,41 +0,0 @@
|
||||
quest dragon_soul_daily_gift begin
|
||||
state start begin
|
||||
function is_event_on()
|
||||
-- 지금 시각이 dragon_soul_daily_gift_mgr.quest에서 셋팅한 시간 대역인지 확인.
|
||||
local s_time = game.get_event_flag("ds_dg_st")
|
||||
local e_time = game.get_event_flag("ds_dg_et")
|
||||
local now = os.time()
|
||||
return now > s_time and now < e_time
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.dragon_soul_daily_gift._010_npcChat with dragon_soul_daily_gift.is_event_on() begin
|
||||
local event_id = game.get_event_flag("ds_dg_id")
|
||||
if pc.getqf("event_id") != event_id then
|
||||
say_title(mob_name(20001))
|
||||
if pc.level < 50 then
|
||||
say(gameforge.dragon_soul_daily_gift._020_say)
|
||||
return
|
||||
elseif 0 == ds.is_qualified() then
|
||||
say(gameforge.dragon_soul_daily_gift._030_say)
|
||||
return
|
||||
else
|
||||
say(gameforge.dragon_soul_daily_gift._040_say)
|
||||
pc.setqf("event_id", event_id)
|
||||
wait()
|
||||
end
|
||||
end
|
||||
|
||||
say_title(mob_name(20001))
|
||||
if 0 == get_today_count("dragon_soul_daily_gift", "gift") then
|
||||
-- 오늘치 선물 증정.
|
||||
say(gameforge.dragon_soul_daily_gift._050_say)
|
||||
local gift_vnum = game.get_event_flag("ds_dg_item")
|
||||
pc.give_item2(gift_vnum)
|
||||
inc_today_count("dragon_soul_daily_gift", "gift")
|
||||
else
|
||||
-- 선물은 이미 줌.
|
||||
say(gameforge.dragon_soul_daily_gift._060_say)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -1,90 +0,0 @@
|
||||
quest dragon_soul_daily_gift_mgr begin
|
||||
state start begin
|
||||
function is_event_on()
|
||||
-- 지금 시각이 dragon_soul_daily_gift_mgr.quest에서 셋팅한 시간 대역인지 확인.
|
||||
local s_time = game.get_event_flag("ds_dg_st")
|
||||
local e_time = game.get_event_flag("ds_dg_et")
|
||||
local now = os.time()
|
||||
return now > s_time and now < e_time
|
||||
end
|
||||
function date_getter()
|
||||
say(gameforge.dragon_soul_gift_mgr._040_say)
|
||||
say("yy-mm-dd hh:mm")
|
||||
local date = input()
|
||||
local _, _, y, m, d, hour, min = string.find(date, "(%d+)-(%d+)-(%d+) (%d+):(%d+)")
|
||||
return y, m, d, hour, min
|
||||
end
|
||||
function print_quest_info()
|
||||
local s_time = game.get_event_flag("ds_dg_st")
|
||||
local e_time = game.get_event_flag("ds_dg_et")
|
||||
local gift_vnum = game.get_event_flag("ds_dg_item")
|
||||
|
||||
say(os.date("start time[ENTER] year:%Y, month:%m, day:%d hour:%H minite:%M", s_time))
|
||||
say(os.date(" end time[ENTER] year:%Y, month:%m, day:%d hour:%H minite:%M", e_time))
|
||||
|
||||
say(string.format("gift item[ENTER] vnum : %d", gift_vnum))
|
||||
say_item_vnum(gift_vnum)
|
||||
end
|
||||
when 20001.chat.gameforge.dragon_soul_gift_mgr._010_npcChat with pc.is_gm() begin
|
||||
local sel = 0
|
||||
if dragon_soul_daily_gift_mgr.is_event_on() then
|
||||
say(locale.event_on_going)
|
||||
local sel = select(locale.event_modify, locale.event_info_print, locale.event_cancel, locale.close)
|
||||
if 2 == sel then
|
||||
dragon_soul_daily_gift_mgr.print_quest_info()
|
||||
return
|
||||
elseif 3 == sel then
|
||||
game.set_event_flag("ds_dg_et", 0)
|
||||
return
|
||||
elseif 4 == sel then
|
||||
return
|
||||
end
|
||||
|
||||
end
|
||||
-- Get start time and end time.
|
||||
local s_y, s_m, s_d, s_hour, s_min
|
||||
repeat
|
||||
say(gameforge.dragon_soul_gift_mgr._020_say)
|
||||
s_y, s_m, s_d, s_hour, s_min = dragon_soul_daily_gift_mgr.date_getter()
|
||||
s_y = s_y + 2000
|
||||
say(string.format("year:%d month:%d day:%d hour:%d min:%d", s_y, s_m, s_d, s_hour, s_min))
|
||||
until 1 == select(gameforge.locale.yes, gameforge.locale.no)
|
||||
local e_y, e_m, e_d, e_hour, e_min
|
||||
repeat
|
||||
say(gameforge.dragon_soul_gift_mgr._030_say)
|
||||
e_y, e_m, e_d, e_hour, e_min = dragon_soul_daily_gift_mgr.date_getter()
|
||||
e_y = e_y + 2000
|
||||
say(string.format("year:%d month:%d day:%d hour:%d min:%d", e_y, e_m, e_d, e_hour, e_min))
|
||||
until 1 == select(gameforge.locale.yes, gameforge.locale.no)
|
||||
|
||||
local s_time = os.time{year=s_y, month=s_m, day=s_d, hour=s_hour, min=s_min}
|
||||
local e_time = os.time{year=e_y, month=e_m, day=e_d, hour=e_hour, min=e_min}
|
||||
|
||||
-- Get gift item vnum
|
||||
local gift_vnum = input_number("gift vnum")
|
||||
|
||||
-- Print settings and confirm.
|
||||
say(os.date("start time[ENTER] year:%Y, month:%m, day:%d hour:%H minite:%M", s_time))
|
||||
say(os.date(" end time[ENTER] year:%Y, month:%m, day:%d hour:%H minite:%M", e_time))
|
||||
|
||||
say(string.format("gift item[ENTER] vnum : %d", gift_vnum))
|
||||
say_item_vnum(gift_vnum)
|
||||
|
||||
say(gameforge.dragon_soul_gift_mgr._050_say)
|
||||
if 2 == select(gameforge.locale.yes, gameforge.locale.no) then
|
||||
return
|
||||
end
|
||||
|
||||
-- 이벤트 수정인 경우는 event_id를 바꾸면 안됨.
|
||||
if 0 == sel then
|
||||
local event_id = game.get_event_flag("ds_dg_id")
|
||||
game.set_event_flag("ds_dg_id", event_id + 1)
|
||||
end
|
||||
game.set_event_flag("ds_dg_st", s_time)
|
||||
game.set_event_flag("ds_dg_et", e_time)
|
||||
game.set_event_flag("ds_dg_item", gift_vnum)
|
||||
|
||||
say (gameforge.dragon_soul_gift_mgr._060_say)
|
||||
end
|
||||
end
|
||||
end
|
@ -1,9 +0,0 @@
|
||||
quest dragon_soul_refine begin
|
||||
state start begin
|
||||
when 20001.chat.gameforge.dragon_soul_refine._010_npcChat with ds.is_qualified() != 0 begin
|
||||
say_title(mob_name(20001))
|
||||
say (gameforge.dragon_soul_refine._020_say)
|
||||
ds.open_refine_window()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,8 +0,0 @@
|
||||
quest dragon_soul_shop begin
|
||||
state start begin
|
||||
when 20001.chat.gameforge.dragon_soul._100_npcChat with ds.is_qualified() begin
|
||||
say (gameforge.dragon_soul._110_say)
|
||||
npc.open_shop(13)
|
||||
end
|
||||
end
|
||||
end
|
@ -1,103 +0,0 @@
|
||||
quest event_flame_dungeon_open begin
|
||||
state start begin
|
||||
when 20381.chat.gameforge.event_flame_dungeon_open._010_npcChat with pc.get_level() >= 90 begin
|
||||
say(gameforge.event_flame_dungeon_open._020_say)
|
||||
wait()
|
||||
say(gameforge.event_flame_dungeon_open._030_say)
|
||||
wait()
|
||||
say(gameforge.event_flame_dungeon_open._080_say)
|
||||
pc.setqf("event_FD_time", 0)
|
||||
set_state(run)
|
||||
end
|
||||
end
|
||||
|
||||
state run begin
|
||||
when 20381.chat.gameforge.event_flame_dungeon_open._040_npcChat with game.get_event_flag("w21open_event")>0 begin
|
||||
say(gameforge.event_flame_dungeon_open._050_say)
|
||||
wait()
|
||||
|
||||
local t = pc.getqf("event_FD_time")
|
||||
local killcount = pc.getqf("kill_done")
|
||||
if killcount == 0 then
|
||||
say(gameforge.event_flame_dungeon_open._080_say)
|
||||
elseif (t==0) or (t+86400 < get_global_time()) then
|
||||
say(gameforge.event_flame_dungeon_open._060_say)
|
||||
pc.give_item2(71173, 1)
|
||||
pc.give_item2(71174, 3)
|
||||
pc.setqf("event_FD_time", get_global_time())
|
||||
pc.setqf("kill_count_1", 0)
|
||||
else
|
||||
say(gameforge.event_flame_dungeon_open._070_say)
|
||||
end
|
||||
end
|
||||
|
||||
when letter with game.get_event_flag("w21open_event")>0 begin
|
||||
send_letter(gameforge.event_flame_dungeon_open._010_npcChat)
|
||||
--³²Àº óġ ¼ö ¾È³»¹®
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
event_flame_dungeon_open.kill_count()
|
||||
end
|
||||
|
||||
when button or info with game.get_event_flag("w21open_event")>0 begin
|
||||
say_title(gameforge.event_flame_dungeon_open._010_npcChat)
|
||||
say(string.format(gameforge.levelup._26_say, 100 - pc.getqf("kill_count_1")))
|
||||
end
|
||||
|
||||
when 3101.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
event_flame_dungeon_open.kill_count()
|
||||
end
|
||||
|
||||
when 3102.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
event_flame_dungeon_open.kill_count()
|
||||
end
|
||||
|
||||
when 3103.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
event_flame_dungeon_open.kill_count()
|
||||
end
|
||||
|
||||
when 3104.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
event_flame_dungeon_open.kill_count()
|
||||
end
|
||||
|
||||
when 3105.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
event_flame_dungeon_open.kill_count()
|
||||
end
|
||||
|
||||
when 3190.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
event_flame_dungeon_open.kill_count()
|
||||
end
|
||||
|
||||
when 3191.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
event_flame_dungeon_open.kill_count()
|
||||
end
|
||||
|
||||
when 71173.use begin
|
||||
pc.warp(614200, 706800, 62)
|
||||
pc.remove_item(71173, 1)
|
||||
end
|
||||
|
||||
function kill_count()
|
||||
local total_remain = 100
|
||||
local remain1 = pc.getqf("kill_count_1")
|
||||
local remain_count = total_remain - remain1
|
||||
q.set_counter_value(remain_count)
|
||||
if total_remain == 0 then
|
||||
pc.setqf("kill_done", 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -1,717 +0,0 @@
|
||||
quest flame_dungeon begin
|
||||
state start begin
|
||||
--when 20394.click with pc.get_level() >= 90 begin
|
||||
--pc.give_item2(71175, 1)
|
||||
--set_state(run)
|
||||
--end
|
||||
--end
|
||||
|
||||
--state run begin
|
||||
|
||||
function setting()
|
||||
return
|
||||
{
|
||||
["bossroom_entry_pos"] = {8109,6867},
|
||||
["boss_pos"] = {686,637},
|
||||
["doors_pos"] = {
|
||||
{320,394},
|
||||
{293,359},
|
||||
{333,321},
|
||||
{378,320},
|
||||
{400,355},
|
||||
{394,401}
|
||||
},
|
||||
["idoors_pos"] = {
|
||||
{268,447},
|
||||
{234,359},
|
||||
{300,264},
|
||||
{454,217},
|
||||
{470,355},
|
||||
{467,469}
|
||||
},
|
||||
["doors_dir"] = {135,90,210,152,90,223},
|
||||
["idoors_dir"] = {135,90,210,135,90,239},
|
||||
["dungeon_entry_pos"] = {7762, 6739},-- 던전에 처음 들어오는 곳
|
||||
["DUNGEON_MAN_bpos"] = {690,722},
|
||||
["DUNGEON_MAN_pos"] = {354,362},
|
||||
["LEVEL2_STONE_pos"] = {195,352},
|
||||
["LEVEL4_TARGET_pos"] = {470,175},
|
||||
["LEVEL5_STONE_pos"] = {
|
||||
{486, 345},
|
||||
{511, 336},
|
||||
{525, 349},
|
||||
{521, 365},
|
||||
{503, 372},
|
||||
{486, 365},
|
||||
{500, 354}
|
||||
},
|
||||
["LEVEL6_TARGET_pos"] = {511,480},
|
||||
["outside_entry_pos"] = {6142,7068}, --입장시켜주는애 서있는 곳
|
||||
["YAK_pos"] = {376, 397} -- 약환 부하
|
||||
|
||||
}
|
||||
end
|
||||
function is_flamed(idx) -- 적룡성에 있는지 확인
|
||||
return idx >= 351 * 10000 and idx < (351 + 1) *10000
|
||||
end
|
||||
function make_dungeon() -- 던전 만들기
|
||||
local setting = flame_dungeon.setting()
|
||||
d.new_jump_party(351, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])
|
||||
-- d.spawn_mob_ac_dir(20385, setting.DUNGEON_MAN_pos[1], setting.DUNGEON_MAN_pos[2],0)
|
||||
-- d.spawn_mob(YAK,setting.YAK_pos[1],setting.YAK_pos[2])
|
||||
d.regen_file("data/dungeon/flame_dungeon/npc.txt")
|
||||
d.setf("level",0)
|
||||
for i=1,6 do
|
||||
d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))
|
||||
end
|
||||
for i=1,6 do
|
||||
d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i]))
|
||||
end
|
||||
d.setf("clear_count",0)
|
||||
d.setf("started",0)
|
||||
d.setf("dungeon_enter",0) -- 정상적으로 입장했는지? // 비정상 : 0 정상 : 1 // 튕기면 입장제한시간을 기록 안함
|
||||
end
|
||||
function go_boss() -- 보스룸 가기
|
||||
local setting = flame_dungeon.setting()
|
||||
if pc.get_level() < 104 then --레벨확인
|
||||
-- syschat(gameforge.flame_dungeon._580_notice)
|
||||
say(gameforge.flame_dungeon._580_notice)
|
||||
return
|
||||
else
|
||||
--if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- 선행퀘스트 확인
|
||||
-- -- say_title(gameforge.flame_dungeon._010_say)
|
||||
say(gameforge.flame_dungeon._010_say)
|
||||
local warp = select(gameforge.flame_dungeon._020_select,gameforge.flame_dungeon._030_select)
|
||||
if warp == 1 then
|
||||
d.setf("level",17)
|
||||
d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])
|
||||
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_fild_boss.txt")
|
||||
-- d.spawn_mob(20385,setting.DUNGEON_MAN_bpos[1],setting.DUNGEON_MAN_bpos[2])
|
||||
d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])
|
||||
end
|
||||
-- else
|
||||
-- -- syschat(gameforge.flame_dungeon._040_notice)
|
||||
-- say(gameforge.flame_dungeon._040_notice)
|
||||
-- return
|
||||
-- end
|
||||
end
|
||||
end
|
||||
function level_clear() -- 레벨 깼을때, 리젠클리어, 지역클리어
|
||||
d.setf("level",0)
|
||||
d.clear_regen()
|
||||
d.purge_area(750000,620000,817400,689400) -- 맵전체 -- d.purge() 사용고려
|
||||
end
|
||||
function clear_timer(inx) -- 타이머 다지우기
|
||||
clear_server_timer ("flame_dungeon_0m_left_timer", inx)
|
||||
clear_server_timer ("flame_dungeon_1m_left_timer", inx)
|
||||
clear_server_timer ("flame_dungeon_5m_left_timer", inx)
|
||||
clear_server_timer ("flame_dungeon_10m_left_timer", inx)
|
||||
clear_server_timer ("flame_dungeon_15m_left_timer", inx)
|
||||
clear_server_timer ("flame_dungeon_30m_left_timer", inx)
|
||||
clear_server_timer ("flame_dungeon_45m_left_timer", inx)
|
||||
clear_server_timer ("killed_A_1", inx)
|
||||
clear_server_timer ("killed_A_2", inx)
|
||||
clear_server_timer ("flame_dungeon_ticket_remove", inx)
|
||||
end
|
||||
|
||||
when login begin
|
||||
local idx = pc.get_map_index()
|
||||
local setting = flame_dungeon.setting()
|
||||
if idx == 351 then
|
||||
pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
|
||||
elseif flame_dungeon.is_flamed(idx) then -- 던전 입장, 보스룸 입장 예외
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--아래의 두줄중 위에줄을 사용하면 던전에서 종료했을경우 다시 원래 위치로 돌아온다. 아래줄을 활성화 하면 던전에서 종료했을 경우 던전 밖으로 나가게 된다.
|
||||
--던전에서 종료했을 경우 다시 원래 위치로 돌아올 경우, 던전에서 나가는 방법을 만들어줘야 하기 때문에 적룡성비의 나가기란 옵션을 활성화 해줘야 한다.
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-- pc.set_warp_location(0, 0 , 0) --튕겼을때 다시 돌아오게 만들어 주는 부분
|
||||
pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- 던전 나갔을 때 밖으로 튕기게함
|
||||
local ticketGroup = {71095, 1, 71130, 1}
|
||||
if d.getf("dungeon_enter") == 0 then -- 진행중이 아니면
|
||||
local canPass = false
|
||||
for i=1, table.getn(ticketGroup),2 do
|
||||
if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
|
||||
canPass = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then -- 입장제한시간이 걸렸으면
|
||||
notice_multiline(gameforge.flame_dungeon._050_notice,d.notice)
|
||||
say(gameforge.flame_dungeon._060_say)
|
||||
timer("flame_dungeon_warp_timer", 5)
|
||||
elseif not canPass then
|
||||
notice_multiline(gameforge.flame_dungeon._070_notice,d.notice)
|
||||
say(gameforge.flame_dungeon._080_say)
|
||||
timer("flame_dungeon_warp_timer", 5)
|
||||
elseif pc.get_level() < 100 then
|
||||
notice_multiline(gameforge.flame_dungeon._090_notice,d.notice)
|
||||
say(gameforge.flame_dungeon._100_say)
|
||||
timer("flame_dungeon_warp_timer", 5)
|
||||
end
|
||||
elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- 진행중인데 티켓이 안지워졌을경우
|
||||
|
||||
for i=1, table.getn(ticketGroup),2 do
|
||||
if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then
|
||||
pc.remove_item(ticketGroup[i], ticketGroup[i+1])
|
||||
break
|
||||
end
|
||||
end
|
||||
pc.setf("flame_dungeon","ticket_delete",1)
|
||||
end
|
||||
else
|
||||
pc.setf("flame_dungeon","ticket_delete",0)
|
||||
end
|
||||
end
|
||||
when flame_dungeon_warp_timer.timer begin
|
||||
local setting = flame_dungeon.setting()
|
||||
pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
|
||||
end
|
||||
when logout begin
|
||||
local idx = pc.get_map_index()
|
||||
if flame_dungeon.is_flamed(idx) then
|
||||
if d.getf("dungeon_enter") == 1 then -- 정상적인 던전 입장 후 로그아웃
|
||||
pc.setf("flame_dungeon","exit_time",get_global_time()) -- 인스턴스 안에서의 마지막 시간을 기록, 근데 시간제한 때문에 or 그냥 튕긴거면 안기록
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
when 20394.chat.gameforge.flame_dungeon._110_npcChat begin
|
||||
|
||||
local setting = flame_dungeon.setting()
|
||||
if party.is_party() then
|
||||
-- 던전 도중 나갈 경우 재입장 가능하도록
|
||||
local party_check = 0
|
||||
if d.find(party.getf("dungeon_index")) then
|
||||
party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())
|
||||
end
|
||||
|
||||
if d.find(party.getf("dungeon_index")) and party_check then
|
||||
if get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then -- 접종 이후 5분 내?
|
||||
local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
|
||||
if dungeon_level == 17 then -- 보스
|
||||
pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party.getf("dungeon_index"))
|
||||
else
|
||||
pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party.getf("dungeon_index"))
|
||||
end
|
||||
else -- 5분 초과하여 재 입장 불가
|
||||
say_title(mob_name(20394))
|
||||
say(gameforge.flame_dungeon._590_say)
|
||||
end
|
||||
else
|
||||
local pids = {party.get_member_pids()}
|
||||
local noTicketMembers = {}
|
||||
local notEnoughLevelMembers = {}
|
||||
local ticketCheck = true
|
||||
local levelCheck = true
|
||||
local ticketGroup = {71095, 1, 71130, 1}
|
||||
for i, pid in next, pids, nil do
|
||||
q.begin_other_pc_block(pid)
|
||||
local canPass = false
|
||||
for idx=1, table.getn(ticketGroup),2 do
|
||||
if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
|
||||
canPass = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not canPass then
|
||||
table.insert(noTicketMembers, pc.get_name())
|
||||
ticketCheck = false
|
||||
end
|
||||
if pc.level < 100 then
|
||||
table.insert(notEnoughLevelMembers, pc.get_name())
|
||||
levelCheck = false
|
||||
end
|
||||
q.end_other_pc_block()
|
||||
end
|
||||
|
||||
if not ticketCheck then
|
||||
say_title(mob_name(20394))
|
||||
say(gameforge.flame_dungeon._610_say)
|
||||
for i, name in next, noTicketMembers, nil do
|
||||
say(color(1,1,0), " "..name)
|
||||
end
|
||||
if levelCheck then
|
||||
return
|
||||
else
|
||||
wait()
|
||||
end
|
||||
end
|
||||
|
||||
if not levelCheck then
|
||||
say_title(mob_name(20394))
|
||||
say(gameforge.flame_dungeon._630_say)
|
||||
for i, name in next, notEnoughLevelMembers, nil do
|
||||
say(color(1,1,0), " "..name)
|
||||
end
|
||||
return
|
||||
end
|
||||
|
||||
if party.is_leader() then
|
||||
say(gameforge.flame_dungeon._120_say)
|
||||
local warp = select(gameforge.flame_dungeon._130_select,gameforge.flame_dungeon._140_select)
|
||||
if warp == 1 then
|
||||
if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then
|
||||
flame_dungeon.make_dungeon()
|
||||
else
|
||||
--say("test : 파티원의 입장 제한시간이 끝나지 않았습니다.")
|
||||
say(gameforge.flame_dungeon._600_say)
|
||||
end
|
||||
end
|
||||
|
||||
party.setf("flame_dungeon_boss_kill_count", 0)
|
||||
|
||||
else
|
||||
say(gameforge.flame_dungeon._150_say)
|
||||
end
|
||||
end
|
||||
else
|
||||
say(gameforge.flame_dungeon._160_say)
|
||||
end
|
||||
end
|
||||
-- when 20394.chat."Test : 리소스확인" with is_test_server() begin -- 테스트용
|
||||
-- local setting = flame_dungeon.setting()
|
||||
-- pc.setf("flame_dungeon","fdRtest",1)
|
||||
-- pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, 351)
|
||||
-- end
|
||||
|
||||
|
||||
when 20394.chat."TEST : Init time limit init" with is_test_server() begin -- 테스트용
|
||||
pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
|
||||
say("Done")
|
||||
end
|
||||
-- when 20385.chat."Test : 현재 상태" with is_test_server() begin -- 테스트용
|
||||
-- say("남은 몬스터 : "..d.count_monster())
|
||||
-- say("level : "..d.getf("level"))
|
||||
-- say("Dmap index : "..d.get_map_index())
|
||||
-- say("Pmap index : "..pc.get_map_index())
|
||||
-- say("access limit : "..pc.getf("flame_dungeon","exit_time"))
|
||||
-- say("global time : "..get_global_time())
|
||||
-- if flame_dungeon.is_flamed(d.get_map_index()) then
|
||||
-- say("in dungeon") -- is_flamed 함수 체크
|
||||
-- end
|
||||
-- if d.is_unique_dead("stone1") then
|
||||
-- say("stone1 is dead")
|
||||
-- else
|
||||
-- say("stone1 is not dead")
|
||||
-- end
|
||||
-- end
|
||||
-- when 20385.chat."처음으로" begin -- 테스트용
|
||||
-- say("초기화 합니다")
|
||||
-- flame_dungeon.clear_timer(d.get_map_index())
|
||||
-- flame_dungeon.make_dungeon()
|
||||
-- end
|
||||
when 20385.chat."Test : Boss Room" with is_test_server() begin -- 테스트용
|
||||
flame_dungeon.go_boss()
|
||||
end
|
||||
|
||||
-- < 시간 경과 타이머>
|
||||
-- when 20385.chat."나가기" begin -- 던전에서 튕기지 않게 할 경우 활성화
|
||||
-- local setting = flame_dungeon.setting()
|
||||
-- say("밖으로 나가시겠습니까?")
|
||||
-- local warp = select("확인","취소")
|
||||
-- if warp == 1 then
|
||||
-- pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
|
||||
-- end
|
||||
-- end
|
||||
when flame_dungeon_45m_left_timer.server_timer begin
|
||||
if d.select(get_server_timer_arg()) then
|
||||
notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 45),d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
|
||||
server_timer('flame_dungeon_30m_left_timer', 15*60, get_server_timer_arg())
|
||||
end
|
||||
end
|
||||
when flame_dungeon_30m_left_timer.server_timer begin
|
||||
if d.select(get_server_timer_arg()) then
|
||||
notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 30),d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
|
||||
server_timer('flame_dungeon_15m_left_timer', 15*60, get_server_timer_arg())
|
||||
end
|
||||
end
|
||||
when flame_dungeon_15m_left_timer.server_timer begin
|
||||
if d.select(get_server_timer_arg()) then
|
||||
notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 15),d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
|
||||
server_timer('flame_dungeon_5m_left_timer', 10*60, get_server_timer_arg())
|
||||
end
|
||||
end
|
||||
when flame_dungeon_5m_left_timer.server_timer begin
|
||||
if d.select(get_server_timer_arg()) then
|
||||
notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 5),d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
|
||||
server_timer('flame_dungeon_1m_left_timer', 4*60, get_server_timer_arg())
|
||||
end
|
||||
end
|
||||
when flame_dungeon_1m_left_timer.server_timer begin
|
||||
if d.select(get_server_timer_arg()) then
|
||||
notice_multiline(string.format(gameforge.flame_dungeon._180_notice, 1),d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
|
||||
server_timer ("flame_dungeon_0m_left_timer", 60, get_server_timer_arg())
|
||||
end
|
||||
end
|
||||
when flame_dungeon_0m_left_timer.server_timer begin
|
||||
local setting = flame_dungeon.setting()
|
||||
if d.select(get_server_timer_arg()) then
|
||||
notice_multiline(gameforge.flame_dungeon._190_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._200_notice,d.notice)
|
||||
server_timer("dungeon_end_timer",10,d.get_map_index())
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- <<<< 던전 진행>>>> --
|
||||
when 20385.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'는 x번째 레벨 퀘스트 받을 수 있는 상태 , '1x'는 x번째 레벨 퀘스트 진행중
|
||||
local setting = flame_dungeon.setting()
|
||||
if d.getf("started") == 0 then
|
||||
say(gameforge.flame_dungeon._230_say)
|
||||
say(gameforge.flame_dungeon._240_say)
|
||||
wait()
|
||||
d.setf("started",1)
|
||||
-- 파티원이 튕겨버렸는데 자기만 남아서 exit timer가 리셋되면 안되니깐 다음레벨을 눌렀을때를 시작할때로 봄
|
||||
server_timer ("flame_dungeon_45m_left_timer",15*60, d.get_map_index())
|
||||
notice_multiline(gameforge.flame_dungeon._250_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._170_notice,d.notice)
|
||||
|
||||
-- 통행증 관련된 처리
|
||||
-- 입장 후에 티켓을 없앤 사람을 튕겨내기 위해서 타이머를 이용해 티켓을 제거한다.
|
||||
local pids = {party.get_member_pids()}
|
||||
local ticketGroup = {71095, 1, 71130, 1}
|
||||
for i, pid in next, pids, nil do
|
||||
q.begin_other_pc_block(pid)
|
||||
local canPass = false
|
||||
for idx=1, table.getn(ticketGroup),2 do
|
||||
if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then
|
||||
canPass = true
|
||||
pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not canPass then
|
||||
pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)
|
||||
end
|
||||
q.end_other_pc_block()
|
||||
end
|
||||
d.setqf2("flame_dungeon","ticket_delete",1)
|
||||
d.setf("dungeon_enter",1)
|
||||
|
||||
-- 던전과 파티에 서로에 대한 정보를 저장한다.
|
||||
party.setf("dungeon_index", d.get_map_index())
|
||||
d.setf("party_leader_pid", party.get_leader_pid())
|
||||
end
|
||||
if d.getf("level") < 7 then --진행중이 아니면
|
||||
if d.getf("clear_count") == 6 then -- 방 여섯개 했으면 보스방
|
||||
d.setf("level",7)
|
||||
else
|
||||
local rand = number(1,6)--랜덤에서 방문체크는 따로 배열없이 방의 문의 열려있는지로 체크함
|
||||
local setlev = 0
|
||||
d.setf("level",7) -- 혹시 모를 문제가 생겨 레벨이 안잡힐경우를 대비해 보스룸으로 셋팅해둠
|
||||
for i=1,50 do
|
||||
setlev = setlev + 1
|
||||
if setlev > 6 then
|
||||
setlev = 1
|
||||
end
|
||||
if not d.is_unique_dead("door"..setlev) then
|
||||
rand = rand - 1
|
||||
if rand == 0 then
|
||||
d.setf("level",setlev)
|
||||
d.setf("clear_count",d.getf("clear_count")+1)
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if d.getf("level") == 1 then
|
||||
say(gameforge.flame_dungeon._260_say)
|
||||
notice_multiline(gameforge.flame_dungeon._260_say,d.notice)
|
||||
d.kill_unique("door1")
|
||||
d.kill_unique("idoor1")
|
||||
d.setf("level",11)
|
||||
d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt")
|
||||
|
||||
server_timer ("killed_A_1", 12, d.get_map_index())
|
||||
elseif d.getf("level") == 11 then
|
||||
say(gameforge.flame_dungeon._270_say)
|
||||
say_title(gameforge.flame_dungeon._280_sayTitle .. d.count_monster())
|
||||
elseif d.getf("level") == 2 then
|
||||
say(gameforge.flame_dungeon._290_say)
|
||||
say(gameforge.flame_dungeon._300_say)
|
||||
notice_multiline(gameforge.flame_dungeon._290_say,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._300_say,d.notice)
|
||||
d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- 봉인석 소환
|
||||
d.kill_unique("door2")
|
||||
d.kill_unique("idoor2")
|
||||
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_b.txt")
|
||||
d.setf("level",12)
|
||||
elseif d.getf("level") == 12 then
|
||||
say(gameforge.flame_dungeon._310_say)
|
||||
elseif d.getf("level") == 3 then
|
||||
say(gameforge.flame_dungeon._260_say)
|
||||
notice_multiline(gameforge.flame_dungeon._260_say,d.notice)
|
||||
d.kill_unique("door3")
|
||||
d.kill_unique("idoor3")
|
||||
d.setf("level",13)
|
||||
d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")
|
||||
server_timer ("killed_A_1", 12, d.get_map_index())
|
||||
elseif d.getf("level") == 13 then
|
||||
say(gameforge.flame_dungeon._270_say)
|
||||
say_title(gameforge.flame_dungeon._280_sayTitle..d.count_monster())
|
||||
elseif d.getf("level") == 4 then -- 474 178
|
||||
say(gameforge.flame_dungeon._320_notice)
|
||||
notice_multiline(gameforge.flame_dungeon._320_notice,d.notice)
|
||||
d.setf("level",14)
|
||||
d.kill_unique("door4")
|
||||
d.kill_unique("idoor4")
|
||||
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_d.txt")
|
||||
d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- 타겟몬스터 소한
|
||||
elseif d.getf("level") == 14 then
|
||||
say(gameforge.flame_dungeon._330_say)
|
||||
say(gameforge.flame_dungeon._340_say)
|
||||
elseif d.getf("level") == 5 then -- 510 355
|
||||
say(gameforge.flame_dungeon._350_say)
|
||||
say(gameforge.flame_dungeon._360_say)
|
||||
notice_multiline(gameforge.flame_dungeon._350_say,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._360_say,d.notice)
|
||||
d.kill_unique("door5")
|
||||
d.kill_unique("idoor5")
|
||||
d.setf("level",15)
|
||||
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
|
||||
local vis = { 0,0,0,0,0,0,0}
|
||||
for i=1,7 do
|
||||
vis[i] = 0
|
||||
end
|
||||
for i = 1, 7 do -- 랜덤하게 돌소환
|
||||
local ran = number(1,7)
|
||||
local st = 0
|
||||
for j = 1, 50 do
|
||||
st = st + 1
|
||||
if st > 7 then
|
||||
st = 1
|
||||
end
|
||||
if vis[st] == 0 then
|
||||
ran = ran - 1
|
||||
if ran == 0 then
|
||||
vis[st] = 1
|
||||
d.set_unique("stone5_"..st, d.spawn_mob(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif d.getf("level") == 15 then
|
||||
say(gameforge.flame_dungeon._370_say)
|
||||
elseif d.getf("level") == 6 then -- 507 490
|
||||
say(gameforge.flame_dungeon._380_say)
|
||||
notice_multiline(gameforge.flame_dungeon._380_say,d.notice)
|
||||
d.setf("level",16)
|
||||
d.kill_unique("door6")
|
||||
d.kill_unique("idoor6")
|
||||
d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt")
|
||||
d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- 타겟오브젝트 소환
|
||||
elseif d.getf("level") == 16 then
|
||||
say(gameforge.flame_dungeon._390_say)
|
||||
say(gameforge.flame_dungeon._400_say)
|
||||
elseif d.getf("level") == 7 then
|
||||
-- setskin(NOWINDOW)
|
||||
flame_dungeon.go_boss()
|
||||
else
|
||||
say(gameforge.flame_dungeon._410_say)
|
||||
end
|
||||
npc.unlock()
|
||||
end
|
||||
|
||||
|
||||
|
||||
when dungeon_end_timer.server_timer begin -- 종료 타이머 (끝나고 나가는거)
|
||||
local setting = flame_dungeon.setting()
|
||||
if d.select(get_server_timer_arg()) then
|
||||
flame_dungeon.clear_timer(d.get_map_index())
|
||||
d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2])
|
||||
d.exit_all()
|
||||
d.setf("party_leader_pid", 0)
|
||||
end
|
||||
end
|
||||
|
||||
when killed_A_1.server_timer begin -- 타이머 돌리기1 (level1,level3)
|
||||
if d.select(get_server_timer_arg()) then
|
||||
if d.count_monster() <= 0 then -- 1레벨 몬스터 전멸시
|
||||
if d.getf("level") == 11 then
|
||||
notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
|
||||
else
|
||||
notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
|
||||
end
|
||||
d.setf("level",0)
|
||||
else
|
||||
server_timer ("killed_A_1", 6, get_server_timer_arg())
|
||||
end
|
||||
end
|
||||
end
|
||||
when killed_A_2.server_timer begin -- 타이머 돌리기2 (1과 2 번갈아가면서 돌아감)
|
||||
if d.select(get_server_timer_arg()) then
|
||||
if d.count_monster() <= 0 then -- 1레벨 몬스터 전멸시
|
||||
if d.getf("level") == 11 then
|
||||
notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
|
||||
else
|
||||
notice_multiline(gameforge.flame_dungeon._420_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
|
||||
end
|
||||
d.setf("level",0)
|
||||
else
|
||||
server_timer ("killed_A_2", 6, get_server_timer_arg())
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2레벨 봉인석 열쇠 드랍
|
||||
local i = number(1, 100) -- 100분의 1 확률로 열쇠드랍
|
||||
if i == 1 then
|
||||
game.drop_item (30329, 1)
|
||||
end
|
||||
end
|
||||
when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2레벨 열쇠 먹었을때
|
||||
local i = number(1, 5) -- 5분의 1 확률로 진짜 열쇠
|
||||
if i == 1 then
|
||||
npc.purge()
|
||||
item.remove()
|
||||
notice_multiline(gameforge.flame_dungeon._440_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
|
||||
flame_dungeon.level_clear()
|
||||
else
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._450_say)
|
||||
end
|
||||
end
|
||||
|
||||
when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin
|
||||
notice_multiline(gameforge.flame_dungeon._460_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
|
||||
flame_dungeon.level_clear()
|
||||
end
|
||||
|
||||
when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5레벨 봉인석 열쇠 드랍
|
||||
local i = number(1, 30) -- 30분의 1 확률로 열쇠드랍
|
||||
if i == 1 then
|
||||
game.drop_item (30330, 1)
|
||||
end
|
||||
end
|
||||
when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5레벨 진짜열쇠 먹었을때
|
||||
local setting = flame_dungeon.setting()
|
||||
if npc.get_vid() == d.get_unique_vid("stone5_1") then -- 첫번째 꺼는 선행되어야 할 일이 필요없으니 찾자마자 제거해줌
|
||||
npc.purge()
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._470_say)
|
||||
d.setf("stonekill",2) -- 2번 돌을 죽여라
|
||||
if d.count_monster() < 100 then
|
||||
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
|
||||
end
|
||||
elseif npc.get_vid() == d.get_unique_vid("stone5_2") then
|
||||
if d.getf("stonekill") == 2 then -- 2번돌을 죽일 차롄데 2번돌에게 열쇠를 먹였을 때
|
||||
npc.purge()
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._480_say)
|
||||
d.setf("stonekill",3)
|
||||
if d.count_monster() < 100 then
|
||||
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
|
||||
end
|
||||
else
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._490_say)
|
||||
-- say("2번")
|
||||
end
|
||||
elseif npc.get_vid() == d.get_unique_vid("stone5_3") then
|
||||
if d.getf("stonekill") == 3 then
|
||||
npc.purge()
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._500_say)
|
||||
d.setf("stonekill",4)
|
||||
if d.count_monster() < 100 then
|
||||
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
|
||||
end
|
||||
else
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._490_say)
|
||||
-- say("3번")
|
||||
end
|
||||
elseif npc.get_vid() == d.get_unique_vid("stone5_4") then
|
||||
if d.getf("stonekill") == 4 then
|
||||
npc.purge()
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._510_say)
|
||||
d.setf("stonekill",5)
|
||||
if d.count_monster() < 100 then
|
||||
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
|
||||
end
|
||||
else
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._490_say)
|
||||
-- say("4번")
|
||||
end
|
||||
elseif npc.get_vid() == d.get_unique_vid("stone5_5") then
|
||||
if d.getf("stonekill") == 5 then
|
||||
npc.purge()
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._520_say)
|
||||
d.setf("stonekill",6)
|
||||
if d.count_monster() < 100 then
|
||||
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
|
||||
end
|
||||
else
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._490_say)
|
||||
-- say("5번")
|
||||
end
|
||||
elseif npc.get_vid() == d.get_unique_vid("stone5_6") then
|
||||
if d.getf("stonekill") == 6 then
|
||||
npc.purge()
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._530_say)
|
||||
d.setf("stonekill",7)
|
||||
if d.count_monster() < 100 then
|
||||
d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")
|
||||
end
|
||||
else
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._490_say)
|
||||
-- say("6번")
|
||||
end
|
||||
else
|
||||
if d.getf("stonekill") == 7 then
|
||||
npc.purge()
|
||||
item.remove()
|
||||
notice_multiline(gameforge.flame_dungeon._440_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
|
||||
flame_dungeon.level_clear()
|
||||
else
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._490_say)
|
||||
-- say("7번")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- 망마석 파괴했을 때
|
||||
notice_multiline(gameforge.flame_dungeon._540_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._430_notice,d.notice)
|
||||
flame_dungeon.level_clear()
|
||||
end
|
||||
|
||||
when 6091.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- 보스 죽였을때
|
||||
notice_multiline(gameforge.flame_dungeon._550_notice,d.notice)
|
||||
notice_multiline(gameforge.flame_dungeon._560_notice,d.notice)
|
||||
server_timer("dungeon_end_timer", 60,d.get_map_index())
|
||||
flame_dungeon.level_clear()
|
||||
|
||||
-- 파티원 중, 야마천 잡는 퀘스트(104렙, 105렙 퀘스트) 진행중인 사람이 있으면 퀘스트 클리어 되도록.
|
||||
if party.is_party() then
|
||||
party.setf("flame_dungeon_boss_kill_count", 1)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
@ -1,541 +0,0 @@
|
||||
quest main_quest_flame_lv100 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 100 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
-- 탁기의 정체
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv100._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv100._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._030_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._040_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._060_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._070_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._080_say)
|
||||
--다음 스테이트로
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when enter begin
|
||||
--몬스터 처치 수 설정
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._090_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._010_sendLetter)
|
||||
--남은 처치 수 안내문
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._100_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv100._110_say)
|
||||
--남은 처치 수 안내문
|
||||
say(gameforge.main_quest_lv98._680_counterName)
|
||||
say(string.format(gameforge.main_quest_lv98._670_sayReward, 300 - pc.getqf("kill_count_1")))
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv100._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._120_say)
|
||||
end
|
||||
|
||||
when 2202.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
when 2203.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
when 2204.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
when 2205.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
-- 이 아래는 보험용으로 같은 이름의 vnum이 다른 몬스터를 잡았을때도 퀘스트가 클리어 되도록 하였다.
|
||||
when 7020.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
when 7021.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
when 7022.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
when 7023.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv100.kill_count()
|
||||
end
|
||||
|
||||
function kill_count()
|
||||
local total_remain = 0
|
||||
local remain1 = 300 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
total_remain = total_remain + remain1
|
||||
q.set_counter_value(total_remain)
|
||||
if total_remain == 0 then
|
||||
set_state ("state1_3")
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("kill_count_1", 0)
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._130_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv100._140_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv100._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._150_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 38143000))
|
||||
pc.give_exp2(38143000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 149000))
|
||||
pc.change_money(149000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30051),1))
|
||||
pc.give_item2(30051, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50814),10))
|
||||
pc.give_item2(50814, 10)
|
||||
say()
|
||||
|
||||
--다음 스테이트로
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- 탁기의 저지1-1
|
||||
state state2_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._160_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20001)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20001))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._160_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv100._170_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.main_quest_flame_lv100._160_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._180_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._190_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._200_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._210_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._220_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._230_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin -- 재료를 모아오는 부분. 재료를 모두 모은 시점이 파악이 안될 경우 이 state 에서 퀘스트를 완료할 수 있다.
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._240_notice,notice)
|
||||
end
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._160_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_flame_lv100._250_say)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._260_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv100._270_say)
|
||||
say(gameforge.main_quest_flame_lv100._250_say)
|
||||
|
||||
local remain1 = 10 - pc.count_item(90010)
|
||||
local remain2 = 50 - pc.count_item(30010)
|
||||
local remain3 = 10 - pc.count_item(30025)
|
||||
local remain4 = 200 - pc.count_item(51001)
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
|
||||
say(string.format(gameforge.main_quest_lv98._690_sayReward,item_name(90010) ,remain1,item_name(30010) ,remain2))
|
||||
say(string.format(gameforge.main_quest_lv98._690_sayReward,item_name(30025) , remain3,item_name(51001) , remain4))
|
||||
say()
|
||||
q.set_counter_value(remain1 + remain2 + remain3 + remain4)
|
||||
|
||||
local check = remain1 + remain2 + remain3 + remain4
|
||||
|
||||
if check <= 0 then
|
||||
set_state (state2_3)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.main_quest_flame_lv100._160_sendLetter begin
|
||||
if pc.count_item(90010) >= 10 and pc.count_item(30010) >= 50
|
||||
and pc.count_item(30025) >= 10 and pc.count_item(51001) >= 200 then
|
||||
|
||||
pc.remove_item ( 90010,10)
|
||||
pc.remove_item ( 30010,50)
|
||||
pc.remove_item ( 30025,10)
|
||||
pc.remove_item ( 51001,200)
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._280_say)
|
||||
wait()
|
||||
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
|
||||
pc.give_exp2(48584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 150000))
|
||||
pc.change_money(150000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30015),2))
|
||||
pc.give_item2(30015, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70043),1))
|
||||
pc.give_item2_select(70043)
|
||||
item.set_socket(2, 60)
|
||||
set_state (state3_1)
|
||||
else
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._290_say)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin -- 재료를 모두 모았다. 하지만 이 후에 재료를 다시 제거할 경우, 연금술사에게 말을 걸면 state2_2로 다시 넘어가게 된다.
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._300_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._160_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20001)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20001))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._160_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv100._310_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.main_quest_flame_lv100._160_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
if pc.count_item(90010) >= 10 and pc.count_item(30010) >= 50
|
||||
and pc.count_item(30025) >= 10 and pc.count_item(51001) >= 200 then
|
||||
|
||||
pc.remove_item ( 90010,10)
|
||||
pc.remove_item ( 30010,50)
|
||||
pc.remove_item ( 30025,10)
|
||||
pc.remove_item ( 51001,200)
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._280_say)
|
||||
wait()
|
||||
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
|
||||
pc.give_exp2(48584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 150000))
|
||||
pc.change_money(150000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30015),2))
|
||||
pc.give_item2(30015, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70043),1))
|
||||
pc.give_item2_select(70043)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
|
||||
set_state (state3_1)
|
||||
else
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._290_say)
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 탁기의 저지1-2
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._320_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20001)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20001))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._320_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv100._170_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.main_quest_flame_lv100._320_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._330_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._340_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._350_say)
|
||||
--다음 스테이트로
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._240_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._320_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20016)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20016))
|
||||
end
|
||||
q.set_counter_name(gameforge.main_quest_flame_lv100._250_say)
|
||||
q.set_counter_value(1)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._360_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv100._370_say)
|
||||
say(gameforge.main_quest_flame_lv100._250_say)
|
||||
say(gameforge.main_quest_flame_lv100._380_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20016.chat.gameforge.main_quest_flame_lv100._320_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20016))
|
||||
say(gameforge.main_quest_flame_lv100._390_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._400_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20016))
|
||||
say(gameforge.main_quest_flame_lv100._410_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._420_say)
|
||||
|
||||
pc.give_item2(31077, 1)
|
||||
--다음 스테이트로
|
||||
set_state (state3_3)
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.main_quest_flame_lv100._320_sendLetter begin
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._430_say)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._440_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._320_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20001)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20001))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv100._320_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv100._310_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.main_quest_flame_lv100._320_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
pc.remove_item(31077, pc.count_item(31077))
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._450_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 35843000))
|
||||
pc.give_exp2(35843000)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 152000))
|
||||
pc.change_money(152000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50708),10))
|
||||
pc.give_item2(50708, 10)
|
||||
|
||||
say()
|
||||
say_reward(string.format(gameforge.main_quest_flame_lv99._430_say, 101))
|
||||
|
||||
--다음 스테이트로
|
||||
set_state (__COMPLETE__)
|
||||
set_quest_state ("main_quest_flame_lv101", "state0")
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,521 +0,0 @@
|
||||
quest main_quest_flame_lv101 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 101 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
|
||||
-- 동굴의 정체
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv101._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._030_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._040_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._050_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv101._070_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._080_say)
|
||||
--다음 스테이트로
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin -- 단서 X, 부하 X
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._090_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
q.set_counter_value(2)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._100_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv101._110_say)
|
||||
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(31074), 1))
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(31079), 1))
|
||||
say()
|
||||
say_reward(gameforge.main_quest_flame_lv101._120_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._130_say)
|
||||
end
|
||||
|
||||
when 20393.click begin
|
||||
say(gameforge.main_quest_flame_lv101._140_say)
|
||||
set_state (state1_3) -- 단서 X, 부하 O
|
||||
end
|
||||
|
||||
when kill with pc.get_map_index() >= 351 * 10000 and pc.get_map_index() < (351 + 1) *10000 begin
|
||||
if number(1,100) == 1 then
|
||||
pc.give_item2(31074, 1)
|
||||
set_state (state1_4) -- 단서 O, 부하 X
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin -- 단서 X, 부하 O
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._150_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
q.set_counter_value(1)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._100_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv101._110_say)
|
||||
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(31074), 1))
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(31079), 0))
|
||||
say()
|
||||
say_reward(gameforge.main_quest_flame_lv101._120_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._160_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._180_say)
|
||||
end
|
||||
|
||||
when kill with pc.get_map_index() >= 351 * 10000 and pc.get_map_index() < (351 + 1) *10000 begin
|
||||
if number(1,100) == 1 then
|
||||
pc.give_item2(31074, 1)
|
||||
set_state ("state1_5") -- 단서 O, 부하 O
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_4 begin -- 단서 O, 부하 X
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._190_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
q.set_counter_value(1)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._100_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv101._110_say)
|
||||
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(31074), 0))
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say, item_name(31079), 1))
|
||||
say()
|
||||
say_reward(gameforge.main_quest_flame_lv101._120_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._200_say)
|
||||
end
|
||||
|
||||
when 20393.click begin
|
||||
say(gameforge.main_quest_flame_lv101._140_say)
|
||||
set_state (state1_5)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_5 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._210_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv101._220_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
--아이템 제거
|
||||
pc.remove_item(31074, pc.count_item(31074))
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._230_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv101._250_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(gameforge.main_quest_flame_lv101._260_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv101._270_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._280_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 37003000))
|
||||
pc.give_exp2(37003000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 153000))
|
||||
pc.change_money(153000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30047),2))
|
||||
pc.give_item2(30047, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(27992),2)) -- 백진주
|
||||
pc.give_item2(27992, 1)
|
||||
pc.give_item2(27992, 1)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 초마단의 명패 해독
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv101._300_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._310_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._330_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv101._340_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._350_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._360_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
--아이템 지급 설정
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
main_quest_flame_lv101.item_count()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._100_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv101._520_say)
|
||||
--남은 아이템 안내문
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(31080), 1 - pc.count_item(31080)))
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._370_say)
|
||||
end
|
||||
|
||||
when 2206.kill begin
|
||||
if number(1,100) == 1 then
|
||||
pc.give_item2(31080, 1)
|
||||
main_quest_flame_lv101.item_count()
|
||||
end
|
||||
end
|
||||
|
||||
function item_count()
|
||||
if pc.count_item(31080) >= 1 then
|
||||
set_state ("state2_3")
|
||||
end
|
||||
q.set_counter_value(1 - pc.count_item(31080))
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._380_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv101._390_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
--아이템 제거
|
||||
pc.remove_item(31080, pc.count_item(31080))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._400_say)
|
||||
--다음 스테이트로
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
|
||||
pc.give_exp2( 48584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 154000))
|
||||
pc.change_money(154000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72024),1)) -- 행운의 금화
|
||||
pc.give_item2_select(72024)
|
||||
item.set_socket(2, 180)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71094),1)) -- 선인의 교훈
|
||||
pc.give_item2(71094, 1)
|
||||
say()
|
||||
set_state (state2_4)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_4 begin
|
||||
when enter begin
|
||||
--시간제한 설정
|
||||
pc.setqf("limit_time", get_time() + 60*60*24)
|
||||
end
|
||||
|
||||
when login begin
|
||||
--시간제한 설정
|
||||
local remain_time = pc.getqf("limit_time") - get_time()
|
||||
timer("time_over", remain_time)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv101._390_say)
|
||||
--npc 타겟 안내문
|
||||
local remain_time = pc.getqf("limit_time") - get_time()
|
||||
local left_hour = math.mod(remain_time / (60 * 60), 24);
|
||||
local left_minute = math.mod(remain_time / 60, 60);
|
||||
say(string.format(gameforge.main_quest_flame_lv101._410_say, left_hour, left_minute))
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._420_say)
|
||||
end
|
||||
|
||||
when time_over.timer begin
|
||||
set_state ("state3_1")
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("limit_time", 0);
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 명패의 진실
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._430_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._430_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv101._300_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv101._430_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._440_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._450_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv101._340_say)
|
||||
wait()--추가 대화
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._470_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._430_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv101._480_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv101._490_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv101._430_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._500_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._510_say)
|
||||
wait()--추가 대화
|
||||
say_title(gameforge.main_quest_lv27._120_sayTitle)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
|
||||
pc.give_exp2( 48584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 156000))
|
||||
pc.change_money( 156000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1)) -- 통행증명서
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72016),1)) -- 제3의 손
|
||||
pc.give_item2_select(72016)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 102))
|
||||
--다음 스테이트로
|
||||
set_state (__COMPLETE__)
|
||||
set_quest_state ("main_quest_flame_lv102", "state0")
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -1,623 +0,0 @@
|
||||
quest main_quest_flame_lv102 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 102 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
|
||||
-- 돌입
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv102._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv102._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._030_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._040_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._050_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._060_say)
|
||||
--다음 스테이트로
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
state state1_2 begin --몬스터 잡아오는 부분.
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._070_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._010_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
main_quest_flame_lv102.kill_count()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._080_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv102._090_say)
|
||||
--남은 아이템 안내문
|
||||
local remain1 = 30 - pc.getqf("mob1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 30 - pc.getqf("mob2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 30 - pc.getqf("mob3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
local remain4 = 30 - pc.getqf("mob4")
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
say(string.format(gameforge.main_quest_flame_lv102._100_say,mob_name(6005), remain1,mob_name(6006), remain2))
|
||||
say(string.format(gameforge.main_quest_flame_lv102._110_say,mob_name(6007), remain3,mob_name(6008), remain4))
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv102._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._120_say)
|
||||
end
|
||||
|
||||
when 6005.kill begin
|
||||
if number(1,1) == 1 then
|
||||
local kill_count = pc.getqf("mob1")
|
||||
pc.setqf("mob1", kill_count + 1)
|
||||
main_quest_flame_lv102.kill_count()
|
||||
end
|
||||
end
|
||||
|
||||
when 6006.kill begin
|
||||
if number(1,1) == 1 then
|
||||
local kill_count = pc.getqf("mob2")
|
||||
pc.setqf("mob2", kill_count + 1)
|
||||
main_quest_flame_lv102.kill_count()
|
||||
end
|
||||
end
|
||||
|
||||
when 6007.kill begin
|
||||
if number(1,1) == 1 then
|
||||
local kill_count = pc.getqf("mob3")
|
||||
pc.setqf("mob3", kill_count + 1)
|
||||
main_quest_flame_lv102.kill_count()
|
||||
end
|
||||
end
|
||||
|
||||
when 6008.kill begin
|
||||
if number(1,1) == 1 then
|
||||
local kill_count = pc.getqf("mob4")
|
||||
pc.setqf("mob4", kill_count + 1)
|
||||
main_quest_flame_lv102.kill_count()
|
||||
end
|
||||
end
|
||||
|
||||
function kill_count()
|
||||
local total_remain = 0
|
||||
local remain1 = 30 - pc.getqf("mob1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 30 - pc.getqf("mob2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 30 - pc.getqf("mob3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
local remain4 = 30 - pc.getqf("mob4")
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
total_remain = remain1 + remain2 + remain3 + remain4
|
||||
q.set_counter_value(total_remain)
|
||||
if total_remain == 0 then
|
||||
set_state ("state1_3")
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._130_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv102._140_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv102._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._150_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._170_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 49584000))
|
||||
pc.give_exp2( 49584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 157000))
|
||||
pc.change_money(157000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72723),1)) -- 화룡의 축복(소)
|
||||
pc.give_item2(72723, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70050),1)) -- 선왕의 증표
|
||||
pc.give_item2(70050, 1)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- 염왕 야마천?!
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._180_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._180_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv102._190_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv102._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._200_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._220_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._250_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._050_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._260_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._270_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._180_sendLetter)
|
||||
--아이템 지급 설정
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._280_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv102._290_say)
|
||||
--남은 아이템 안내문
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(31081), 10 - pc.count_item(31081)))
|
||||
say_reward(gameforge.main_quest_flame_lv102._300_sayReward)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv102._180_sendLetter begin
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._310_say)
|
||||
end
|
||||
|
||||
when kill with pc.get_map_index() >= 351 * 10000 and pc.get_map_index() < (351 + 1) *10000 begin
|
||||
if number(1,50) == 1 then
|
||||
pc.give_item2(31081, 1)
|
||||
main_quest_flame_lv102.item_count()
|
||||
end
|
||||
end
|
||||
|
||||
function item_count()
|
||||
if pc.count_item(31081) >= 10 then
|
||||
set_state ("state2_3")
|
||||
end
|
||||
q.set_counter_value(10 - pc.count_item(31081))
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._320_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._180_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._180_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv102._140_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv102._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
--아이템 제거
|
||||
pc.remove_item(31081, pc.count_item(31081))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._330_say)
|
||||
|
||||
wait()--추가 대화
|
||||
say_title(gameforge.main_quest_lv27._120_sayTitle)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 52484000))
|
||||
pc.give_exp2( 52484000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 159000))
|
||||
pc.change_money( 159000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72301),5)) -- 축복의 서
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
--다음 스테이트로
|
||||
set_state (state3_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 탁기의 정화
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._350_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._350_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv102._190_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv102._350_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._360_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._380_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._390_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._050_say)
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._410_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._350_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._420_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv102._430_say)
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
|
||||
local remain1 = 50 - pc.count_item(50819)
|
||||
local remain2 = 100 - pc.count_item(51001)
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
|
||||
say(string.format(gameforge.main_quest_lv98._690_sayReward,item_name(50819) ,remain1,item_name(51001) ,remain2))
|
||||
|
||||
q.set_counter_value(remain1 + remain2)
|
||||
|
||||
if remain1 + remain2 == 0 then
|
||||
set_state ("state3_3")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
when 20017.chat.gameforge.main_quest_flame_lv102._350_sendLetter begin
|
||||
if pc.count_item(50819) >= 50 and pc.count_item(51001) >= 100 then
|
||||
pc.remove_item ( 50819,50)
|
||||
pc.remove_item ( 51001,100)
|
||||
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._440_say)
|
||||
wait()
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
|
||||
pc.give_exp2( 48584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 160000))
|
||||
pc.change_money( 160000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50708),10)) -- 산뽕나무
|
||||
pc.give_item2(50708, 10)
|
||||
say()
|
||||
|
||||
set_state (state4_1)
|
||||
else
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._450_say)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._460_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._350_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20017)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20017))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._350_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv102._470_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20017.chat.gameforge.main_quest_flame_lv102._350_sendLetter begin
|
||||
if pc.count_item(50819) >= 50 and pc.count_item(51001) >= 100 then
|
||||
pc.remove_item ( 50819,50)
|
||||
pc.remove_item ( 51001,100)
|
||||
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._440_say)
|
||||
wait()
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
|
||||
pc.give_exp2( 48584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 160000))
|
||||
pc.change_money( 160000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50708),10)) -- 산뽕나무
|
||||
pc.give_item2(50708, 10)
|
||||
say()
|
||||
|
||||
set_state (state4_1)
|
||||
else
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._450_say)
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- 정화액 전달
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._480_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20017)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20017))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._480_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv102._490_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20017.chat.gameforge.main_quest_flame_lv102._480_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._500_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._510_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._520_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._050_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._530_say)
|
||||
--다음 스테이트로
|
||||
set_state (state4_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._540_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._480_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv102._480_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv102._140_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20017.chat.gameforge.main_quest_flame_lv102._480_sendLetter begin
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._550_say)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv102._480_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._560_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._570_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._580_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 42584000))
|
||||
pc.give_exp2(42584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 161000))
|
||||
pc.change_money( 161000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(76011),1)) -- 육도
|
||||
pc.give_item2_select(76011)
|
||||
item.set_socket(2, 60)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50707),5)) -- 만병초
|
||||
pc.give_item2(50707, 5)
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 103))
|
||||
--다음 스테이트로
|
||||
set_state (__COMPLETE__)
|
||||
set_quest_state ("main_quest_flame_lv103", "state0")
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,694 +0,0 @@
|
||||
quest main_quest_flame_lv103 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 103 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
|
||||
-- 적룡성을 향해
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv103._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._030_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._040_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._060_say)
|
||||
--다음 스테이트로
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._070_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20393)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20393))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._080_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv103._090_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._100_say)
|
||||
end
|
||||
|
||||
when 20393.click begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20393))
|
||||
say(gameforge.main_quest_flame_lv103._110_say)
|
||||
--다음 스테이트로
|
||||
set_state (state1_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv103._120_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._130_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._150_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._170_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 42554000))
|
||||
pc.give_exp2( 42554000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 163000))
|
||||
pc.change_money( 163000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 점진적 격파
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._180_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._180_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv103._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._190_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._200_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._210_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
--몬스터 처치 수 설정
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._230_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._180_sendLetter)
|
||||
--남은 처치 수 안내문
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
main_quest_flame_lv103.kill_count_state2_2()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._240_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv103._250_say)
|
||||
--남은 처치 수 안내문
|
||||
say(gameforge.main_quest_lv98._680_counterName)
|
||||
say(string.format(gameforge.main_quest_lv98._670_sayReward,"적룡성 마물", 1000 - pc.getqf("kill_count_1")))
|
||||
say_reward(gameforge.main_quest_flame_lv103._260_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._180_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._270_say)
|
||||
end
|
||||
|
||||
when kill with pc.get_map_index() >= 351 * 10000 and pc.get_map_index() < (351 + 1) *10000 begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv103.kill_count_state2_2()
|
||||
end
|
||||
|
||||
function kill_count_state2_2()
|
||||
local total_remain = 0
|
||||
local remain1 = 1000 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
total_remain = remain1
|
||||
q.set_counter_value(total_remain)
|
||||
if total_remain == 0 then
|
||||
set_state ("state2_3")
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("kill_count_1", 0)
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._280_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._180_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._180_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv103._120_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._290_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 53784000))
|
||||
pc.give_exp2(53784000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 164000))
|
||||
pc.change_money(164000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70024),1)) -- 축복의 구슬
|
||||
pc.give_item2(70024, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30039),3)) -- 헝겊조각
|
||||
pc.give_item2(30039, 3)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state3_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 적룡성의 골칫거리
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._300_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._300_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv103._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._300_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._310_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
--다음 스테이트로
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
--몬스터 처치 수 설정
|
||||
pc.setqf("kill_count_1", 0)
|
||||
pc.setqf("kill_count_2", 0)
|
||||
pc.setqf("kill_count_3", 0)
|
||||
pc.setqf("kill_count_4", 0)
|
||||
pc.setqf("kill_count_5", 0)
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._330_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._300_sendLetter)
|
||||
--남은 처치 수 안내문
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
main_quest_flame_lv103.kill_count_state3_2()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._340_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv103._350_say)
|
||||
--남은 처치 수 안내문
|
||||
say(gameforge.main_quest_lv98._680_counterName)
|
||||
local total_remain = 0
|
||||
local remain1 = 50 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
total_remain = total_remain + remain1
|
||||
local remain2 = 50 - pc.getqf("kill_count_2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
total_remain = total_remain + remain2
|
||||
local remain3 = 50 - pc.getqf("kill_count_3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
total_remain = total_remain + remain3
|
||||
local remain4 = 50 - pc.getqf("kill_count_4")
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
total_remain = total_remain + remain4
|
||||
local remain5 = 50 - pc.getqf("kill_count_5")
|
||||
if remain5 < 0 then
|
||||
remain5 = 0
|
||||
end
|
||||
say(string.format(gameforge.main_quest_lv98._690_sayReward ,mob_name(6005), remain1,mob_name(6006), remain2))
|
||||
say(string.format(gameforge.main_quest_lv98._690_sayReward ,mob_name(6007), remain3,mob_name(6008), remain4))
|
||||
say(string.format(gameforge.main_quest_lv98._670_sayReward,mob_name(6009), remain5))
|
||||
say_reward(gameforge.main_quest_flame_lv103._260_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._300_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._360_say)
|
||||
end
|
||||
|
||||
when 6005.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv103.kill_count_state3_2()
|
||||
end
|
||||
|
||||
when 6006.kill begin
|
||||
local kill_count = pc.getqf("kill_count_2")
|
||||
pc.setqf("kill_count_2", kill_count+1)
|
||||
main_quest_flame_lv103.kill_count_state3_2()
|
||||
end
|
||||
|
||||
when 6007.kill begin
|
||||
local kill_count = pc.getqf("kill_count_3")
|
||||
pc.setqf("kill_count_3", kill_count+1)
|
||||
main_quest_flame_lv103.kill_count_state3_2()
|
||||
end
|
||||
|
||||
when 6008.kill begin
|
||||
local kill_count = pc.getqf("kill_count_4")
|
||||
pc.setqf("kill_count_4", kill_count+1)
|
||||
main_quest_flame_lv103.kill_count_state3_2()
|
||||
end
|
||||
|
||||
when 6009.kill begin
|
||||
local kill_count = pc.getqf("kill_count_5")
|
||||
pc.setqf("kill_count_5", kill_count+1)
|
||||
main_quest_flame_lv103.kill_count_state3_2()
|
||||
end
|
||||
|
||||
function kill_count_state3_2()
|
||||
local total_remain = 0
|
||||
local remain1 = 50 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
total_remain = total_remain + remain1
|
||||
local remain2 = 50 - pc.getqf("kill_count_2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
total_remain = total_remain + remain2
|
||||
local remain3 = 50 - pc.getqf("kill_count_3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
total_remain = total_remain + remain3
|
||||
local remain4 = 50 - pc.getqf("kill_count_4")
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
total_remain = total_remain + remain4
|
||||
local remain5 = 50 - pc.getqf("kill_count_5")
|
||||
if remain5 < 0 then
|
||||
remain5 = 0
|
||||
end
|
||||
total_remain = total_remain + remain5
|
||||
q.set_counter_value(total_remain)
|
||||
if total_remain == 0 then
|
||||
set_state ("state3_3")
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("kill_count_1", 0)
|
||||
pc.setqf("kill_count_2", 0)
|
||||
pc.setqf("kill_count_3", 0)
|
||||
pc.setqf("kill_count_4", 0)
|
||||
pc.setqf("kill_count_5", 0)
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._370_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._300_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._300_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv103._120_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._300_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._380_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 54491000))
|
||||
pc.give_exp2(54491000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 166000))
|
||||
pc.change_money(166000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72001),1)) -- 경험의 반지
|
||||
pc.give_item2_select(72001)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state4_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 야마천 토벌1-1
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv103._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._390_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._400_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
--다음 스테이트로
|
||||
set_state (state4_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._410_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._080_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv103._420_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv103._390_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv103._430_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv103._440_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv103._460_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
--다음 스테이트로
|
||||
set_state (state4_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_3 begin
|
||||
when enter begin
|
||||
--몬스터 처치 수 설정
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._480_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
--남은 처치 수 안내문
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
main_quest_flame_lv103.kill_count_state4_3()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._490_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv103._500_say)
|
||||
--남은 처치 수 안내문
|
||||
say(gameforge.main_quest_flame_lv103._510_say)
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say,mob_name(8057), 1 - pc.getqf("kill_count_1")))
|
||||
say_reward(gameforge.main_quest_flame_lv103._260_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._390_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._520_say)
|
||||
end
|
||||
|
||||
when 8057.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv103.kill_count_state4_3()
|
||||
end
|
||||
|
||||
function kill_count_state4_3()
|
||||
local total_remain = 0
|
||||
local remain1 = 1 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
total_remain = total_remain + remain1
|
||||
q.set_counter_value(total_remain)
|
||||
if total_remain == 0 then
|
||||
set_state ("state4_4")
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("kill_count_1", 0)
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
state state4_4 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._530_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv103._120_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv103._390_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._540_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 49586000))
|
||||
pc.give_exp2(49586000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 167000))
|
||||
pc.change_money(167000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(31078),1)) -- 정화액 -- 수정
|
||||
pc.give_item2(31078, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30015),2)) -- 사귀의 유품
|
||||
pc.give_item2(30015, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70043),1)) -- 도둑의 장갑
|
||||
pc.give_item2_select(70043)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 104))
|
||||
--다음 스테이트로
|
||||
set_state (__COMPLETE__)
|
||||
set_quest_state ("main_quest_flame_lv104", "state0")
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
@ -1,738 +0,0 @@
|
||||
quest main_quest_flame_lv104 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 104 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
|
||||
-- 야마천 토벌 1-2
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv104._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv104._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._030_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._040_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--다음 스테이트로
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when enter begin
|
||||
--몬스터 처치 수 설정
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._060_notice,notice)
|
||||
end
|
||||
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._010_sendLetter)
|
||||
--남은 처치 수 안내문
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
|
||||
-- 파티원에 의해 야마천을 잡았을 때, 퀘스트가 클리어 되도록 하는 코드.
|
||||
if party.is_party() then
|
||||
local map_index = pc.get_map_index()
|
||||
-- 적룡성에 입장했다는 것을 기록함.
|
||||
if map_index >= 351 * 10000 and map_index < (351 + 1) *10000 then
|
||||
pc.setqf("in_dungeon", 1)
|
||||
else -- 적룡성으로 부터 나왔을때, 보스를 잡고 나왔으면 퀘스트를 클리어 해준다.
|
||||
if pc.getqf("in_dungeon") == 1 then
|
||||
if party.getf("flame_dungeon_boss_kill_count") == 1 then
|
||||
set_state (state1_3)
|
||||
end
|
||||
pc.setqf("in_dungeon", 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
main_quest_flame_lv104.kill_count()
|
||||
end
|
||||
|
||||
when logout begin
|
||||
if party.is_party() then
|
||||
if party.getf("flame_dungeon_boss_kill_count") == 0 then
|
||||
pc.setqf("in_dungeon", 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._070_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv104._080_say)
|
||||
--남은 처치 수 안내문
|
||||
say(gameforge.main_quest_lv98._680_counterName)
|
||||
say(string.format(gameforge.main_quest_lv98._670_sayReward,mob_name(6091), 1 - pc.getqf("kill_count_1")))
|
||||
say_reward(gameforge.main_quest_flame_lv104._090_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv104._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._100_say)
|
||||
end
|
||||
|
||||
|
||||
when 31078.use begin -- 정화액
|
||||
affect.add(apply.MAX_HP, 1000, 60 * 60)
|
||||
affect.add(apply.DEF_GRADE_BONUS, 25, 60 * 60)
|
||||
affect.add(apply.MELEE_MAGIC_ATTBONUS_PER, 10, 60 * 60)
|
||||
pc.remove_item(31078,1)
|
||||
end
|
||||
|
||||
when 6091.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv104.kill_count()
|
||||
end
|
||||
|
||||
function kill_count()
|
||||
local total_remain = 0
|
||||
local remain1 = 1 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
total_remain = total_remain + remain1
|
||||
q.set_counter_value(total_remain)
|
||||
if total_remain == 0 then
|
||||
set_state ("state1_3")
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("kill_count_1", 0)
|
||||
pc.setqf("in_dungeon", 0)
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._120_notice,notice)
|
||||
|
||||
say_title(mob_name(6091))
|
||||
say(gameforge.main_quest_flame_lv104._110_say)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv104._130_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv104._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._140_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._150_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._160_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 64491000))
|
||||
pc.give_exp2(64491000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 168000))
|
||||
pc.change_money(168000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71026),1)) -- 현철
|
||||
pc.give_item2(71026, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71025),2)) -- 야공석
|
||||
pc.give_item2(71025, 1)
|
||||
pc.give_item2(71025, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70102),5)) -- 선두
|
||||
pc.give_item2(70102, 1)
|
||||
pc.give_item2(70102, 1)
|
||||
pc.give_item2(70102, 1)
|
||||
pc.give_item2(70102, 1)
|
||||
pc.give_item2(70102, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50706),20)) -- 영지버섯
|
||||
pc.give_item2(50706, 20)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 음모의 저지1-1
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._170_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._170_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv104._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv104._170_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._180_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._190_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._200_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._170_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._210_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv104._220_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv104._170_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._230_say)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._170_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._240_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._250_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._260_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._270_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._280_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._170_sendLetter)
|
||||
--아이템 지급 설정
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
main_quest_flame_lv104.item_count_state2_3()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._280_notice)
|
||||
say(gameforge.main_quest_flame_lv104._290_say)
|
||||
--남은 아이템 안내문
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
local item_count = pc.getqf("item_count_1")
|
||||
local remain = 5 - item_count
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(31082), remain))
|
||||
say_reward(gameforge.main_quest_flame_lv104._090_sayReward)
|
||||
main_quest_flame_lv104.item_count_state2_3()
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._170_sendLetter with pc.count_item(31082) > 0 begin
|
||||
pc.remove_item(31082, 1)
|
||||
-- 납품 성공
|
||||
if number(1, 100) <= 90 then
|
||||
local item_count = pc.getqf("item_count_1")
|
||||
item_count = item_count + 1
|
||||
pc.setqf("item_count_1", item_count)
|
||||
if item_count < 5 then -- 아직 부족함.
|
||||
say_title(mob_name(20380))
|
||||
say(string.format(gameforge.main_quest_flame_lv104._300_say, 5 - item_count))
|
||||
else -- 납품 갯수를 모두 채움.
|
||||
pc.remove_item(31082, pc.count_item(31082))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._310_say)
|
||||
wait()
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 57583000))
|
||||
pc.give_exp2(57583000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 170000))
|
||||
pc.change_money( 170000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72723),1)) -- 화룡의 축복(소)
|
||||
pc.give_item2(72723, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70050),1)) -- 선왕의 증표
|
||||
pc.give_item2(70050, 1)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state3_1)
|
||||
end
|
||||
else -- 납품 실패
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._320_say)
|
||||
end
|
||||
|
||||
main_quest_flame_lv104.item_count_state2_3()
|
||||
end
|
||||
|
||||
when 6005.kill begin
|
||||
if number(1,50) == 1 then
|
||||
pc.give_item2(31082, 1)
|
||||
main_quest_flame_lv104.item_count_state2_3()
|
||||
end
|
||||
end
|
||||
|
||||
when 6006.kill begin
|
||||
if number(1,50) == 1 then
|
||||
pc.give_item2(31082, 1)
|
||||
main_quest_flame_lv104.item_count_state2_3()
|
||||
end
|
||||
end
|
||||
|
||||
when 6007.kill begin
|
||||
if number(1,50) == 1 then
|
||||
pc.give_item2(31082, 1)
|
||||
main_quest_flame_lv104.item_count_state2_3()
|
||||
end
|
||||
end
|
||||
|
||||
when 6008.kill begin
|
||||
if number(1,50) == 1 then
|
||||
pc.give_item2(31082, 1)
|
||||
main_quest_flame_lv104.item_count_state2_3()
|
||||
end
|
||||
end
|
||||
|
||||
when 6009.kill begin
|
||||
if number(1,50) == 1 then
|
||||
pc.give_item2(31082, 1)
|
||||
main_quest_flame_lv104.item_count_state2_3()
|
||||
end
|
||||
end
|
||||
|
||||
function item_count_state2_3()
|
||||
local item_count = pc.getqf("item_count_1")
|
||||
local remain = 5 - item_count
|
||||
if remain <= 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("item_count_1", 0)
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 음모의 저지1-2
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._330_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._330_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv104._340_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._330_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._350_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._360_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--다음 스테이트로
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._370_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._330_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._280_notice)
|
||||
say(gameforge.main_quest_flame_lv104._380_say)
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
|
||||
local remain1 = 100 - pc.count_item(50814)
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(50814) ,remain1))
|
||||
say()
|
||||
q.set_counter_value(remain1)
|
||||
|
||||
if remain1 == 0 then
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._330_sendLetter begin
|
||||
--아이템 제거
|
||||
if pc.count_item(50814) >= 100 then
|
||||
pc.remove_item(50814, 100)
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._390_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._400_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._410_say)
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 46581000))
|
||||
pc.give_exp2(46581000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 171000))
|
||||
pc.change_money( 171000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30045),2)) -- 전갈의 독침
|
||||
pc.give_item2(30045, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50817),10)) -- 진활심액
|
||||
pc.give_item2(50817, 10)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state4_1)
|
||||
else
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._420_say)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._430_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._330_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._280_notice)
|
||||
say(gameforge.main_quest_flame_lv104._440_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._330_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
--아이템 제거
|
||||
if pc.count_item(50814) >= 100 then
|
||||
pc.remove_item(50814, 100)
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._390_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._400_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._410_say)
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 46581000))
|
||||
pc.give_exp2(46581000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 171000))
|
||||
pc.change_money( 171000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30045),2)) -- 전갈의 독침
|
||||
pc.give_item2(30045, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50817),10)) -- 진활심액
|
||||
pc.give_item2(50817, 10)
|
||||
say()
|
||||
|
||||
--다음 스테이트로
|
||||
set_state (state4_1)
|
||||
else
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._420_say)
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 음모의 저지1-3
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv104._340_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._450_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._460_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._470_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--다음 스테이트로
|
||||
set_state (state4_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._480_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
--아이템 지급 설정
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
main_quest_flame_lv104.item_count_state4_2()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv104._490_say)
|
||||
--남은 아이템 안내문
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
local remain = 5 - pc.count_item(31024)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(31024), remain))
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._450_sendLetter begin
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._500_say)
|
||||
end
|
||||
|
||||
when 3291.kill begin
|
||||
if number(1,1) == 1 then
|
||||
pc.give_item2(31024, 1)
|
||||
main_quest_flame_lv104.item_count_state4_2()
|
||||
end
|
||||
end
|
||||
|
||||
function item_count_state4_2()
|
||||
if pc.count_item(31024) >= 5 then
|
||||
set_state ("state4_3")
|
||||
end
|
||||
q.set_counter_value(5 - pc.count_item(31024))
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._520_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv104._440_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._450_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
if pc.count_item(31024) < 5 then
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._500_say)
|
||||
|
||||
set_state (state4_2)
|
||||
else
|
||||
pc.remove_item(31024, 5)
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._510_say)
|
||||
|
||||
wait()
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 45580000))
|
||||
pc.give_exp2( 45580000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 173000))
|
||||
pc.change_money(173000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30015),2)) -- 사귀의 유품
|
||||
pc.give_item2(30015, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70043),1)) -- 도둑의 장갑
|
||||
pc.give_item2_select(70043)
|
||||
item.set_socket(2, 60)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(31083),3)) -- 금제 주머니
|
||||
pc.give_item2(31083, 3)
|
||||
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 105))
|
||||
--다음 스테이트로
|
||||
set_quest_state ("main_quest_flame_lv105", "state0")
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
@ -1,541 +0,0 @@
|
||||
quest main_quest_flame_lv105 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 105 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
|
||||
-- 격전의 시작
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv105._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv105._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
pc.remove_item(31083, 3)
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._030_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._040_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._050_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._060_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._070_say)
|
||||
--다음 스테이트로
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when enter begin
|
||||
--몬스터 처치 수 설정
|
||||
pc.setqf("kill_count_1", 0)
|
||||
pc.setqf("kill_count_2", 0)
|
||||
pc.setqf("kill_count_3", 0)
|
||||
pc.setqf("kill_count_4", 0)
|
||||
pc.setqf("kill_count_5", 0)
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._080_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._010_sendLetter)
|
||||
--남은 처치 수 안내문
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
main_quest_flame_lv105.kill_count_state1_2()
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._090_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv105._100_say)
|
||||
--남은 처치 수 안내문
|
||||
say(gameforge.main_quest_lv98._680_counterName)
|
||||
local remain1 = 10 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 10 - pc.getqf("kill_count_2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 10 - pc.getqf("kill_count_3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
local remain4 = 10 - pc.getqf("kill_count_4")
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
local remain5 = 10 - pc.getqf("kill_count_5")
|
||||
if remain5 < 0 then
|
||||
remain5 = 0
|
||||
end
|
||||
say(string.format(gameforge.main_quest_lv98._690_sayReward ,mob_name(6005), remain1,mob_name(6006), remain2))
|
||||
say(string.format(gameforge.main_quest_lv98._690_sayReward ,mob_name(6007), remain3,mob_name(6008), remain4))
|
||||
say(string.format(gameforge.main_quest_lv98._670_sayReward,mob_name(6009), remain5))
|
||||
say_reward(gameforge.main_quest_flame_lv105._110_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv105._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._120_say)
|
||||
end
|
||||
|
||||
when 6005.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv105.kill_count_state1_2()
|
||||
end
|
||||
|
||||
when 6006.kill begin
|
||||
local kill_count = pc.getqf("kill_count_2")
|
||||
pc.setqf("kill_count_2", kill_count+1)
|
||||
main_quest_flame_lv105.kill_count_state1_2()
|
||||
end
|
||||
|
||||
when 6007.kill begin
|
||||
local kill_count = pc.getqf("kill_count_3")
|
||||
pc.setqf("kill_count_3", kill_count+1)
|
||||
main_quest_flame_lv105.kill_count_state1_2()
|
||||
end
|
||||
|
||||
when 6008.kill begin
|
||||
local kill_count = pc.getqf("kill_count_4")
|
||||
pc.setqf("kill_count_4", kill_count+1)
|
||||
main_quest_flame_lv105.kill_count_state1_2()
|
||||
end
|
||||
|
||||
when 6009.kill begin
|
||||
local kill_count = pc.getqf("kill_count_5")
|
||||
pc.setqf("kill_count_5", kill_count+1)
|
||||
main_quest_flame_lv105.kill_count_state1_2()
|
||||
end
|
||||
|
||||
function kill_count_state1_2()
|
||||
local total_remain = 0
|
||||
local remain1 = 10 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
total_remain = total_remain + remain1
|
||||
local remain2 = 10 - pc.getqf("kill_count_2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
total_remain = total_remain + remain2
|
||||
local remain3 = 10 - pc.getqf("kill_count_3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
total_remain = total_remain + remain3
|
||||
local remain4 = 10 - pc.getqf("kill_count_4")
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
total_remain = total_remain + remain4
|
||||
local remain5 = 10 - pc.getqf("kill_count_5")
|
||||
if remain5 < 0 then
|
||||
remain5 = 0
|
||||
end
|
||||
total_remain = total_remain + remain5
|
||||
q.set_counter_value(total_remain)
|
||||
if total_remain == 0 then
|
||||
set_state ("state1_3")
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("kill_count_1", 0)
|
||||
pc.setqf("kill_count_2", 0)
|
||||
pc.setqf("kill_count_3", 0)
|
||||
pc.setqf("kill_count_4", 0)
|
||||
pc.setqf("kill_count_5", 0)
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._130_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv105._140_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv105._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._150_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
|
||||
pc.give_exp2(48584000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 174000))
|
||||
pc.change_money(174000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30033),3)) -- 깨진 사기그릇
|
||||
pc.give_item2(30033, 3)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 은원
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._160_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._160_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv105._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv105._160_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._170_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._180_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._070_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
--몬스터 처치 수 설정
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._190_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._160_sendLetter)
|
||||
--남은 처치 수 안내문
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
|
||||
-- 파티원에 의해 야마천을 잡았을 때, 퀘스트가 클리어 되도록 하는 코드.
|
||||
if party.is_party() then
|
||||
local map_index = pc.get_map_index()
|
||||
-- 적룡성에 입장했다는 것을 기록함.
|
||||
if map_index >= 351 * 10000 and map_index < (351 + 1) *10000 then
|
||||
pc.setqf("in_dungeon", 1)
|
||||
else -- 적룡성으로 부터 나왔을때, 보스를 잡고 나왔으면 퀘스트를 클리어 해준다.
|
||||
if pc.getqf("in_dungeon") == 1 then
|
||||
if party.getf("flame_dungeon_boss_kill_count") == 1 then
|
||||
set_state (state2_3)
|
||||
end
|
||||
pc.setqf("in_dungeon", 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
main_quest_flame_lv105.kill_count_state2_2()
|
||||
end
|
||||
|
||||
when logout begin
|
||||
if party.is_party() then
|
||||
if party.getf("flame_dungeon_boss_kill_count") == 0 then
|
||||
pc.setqf("in_dungeon", 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._200_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv105._210_say)
|
||||
--남은 처치 수 안내문
|
||||
say(gameforge.main_quest_lv98._680_counterName)
|
||||
say(string.format(gameforge.main_quest_lv98._670_sayReward,mob_name(6091), 1 - pc.getqf("kill_count_1")))
|
||||
say_reward(gameforge.main_quest_flame_lv105._110_sayReward)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv105._160_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._220_say)
|
||||
end
|
||||
|
||||
when 6091.kill begin
|
||||
local kill_count = pc.getqf("kill_count_1")
|
||||
pc.setqf("kill_count_1", kill_count+1)
|
||||
main_quest_flame_lv105.kill_count_state2_2()
|
||||
end
|
||||
|
||||
function kill_count_state2_2()
|
||||
local total_remain = 0
|
||||
local remain1 = 1 - pc.getqf("kill_count_1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
total_remain = total_remain + remain1
|
||||
q.set_counter_value(total_remain)
|
||||
if total_remain == 0 then
|
||||
set_state ("state2_3")
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
pc.setqf("kill_count_1", 0)
|
||||
pc.setqf("in_dungeon", 0)
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._230_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._160_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._160_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv105._140_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv105._160_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._240_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 60583000))
|
||||
pc.give_exp2(60583000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 175000))
|
||||
pc.change_money(175000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71095),1))
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71026),1)) -- 현철
|
||||
pc.give_item2(71026, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71025),2)) -- 야공석
|
||||
pc.give_item2(71025, 1)
|
||||
pc.give_item2(71025, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72001),1)) -- 경험의 반지
|
||||
pc.give_item2_select(72001)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (state3_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 적룡의 금제
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._250_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._250_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv105._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv105._250_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._260_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._270_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._070_say)
|
||||
--다음 스테이트로
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(31083),1))
|
||||
pc.give_item2(31083, 1)
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._280_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._250_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_flame_lv105._290_say)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._300_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv105._310_say)
|
||||
|
||||
say_title(gameforge.main_quest_flame_lv105._290_say)
|
||||
say(gameforge.main_quest_flame_lv105._320_say)
|
||||
say()
|
||||
say_reward(gameforge.main_quest_flame_lv105._110_sayReward)
|
||||
end
|
||||
|
||||
when 20390.take with item.vnum == 31083 begin
|
||||
item.remove()
|
||||
say_title(gameforge.main_quest_flame_lv105._330_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv105._340_say)
|
||||
--다음 스테이트로
|
||||
set_state (state3_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._350_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._250_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv105._250_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv105._140_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv105._250_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._360_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._370_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._380_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584000))
|
||||
pc.give_exp2(177000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 177000))
|
||||
pc.change_money(177000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72024),1)) -- 행운의 금화
|
||||
pc.give_item2_select(72024)
|
||||
item.set_socket(2, 180)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71094),1)) -- 선인의 교훈
|
||||
pc.give_item2(71094, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71001),5)) -- 주안술서
|
||||
pc.give_item2(71001, 5)
|
||||
say()
|
||||
--다음 스테이트로
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
end
|
@ -1,483 +0,0 @@
|
||||
quest main_quest_flame_lv99 begin
|
||||
state start begin
|
||||
when login or levelup or enter with pc.get_level() >= 99 begin
|
||||
if pc.getf("main_quest_lv98", "__status")==main_quest_lv98.__COMPLETE__ then
|
||||
set_state ( state0 )
|
||||
end
|
||||
end
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 99 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
|
||||
-- 다시 시작되는 추적 : 임무받기
|
||||
state state1_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv99._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv99._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._030_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._050_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._060_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._070_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._080_say)
|
||||
--다음 스테이트로
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin -- 다시 시작되는 추적 : 정찰하기
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(string.format(gameforge.main_quest_flame_lv99._090_notice, 127, 928),notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
target.pos ("__TARGET__",127,928,62,"")
|
||||
send_letter (gameforge.main_quest_flame_lv99._010_sendLetter)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._100_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv99._110_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv99._010_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._120_say)
|
||||
end
|
||||
|
||||
-- 도착 --
|
||||
when __TARGET__.target.arrive begin
|
||||
target.delete("__TARGET__")
|
||||
set_state (state1_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin -- 다시 시작되는 추적 : 완료 & 보상받기
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv99._130_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._010_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._010_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv99._140_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv99._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._150_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._160_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._170_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 33003000))
|
||||
pc.give_exp2( 33003000)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 145000))
|
||||
pc.change_money( 145000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50705),10))
|
||||
pc.give_item2(50705, 10)
|
||||
say()
|
||||
|
||||
--다음 스테이트로
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 조사1-1 : 임무받기
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv99._020_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv99._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._190_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._070_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin -- 조사1-1 : 학자에게 찾아가는 내용..
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv99._200_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv99._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._210_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._240_say)
|
||||
--다음 스테이트로
|
||||
set_state (state2_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin -- 조사1-1 : 몬스터 잡기
|
||||
when enter begin
|
||||
notice_multiline(gameforge.main_quest_flame_lv99._250_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._260_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv99._270_say)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv99._180_sendLetter begin
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._280_say)
|
||||
end
|
||||
|
||||
when 2202.kill begin
|
||||
if number(1,100) == 1 then
|
||||
set_state (state2_4)
|
||||
end
|
||||
end
|
||||
|
||||
when 2203.kill begin
|
||||
if number(1,100) == 1 then
|
||||
set_state (state2_4)
|
||||
end
|
||||
end
|
||||
|
||||
when 2204.kill begin
|
||||
if number(1,100) == 1 then
|
||||
set_state (state2_4)
|
||||
end
|
||||
end
|
||||
|
||||
when 2205.kill begin
|
||||
if number(1,100) == 1 then
|
||||
set_state (state2_4)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- 이 아래는 보험용으로 같은 이름의 vnum이 다른 몬스터를 잡았을때도 퀘스트가 클리어 되도록 하였다.
|
||||
when 7020.kill begin
|
||||
if number(1,100) == 1 then
|
||||
set_state (state2_4)
|
||||
end
|
||||
end
|
||||
|
||||
when 7021.kill begin
|
||||
if number(1,100) == 1 then
|
||||
set_state (state2_4)
|
||||
end
|
||||
end
|
||||
|
||||
when 7022.kill begin
|
||||
if number(1,100) == 1 then
|
||||
set_state (state2_4)
|
||||
end
|
||||
end
|
||||
|
||||
when 7023.kill begin
|
||||
if number(1,100) == 1 then
|
||||
set_state (state2_4)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
-- 조사1-1 : 학자에게 돌아가기.
|
||||
state state2_4 begin
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv99._290_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv99._200_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv99._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._300_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 37003000))
|
||||
pc.give_exp2(37003000)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 146000))
|
||||
pc.change_money(146000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72001),1))
|
||||
pc.give_item2_select(72001)
|
||||
item.set_socket(2, 60)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30046),1))
|
||||
pc.give_item2(30046, 1)
|
||||
say()
|
||||
|
||||
--다음 스테이트로
|
||||
set_state (state3_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- 조사1-2 : 임무받기
|
||||
state state3_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._310_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._310_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv99._320_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv99._310_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._330_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._340_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._350_say)
|
||||
wait()--추가 대화
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._360_say)
|
||||
--다음 스테이트로
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin -- 조사1-2
|
||||
when enter begin
|
||||
notice_multiline(gameforge.main_quest_flame_lv99._370_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._310_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20391)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20391))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._380_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv99._390_say)
|
||||
say(gameforge.main_quest_lv97._670_counterName)
|
||||
say(string.format(gameforge.main_quest_lv90._1190_say,item_name(31076), 1 - pc.count_item(31076)))
|
||||
--say_reward(locale.target_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv99._310_sendLetter begin
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._400_say)
|
||||
end
|
||||
|
||||
-- 태양초 NPC를 클릭하여 태양초 아이템을 얻는 부분.
|
||||
when 20391.click begin
|
||||
target.delete("__TARGET__")
|
||||
pc.give_item2(31076, 1)
|
||||
set_state (state3_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_3 begin -- 조사1-2
|
||||
when enter begin
|
||||
-- notice 설정
|
||||
notice_multiline(gameforge.main_quest_flame_lv99._410_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._310_sendLetter)
|
||||
--npc 타겟
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_flame_lv99._310_sendLetter)
|
||||
say(gameforge.main_quest_flame_lv99._200_say)
|
||||
--npc 타겟 안내문
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv99._310_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
if pc.count_item(31076) >= 1 then
|
||||
pc.remove_item ( 31076, pc.count_item(31076))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._420_say)
|
||||
--보상
|
||||
wait()--reward
|
||||
say_title(gameforge.main_quest_lv27._120_sayTitle)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 35003000))
|
||||
pc.give_exp2(35003000)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 147000))
|
||||
pc.change_money(147000)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30021),1))
|
||||
pc.give_item2(30021, 1)
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 100))
|
||||
|
||||
--다음 스테이트로
|
||||
set_state (__COMPLETE__)
|
||||
set_quest_state ("main_quest_flame_lv100", "state0")
|
||||
else
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._400_say)
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
end
|
@ -1,484 +0,0 @@
|
||||
quest main_quest_lv60 begin
|
||||
state start begin
|
||||
when login or levelup or enter with pc.get_level() >= 60 begin
|
||||
if pc.getf("main_quest_lv55", "__status")==main_quest_lv55.__COMPLETE__ then
|
||||
set_state ( quest1_begin )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
state run begin
|
||||
when login or levelup or enter with pc.get_level() >= 60 begin
|
||||
set_state ( quest1_begin )
|
||||
end
|
||||
end
|
||||
|
||||
state quest1_begin begin
|
||||
when letter begin --퀘스트편지1
|
||||
send_letter(gameforge.main_quest_lv60._10_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local vid_20011 = find_npc_by_vnum(20011)
|
||||
if 0 != vid_20011 then
|
||||
target.vid("__TARGET__", vid_20011, mob_name(20011))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin -- 퀘스트편지1 내용
|
||||
say_title(gameforge.main_quest_lv60._10_sendLetter)
|
||||
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._20_say)
|
||||
say("")
|
||||
|
||||
end
|
||||
|
||||
when __TARGET__.target.click begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._30_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv60._40_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._50_say)
|
||||
say("")
|
||||
|
||||
set_state ( quest2_begin )
|
||||
end
|
||||
end
|
||||
|
||||
state quest2_begin begin
|
||||
-----------퀘스트편지2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._60_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20011)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20011))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._60_sendLetter)
|
||||
say(gameforge.main_quest_lv60._70_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when __TARGET__.target.click begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._80_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._90_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv60._100_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._110_say)
|
||||
|
||||
set_state (quest2_ongoing)
|
||||
end
|
||||
end
|
||||
|
||||
state quest2_ongoing begin --을두지와 대화하고 탁본을 받아오라는 미션을 받았다.
|
||||
-----------퀘스트편지2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._60_sendLetter)
|
||||
|
||||
-- 흑암국의 고대 비석을 가리킨다. (지금은 마을 npc를 가리킨다.)
|
||||
local v = find_npc_by_vnum(20371)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20371))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._60_sendLetter)
|
||||
say(gameforge.main_quest_lv60._120_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--을두지를 선택하면 해당 퀘스트에 관련된 대화를 나눌 수 있다.
|
||||
when 20011.gameforge.main_quest_lv60._60_sendLetter begin
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._130_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--흑암국의 고대 비석을 누르면.
|
||||
when 20371.click begin
|
||||
target.delete("__TARGET__")
|
||||
say_reward(gameforge.main_quest_lv60._140_sayReward)
|
||||
pc.give_item2 ( 31001 )
|
||||
say("")
|
||||
|
||||
set_state (quest2_end)
|
||||
end
|
||||
end
|
||||
|
||||
--고대 비석의 탁본을 얻었다.
|
||||
state quest2_end begin
|
||||
-----------퀘스트편지2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._60_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20011)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20011))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._60_sendLetter)
|
||||
say(gameforge.main_quest_lv60._150_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when __TARGET__.target.click begin
|
||||
pc.remove_item ( 31001, 1 )
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._160_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._170_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._180_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 980000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 175000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71001).." ".."10"..locale.count_postfix))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50721).." ".."10"..locale.count_postfix))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50725).." ".."10"..locale.count_postfix))
|
||||
say("")
|
||||
|
||||
-- 보상 지급 --
|
||||
-- 이곳에 보상 지급을 구현한다.
|
||||
pc.give_exp2(980000)
|
||||
pc.change_money(175000)
|
||||
|
||||
pc.give_item2(71001, 10) -- 주안술서
|
||||
pc.give_item2(50721, 10) -- 복숭아꽃
|
||||
pc.give_item2(50725, 10) -- 석창포
|
||||
|
||||
|
||||
|
||||
set_state (quest3_begin)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
state quest3_begin begin
|
||||
-------퀘스트편지3---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20011)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20011))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._220_sendLetter)
|
||||
say(gameforge.main_quest_lv60._230_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when __TARGET__.target.click begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._240_say)
|
||||
say("")
|
||||
|
||||
set_state (quest3_ongoing1)
|
||||
end
|
||||
end
|
||||
|
||||
state quest3_ongoing1 begin
|
||||
-------퀘스트편지3---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- 흑적귀목의 위치를 표시한다.--
|
||||
--------------------------------
|
||||
--------------------------------
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._220_sendLetter)
|
||||
say(gameforge.main_quest_lv60._230_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--을두지를 선택하면 해당 퀘스트에 관련된 대화를 나눌 수 있다.
|
||||
when 20011.chat.gameforge.main_quest_lv60._220_sendLetter begin
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._260_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--흑적귀목을 잡았을때 1000분의 1 확률로 퀘스트 조건을 만족시켜 준다.
|
||||
when 2305.kill begin
|
||||
if number (1,100) == 1 then
|
||||
pc.give_item2 (31002, 1 )
|
||||
say_reward(gameforge.main_quest_lv60._270_sayReward)
|
||||
say("")
|
||||
|
||||
--3.진행
|
||||
set_state (quest3_end1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- 고대문서를 하나 얻었다. 을두지에게 가져다줘야한다.
|
||||
state quest3_end1 begin
|
||||
-------퀘스트편지3---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20011)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20011))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._220_sendLetter)
|
||||
say(gameforge.main_quest_lv60._230_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when __TARGET__.target.click begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._280_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--@@@@@@@@@버그@@@@@@@@@@--
|
||||
--1. 다음의 내용이 뜨지 않는다.
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
pc.remove_item (31002, 1 )
|
||||
say(gameforge.main_quest_lv60._290_say)
|
||||
say("")
|
||||
|
||||
set_state (quest3_ongoing2)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
state quest3_ongoing2 begin
|
||||
--이 상태에 처음 들어오게 되면 '남은 고대의 문서' 퀘스트 플래그를 생성한다.
|
||||
-- 초기값은 9로 시작해서 몬스터를 잡을때마다 1씩 줄여 0까지 간다.
|
||||
-- 0이 되면 퀘스트 스테이트를 변화시킨다.
|
||||
when enter begin
|
||||
pc.setqf("remain_item",9)
|
||||
end
|
||||
|
||||
--*************************--
|
||||
-------퀘스트편지3_1---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- 흑적귀목의 위치를 표시한다.--
|
||||
--------------------------------
|
||||
--------------------------------
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._220_sendLetter)
|
||||
say(gameforge.main_quest_lv60._230_say)
|
||||
say("")
|
||||
q.set_counter(gameforge.main_quest_lv60._250_counter, pc.getqf("remain_item"))
|
||||
end
|
||||
-----------------------------
|
||||
--*************************--
|
||||
|
||||
|
||||
|
||||
--흑적귀목을 잡았을때 1000분의 1 확률로 남은 고대 문서 수를 줄여준다.
|
||||
when 2305.kill begin
|
||||
if number (1,100) == 1 then
|
||||
local remain_item_prev = pc.getqf("remain_item")
|
||||
pc.setqf("remain_item",remain_item_prev-1)
|
||||
|
||||
pc.give_item2 (31002, 1 )
|
||||
notice(string.format(gameforge.main_quest_lv60._300_say,pc.getqf("remain_item")))
|
||||
|
||||
-- 모든 문서를 다 얻었으면 다음 퀘스트로 넘어간다.
|
||||
if pc.getqf("remain_item")==0 then
|
||||
-- 흑적귀목의 위치 표시를 없애준다 --
|
||||
-------------------------------------
|
||||
-------------------------------------
|
||||
set_state (quest3_end2)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
state quest3_end2 begin
|
||||
--*************************--
|
||||
-------퀘스트편지3_1---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20011)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20011))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._220_sendLetter)
|
||||
say(gameforge.main_quest_lv60._230_say)
|
||||
say("")
|
||||
q.set_counter(gameforge.main_quest_lv60._250_counter, pc.getqf("remain_item"))
|
||||
end
|
||||
-----------------------------
|
||||
--*************************--
|
||||
|
||||
when __TARGET__.target.click begin
|
||||
target.delete("__TARGET__")
|
||||
pc.remove_item (31002, pc.count_item (31002) )
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._310_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._320_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._330_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(locale.reward)
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 3300000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71094).." ".."3"..locale.count_postfix))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30056)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30025)))
|
||||
say("")
|
||||
|
||||
|
||||
-- 보상 지급 --
|
||||
pc.give_exp2(3300000)
|
||||
|
||||
pc.give_item2(71094, 3) -- 선인의 교훈 * 3
|
||||
pc.give_item2(30056) -- 거미줄
|
||||
pc.give_item2(30025) -- 거미의 독주머니
|
||||
|
||||
set_state (quest4_begin)
|
||||
end
|
||||
end
|
||||
|
||||
state quest4_begin begin
|
||||
--*************************--
|
||||
-------퀘스트편지4-----------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._340_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20011)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20011))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._340_sendLetter)
|
||||
say(gameforge.main_quest_lv60._350_say)
|
||||
say("")
|
||||
end
|
||||
-----------------------------
|
||||
--*************************--
|
||||
|
||||
|
||||
when __TARGET__.target.click begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._360_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._370_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._380_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._390_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20011))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.main_quest_lv60._400_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say_reward(gameforge.main_quest_lv60._410_sayReward)
|
||||
say("")
|
||||
|
||||
--@@@ 버그 @@@--
|
||||
--1. 퀘스트 편지가 새로 나타난다.
|
||||
clear_letter()
|
||||
set_quest_state ("main_quest_lv66", "state_0")
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,375 +0,0 @@
|
||||
quest main_quest_lv66 begin
|
||||
state start begin
|
||||
end
|
||||
state state_0 begin
|
||||
when login or levelup or enter with pc.level >= 66 begin
|
||||
set_state (state_1)
|
||||
end
|
||||
end
|
||||
state state_1 begin
|
||||
when letter begin
|
||||
send_letter (gameforge.main_quest_lv66._10_sendLetter)
|
||||
local v = find_npc_by_vnum (20011)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._10_sendLetter)
|
||||
say (gameforge.main_quest_lv66._20_say)
|
||||
end
|
||||
when 20011.chat.gameforge.main_quest_lv66._10_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title ( mob_name(20011))
|
||||
say(gameforge.main_quest_lv66._30_say)
|
||||
end
|
||||
when 1091.kill begin
|
||||
-- target.delete("__TARGET__")
|
||||
set_state (state_2)
|
||||
end
|
||||
end
|
||||
state state_2 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20011)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv66._10_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._10_sendLetter)
|
||||
say (gameforge.main_quest_lv66._40_say)
|
||||
end
|
||||
when 20011.chat.gameforge.main_quest_lv66._10_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title ( mob_name(20011))
|
||||
say(gameforge.main_quest_lv66._50_say)
|
||||
set_state (state_3)
|
||||
end
|
||||
end
|
||||
state state_3 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20011)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter(gameforge.main_quest_lv66._60_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._60_sendLetter)
|
||||
say(gameforge.main_quest_lv66._70_say)
|
||||
end
|
||||
when 20011.chat.gameforge.main_quest_lv66._60_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv66._80_say)
|
||||
wait()
|
||||
say_title ( mob_name(20011))
|
||||
say(gameforge.main_quest_lv66._90_say)
|
||||
wait()
|
||||
say_title ( mob_name(20011))
|
||||
say(gameforge.main_quest_lv66._100_say)
|
||||
wait()
|
||||
say_title ( mob_name(20011))
|
||||
say(gameforge.main_quest_lv66._110_say)
|
||||
wait()
|
||||
say_title ( mob_name(20011))
|
||||
say(gameforge.main_quest_lv66._120_say)
|
||||
wait()
|
||||
|
||||
--say_title ("보상 :")
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 5800000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72301).." ".."3"..locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30046)))
|
||||
|
||||
pc.give_exp2(5800000)
|
||||
|
||||
pc.give_item2(72301) -- 축복의 서 * 3
|
||||
pc.give_item2(72301)
|
||||
pc.give_item2(72301)
|
||||
pc.give_item2(30046) -- 전갈의 꼬리
|
||||
|
||||
set_state (state_4)
|
||||
end
|
||||
end
|
||||
state state_4 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (pc_find_square_guard_vid())
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv66._130_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._130_sendLetter)
|
||||
say (gameforge.main_quest_lv66._140_say)
|
||||
end
|
||||
when 11000.chat.gameforge.main_quest_lv66._130_sendLetter or 11002.chat.gameforge.main_quest_lv66._130_sendLetter or 11004.chat.gameforge.main_quest_lv66._130_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(11000))
|
||||
say(gameforge.main_quest_lv66._150_say)
|
||||
wait()
|
||||
say_title(mob_name(11000))
|
||||
say(gameforge.main_quest_lv66._160_say)
|
||||
set_state (state_5)
|
||||
end
|
||||
end
|
||||
state state_5 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter(gameforge.main_quest_lv66._170_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv66._170_sendLetter)
|
||||
say (gameforge.main_quest_lv66._140_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv66._170_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(gameforge.main_quest_lv66._190_sayTitle)
|
||||
say(gameforge.main_quest_lv66._200_say)
|
||||
set_state (state_6)
|
||||
end
|
||||
end
|
||||
state state_6 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv66._210_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._210_sendLetter)
|
||||
say (gameforge.main_quest_lv66._220_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv66._210_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(gameforge.main_quest_lv66._190_sayTitle)
|
||||
say(gameforge.main_quest_lv66._230_say)
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv66._240_say)
|
||||
wait()
|
||||
say_title(gameforge.main_quest_lv66._190_sayTitle)
|
||||
say(gameforge.main_quest_lv66._250_say)
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv66._260_say)
|
||||
wait()
|
||||
say_title(gameforge.main_quest_lv66._190_sayTitle)
|
||||
say(gameforge.main_quest_lv66._270_say)
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv66._280_say)
|
||||
wait()
|
||||
say_title(mob_name(20369))
|
||||
say(gameforge.main_quest_lv66._290_say)
|
||||
wait()
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._310_say)
|
||||
set_state (state_7)
|
||||
end
|
||||
end
|
||||
state state_7 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv66._320_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._320_sendLetter)
|
||||
say (gameforge.main_quest_lv66._330_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv66._320_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title( gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._340_say)
|
||||
wait()
|
||||
say_title( gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(string.format(gameforge.main_quest_lv66._350_say,item_name(30033)))
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv66._360_say)
|
||||
wait()
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._370_say)
|
||||
set_state (state_8)
|
||||
end
|
||||
end
|
||||
state state_8 begin
|
||||
when enter begin
|
||||
pc.setqf ("rgd_kill", 0)
|
||||
pc.setqf ("state_8_start", get_global_time())
|
||||
notice_multiline(string.format(gameforge.main_quest_lv66._380_notice, 30), notice)
|
||||
timer("rgd_kill_timer", 30 * 60 / 2)
|
||||
end
|
||||
when letter begin
|
||||
send_letter (gameforge.main_quest_lv66._390_sendLetter)
|
||||
local t = pc.getqf ("state_8_start") + 30 * 60 - get_global_time()
|
||||
q.set_clock(locale.stash.enlarge_1_timer, t)
|
||||
q.set_counter_name (mob_name (2313))
|
||||
q.set_counter_value (200)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._390_sendLetter)
|
||||
say (string.format(gameforge.main_quest_lv66._400_say, 200))
|
||||
local t = pc.getqf ("state_8_start") + 30 * 60 - get_global_time()
|
||||
if t < 0 then
|
||||
say(gameforge.main_quest_lv66._410_say)
|
||||
else
|
||||
say(string.format(gameforge.main_quest_lv66._420_say, t / 60))
|
||||
end
|
||||
end
|
||||
when 2313.kill begin
|
||||
if pc.getqf("rgd_kill") >= 200 - 1 then
|
||||
pc.give_item2 (31003, 1)
|
||||
pc.setqf ("rgd_kill", 0)
|
||||
q.set_counter_value (0)
|
||||
set_state (state_9)
|
||||
else
|
||||
pc.setqf ("rgd_kill", pc.getqf ("rgd_kill") + 1)
|
||||
q.set_counter_value (200 - pc.getqf ("rgd_kill"))
|
||||
end
|
||||
end
|
||||
when rgd_kill_timer.timer begin
|
||||
local t = pc.getqf ("state_8_start") + 30 * 60 - get_global_time()
|
||||
notice (string.format(gameforge.main_quest_lv66._420_say, t / 60))
|
||||
end
|
||||
end
|
||||
state state_9 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv66._390_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._390_sendLetter)
|
||||
say(gameforge.main_quest_lv66._430_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv66._390_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
pc.remove_item (31003, 1)
|
||||
if (pc.getqf ("state_8_start") + 30 * 60 - get_global_time()) >= 0 then
|
||||
q.done()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._440_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._450_say)
|
||||
wait()
|
||||
say_title (locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 2900000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 200000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30033)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50727).." ".."10"..locale.count_postfix))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50728).." ".."10"..locale.count_postfix))
|
||||
|
||||
pc.give_exp2(2900000)
|
||||
pc.change_money(200000)
|
||||
|
||||
pc.give_item2(30033) -- 깨진 사기그릇
|
||||
pc.give_item2(50727, 10) -- 만병초 10
|
||||
pc.give_item2(50728, 10) -- 산뽕나무 10
|
||||
|
||||
else
|
||||
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._460_say)
|
||||
wait()
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._470_say)
|
||||
wait()
|
||||
|
||||
say_title (locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 2000000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 100000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50727).." ".."10"..locale.count_postfix))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50728).." ".."10"..locale.count_postfix))
|
||||
|
||||
pc.give_exp2(2000000)
|
||||
pc.change_money(100000)
|
||||
|
||||
pc.give_item2(50727, 10) -- 만병초 10
|
||||
pc.give_item2(50728, 10) -- 산뽕나무 10
|
||||
|
||||
end
|
||||
set_state (state_10)
|
||||
end
|
||||
end
|
||||
state state_10 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20370)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv66._480_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._480_sendLetter)
|
||||
say(gameforge.main_quest_lv66._490_say)
|
||||
end
|
||||
when 20370.chat.gameforge.main_quest_lv66._480_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title( mob_name(20370))
|
||||
say(gameforge.main_quest_lv66._500_say)
|
||||
wait()
|
||||
say_title ( pc.getname())
|
||||
say(gameforge.main_quest_lv66._510_say)
|
||||
wait()
|
||||
say_title ( mob_name(20370))
|
||||
say(gameforge.main_quest_lv66._520_say)
|
||||
wait()
|
||||
say_title ( pc.getname())
|
||||
say(gameforge.main_quest_lv66._530_say)
|
||||
wait()
|
||||
say_title ( mob_name(20370))
|
||||
say(gameforge.main_quest_lv66._540_say)
|
||||
wait()
|
||||
say_title ( mob_name(20370))
|
||||
say(gameforge.main_quest_lv66._550_say)
|
||||
set_state (state_11)
|
||||
end
|
||||
end
|
||||
state state_11 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv66._560_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv66._560_sendLetter)
|
||||
say (gameforge.main_quest_lv66._570_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv66._560_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._580_say)
|
||||
wait()
|
||||
say_title ( pc.getname())
|
||||
say(gameforge.main_quest_lv66._590_say)
|
||||
wait()
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._600_say)
|
||||
wait()
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._610_say)
|
||||
wait()
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv66._620_say)
|
||||
set_state (__COMPLETE__)
|
||||
q.done()
|
||||
set_quest_state ("main_quest_lv72", "state_0")
|
||||
end
|
||||
end
|
||||
state __COMPLETE__ begin
|
||||
end
|
||||
end
|
@ -1,220 +0,0 @@
|
||||
quest main_quest_lv72 begin
|
||||
state start begin
|
||||
end
|
||||
state state_0 begin
|
||||
when login or levelup or enter with pc.level >= 72 begin
|
||||
set_state (state_1)
|
||||
end
|
||||
end
|
||||
state state_1 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter(gameforge.main_quest_lv72._10_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv72._10_sendLetter)
|
||||
say (gameforge.main_quest_lv72._20_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv72._10_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._30_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._40_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._50_say)
|
||||
set_state (state_2)
|
||||
end
|
||||
end
|
||||
state state_2 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20372)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter(gameforge.main_quest_lv72._60_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv72._60_sendLetter)
|
||||
say (gameforge.main_quest_lv72._70_say)
|
||||
end
|
||||
when 20372.click begin
|
||||
target.delete("__TARGET__")
|
||||
say(gameforge.main_quest_lv72._80_say)
|
||||
wait()
|
||||
say_title(mob_name(20372))
|
||||
say(gameforge.main_quest_lv72._90_say)
|
||||
wait()
|
||||
say_title(mob_name(20372))
|
||||
say(gameforge.main_quest_lv72._100_say)
|
||||
wait()
|
||||
say(gameforge.main_quest_lv72._110_say)
|
||||
pc.give_item2 (30160, 1)
|
||||
set_state (report_discovery)
|
||||
end
|
||||
end
|
||||
state report_discovery begin
|
||||
|
||||
when button or info begin
|
||||
return
|
||||
end
|
||||
|
||||
when 20369.chat.gameforge.main_quest_lv72._60_sendLetter begin
|
||||
pc.remove_item (30160)
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._120_say)
|
||||
wait()
|
||||
say_title ( pc.getname())
|
||||
say(gameforge.main_quest_lv72._130_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._140_say)
|
||||
wait()
|
||||
say_title ( pc.getname())
|
||||
say(gameforge.main_quest_lv72._150_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._160_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._170_say)
|
||||
wait()
|
||||
|
||||
if number (1,2) == 1 then
|
||||
drug = 30009
|
||||
else
|
||||
drug = 30083
|
||||
end
|
||||
say_title (locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 3100000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70005)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(drug)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30039)))
|
||||
|
||||
pc.give_exp2(3100000)
|
||||
|
||||
pc.give_item2(70005) -- 경험의 반지
|
||||
pc.give_item2(drug) -- 알수 없는 약 (+일 수도)
|
||||
pc.give_item2(30039) -- 헝겊조각
|
||||
|
||||
set_state (state_4)
|
||||
end
|
||||
end
|
||||
state state_4 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter(gameforge.main_quest_lv72._180_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv72._180_sendLetter)
|
||||
say(gameforge.main_quest_lv72._190_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv72._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._200_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._210_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._220_say)
|
||||
pc.setqf ("collect_beads", 0)
|
||||
|
||||
set_state (state_5)
|
||||
end
|
||||
end
|
||||
state state_5 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv72._180_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv72._180_sendLetter)
|
||||
say(gameforge.main_quest_lv72._190_say)
|
||||
end
|
||||
|
||||
when 1105.kill or 1106.kill or 1107.kill begin
|
||||
if number(1, 100) > 1 then
|
||||
return
|
||||
end
|
||||
|
||||
local n = pc.getqf ("pass_beads")
|
||||
local i = pc.count_item (31005)
|
||||
if n < 50 and pc.count_item (31005) < 50 - n then
|
||||
notice_multiline(gameforge.main_quest_lv72._240_notice, notice)
|
||||
notice_multiline(string.format(gameforge.main_quest_lv72._250_notice, 50 - n - 1), notice)
|
||||
pc.give_item2 (31005, 1)
|
||||
end
|
||||
end
|
||||
|
||||
when 20369.chat.gameforge.main_quest_lv72._180_sendLetter with pc.count_item (31005) > 0 begin
|
||||
local now = get_global_time()
|
||||
local today = now - math.mod (now, 86400)
|
||||
local can_report_num
|
||||
if pc.getqf ("last_access_date") != today then
|
||||
pc.setqf ("last_access_date", today)
|
||||
pc.setqf ("blue_bead_todays_report_num", 1)
|
||||
else
|
||||
local reported_num = pc.getqf("blue_bead_todays_report_num")
|
||||
|
||||
if 10 - reported_num <= 0 then
|
||||
say(gameforge.main_quest_lv72._260_say)
|
||||
return
|
||||
else
|
||||
if not pc.is_gm() then
|
||||
pc.setqf ("blue_bead_todays_report_num", reported_num + 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
pc.remove_item (31005, 1)
|
||||
local n = pc.getqf("pass_beads")
|
||||
if number (1,100) > 60 then
|
||||
say_title (mob_name(20369))
|
||||
say(gameforge.main_quest_lv72._270_say)
|
||||
return
|
||||
elseif n < 50 -1 then
|
||||
pc.setqf ("pass_beads", n + 1)
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say (string.format(gameforge.main_quest_lv72._280_say, 50 - n - 1))
|
||||
else
|
||||
pc.setqf("pass_beads", 0)
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv72._290_say)
|
||||
wait()
|
||||
say_title (locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 20000000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 225000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71035).." ".."3"..locale.count_postfix))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70043)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72024)))
|
||||
|
||||
pc.give_exp2(20000000)
|
||||
pc.change_money(225000)
|
||||
|
||||
pc.give_item2(71035)
|
||||
pc.give_item2(71035)
|
||||
pc.give_item2(71035)
|
||||
pc.give_item2(70043)
|
||||
pc.give_item2(72024)
|
||||
|
||||
wait()
|
||||
say(gameforge.main_quest_lv72._300_say)
|
||||
set_state (__COMPLETE__)
|
||||
q.done()
|
||||
set_quest_state ("main_quest_lv78", "state_0")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
end
|
||||
end
|
@ -1,228 +0,0 @@
|
||||
quest main_quest_lv78 begin
|
||||
state start begin
|
||||
end
|
||||
state state_0 begin
|
||||
when login or levelup or enter with pc.level >= 78 begin
|
||||
set_state (state_1)
|
||||
end
|
||||
end
|
||||
state state_1 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter(gameforge.main_quest_lv78._10_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv78._10_sendLetter)
|
||||
say (gameforge.main_quest_lv78._20_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv78._10_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._30_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._40_say)
|
||||
set_state (make_red_bead)
|
||||
end
|
||||
end
|
||||
state make_red_bead begin
|
||||
when enter begin
|
||||
pc.setqf ("first_make_time", 0)
|
||||
end
|
||||
when 2205.kill or 2204.kill or 2203.kill begin
|
||||
if number(1, 500) == 1 then
|
||||
pc.give_item2 (31007, 1)
|
||||
end
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv78._10_sendLetter begin
|
||||
if pc.count_item (31006) >= 20 then
|
||||
say_title (mob_name(20369))
|
||||
say(string.format(gameforge.main_quest_lv78._50_say, 20))
|
||||
wait()
|
||||
|
||||
say_title (locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 36000000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72725)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70024)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70004)))
|
||||
|
||||
pc.give_exp2(36000000)
|
||||
|
||||
pc.give_item2(72725) -- 수룡의 축복(대)
|
||||
pc.give_item2(70024) -- 축복의 구슬
|
||||
pc.give_item2(70004) -- 근면함의 훈장
|
||||
pc.remove_item (31006, pc.count_item (31006))
|
||||
set_state (state_2)
|
||||
return
|
||||
end
|
||||
local t = get_global_time()
|
||||
local today = t - math.mod (t, 86400)
|
||||
if pc.getqf ("first_make_time") != today then
|
||||
pc.setqf ("first_make_time", today)
|
||||
pc.setqf ("make_count", 0)
|
||||
end
|
||||
if pc.count_item (90010) < 1 or pc.count_item (30019) < 1 or
|
||||
pc.count_item (31007) < 1 then
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say (gameforge.main_quest_lv78._60_say)
|
||||
return
|
||||
end
|
||||
local n = pc.getqf ("make_count")
|
||||
if n >= 7 then
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._70_say)
|
||||
return
|
||||
else
|
||||
pc.remove_item(90010, 1)
|
||||
pc.remove_item(30019, 1)
|
||||
pc.remove_item(31007, 1)
|
||||
say_title(gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._80_say)
|
||||
wait()
|
||||
pc.setqf ("make_count", n + 1)
|
||||
local n = number (1,100)
|
||||
if n > 60 then
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._90_say)
|
||||
wait()
|
||||
elseif pc.count_item (31006) < 20 then
|
||||
pc.give_item2 (31006, 1)
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._100_say)
|
||||
say_item_vnum(31006)
|
||||
wait ()
|
||||
else
|
||||
say_title (mob_name(20369))
|
||||
say(string.format(gameforge.main_quest_lv78._50_say, 20))
|
||||
wait()
|
||||
|
||||
say_title (locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 36000000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72725)))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(70024)))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(70004)))
|
||||
|
||||
pc.give_exp2(36000000)
|
||||
|
||||
pc.give_item2(72725) -- 수룡의 축복(대)
|
||||
pc.give_item2(70024) -- 축복의 구슬
|
||||
pc.give_item2(70004) -- 근면함의 훈장
|
||||
pc.remove_item (31006, pc.count_item (31006))
|
||||
set_state (state_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
state state_2 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv78._110_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv78._110_sendLetter)
|
||||
say(gameforge.main_quest_lv78._120_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv78._110_sendLetter with pc.count_item (31004) < 100 begin
|
||||
target.delete("__TARGET__")
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._130_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._140_say)
|
||||
end
|
||||
when 2315.kill or 2314.kill begin
|
||||
if number (1, 300) == 1 then
|
||||
pc.give_item2 (31004, 1)
|
||||
local n = pc.count_item (31004)
|
||||
if n < 100 then
|
||||
notice (string.format(gameforge.main_quest_lv78._150_say, 100 - n))
|
||||
else
|
||||
notice_multiline(gameforge.main_quest_lv78._160_notice, notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv78._110_sendLetter with pc.count_item (31004) >= 100 begin
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._170_say)
|
||||
wait()
|
||||
say_title ( pc.getname())
|
||||
say(gameforge.main_quest_lv78._180_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._190_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv78._200_say)
|
||||
wait()
|
||||
say_title (locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48000000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 230000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72729)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70035)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70003)))
|
||||
|
||||
pc.give_exp2(48000000)
|
||||
pc.change_money(230000)
|
||||
|
||||
pc.give_item2(72729) -- 화룡의 축복(대)
|
||||
pc.give_item2(70035) -- 만년한철
|
||||
pc.give_item2(70003) -- 육도
|
||||
pc.remove_item (31004, pc.count_item (31004))
|
||||
set_state (state_3)
|
||||
end
|
||||
end
|
||||
state state_3 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20018)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv78._210_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title (gameforge.main_quest_lv78._210_sendLetter)
|
||||
say(gameforge.main_quest_lv78._220_say)
|
||||
end
|
||||
when 20018.chat.gameforge.main_quest_lv78._210_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title ( mob_name(20018))
|
||||
say(gameforge.main_quest_lv78._230_say)
|
||||
wait()
|
||||
say_title ( pc.get_name ())
|
||||
say(gameforge.main_quest_lv78._240_say)
|
||||
wait()
|
||||
say_title ( mob_name(20018))
|
||||
say(gameforge.main_quest_lv78._250_say)
|
||||
wait()
|
||||
say_title ( pc.get_name ())
|
||||
say(gameforge.main_quest_lv78._260_say)
|
||||
wait()
|
||||
say_title ( mob_name(20018))
|
||||
say(gameforge.main_quest_lv78._270_say)
|
||||
wait()
|
||||
say_title ( pc.get_name ())
|
||||
say(gameforge.main_quest_lv78._280_say)
|
||||
wait()
|
||||
say_title ( mob_name(20018))
|
||||
say(gameforge.main_quest_lv78._290_say)
|
||||
wait()
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30319).." ".."2"..locale.count_postfix))
|
||||
pc.give_item2(30319,2)
|
||||
wait()
|
||||
say(gameforge.main_quest_lv78._300_say)
|
||||
set_state (__COMPLETE__)
|
||||
q.done()
|
||||
set_quest_state("main_quest_lv84", "state_0")
|
||||
|
||||
end
|
||||
end
|
||||
state __COMPLETE__ begin
|
||||
end
|
||||
end
|
@ -1,151 +0,0 @@
|
||||
quest main_quest_lv84 begin
|
||||
state start begin
|
||||
end
|
||||
state state_0 begin
|
||||
when login or levelup or enter with pc.level >= 84 begin
|
||||
set_state (state_1)
|
||||
end
|
||||
end
|
||||
state state_1 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter (gameforge.main_quest_lv84._10_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv84._10_sendLetter)
|
||||
say(gameforge.main_quest_lv84._20_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv84._10_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._30_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._40_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._50_say)
|
||||
pc.give_item2(31008)
|
||||
set_state (state_4)
|
||||
end
|
||||
|
||||
end
|
||||
state state_4 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv84._60_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv84._60_sendLetter)
|
||||
say(gameforge.main_quest_lv84._70_say)
|
||||
end
|
||||
|
||||
when 31008.use with pc.get_map_index() >= 2160000 and pc.get_map_index() < 2170000 begin --and pc.getf("devilcatacomb_zone", "level") == 5 begin
|
||||
party.give_buff(303, POINT_ATT_SPEED, 20, 13, 1800, 0, true, true)
|
||||
party.give_buff(303, POINT_MOV_SPEED, 20, 12, 1800, 0, true, true)
|
||||
party.give_buff(303, POINT_CASTING_SPEED, 20, 0, 1800, 0, true, true)
|
||||
party.give_buff(303, POINT_ATTBONUS_MONSTER, 30, 0, 1800, 0, true, true)
|
||||
party.give_buff(303, POINT_MAX_HP_PCT, 10, 0, 1800, 0, true, true)
|
||||
party.give_buff(303, POINT_MAX_SP_PCT, 10, 0, 1800, 0, true, true)
|
||||
|
||||
say(gameforge.main_quest_lv84._80_say)
|
||||
|
||||
end
|
||||
|
||||
when 2591.kill begin
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 63000000))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71026).." ".."2"..locale.count_postfix))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70051)))
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70050)))
|
||||
|
||||
pc.give_exp2(63000000)
|
||||
pc.change_money(250000)
|
||||
|
||||
pc.give_item2(71026) -- 현철
|
||||
pc.give_item2(71026) -- 현철
|
||||
pc.give_item2(70051) -- 선왕의 장갑
|
||||
pc.give_item2(70050) -- 선왕의 증표
|
||||
|
||||
set_state (state_2)
|
||||
end
|
||||
end
|
||||
state state_2 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter(gameforge.main_quest_lv84._90_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv84._90_sendLetter)
|
||||
say (gameforge.main_quest_lv84._100_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv84._90_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._110_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._120_say)
|
||||
end
|
||||
when 2597.kill begin
|
||||
say_reward(gameforge.main_quest_lv84._130_sayReward)
|
||||
say(gameforge.main_quest_lv84._140_say)
|
||||
set_state (state_3)
|
||||
end
|
||||
end
|
||||
state state_3 begin
|
||||
when letter begin
|
||||
local v = find_npc_by_vnum (20369)
|
||||
if v != 0 then
|
||||
target.vid ("__TARGET__",v,"")
|
||||
end
|
||||
send_letter(gameforge.main_quest_lv84._150_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv84._150_sendLetter)
|
||||
say (gameforge.main_quest_lv84._160_say)
|
||||
end
|
||||
when 20369.chat.gameforge.main_quest_lv84._150_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
say_title (" ")
|
||||
say(gameforge.main_quest_lv84._170_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._180_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._190_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._200_say)
|
||||
wait()
|
||||
say_title (gameforge.main_quest_lv66._300_sayTitle)
|
||||
say(gameforge.main_quest_lv84._210_say)
|
||||
wait()
|
||||
say_title (locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 84000000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 250000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(71025).." ".."2"..locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(70038)))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(71107)))
|
||||
|
||||
pc.give_exp2(84000000)
|
||||
pc.change_money(250000)
|
||||
|
||||
pc.give_item2(71025) -- 야공석
|
||||
pc.give_item2(71025) -- 야공석
|
||||
pc.give_item2(70038) -- 용기의 망토
|
||||
pc.give_item2(71107) -- 천도복숭아
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
end
|
||||
end
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,768 +0,0 @@
|
||||
quest main_quest_lv91 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 91 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
-----------------<1> 초마단의 서신을 찾아라!1-1-----------------
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter (gameforge.main_quest_lv91._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv91._010_sendLetter)
|
||||
say(gameforge.main_quest_lv91._020_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv91._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._030_say)
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._050_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._060_say)
|
||||
wait()
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._010_sendLetter)
|
||||
--q.set_counter_name(locale.main_quest_lv91.remain_mob)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
|
||||
say_title(gameforge.main_quest_lv91._070_sayTitle)
|
||||
say(gameforge.main_quest_lv91._080_say)
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv91.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
--say_title(gameforge.main_quest_lv91._760_say)
|
||||
--local remain = 10 - pc.getqf("mob1_1_killed")
|
||||
--if remain < 0 then
|
||||
-- remain = 0
|
||||
--end
|
||||
--q.set_counter_value(remain)
|
||||
--say_title(string.format(gameforge.main_quest_lv91._770_say,mob_name(3205),remain))
|
||||
end
|
||||
|
||||
--[[
|
||||
--클리어 전--
|
||||
when 20378.chat.gameforge.main_quest_lv91._010_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._520_say)
|
||||
end
|
||||
--]]
|
||||
|
||||
when 3205.kill begin
|
||||
local mob1_1_killed = pc.getqf("mob1_1_killed")
|
||||
if mob1_1_killed < 10 then
|
||||
pc.setqf("mob1_1_killed", mob1_1_killed + 1)
|
||||
|
||||
local remain = 10 - pc.getqf("mob1_1_killed")
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
--q.set_counter_value(remain)
|
||||
|
||||
if remain == 0 then
|
||||
say_title(mob_name(3205))
|
||||
say(gameforge.main_quest_lv91._100_say)
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv91._090_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv91._090_2_notice,notice)
|
||||
set_state (state1_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
--q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv91._010_sendLetter)
|
||||
say(gameforge.main_quest_lv91._110_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv91._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._120_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._130_say)
|
||||
wait()
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._150_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 18803050))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30051),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(50814),10,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(18803050)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(30051, 1)
|
||||
pc.give_item2(50814, 10)
|
||||
|
||||
set_state (state2_1)
|
||||
end
|
||||
end
|
||||
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
-----------------<2> 초마단의 서신을 탈환하라!-----------------
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._160_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv91._160_sendLetter)
|
||||
say(gameforge.main_quest_lv91._170_say)
|
||||
|
||||
end
|
||||
when 20378.chat.gameforge.main_quest_lv91._160_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._180_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._190_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._160_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
|
||||
say_title(gameforge.main_quest_lv91._200_sayTitle)
|
||||
say(gameforge.main_quest_lv91._210_say)
|
||||
say_item_vnum(31075)
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv91.pos_info)
|
||||
-- say()
|
||||
-- say()
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20378.chat.gameforge.main_quest_lv91._160_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._220_say)
|
||||
end
|
||||
|
||||
when 3291.kill begin
|
||||
if number(1,500) == 1 then
|
||||
if pc.count_item(31075) < 1 then
|
||||
notice_multiline(gameforge.main_quest_lv91._230_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv91._230_2_notice,notice)
|
||||
pc.give_item2(31075, 1)
|
||||
set_state (state2_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- 퀘스트 완료
|
||||
state state2_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._160_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv91._160_sendLetter)
|
||||
say(gameforge.main_quest_lv91._240_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3291.kill begin
|
||||
if number(1,500) == 1 then
|
||||
if pc.count_item(31075) < 1 then
|
||||
notice_multiline(gameforge.main_quest_lv91._230_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv91._230_2_notice,notice)
|
||||
pc.give_item2(31075, 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv91._160_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31075) >= 1 then
|
||||
pc.remove_item ( 31075, pc.count_item(31075))
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._250_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._260_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 24873650))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(50722),20,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72016),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(24873650)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(50722, 20)
|
||||
pc.give_item2_select(72016)
|
||||
item.set_socket(2, 120)
|
||||
|
||||
set_state (state3_1)
|
||||
else
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv91._220_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
-----------------<3> 두번째 서신 판독1-1-----------------
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._270_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv91._270_sendLetter)
|
||||
say(gameforge.main_quest_lv91._280_say)
|
||||
|
||||
end
|
||||
when 20380.chat.gameforge.main_quest_lv91._270_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._290_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._300_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._310_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._320_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._330_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._340_say)
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._270_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv90._1180_say)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv91._350_sayTitle)
|
||||
say(gameforge.main_quest_lv91._360_say)
|
||||
say_item_vnum(31018)
|
||||
say(gameforge.main_quest_lv90._1180_say)
|
||||
local remain = 10 - pc.getqf("item3_1_checked")
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
say_reward(string.format(gameforge.main_quest_lv90._1190_say,item_name(31018),remain))
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv91.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20380.chat.gameforge.main_quest_lv91._270_sendLetter with pc.count_item(31018) > 0 begin
|
||||
if pc.count_item(31018) > 0 then
|
||||
pc.remove_item(31018, 1)
|
||||
|
||||
if number(1, 100 ) <= 70 then -- 납품 성공
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._380_say)
|
||||
pc.setqf("item3_1_checked", pc.getqf("item3_1_checked") + 1)
|
||||
|
||||
local remain = 10 - pc.getqf("item3_1_checked")
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.getqf("item3_1_checked") >= 10 then -- 납품 갯수 달성
|
||||
pc.remove_item(31018, pc.count_item(31018))
|
||||
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._390_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 25805450))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 214000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30009),2,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(25805450)
|
||||
pc.change_money(214000)
|
||||
pc.give_item2(30009, 2)
|
||||
|
||||
set_state (state4_1)
|
||||
q.set_counter_name("")
|
||||
else -- 납품 갯수 미달
|
||||
say(string.format(gameforge.main_quest_lv91._400_say,remain))
|
||||
end
|
||||
else -- 납품 실패
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._370_say)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
when 3601.kill or 3602.kill or 3603.kill or 3604.kill or 3605.kill begin
|
||||
if number(1,300) == 1 then
|
||||
pc.give_item2(31018, 1)
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv91._410_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv91._410_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
-----------------<4> 두번째 서신 판독1-2-----------------
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._420_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv91._420_sendLetter)
|
||||
say(gameforge.main_quest_lv91._430_say)
|
||||
|
||||
end
|
||||
when 20380.chat.gameforge.main_quest_lv91._420_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._440_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._450_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._460_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._470_say)
|
||||
|
||||
set_state (state4_2)
|
||||
end
|
||||
end
|
||||
state state4_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._420_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv90._1180_say)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
|
||||
say_title(gameforge.main_quest_lv91._480_sayTitle)
|
||||
say(gameforge.main_quest_lv91._490_say)
|
||||
say_item_vnum(31019)
|
||||
say(gameforge.main_quest_lv90._1180_say)
|
||||
local remain = 3 - pc.getqf("item4_1_checked")
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
say_reward(string.format(gameforge.main_quest_lv90._1190_say,item_name(31019),remain))
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv91.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20380.chat.gameforge.main_quest_lv91._420_sendLetter with pc.count_item(31019) > 0 begin
|
||||
if pc.count_item(31019) > 0 then
|
||||
local cur_t = get_global_time() - 60 * 60 * 9
|
||||
local today_date = cur_t - math.mod(cur_t,86400)
|
||||
|
||||
local last_checked_date = pc.getqf("last_checked_date")
|
||||
|
||||
if today_date ~= last_checked_date then
|
||||
pc.setqf("last_checked_date", today_date)
|
||||
pc.setqf("today_item4_1_checked",0)
|
||||
end
|
||||
|
||||
local today_item4_1_checked = pc.getqf("today_item4_1_checked")
|
||||
if today_item4_1_checked >= 1 then --1일 납품 갯수 초과
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._500_say)
|
||||
else -- 납품 시도.
|
||||
pc.remove_item(31019, 1)
|
||||
|
||||
if number(1, 100 ) <= 70 then -- 납품 성공
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._510_say)
|
||||
pc.setqf("item4_1_checked", pc.getqf("item4_1_checked") + 1)
|
||||
pc.setqf("today_item4_1_checked", pc.getqf("today_item4_1_checked") + 1)
|
||||
|
||||
local remain = 3 - pc.getqf("item4_1_checked")
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.getqf("item4_1_checked") >= 3 then -- 납품 갯수 달성
|
||||
pc.remove_item(31019, pc.count_item(31019))
|
||||
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._520_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 27874000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 225000))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(27874000)
|
||||
pc.change_money(225000)
|
||||
|
||||
set_state (state5_1)
|
||||
q.set_counter_name("")
|
||||
else -- 납품 갯수 미달
|
||||
say(string.format(gameforge.main_quest_lv91._530_say,remain))
|
||||
end
|
||||
else -- 납품 실패
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._540_say)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 3690.kill or 3691.kill begin
|
||||
if number(1,300) == 1 then
|
||||
pc.give_item2(31019, 1)
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv91._550_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv91._550_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
-----------------<5> 학자의 병환-----------------
|
||||
state state5_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._560_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv91._560_sendLetter)
|
||||
say(gameforge.main_quest_lv91._570_say)
|
||||
|
||||
end
|
||||
when 20378.chat.gameforge.main_quest_lv91._560_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv91._580_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv91._590_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._600_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv91._610_say)
|
||||
|
||||
set_state (state5_2)
|
||||
end
|
||||
end
|
||||
state state5_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._560_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
|
||||
say_title(gameforge.main_quest_lv91._620_sayTitle)
|
||||
say(gameforge.main_quest_lv91._630_say)
|
||||
say_item_vnum(31020)
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv91.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
when 20382.click begin
|
||||
if pc.count_item(31020) < 1 then
|
||||
pc.give_item2(31020, 1)
|
||||
notice_multiline(gameforge.main_quest_lv91._640_1_notice,notice)
|
||||
|
||||
set_state (state5_3)
|
||||
end
|
||||
end
|
||||
when 20380.chat.gameforge.main_quest_lv91._560_sendLetter with pc.count_item(31020) >= 1 begin
|
||||
target.delete("__TARGET__")
|
||||
pc.remove_item(31020, pc.count_item(31020))
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv91._650_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._660_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv91._670_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 6766050))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30045),2,locale.count_postfix))
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv91._780_say)
|
||||
|
||||
pc.give_exp2(6766050)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(30045, 2)
|
||||
|
||||
clear_letter()
|
||||
set_quest_state ("main_quest_lv92", "state0")
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
-- 퀘스트 완료
|
||||
state state5_3 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv91._560_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv91._560_sendLetter)
|
||||
say(gameforge.main_quest_lv91._680_say)
|
||||
|
||||
end
|
||||
|
||||
-- 아이템 분실 대비.
|
||||
when 20382.click begin
|
||||
if pc.count_item(31020) < 1 then
|
||||
pc.give_item2(31020, 1)
|
||||
notice_multiline(gameforge.main_quest_lv91._640_1_notice,notice)
|
||||
end
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv91._560_sendLetter with pc.count_item(31020) >= 1 begin
|
||||
target.delete("__TARGET__")
|
||||
pc.remove_item(31020, pc.count_item(31020))
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv91._650_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv91._660_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv91._670_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 6766050))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30045),2,locale.count_postfix))
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv91._780_say)
|
||||
|
||||
pc.give_exp2(6766050)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(30045, 2)
|
||||
|
||||
clear_letter()
|
||||
set_quest_state ("main_quest_lv92", "state0")
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,699 +0,0 @@
|
||||
quest main_quest_lv92 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 92 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
------------------------------------초마단의 서신을 찾아라!1-2------------------------------------
|
||||
state state1_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv92._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv92._010_sendLetter)
|
||||
say(gameforge.main_quest_lv92._020_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv92._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._030_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._040_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._050_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._060_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._070_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._080_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._090_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._100_say)
|
||||
|
||||
set_state (state1_2)
|
||||
|
||||
q.set_counter_value(4)
|
||||
end
|
||||
end
|
||||
--퀘스트 수행--
|
||||
state state1_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv92._010_sendLetter)
|
||||
|
||||
local remain_item = 4 - pc.count_item(31010)
|
||||
if remain_item <= 0 then
|
||||
remain_item = 0
|
||||
end
|
||||
q.set_counter_name("남은 아이템")
|
||||
q.set_counter_value(remain_item)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
|
||||
say_title(gameforge.main_quest_lv92._110_sayTitle)
|
||||
say(gameforge.main_quest_lv92._120_say)
|
||||
say_item_vnum(31010)
|
||||
say(gameforge.main_quest_lv90._1180_say)
|
||||
|
||||
local remain_item = 4 - pc.count_item(31010)
|
||||
if remain_item <= 0 then
|
||||
remain_item = 0
|
||||
end
|
||||
q.set_counter_value(remain_item)
|
||||
say_reward(string.format("%s: %d %s",item_name(31010),remain_item,locale.count_postfix))
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv92.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20378.chat.gameforge.main_quest_lv92._010_sendLetter begin
|
||||
|
||||
if pc.count_item(31010) >= 4 then
|
||||
pc.remove_item ( 31010, pc.count_item(31010))
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._160_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 33874000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 200000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(50817),10,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(33874000)
|
||||
pc.change_money(200000)
|
||||
pc.give_item2(50817, 10)
|
||||
|
||||
set_state (state2_1)
|
||||
else
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._130_say)
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
|
||||
when 3504.kill or 3505.kill begin
|
||||
if number(1,500) == 1 then
|
||||
if pc.count_item(31010) < 4 then
|
||||
pc.give_item2(31010, 1)
|
||||
|
||||
--퀘스트 메뉴 창 카운트
|
||||
local remain_item = 4 - pc.count_item(31010)
|
||||
if remain_item <= 0 then
|
||||
remain_item = 0
|
||||
end
|
||||
q.set_counter_value(remain_item)
|
||||
|
||||
if pc.count_item(31010) >= 4 then
|
||||
notice_multiline(gameforge.main_quest_lv92._140_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv92._140_2_notice,notice)
|
||||
set_state (state1_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
|
||||
when letter begin
|
||||
q.set_counter_name("")
|
||||
send_letter(gameforge.main_quest_lv92._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv92._010_sendLetter)
|
||||
say(gameforge.main_quest_lv92._150_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3504.kill or 3505.kill begin
|
||||
if number(1,500) == 1 then
|
||||
if pc.count_item(31010) < 4 then
|
||||
pc.give_item2(31010, 1)
|
||||
|
||||
--퀘스트 메뉴 창 카운트
|
||||
local remain_item = 4 - pc.count_item(31010)
|
||||
if remain_item <= 0 then
|
||||
remain_item = 0
|
||||
end
|
||||
q.set_counter_value(remain_item)
|
||||
|
||||
if pc.count_item(31010) >= 4 then
|
||||
notice_multiline(gameforge.main_quest_lv92._140_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv92._140_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv92._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31010) >= 4 then
|
||||
pc.remove_item ( 31010, pc.count_item(31010))
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._160_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 33874000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 200000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(50817),10,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(33874000)
|
||||
pc.change_money(200000)
|
||||
pc.give_item2(50817, 10)
|
||||
|
||||
set_state (state2_1)
|
||||
else
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._130_say)
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
------------------------------------마지막 서신 조각------------------------------------
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
q.set_counter_name("")
|
||||
send_letter(gameforge.main_quest_lv92._170_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv92._170_sendLetter)
|
||||
say(gameforge.main_quest_lv92._180_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv92._170_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._190_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._200_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._210_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._220_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._230_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._240_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
--퀘스트 수행--
|
||||
state state2_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv92._170_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20379)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20379))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
|
||||
say_title(gameforge.main_quest_lv92._250_sayTitle)
|
||||
say(gameforge.main_quest_lv92._260_say)
|
||||
say_item_vnum(31010)
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv92.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20378.chat.gameforge.main_quest_lv92._170_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._270_say)
|
||||
end
|
||||
|
||||
when 20379.chat.gameforge.main_quest_lv92._170_sendLetter begin
|
||||
say_title(mob_name(20379))
|
||||
say(gameforge.main_quest_lv92._280_say)
|
||||
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv92._290_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv92._290_2_notice,notice)
|
||||
pc.give_item2(31010, 1)
|
||||
set_state (state2_3)
|
||||
end
|
||||
end
|
||||
state state2_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv92._170_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv92._170_sendLetter)
|
||||
say(gameforge.main_quest_lv92._360_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv92._170_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31010) >= 1 then
|
||||
pc.remove_item ( 31010, pc.count_item(31010))
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._300_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._310_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._320_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._330_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._340_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._350_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 20874600))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30047),2,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(20874600)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(30047, 2)
|
||||
|
||||
set_state (state3_1)
|
||||
else
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv92._270_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
------------------------------------세번째 서신 판독1-1------------------------------------
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv92._370_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv92._370_sendLetter)
|
||||
say(gameforge.main_quest_lv92._380_say)
|
||||
|
||||
end
|
||||
when 20378.chat.gameforge.main_quest_lv92._370_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv92._390_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._400_say)
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv92._370_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv92._370_sendLetter)
|
||||
say(gameforge.main_quest_lv92._410_say)
|
||||
|
||||
end
|
||||
when 20380.chat.gameforge.main_quest_lv92._370_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv92._420_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._430_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv92._440_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._450_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv92._460_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._470_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv92._480_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv92._490_say)
|
||||
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when letter begin
|
||||
q.set_counter_name("남은 아이템")
|
||||
send_letter(gameforge.main_quest_lv92._370_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
|
||||
say_title(gameforge.main_quest_lv92._500_sayTitle)
|
||||
say(gameforge.main_quest_lv92._510_say)
|
||||
say_item_vnum(31022)
|
||||
say(gameforge.main_quest_lv90._1180_say)
|
||||
|
||||
local remain_item = 10 - pc.count_item(31022)
|
||||
if remain_item <= 0 then
|
||||
remain_item = 0
|
||||
end
|
||||
q.set_counter_value(remain_item)
|
||||
say_reward(string.format("%s: %d %s",item_name(31022),remain_item,locale.count_postfix))
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv92.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20380.chat.gameforge.main_quest_lv92._370_sendLetter begin
|
||||
if pc.count_item(31022) >= 10 then
|
||||
pc.remove_item ( 31022, pc.count_item(31022))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv92._540_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 34874000))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(27992),2,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(34874000)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(27992, 1)
|
||||
pc.give_item2(27992, 1)
|
||||
|
||||
set_state (state4_1)
|
||||
else
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv92._520_say)
|
||||
end
|
||||
end
|
||||
|
||||
when 3490.kill or 3491.kill begin
|
||||
if number(1,500) == 1 then
|
||||
if pc.count_item(31022) < 10 then
|
||||
pc.give_item2(31022, 1)
|
||||
|
||||
local remain_item = 10 - pc.count_item(31022)
|
||||
if remain_item <= 0 then
|
||||
remain_item = 0
|
||||
end
|
||||
q.set_counter_value(remain_item)
|
||||
|
||||
if pc.count_item(31022) >= 10 then
|
||||
notice_multiline(gameforge.main_quest_lv92._530_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv92._530_2_notice,notice)
|
||||
set_state (state3_4)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
state state3_4 begin
|
||||
|
||||
when letter begin
|
||||
q.set_counter_name("")
|
||||
send_letter(gameforge.main_quest_lv92._370_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv92._370_sendLetter)
|
||||
say(gameforge.main_quest_lv92._550_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3490.kill or 3491.kill begin
|
||||
if number(1,500) == 1 then
|
||||
if pc.count_item(31022) < 10 then
|
||||
pc.give_item2(31022, 1)
|
||||
|
||||
if pc.count_item(31022) >= 10 then
|
||||
notice_multiline(gameforge.main_quest_lv92._530_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv92._530_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv92._370_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31022) >= 10 then
|
||||
pc.remove_item ( 31022, pc.count_item(31022))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv92._540_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 34874000))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(27992),2,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(34874000)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(27992, 1)
|
||||
pc.give_item2(27992, 1)
|
||||
|
||||
set_state (state4_1)
|
||||
else
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv92._520_say)
|
||||
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
------------------------------------초마단의 서신의 진실-----------------------------------
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv92._560_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv92._560_sendLetter)
|
||||
say(gameforge.main_quest_lv92._570_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv92._560_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv92._580_say)
|
||||
wait()
|
||||
|
||||
say(gameforge.main_quest_lv92._590_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv92._600_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 24911280))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(27993),2,locale.count_postfix))
|
||||
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv92._610_say)
|
||||
|
||||
pc.give_exp2(24911280)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(27993, 1)
|
||||
pc.give_item2(27993, 1)
|
||||
|
||||
|
||||
clear_letter()
|
||||
set_quest_state ("main_quest_lv93", "state0")
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,715 +0,0 @@
|
||||
quest main_quest_lv93 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 93 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
------------------------------------내력강화1-1------------------------------------
|
||||
state state1_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._010_sendLetter)
|
||||
say(gameforge.main_quest_lv93._020_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv93._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv93._030_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv93._040_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._050_say)
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._010_sendLetter)
|
||||
say(gameforge.main_quest_lv93._130_say)
|
||||
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv93._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._060_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._070_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._080_say)
|
||||
|
||||
set_state (state1_3)
|
||||
end
|
||||
end
|
||||
--퀘스트 수행--
|
||||
state state1_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._010_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
|
||||
|
||||
say_title(gameforge.main_quest_lv93._090_sayTitle)
|
||||
say(gameforge.main_quest_lv93._100_say)
|
||||
say_item_vnum(31029)
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv93.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20380.chat.gameforge.main_quest_lv93._010_sendLetter begin
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._110_say)
|
||||
end
|
||||
|
||||
when 3191.kill begin
|
||||
if number(1,1000) == 1 then
|
||||
if pc.count_item(31029) < 1 then
|
||||
pc.give_item2(31029, 1)
|
||||
|
||||
if pc.count_item(31029) >= 1 then
|
||||
notice_multiline(gameforge.main_quest_lv93._120_1_notice,notice)
|
||||
set_state (state1_4)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
state state1_4 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._010_sendLetter)
|
||||
say(gameforge.main_quest_lv93._130_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3191.kill begin
|
||||
if number(1,1000) == 1 then
|
||||
if pc.count_item(31029) < 1 then
|
||||
pc.give_item2(31029, 1)
|
||||
|
||||
if pc.count_item(31029) >= 1 then
|
||||
notice_multiline(gameforge.main_quest_lv93._120_1_notice,notice)
|
||||
set_state (state1_4)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv93._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31029) >= 1 then
|
||||
pc.remove_item ( 31029, pc.count_item(31029))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._140_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 27874422))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(27994),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(27874422)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(27994, 1)
|
||||
|
||||
set_state (state2_1)
|
||||
else
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._110_say)
|
||||
|
||||
set_state (state1_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
------------------------------------내력강화1-2------------------------------------
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._150_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._150_sendLetter)
|
||||
say(gameforge.main_quest_lv93._160_say)
|
||||
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv93._150_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._170_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._180_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
--퀘스트 수행--
|
||||
state state2_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._150_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv93._190_sayTitle)
|
||||
say(gameforge.main_quest_lv93._200_say)
|
||||
say_item_vnum(31030)
|
||||
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv93.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20380.chat.gameforge.main_quest_lv93._150_sendLetter begin
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._210_say)
|
||||
end
|
||||
|
||||
when 3791.kill begin
|
||||
if number(1,1000) == 1 then
|
||||
if pc.count_item(31030) < 1 then
|
||||
pc.give_item2(31030, 1)
|
||||
if pc.count_item(31030) >= 1 then
|
||||
notice_multiline(gameforge.main_quest_lv93._220_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv93._220_2_notice,notice)
|
||||
set_state (state2_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
state state2_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._150_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._150_sendLetter)
|
||||
say(gameforge.main_quest_lv93._230_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3791.kill begin
|
||||
if number(1,1000) == 1 then
|
||||
if pc.count_item(31030) < 1 then
|
||||
pc.give_item2(31030, 1)
|
||||
if pc.count_item(31030) >= 1 then
|
||||
notice_multiline(gameforge.main_quest_lv93._220_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv93._220_2_notice,notice)
|
||||
set_state (state2_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv93._150_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31030) >= 1 then
|
||||
pc.remove_item ( 31030, pc.count_item(31030))
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._240_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 28914020))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 302000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30048),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(50819),10,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(28914020)
|
||||
pc.change_money(302000)
|
||||
pc.give_item2(30048, 1)
|
||||
pc.give_item2(50819, 10)
|
||||
|
||||
set_state (state3_1)
|
||||
else
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv93._210_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
------------------------------------내력강화1-3------------------------------------
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._250_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._250_sendLetter)
|
||||
say(gameforge.main_quest_lv93._260_say)
|
||||
|
||||
end
|
||||
when 20380.chat.gameforge.main_quest_lv93._250_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv93._270_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._280_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv93._290_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._300_say)
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._250_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20008)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20008))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._310_sayTitle)
|
||||
say(gameforge.main_quest_lv93._320_say)
|
||||
|
||||
end
|
||||
when 20008.chat.gameforge.main_quest_lv93._250_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20008))
|
||||
say(gameforge.main_quest_lv93._330_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._340_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20008))
|
||||
say(gameforge.main_quest_lv93._350_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._360_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20008))
|
||||
say(gameforge.main_quest_lv93._370_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 17904600))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 30000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(71094),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72024),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(17904600)
|
||||
pc.change_money(30000)
|
||||
pc.give_item2(71094, 1)
|
||||
pc.give_item2_select(72024)
|
||||
|
||||
set_state (state3_3)
|
||||
clear_letter()
|
||||
local cur_t = get_global_time()
|
||||
pc.setf("main_quest_lv93","ockgu_access_time",cur_t)
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when login with get_global_time() - pc.getf("main_quest_lv93","ockgu_access_time") >= 24*60*60 begin
|
||||
set_state (state4_1)
|
||||
end
|
||||
when 20008.chat.gameforge.main_quest_lv93._400_npcChat begin
|
||||
if get_global_time() - pc.getf("main_quest_lv93","ockgu_access_time") >= 24*60*60 then
|
||||
set_state (state4_1)
|
||||
else
|
||||
say_title(mob_name(20008))
|
||||
say(gameforge.main_quest_lv93._390_say)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
------------------------------------내력강화1-4-----------------------------------
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._400_npcChat)
|
||||
|
||||
local v = find_npc_by_vnum(20008)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20008))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._400_npcChat)
|
||||
say(gameforge.main_quest_lv93._410_say)
|
||||
|
||||
end
|
||||
|
||||
when 20008.chat.gameforge.main_quest_lv93._400_npcChat begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20008 ))
|
||||
say(gameforge.main_quest_lv93._420_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._430_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20008 ))
|
||||
say(gameforge.main_quest_lv93._440_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._450_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20008 ))
|
||||
say(gameforge.main_quest_lv93._460_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._470_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20008 ))
|
||||
say(gameforge.main_quest_lv93._480_say)
|
||||
|
||||
set_state (state4_2)
|
||||
end
|
||||
end
|
||||
-- 퀘스트 진행 --
|
||||
state state4_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._400_npcChat)
|
||||
q.set_counter_name(gameforge.main_quest_lv94._1080_say)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._490_sayTitle)
|
||||
say(gameforge.main_quest_lv93._500_say)
|
||||
say_item_vnum_inline(50724,0,3)
|
||||
say_item_vnum_inline(50726,1,3)
|
||||
say_item_vnum_inline(50707,2,3)
|
||||
|
||||
local remain1 = 200 - pc.count_item(50724)
|
||||
local remain2 = 200 - pc.count_item(50726)
|
||||
local remain3 = 200 - pc.count_item(50707)
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
|
||||
say(string.format(gameforge.main_quest_lv93._630_say,item_name(50724) ,remain1,item_name(50726) ,remain2,item_name(50707) , remain3))
|
||||
|
||||
q.set_counter_value(remain1 + remain2 + remain3)
|
||||
|
||||
if remain1 + remain2 + remain3 == 0 then
|
||||
notice_multiline(gameforge.main_quest_lv93._650_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv93._650_2_notice,notice)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[
|
||||
when 50724.pick or 50724.take or 50726.pick or 50726.take or 50707.pick or 50707.take begin
|
||||
|
||||
local remain1 = 200 - pc.count_item(50724)
|
||||
local remain2 = 200 - pc.count_item(50726)
|
||||
local remain3 = 200 - pc.count_item(50707)
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2 + remain3)
|
||||
end
|
||||
]]--
|
||||
|
||||
when 20008.chat.gameforge.main_quest_lv93._400_npcChat begin
|
||||
if pc.count_item(50724) >= 200 and pc.count_item(50726) >= 200 and pc.count_item(50707) >= 200 then
|
||||
|
||||
pc.remove_item ( 50724,200)
|
||||
pc.remove_item ( 50726,200)
|
||||
pc.remove_item ( 50707,200)
|
||||
|
||||
say_title(mob_name(20008 ))
|
||||
say(gameforge.main_quest_lv93._520_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._530_say)
|
||||
|
||||
set_state (state4_3)
|
||||
|
||||
clear_letter()
|
||||
|
||||
local cur_t = get_global_time()
|
||||
pc.setf("main_quest_lv93","item4_make_start_time",cur_t)
|
||||
else
|
||||
say_title(mob_name(20008 ))
|
||||
say(gameforge.main_quest_lv93._640_say)
|
||||
end
|
||||
end
|
||||
end
|
||||
state state4_3 begin
|
||||
when login with get_global_time() - pc.getf("main_quest_lv93","item4_make_start_time") >= 24*60*60 begin
|
||||
set_state (state4_4)
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when 20008.chat.gameforge.main_quest_lv93._400_npcChat begin
|
||||
say_title(mob_name(20008 ))
|
||||
say(gameforge.main_quest_lv93._540_say)
|
||||
end
|
||||
end
|
||||
state state4_4 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._400_npcChat)
|
||||
|
||||
local v = find_npc_by_vnum(20008)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20008))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._400_npcChat)
|
||||
say(gameforge.main_quest_lv93._550_say)
|
||||
|
||||
end
|
||||
|
||||
when 20008.chat.gameforge.main_quest_lv93._400_npcChat begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20008 ))
|
||||
say(gameforge.main_quest_lv93._560_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._570_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 31374000))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(31031),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(50706),20,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72301),5,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(31374000)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(31031, 1)
|
||||
pc.give_item2(50706, 20)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
|
||||
set_state (state5_1)
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
------------------------------------신약 제조1-1-----------------------------------
|
||||
state state5_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv93._580_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv93._580_sendLetter)
|
||||
say(gameforge.main_quest_lv93._590_say)
|
||||
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv93._580_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
pc.remove_item(31031,pc.count_item(31031))
|
||||
|
||||
say_title(mob_name( 20380))
|
||||
say(gameforge.main_quest_lv93._600_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv93._610_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 19920820))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 335000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72723),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(70050),1,locale.count_postfix))
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv93._620_say)
|
||||
|
||||
pc.give_exp2(19920820)
|
||||
pc.change_money(335000)
|
||||
pc.give_item2(72723, 1)
|
||||
pc.give_item2_select(70050)
|
||||
item.set_socket(2, 120)
|
||||
|
||||
clear_letter()
|
||||
set_quest_state ("main_quest_lv94", "state0")
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
q.done()
|
||||
end
|
||||
end
|
||||
end
|
File diff suppressed because it is too large
Load Diff
@ -1,731 +0,0 @@
|
||||
quest main_quest_lv95 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 95 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
------------------------------------괴력의 지무신왕------------------------------------
|
||||
state state1_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._010_sendLetter)
|
||||
say(gameforge.main_quest_lv95._020_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv95._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._030_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv95._040_say)
|
||||
wait()
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
--퀘스트 수행--
|
||||
state state1_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._010_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv95._070_sayTitle)
|
||||
say(gameforge.main_quest_lv95._080_say)
|
||||
--say_item_vnum(31015)
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv95.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전에 돌아왔다.--
|
||||
when 20378.chat.gameforge.main_quest_lv95._010_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._090_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3904.kill begin
|
||||
if pc.count_item(31015) < 1 then
|
||||
pc.give_item2 ( 31015, 1 )
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv95._100_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv95._100_2_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv95._750_say,notice)
|
||||
set_state (state1_3)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
state state1_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._010_sendLetter)
|
||||
say(gameforge.main_quest_lv95._110_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3904.kill begin
|
||||
if pc.count_item(31015) < 1 then
|
||||
pc.give_item2 ( 31015, 1 )
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv95._100_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv95._100_2_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv95._750_say,notice)
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv95._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31015) >= 1 then
|
||||
pc.remove_item ( 31015, pc.count_item(31015))
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._120_say)
|
||||
wait()
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._140_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._150_say)
|
||||
wait()
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._170_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 27532396))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 302000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(27994),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(27532396)
|
||||
pc.change_money(302000)
|
||||
pc.give_item2(27994, 1)
|
||||
|
||||
set_state (state2_1)
|
||||
else --중간에 아이템을 빼놓고 왔다.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._090_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
------------------------------------검은황금 전달 저지------------------------------------
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._180_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._180_sendLetter)
|
||||
say(gameforge.main_quest_lv95._190_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv95._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._200_say)
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv95._220_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._180_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv95._230_sayTitle)
|
||||
say(gameforge.main_quest_lv95._240_say)
|
||||
say_item_vnum(31037)
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv95.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
--클리어 전--
|
||||
when 20378.chat.gameforge.main_quest_lv95._180_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._250_say)
|
||||
end
|
||||
|
||||
when 3890.kill begin
|
||||
if pc.count_item(31037) < 1 then
|
||||
if number (1,5) == 1 then
|
||||
if pc.count_item(31037) < 1 then
|
||||
pc.give_item2 ( 31037, 1 )
|
||||
end
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv95._260_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv95._260_2_notice,notice)
|
||||
set_state (state2_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
state state2_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._180_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._180_sendLetter)
|
||||
say(gameforge.main_quest_lv95._270_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3890.kill begin
|
||||
if pc.count_item(31037) < 1 then
|
||||
if number (1,5) == 1 then
|
||||
if pc.count_item(31037) < 1 then
|
||||
pc.give_item2 ( 31037, 1 )
|
||||
end
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv95._260_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv95._260_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv95._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31037) >= 1 then
|
||||
pc.remove_item ( 31037, pc.count_item(31037))
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._280_say)
|
||||
wait()
|
||||
|
||||
say(gameforge.main_quest_lv95._290_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._300_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._310_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 29032586))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30048),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(29032586)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(30048, 1)
|
||||
|
||||
set_state (state3_1)
|
||||
else -- 아이템이 없다.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._250_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
------------------------------------검은황금 정제 차단------------------------------------
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._320_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._320_sendLetter)
|
||||
say(gameforge.main_quest_lv95._330_say)
|
||||
|
||||
end
|
||||
when 20378.chat.gameforge.main_quest_lv95._320_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._340_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._350_say)
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._320_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv95._370_sayTitle)
|
||||
say(gameforge.main_quest_lv95._380_say)
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv95.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전--
|
||||
when 20378.chat.gameforge.main_quest_lv95._320_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._390_say)
|
||||
end
|
||||
|
||||
when 3891.kill begin
|
||||
notice_multiline(gameforge.main_quest_lv95._400_notice,notice)
|
||||
say(gameforge.main_quest_lv95._410_say)
|
||||
wait()
|
||||
|
||||
say(gameforge.main_quest_lv95._420_say)
|
||||
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
|
||||
state state3_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._320_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._320_sendLetter)
|
||||
say(gameforge.main_quest_lv95._430_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv95._320_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._440_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv95._450_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._460_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 33003907))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(71094),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72024),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(33003907)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(71094, 1)
|
||||
pc.give_item2_select(72024)
|
||||
item.set_socket(2, 180)
|
||||
|
||||
set_state (state4_1)
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
------------------------------------천기의 조화1-1-----------------------------------
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._470_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._470_sendLetter)
|
||||
say(gameforge.main_quest_lv95._480_say)
|
||||
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv95._470_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._490_say)
|
||||
wait()
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._510_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._520_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv95._530_say)
|
||||
|
||||
set_state (state4_2)
|
||||
end
|
||||
end
|
||||
-- 퀘스트 진행 --
|
||||
state state4_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._470_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv95._540_sayTitle)
|
||||
say(gameforge.main_quest_lv95._550_say)
|
||||
say_item_vnum(31043)
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv95.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
-- 클리어 전에 클릭 --
|
||||
when 20378.chat.gameforge.main_quest_lv95._470_sendLetter begin
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._560_say)
|
||||
end
|
||||
|
||||
when 3303.kill begin
|
||||
if pc.count_item(31043) < 1 then
|
||||
if number (1,5) == 1 then
|
||||
pc.give_item2 ( 31043, 1 )
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv95._570_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv95._570_2_notice,notice)
|
||||
set_state (state4_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
state state4_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._470_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._470_sendLetter)
|
||||
say(gameforge.main_quest_lv95._580_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3303.kill begin
|
||||
if pc.count_item(31043) < 1 then
|
||||
if number (1,5) == 1 then
|
||||
pc.give_item2 ( 31043, 1 )
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv95._570_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv95._570_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv95._470_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31043) >= 1 then
|
||||
pc.remove_item ( 31043, pc.count_item(31043))
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._590_say)
|
||||
wait()
|
||||
|
||||
say_reward(gameforge.main_quest_lv95._600_sayReward)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._610_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._620_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 30943586))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 335000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72301),5,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(30943586)
|
||||
pc.change_money(335000)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
pc.give_item2(72301, 1)
|
||||
|
||||
set_state (state5_1)
|
||||
else
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._560_say)
|
||||
|
||||
set_state (state4_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
------------------------------------천기의 조화1-2-----------------------------------
|
||||
-- 퀘스트 진행 --
|
||||
state state5_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._630_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv95._760_say)
|
||||
end
|
||||
when button or info begin
|
||||
if pc.get_map_index() == 1 then
|
||||
addmapsignal(500 * 100, 500 * 100)
|
||||
addmapsignal(600 * 100, 500 * 100)
|
||||
addmapsignal(700 * 100, 300 * 100)
|
||||
end
|
||||
say_title(gameforge.main_quest_lv95._640_sayTitle)
|
||||
say(gameforge.main_quest_lv95._650_say)
|
||||
say_item_vnum(31043)
|
||||
say(gameforge.main_quest_lv95._760_say)
|
||||
local remain = 2 - pc.count_item(31043)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
say_reward(string.format(gameforge.main_quest_lv95._770_sayReward,item_name(31043),remain))
|
||||
q.set_counter_value(remain)
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv95.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
-- 클리어 전에 클릭 --
|
||||
when 20378.chat.gameforge.main_quest_lv95._630_sendLetter begin
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._660_say)
|
||||
end
|
||||
|
||||
when 3303.kill begin
|
||||
if pc.count_item(31043) < 2 then
|
||||
if number (1,4) == 1 then
|
||||
pc.give_item2 ( 31043, 1 )
|
||||
|
||||
local remain = 2 - pc.count_item(31043)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.count_item(31043) >= 2 then
|
||||
set_state (state5_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
state state5_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv95._630_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv95._630_sendLetter)
|
||||
say(gameforge.main_quest_lv95._670_say)
|
||||
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3303.kill begin
|
||||
if pc.count_item(31043) < 2 then
|
||||
if number (1,4) == 1 then
|
||||
pc.give_item2 ( 31043, 1 )
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv95._630_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31043) >= 2 then
|
||||
pc.remove_item ( 31043, pc.count_item(31043))
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._680_say)
|
||||
wait()
|
||||
|
||||
say_reward(gameforge.main_quest_lv95._690_sayReward)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._700_say)
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv95._710_say)
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._720_say)
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 31932545))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 337000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72723),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(70050),1,locale.count_postfix))
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv95._740_say)
|
||||
|
||||
pc.give_exp2(31932545)
|
||||
pc.change_money(337000)
|
||||
pc.give_item2(72723, 1)
|
||||
pc.give_item2(70050, 1)
|
||||
|
||||
clear_letter()
|
||||
set_quest_state ("main_quest_lv96", "state0")
|
||||
set_state (__COMPLETE__)
|
||||
else
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv95._660_say)
|
||||
|
||||
set_state (state5_1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,750 +0,0 @@
|
||||
quest main_quest_lv96 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 96 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
------------------------------------강령술 저지1-1------------------------------------
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._010_sendLetter)
|
||||
say(gameforge.main_quest_lv96._020_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv96._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._030_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._060_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv96._070_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
--퀘스트 수행--
|
||||
state state1_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._010_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv96._570_counterName)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv96._080_sayTitle)
|
||||
say(gameforge.main_quest_lv96._090_say)
|
||||
say("")
|
||||
say_item_vnum(31038)
|
||||
say(gameforge.main_quest_lv96._570_counterName)
|
||||
local remain = 100 - pc.count_item(31038)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward,item_name(31038),remain))
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv96.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전에 돌아왔다.--
|
||||
when 20378.chat.gameforge.main_quest_lv96._010_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._100_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3701.kill or 3702.kill or 3703.kill or 3704.kill or 3705.kill or 3790.kill or 3791.kill begin
|
||||
if pc.count_item(31038) < 100 then
|
||||
if number (1,50) == 1 then
|
||||
pc.give_item2 ( 31038, 1 )
|
||||
|
||||
local remain = 100 - pc.count_item(31038)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.count_item(31038) >= 100 then
|
||||
notice_multiline(gameforge.main_quest_lv96._110_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv96._110_2_notice,notice)
|
||||
|
||||
set_state (state1_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
state state1_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._010_sendLetter)
|
||||
say(gameforge.main_quest_lv96._120_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3701.kill or 3702.kill or 3703.kill or 3704.kill or 3705.kill or 3790.kill or 3791.kill begin
|
||||
if pc.count_item(31038) < 100 then
|
||||
if number (1,50) == 1 then
|
||||
pc.give_item2 ( 31038, 1 )
|
||||
|
||||
if pc.count_item(31038) >= 100 then
|
||||
notice_multiline(gameforge.main_quest_lv96._110_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv96._110_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv96._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31038) >= 100 then
|
||||
pc.remove_item ( 31038, pc.count_item(31038))
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._130_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 39032537))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 346000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30051),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(39032537)
|
||||
pc.change_money(346000)
|
||||
pc.give_item2(30051, 1)
|
||||
|
||||
set_state (state2_1)
|
||||
else --중간에 아이템을 빼놓고 왔다.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._100_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------강령술 저지1-2------------------------------------
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._140_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._140_sendLetter)
|
||||
say(gameforge.main_quest_lv96._150_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv96._140_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._160_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv96._190_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._140_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv96._570_counterName)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv96._200_sayTitle)
|
||||
say(gameforge.main_quest_lv96._210_say)
|
||||
say("")
|
||||
say_item_vnum_inline(31039,0,2)
|
||||
say_item_vnum_inline(31040,1,2)
|
||||
say(gameforge.main_quest_lv96._570_counterName)
|
||||
local remain1 = 1 - pc.count_item(31039)
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.count_item(31040)
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2)
|
||||
say_reward(string.format(gameforge.main_quest_lv96._580_sayReward,item_name(31039),remain1))
|
||||
say_reward(string.format(gameforge.main_quest_lv96._580_sayReward,item_name(31040),remain2))
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv96.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
--클리어 전--
|
||||
when 20378.chat.gameforge.main_quest_lv96._140_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._220_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3801.kill or 3802.kill or 3803.kill or 3804.kill or 3805.kill or 3890.kill or 3891.kill begin
|
||||
if pc.count_item(31039) < 1 or pc.count_item(31040) < 1 then
|
||||
if number (1,100) == 1 then
|
||||
if pc.count_item(31039) < 1 then
|
||||
pc.give_item2 ( 31039, 1 )
|
||||
end
|
||||
|
||||
if pc.count_item(31040) < 1 then
|
||||
pc.give_item2 ( 31040, 1 )
|
||||
end
|
||||
|
||||
local remain1 = 1 - pc.count_item(31039)
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.count_item(31040)
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2)
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv96._230_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv96._230_2_notice,notice)
|
||||
set_state (state2_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
state state2_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._140_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._140_sendLetter)
|
||||
say(gameforge.main_quest_lv96._240_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3801.kill or 3802.kill or 3803.kill or 3804.kill or 3805.kill or 3890.kill or 3891.kill begin
|
||||
if pc.count_item(31039) < 1 or pc.count_item(31040) < 1 then
|
||||
if number (1,100) == 1 then
|
||||
if pc.count_item(31039) < 1 then
|
||||
pc.give_item2 ( 31039, 1 )
|
||||
end
|
||||
|
||||
if pc.count_item(31040) < 1 then
|
||||
pc.give_item2 ( 31040, 1 )
|
||||
end
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv96._230_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv96._230_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv96._140_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31039) >= 1 and pc.count_item(31040) >= 1 then
|
||||
pc.remove_item ( 31039, pc.count_item(31039))
|
||||
pc.remove_item ( 31040, pc.count_item(31040))
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._250_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_4)
|
||||
else
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._220_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
--학자에게로
|
||||
state state2_4 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._140_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20380)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20380))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._140_sendLetter)
|
||||
say(gameforge.main_quest_lv96._260_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv96._140_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv96._270_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_lv96._290_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_5)
|
||||
end
|
||||
|
||||
end
|
||||
--다시 경비대장에게
|
||||
state state2_5 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._140_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._140_sendLetter)
|
||||
say(gameforge.main_quest_lv96._240_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv96._140_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._590_say)
|
||||
say("")
|
||||
wait()
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 40732586))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 357000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72016),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(40732586)
|
||||
pc.change_money(357000)
|
||||
pc.give_item2_select(72016)
|
||||
item.set_socket(2, 120)
|
||||
|
||||
set_state (state3_1)
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------강령술 저지1-3------------------------------------
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._300_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._300_sendLetter)
|
||||
say(gameforge.main_quest_lv96._310_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
when 20378.chat.gameforge.main_quest_lv96._300_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv96._320_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(31073),1,locale.count_postfix))
|
||||
say("")
|
||||
wait()
|
||||
|
||||
if pc.count_item(31073) < 1 then
|
||||
pc.give_item2(31073,1)
|
||||
end
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv96._330_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv96._340_say)
|
||||
say("")
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._300_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv96._570_counterName)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv96._350_sayTitle)
|
||||
say(gameforge.main_quest_lv96._360_say)
|
||||
say("")
|
||||
say_item_vnum(31039)
|
||||
say(gameforge.main_quest_lv96._570_counterName)
|
||||
local remain = 100 - pc.getqf("checked_pocket")
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
say_reward(string.format(gameforge.main_quest_lv96._580_sayReward,item_name(31039),remain))
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv96.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
when 31073.use begin
|
||||
affect.add(apply.CON, 10, 60 * 60)
|
||||
affect.add(apply.INT, 10, 60 * 60)
|
||||
affect.add(apply.STR, 10, 60 * 60)
|
||||
affect.add(apply.DEX, 10, 60 * 60)
|
||||
pc.remove_item(31073,1)
|
||||
end
|
||||
|
||||
when 3801.kill or 3802.kill or 3803.kill or 3804.kill or 3805.kill or 3890.kill or 3891.kill begin
|
||||
if number (1,100) == 1 then
|
||||
pc.give_item2 ( 31039, 1 )
|
||||
notice_multiline(gameforge.main_quest_lv96._620_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv96._620_2_notice,notice)
|
||||
end
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_lv96._300_sendLetter with pc.count_item(31039) > 0 begin
|
||||
pc.remove_item (31039, 1)
|
||||
if number(1,100) <= 70 then -- 감정 성공
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv96._370_say)
|
||||
say("")
|
||||
|
||||
|
||||
local checked = pc.getqf("checked_pocket")
|
||||
pc.setqf("checked_pocket", checked + 1)
|
||||
|
||||
local remain = 100 - pc.getqf("checked_pocket")
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.getqf("checked_pocket") >= 100 then
|
||||
pc.remove_item ( 31039, pc.count_item(31039))
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv96._380_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 42983593))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30009),2,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(42983593)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(30009, 2)
|
||||
|
||||
set_state (state4_1)
|
||||
else
|
||||
say(string.format(gameforge.main_quest_lv96._390_say,remain))
|
||||
say("")
|
||||
end
|
||||
else -- 감정 실패
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv96._630_say)
|
||||
say("")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------강령술 저지1-4-----------------------------------
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._400_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._400_sendLetter)
|
||||
say(gameforge.main_quest_lv96._410_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv96._400_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv96._420_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv96._430_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv96._450_say)
|
||||
say("")
|
||||
|
||||
set_state (state4_2)
|
||||
end
|
||||
end
|
||||
-- 퀘스트 진행 --
|
||||
state state4_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._400_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv96._480_counterName)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv96._460_sayTitle)
|
||||
say(gameforge.main_quest_lv96._470_say)
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv96._480_counterName)
|
||||
local remain1 = 1 - pc.getqf("kill_tree1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("kill_tree2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 1 - pc.getqf("kill_tree3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2 + remain3)
|
||||
say_reward(string.format(gameforge.main_quest_lv96._490_say,mob_name(3911) ,remain1, mob_name(3912),remain2 , mob_name(3913),remain3))
|
||||
say("")
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv96.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
-- 클리어 전에 클릭 --
|
||||
when 20378.chat.gameforge.main_quest_lv96._400_sendLetter begin
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv96._500_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3911.kill begin
|
||||
pc.setqf("kill_tree1",1)
|
||||
if pc.getqf("kill_tree1") == 1 and pc.getqf("kill_tree2") == 1 and pc.getqf("kill_tree3") == 1 then
|
||||
notice_multiline(gameforge.main_quest_lv96._510_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv96._510_2_notice,notice)
|
||||
set_state (state4_3)
|
||||
end
|
||||
|
||||
local remain1 = 1 - pc.getqf("kill_tree1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("kill_tree2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 1 - pc.getqf("kill_tree3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2 + remain3)
|
||||
|
||||
end
|
||||
|
||||
when 3912.kill begin
|
||||
pc.setqf("kill_tree2",1)
|
||||
if pc.getqf("kill_tree1") == 1 and pc.getqf("kill_tree2") == 1 and pc.getqf("kill_tree3") == 1 then
|
||||
notice_multiline(gameforge.main_quest_lv96._510_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv96._510_2_notice,notice)
|
||||
set_state (state4_3)
|
||||
end
|
||||
local remain1 = 1 - pc.getqf("kill_tree1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("kill_tree2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 1 - pc.getqf("kill_tree3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2 + remain3)
|
||||
end
|
||||
|
||||
when 3913.kill begin
|
||||
pc.setqf("kill_tree3",1)
|
||||
if pc.getqf("kill_tree1") == 1 and pc.getqf("kill_tree2") == 1 and pc.getqf("kill_tree3") == 1 then
|
||||
notice_multiline(gameforge.main_quest_lv96._510_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv96._510_2_notice,notice)
|
||||
set_state (state4_3)
|
||||
end
|
||||
local remain1 = 1 - pc.getqf("kill_tree1")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("kill_tree2")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 1 - pc.getqf("kill_tree3")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2 + remain3)
|
||||
end
|
||||
end
|
||||
state state4_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv96._400_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv96._400_sendLetter)
|
||||
say(gameforge.main_quest_lv96._520_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv96._400_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv96._530_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv96._550_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 44941086))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 379000))
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv96._560_sayTitle)
|
||||
|
||||
pc.give_exp2(44941086)
|
||||
pc.change_money(379000)
|
||||
|
||||
clear_letter()
|
||||
if pc.count_item(31073) > 1 then
|
||||
pc.remove_item(31073,pc.count_item(31073))
|
||||
end
|
||||
set_quest_state ("main_quest_lv97", "state0")
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,657 +0,0 @@
|
||||
quest main_quest_lv97 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 97 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
----------------------------------천무신녀 처치----------------------------------
|
||||
state state1_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._010_sendLetter)
|
||||
say(gameforge.main_quest_lv97._020_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv97._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._030_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._040_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._050_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv97._060_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._070_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
--퀘스트 수행--
|
||||
state state1_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._010_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv97._080_sayTitle)
|
||||
say(gameforge.main_quest_lv97._090_say)
|
||||
-- say("")
|
||||
-- say_reward(locale.main_quest_lv97.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전에 돌아왔다.--
|
||||
when 20378.chat.gameforge.main_quest_lv97._010_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._650_say)
|
||||
end
|
||||
|
||||
when 3905.kill begin
|
||||
if pc.count_item(31074) < 1 then
|
||||
pc.give_item2 ( 31074, 1 )
|
||||
end
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv97._100_notice,notice)
|
||||
|
||||
say(gameforge.main_quest_lv97._110_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say(gameforge.main_quest_lv97._120_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_3)
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._010_sendLetter)
|
||||
say(gameforge.main_quest_lv97._130_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3905.kill begin
|
||||
if pc.count_item(31074) < 1 then
|
||||
pc.give_item2 ( 31074, 1 )
|
||||
end
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv97._100_notice,notice)
|
||||
|
||||
say(gameforge.main_quest_lv97._110_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say(gameforge.main_quest_lv97._120_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv97._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31074) >= 1 then
|
||||
pc.remove_item ( 31074, pc.count_item(31074))
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._140_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv97._150_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._160_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._190_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 45941088))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30045),2,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(45941088)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(30045, 2)
|
||||
|
||||
set_state (state2_1)
|
||||
else --중간에 아이템을 빼놓고 왔다.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._650_say)
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------- 초마단의 명패 ----------------------------------
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._200_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._200_sendLetter)
|
||||
say(gameforge.main_quest_lv97._210_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_lv97._200_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_lv97._220_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_lv97._230_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv97._260_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._200_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20001)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20001))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._270_sayTitle)
|
||||
say(gameforge.main_quest_lv97._280_say)
|
||||
say("")
|
||||
say_item_vnum(31041)
|
||||
|
||||
say("")
|
||||
end
|
||||
--클리어 전--
|
||||
when 20377.chat.gameforge.main_quest_lv97._200_sendLetter begin
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_lv97._290_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20001.chat.gameforge.main_quest_lv97._200_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_lv97._660_say)
|
||||
|
||||
if pc.count_item(31041) < 1 then
|
||||
pc.give_item2(31041, 1)
|
||||
notice_multiline(gameforge.main_quest_lv97._300_notice,notice)
|
||||
end
|
||||
|
||||
set_state (state2_3)
|
||||
end
|
||||
|
||||
end
|
||||
state state2_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._200_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._200_sendLetter)
|
||||
say(gameforge.main_quest_lv97._300_notice)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_lv97._200_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31041) >= 1 then
|
||||
pc.remove_item ( 31041, pc.count_item(31041))
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_lv97._310_say)
|
||||
say("")
|
||||
wait()
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 41032531))
|
||||
--say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format ("%s: %d %s", item_name(71001),3,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(41032531)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(71001, 3)
|
||||
|
||||
set_state (state3_1)
|
||||
else -- 중간에 아이템을 빠뜨렸다.
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_lv97._170_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_2)
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------- 후방 활로 확보----------------------------------
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._320_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._320_sendLetter)
|
||||
say(gameforge.main_quest_lv97._330_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
when 20378.chat.gameforge.main_quest_lv97._320_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._340_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._350_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._370_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv97._380_say)
|
||||
say("")
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._320_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv97._670_counterName)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv97._390_sayTitle)
|
||||
say(gameforge.main_quest_lv97._400_say)
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv97._670_counterName)
|
||||
local remain1 = 2 - pc.getqf("mob3_1_kill")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("mob3_2_kill")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 1 - pc.getqf("mob3_3_kill")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
local remain4 = 1 - pc.getqf("mob3_4_kill")
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2 + remain3 + remain4)
|
||||
say_reward(string.format(gameforge.main_quest_lv97._680_sayReward,mob_name(3907),remain1,mob_name(3908),remain2))
|
||||
say_reward(string.format(gameforge.main_quest_lv97._680_sayReward,mob_name(3909),remain3,mob_name(3910),remain4))
|
||||
-- say("")
|
||||
-- say_reward(locale.main_quest_lv97.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv97._320_sendLetter begin
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._410_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
|
||||
function kill_count()
|
||||
local remain1 = 2 - pc.getqf("mob3_1_kill")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("mob3_2_kill")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
local remain3 = 1 - pc.getqf("mob3_3_kill")
|
||||
if remain3 < 0 then
|
||||
remain3 = 0
|
||||
end
|
||||
local remain4 = 1 - pc.getqf("mob3_4_kill")
|
||||
if remain4 < 0 then
|
||||
remain4 = 0
|
||||
end
|
||||
local total_remain = remain1 + remain2 + remain3 + remain4
|
||||
q.set_counter_value(total_remain)
|
||||
|
||||
return total_remain
|
||||
end
|
||||
|
||||
when 3907.kill begin
|
||||
pc.setqf("mob3_1_kill",pc.getqf("mob3_1_kill") + 1)
|
||||
if main_quest_lv97.kill_count() == 0 then
|
||||
notice_multiline(gameforge.main_quest_lv97._690_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv97._690_2_notice,notice)
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
when 3908.kill begin
|
||||
pc.setqf("mob3_2_kill",pc.getqf("mob3_2_kill") + 1)
|
||||
if main_quest_lv97.kill_count() == 0 then
|
||||
notice_multiline(gameforge.main_quest_lv97._690_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv97._690_2_notice,notice)
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
when 3909.kill begin
|
||||
pc.setqf("mob3_3_kill",pc.getqf("mob3_3_kill") + 1)
|
||||
if main_quest_lv97.kill_count() == 0 then
|
||||
notice_multiline(gameforge.main_quest_lv97._690_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv97._690_2_notice,notice)
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
when 3910.kill begin
|
||||
pc.setqf("mob3_4_kill",pc.getqf("mob3_4_kill") + 1)
|
||||
if main_quest_lv97.kill_count() == 0 then
|
||||
notice_multiline(gameforge.main_quest_lv97._690_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv97._690_2_notice,notice)
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._320_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._320_sendLetter)
|
||||
say(gameforge.main_quest_lv97._420_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv97._320_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._430_say)
|
||||
say("")
|
||||
wait()
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 47898648))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 214000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30033),3,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(47898648)
|
||||
pc.change_money(214000)
|
||||
pc.give_item2(30033, 3)
|
||||
|
||||
set_state (state4_1)
|
||||
end
|
||||
end
|
||||
---------------------------------- 초호신녀의 직계, 천무신녀----------------------------------
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._440_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._440_sendLetter)
|
||||
say(gameforge.main_quest_lv97._450_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv97._440_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._460_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._480_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv97._490_say)
|
||||
say("")
|
||||
|
||||
set_state (state4_2)
|
||||
end
|
||||
end
|
||||
-- 퀘스트 진행 --
|
||||
state state4_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._440_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._700_sayTitle)
|
||||
say(gameforge.main_quest_lv97._710_say)
|
||||
end
|
||||
|
||||
-- 클리어 전에 클릭 --
|
||||
when 20378.chat.gameforge.main_quest_lv97._440_sendLetter begin
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._530_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3910.kill begin
|
||||
notice_multiline(gameforge.main_quest_lv97._550_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv97._550_2_notice,notice)
|
||||
|
||||
set_state (state4_3)
|
||||
end
|
||||
end
|
||||
-- 퀘스트 진행 --
|
||||
state state4_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._440_sendLetter)
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._510_sayTitle)
|
||||
say(gameforge.main_quest_lv97._520_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
-- 클리어 전에 클릭 --
|
||||
when 20378.chat.gameforge.main_quest_lv97._440_sendLetter begin
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._540_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3906.kill begin -- 천무신녀 처치
|
||||
notice_multiline(gameforge.main_quest_lv97._560_notice,notice)
|
||||
|
||||
say(gameforge.main_quest_lv97._570_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say(gameforge.main_quest_lv97._580_say)
|
||||
say("")
|
||||
|
||||
if pc.count_item(31017) < 1 then
|
||||
pc.give_item2(31017, 1)
|
||||
end
|
||||
|
||||
set_state (state4_4)
|
||||
end
|
||||
end
|
||||
state state4_4 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv97._440_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv97._440_sendLetter)
|
||||
say(gameforge.main_quest_lv97._420_say)
|
||||
say("")
|
||||
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv97._440_sendLetter begin
|
||||
pc.remove_item(31017,pc.count_item(31017))
|
||||
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._590_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv97._600_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._610_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_reward(gameforge.main_quest_lv97._620_sayReward)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378 ))
|
||||
say(gameforge.main_quest_lv97._630_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 49586571))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 225000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(70024),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30039),3,locale.count_postfix))
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv97._640_sayTitle)
|
||||
|
||||
pc.give_exp2(49586571)
|
||||
pc.change_money(225000)
|
||||
pc.give_item2(70024, 1)
|
||||
pc.give_item2(30039, 3)
|
||||
|
||||
clear_letter()
|
||||
set_quest_state ("main_quest_lv98", "state0")
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,774 +0,0 @@
|
||||
quest main_quest_lv98 begin
|
||||
state start begin
|
||||
end
|
||||
state state0 begin
|
||||
when login or levelup or enter with pc.level >= 98 begin
|
||||
set_state (state1_1)
|
||||
end
|
||||
end
|
||||
----------------------------------명시진 재건 1-1----------------------------------
|
||||
state state1_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._010_sendLetter)
|
||||
say(gameforge.main_quest_lv98._020_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv98._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._030_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._040_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv98._050_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._060_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
--껍질 모으기 퀘스트 수행--
|
||||
state state1_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._010_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv98._660_counterName)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv98._540_sayTitle)
|
||||
say(gameforge.main_quest_lv98._550_say)
|
||||
say("")
|
||||
say_item_vnum(31026)
|
||||
say_title(gameforge.main_quest_lv98._660_counterName)
|
||||
local remain = 100 - pc.count_item(31026)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
say_reward(string.format(gameforge.main_quest_lv98._670_sayReward,item_name(31026),remain))
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv98.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
--클리어 전에 돌아왔다.--
|
||||
when 20378.chat.gameforge.main_quest_lv98._010_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._070_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3601.kill or 3602.kill or 3603.kill or 3604.kill or 3605.kill or 3690.kill or 3691.kill begin
|
||||
if number (1,50) == 1 then
|
||||
if pc.count_item(31026) < 100 then
|
||||
pc.give_item2 ( 31026, 1 )
|
||||
|
||||
local remain = 100 - pc.count_item(31026)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.count_item(31026) >= 100 then
|
||||
notice_multiline(gameforge.main_quest_lv98._080_1_notice, notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._080_2_notice,notice)
|
||||
|
||||
set_state (state1_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
state state1_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._010_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._010_sendLetter)
|
||||
say(gameforge.main_quest_lv98._560_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3601.kill or 3602.kill or 3603.kill or 3604.kill or 3605.kill or 3690.kill or 3691.kill begin
|
||||
if number (1,50) == 1 then
|
||||
if pc.count_item(31026) < 100 then
|
||||
pc.give_item2 ( 31026, 1 )
|
||||
|
||||
if pc.count_item(31026) >= 100 then
|
||||
notice_multiline(gameforge.main_quest_lv98._080_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._080_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv98._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31026) >= 100 then
|
||||
pc.remove_item ( 31026, pc.count_item(31026))
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._090_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 40898550))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 346000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(72308),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(76011),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(40898550)
|
||||
pc.change_money(346000)
|
||||
pc.give_item2(72308, 1)
|
||||
pc.give_item2_select(76011)
|
||||
item.set_socket(2, 120)
|
||||
|
||||
set_state (state2_1)
|
||||
else --중간에 아이템을 빼놓고 왔다.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._070_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------- 명시진 재건 1-2 ----------------------------------
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._130_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._130_sendLetter)
|
||||
say(gameforge.main_quest_lv98._140_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv98._130_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._150_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv98._160_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._130_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv98._660_counterName)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv98._130_sendLetter)
|
||||
say(gameforge.main_quest_lv98._590_say)
|
||||
say("")
|
||||
say_item_vnum(31042)
|
||||
say_title(gameforge.main_quest_lv98._660_counterName)
|
||||
local remain = 100 - pc.count_item(31042)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
say_reward(string.format(gameforge.main_quest_lv98._670_sayReward,item_name(31042),remain))
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv98.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
--클리어 전--
|
||||
when 20378.chat.gameforge.main_quest_lv98._130_sendLetter begin
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._170_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3401.kill or 3402.kill or 3403.kill or 3404.kill or 3405.kill or 3490.kill or 3491.kill begin
|
||||
if number (1,50) == 1 then
|
||||
if pc.count_item(31042) < 100 then
|
||||
pc.give_item2 ( 31042, 1 )
|
||||
local remain = 100 - pc.count_item(31042)
|
||||
if remain < 0 then
|
||||
remain = 0
|
||||
end
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.count_item(31042) >= 100 then
|
||||
notice_multiline(gameforge.main_quest_lv98._180_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._180_2_notice,notice)
|
||||
set_state (state2_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
state state2_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._130_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._130_sendLetter)
|
||||
say(gameforge.main_quest_lv98._600_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
|
||||
-- 중간에 퀘스트 아이템을 버릴 경우를 대비한 부분.
|
||||
when 3401.kill or 3402.kill or 3403.kill or 3404.kill or 3405.kill or 3490.kill or 3491.kill begin
|
||||
if number (1,50) == 1 then
|
||||
if pc.count_item(31042) < 100 then
|
||||
pc.give_item2 ( 31042, 1 )
|
||||
|
||||
if pc.count_item(31042) >= 100 then
|
||||
notice_multiline(gameforge.main_quest_lv98._180_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._180_2_notice,notice)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv98._130_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
if pc.count_item(31042) >= 100 then
|
||||
pc.remove_item ( 31042, pc.count_item(31042))
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._190_say)
|
||||
say("")
|
||||
wait()
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 42646751))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 357000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(71026),1,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(71025),2,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(70102),5,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(42646751)
|
||||
pc.change_money(357000)
|
||||
pc.give_item2(71026, 1)
|
||||
pc.give_item2(71025, 1)
|
||||
pc.give_item2(71025, 1)
|
||||
|
||||
pc.give_item2(70102, 1)
|
||||
pc.give_item2(70102, 1)
|
||||
pc.give_item2(70102, 1)
|
||||
pc.give_item2(70102, 1)
|
||||
pc.give_item2(70102, 1)
|
||||
|
||||
set_state (state3_1)
|
||||
else -- 중간에 아이템을 빠뜨렸다.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._170_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_2)
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------- 생활 안정----------------------------------
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._200_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._200_sendLetter)
|
||||
say(gameforge.main_quest_lv98._210_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
when 20377.chat.gameforge.main_quest_lv98._200_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._220_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._260_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._280_say)
|
||||
say("")
|
||||
set_state (state3_2)
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._200_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
end
|
||||
when button or info begin
|
||||
-- if pc.get_map_index() == 1 then
|
||||
-- addmapsignal(500 * 100, 500 * 100)
|
||||
-- addmapsignal(600 * 100, 500 * 100)
|
||||
-- addmapsignal(700 * 100, 300 * 100)
|
||||
-- end
|
||||
say_title(gameforge.main_quest_lv98._610_sayTitle)
|
||||
say(gameforge.main_quest_lv98._620_say)
|
||||
say("")
|
||||
say(gameforge.main_quest_lv98._680_counterName)
|
||||
local remain1 = 50 - pc.getqf("mob3_1_kill")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("mob3_2_kill")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2)
|
||||
say_reward(string.format(gameforge.main_quest_lv98._690_sayReward,mob_name(3805),remain1,mob_name(3890),remain2))
|
||||
-- say()
|
||||
-- say_reward(locale.main_quest_lv98.pos_info)
|
||||
-- select(gameforge.main_quest_lv90._950_say)
|
||||
-- setskin(NOWINDOW)
|
||||
-- clearmapsignal()
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_lv98._200_sendLetter begin
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._300_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 3805.kill begin
|
||||
local mob3_1_kill = pc.getqf("mob3_1_kill")
|
||||
if mob3_1_kill < 50 then
|
||||
pc.setqf("mob3_1_kill",mob3_1_kill +1)
|
||||
|
||||
local remain1 = 50 - pc.getqf("mob3_1_kill")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("mob3_2_kill")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2)
|
||||
end
|
||||
|
||||
if pc.getqf("mob3_1_kill") >= 50 and pc.getqf("mob3_2_kill") >= 1 then
|
||||
notice_multiline(gameforge.main_quest_lv98._310_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._310_2_notice,notice)
|
||||
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
when 3890.kill begin
|
||||
local mob3_2_kill = pc.getqf("mob3_2_kill")
|
||||
if mob3_2_kill < 1 then
|
||||
pc.setqf("mob3_2_kill",1)
|
||||
|
||||
local remain1 = 50 - pc.getqf("mob3_1_kill")
|
||||
if remain1 < 0 then
|
||||
remain1 = 0
|
||||
end
|
||||
local remain2 = 1 - pc.getqf("mob3_2_kill")
|
||||
if remain2 < 0 then
|
||||
remain2 = 0
|
||||
end
|
||||
q.set_counter_value(remain1 + remain2)
|
||||
end
|
||||
|
||||
if pc.getqf("mob3_1_kill") >= 50 and pc.getqf("mob3_2_kill") >= 1 then
|
||||
notice_multiline(gameforge.main_quest_lv98._310_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._310_2_notice,notice)
|
||||
|
||||
set_state (state3_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._200_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
q.set_counter_name("")
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._200_sendLetter)
|
||||
say(gameforge.main_quest_lv98._630_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_lv98._200_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._320_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._190_sayReward, 48584941))
|
||||
--say_reward(string.format(gameforge.main_quest_lv60._200_sayReward, 0))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30021),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(48584941)
|
||||
--pc.change_money(0)
|
||||
pc.give_item2(30021, 1)
|
||||
|
||||
set_state (state4_1)
|
||||
end
|
||||
end
|
||||
---------------------------------- 마지막 인사----------------------------------
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._330_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._330_sendLetter)
|
||||
say(gameforge.main_quest_lv98._340_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_lv98._330_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._350_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._360_say)
|
||||
say("")
|
||||
wait()
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_lv98._380_say)
|
||||
say("")
|
||||
|
||||
set_state (state4_2)
|
||||
end
|
||||
end
|
||||
-- 인사 퀘스트 진행 --
|
||||
state state4_2 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._330_sendLetter)
|
||||
q.set_counter_name(gameforge.main_quest_lv98._700_counterName)
|
||||
|
||||
local v_npc1 = find_npc_by_vnum(20381)
|
||||
local v_npc2 = find_npc_by_vnum(9002)
|
||||
local v_npc3 = find_npc_by_vnum(9003)
|
||||
local v_npc4 = find_npc_by_vnum(9001)
|
||||
if 0 != v_npc1 and pc.getqf("click_npc1") ~= 1 then
|
||||
target.vid("__target_npc1__", v_npc1, mob_name(20381))
|
||||
end
|
||||
if 0 != v_npc2 and pc.getqf("click_npc2") ~= 1 then
|
||||
target.vid("__target_npc2__", v_npc2, mob_name(9002))
|
||||
end
|
||||
if 0 != v_npc3 and pc.getqf("click_npc3") ~= 1 then
|
||||
target.vid("__target_npc3__", v_npc3, mob_name(9003))
|
||||
end
|
||||
if 0 != v_npc4 and pc.getqf("click_npc4") ~= 1 then
|
||||
target.vid("__target_npc4__", v_npc4, mob_name(9001))
|
||||
end
|
||||
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._640_sayTitle)
|
||||
say(gameforge.main_quest_lv98._650_say)
|
||||
say("")
|
||||
say_title(gameforge.main_quest_lv98._700_counterName)
|
||||
local npc1 = " "
|
||||
if pc.getqf("click_npc1") == 1 then
|
||||
npc1 = "O"
|
||||
end
|
||||
local npc2 = " "
|
||||
if pc.getqf("click_npc2") == 1 then
|
||||
npc2 = "O"
|
||||
end
|
||||
local npc3 = " "
|
||||
if pc.getqf("click_npc3") == 1 then
|
||||
npc3 = "O"
|
||||
end
|
||||
local npc4 = " "
|
||||
if pc.getqf("click_npc4") == 1 then
|
||||
npc4 = "O"
|
||||
end
|
||||
local remain = 4 - pc.getqf("click_npc1") - pc.getqf("click_npc2") - pc.getqf("click_npc3") - pc.getqf("click_npc4")
|
||||
q.set_counter_value(remain)
|
||||
say(string.format(gameforge.main_quest_lv98._710_say,npc1,npc2))
|
||||
say(string.format(gameforge.main_quest_lv98._720_say,npc3,npc4))
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
|
||||
end
|
||||
|
||||
-- 클리어 전에 클릭 --
|
||||
when 20377.chat.gameforge.main_quest_lv98._330_sendLetter begin
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._390_say)
|
||||
say("")
|
||||
wait()
|
||||
end
|
||||
|
||||
when __target_npc1__.target.click or 20381.click with pc.getqf("click_npc1") ~= 1 begin -- 촌장
|
||||
target.delete("__target_npc1__")
|
||||
pc.setqf("click_npc1",1)
|
||||
|
||||
say_title(mob_name(20381))
|
||||
say(gameforge.main_quest_lv98._400_say)
|
||||
say("")
|
||||
|
||||
local remain = 4 - pc.getqf("click_npc1") - pc.getqf("click_npc2") - pc.getqf("click_npc3") - pc.getqf("click_npc4")
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.getqf("click_npc1") == 1 and pc.getqf("click_npc2") == 1 and pc.getqf("click_npc3") == 1 and pc.getqf("click_npc4") == 1 then
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv98._440_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._440_2_notice,notice)
|
||||
|
||||
set_state (state4_3)
|
||||
end
|
||||
end
|
||||
when __target_npc2__.target.click or 9002.click with pc.getqf("click_npc2") ~= 1 begin -- 방어구
|
||||
target.delete("__target_npc2__")
|
||||
pc.setqf("click_npc2",1)
|
||||
|
||||
say_title(mob_name(9002))
|
||||
say(gameforge.main_quest_lv98._410_say)
|
||||
say("")
|
||||
|
||||
local remain = 4 - pc.getqf("click_npc1") - pc.getqf("click_npc2") - pc.getqf("click_npc3") - pc.getqf("click_npc4")
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.getqf("click_npc1") == 1 and pc.getqf("click_npc2") == 1 and pc.getqf("click_npc3") == 1 and pc.getqf("click_npc4") == 1 then
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv98._440_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._440_2_notice,notice)
|
||||
|
||||
set_state (state4_3)
|
||||
end
|
||||
|
||||
end
|
||||
when __target_npc3__.target.click or 9003.click with pc.getqf("click_npc3") ~= 1 begin -- 잡화상점
|
||||
target.delete("__target_npc3__")
|
||||
pc.setqf("click_npc3",1)
|
||||
|
||||
say_title(mob_name(9003))
|
||||
say(gameforge.main_quest_lv98._430_say)
|
||||
say("")
|
||||
|
||||
local remain = 4 - pc.getqf("click_npc1") - pc.getqf("click_npc2") - pc.getqf("click_npc3") - pc.getqf("click_npc4")
|
||||
q.set_counter_value(remain)
|
||||
|
||||
|
||||
if pc.getqf("click_npc1") == 1 and pc.getqf("click_npc2") == 1 and pc.getqf("click_npc3") == 1 and pc.getqf("click_npc4") == 1 then
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv98._440_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._440_2_notice,notice)
|
||||
|
||||
set_state (state4_3)
|
||||
end
|
||||
end
|
||||
when __target_npc4__.target.click or 9001.click with pc.getqf("click_npc4") ~= 1 begin -- 무기상점
|
||||
target.delete("__target_npc4__")
|
||||
pc.setqf("click_npc4",1)
|
||||
|
||||
say_title(mob_name(9001))
|
||||
say(gameforge.main_quest_lv98._420_say)
|
||||
say("")
|
||||
|
||||
local remain = 4 - pc.getqf("click_npc1") - pc.getqf("click_npc2") - pc.getqf("click_npc3") - pc.getqf("click_npc4")
|
||||
q.set_counter_value(remain)
|
||||
|
||||
if pc.getqf("click_npc1") == 1 and pc.getqf("click_npc2") == 1 and pc.getqf("click_npc3") == 1 and pc.getqf("click_npc4") == 1 then
|
||||
|
||||
notice_multiline(gameforge.main_quest_lv98._440_1_notice,notice)
|
||||
notice_multiline(gameforge.main_quest_lv98._440_2_notice,notice)
|
||||
|
||||
set_state (state4_3)
|
||||
end
|
||||
end
|
||||
end
|
||||
state state4_3 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._330_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20377)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20377))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._330_sendLetter)
|
||||
say(gameforge.main_quest_lv98._630_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_lv98._330_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20377 ))
|
||||
say(gameforge.main_quest_lv98._450_say)
|
||||
say("")
|
||||
wait()
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 32033398))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 379000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30015),2,locale.count_postfix))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(70043),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(32033398)
|
||||
pc.change_money(379000)
|
||||
pc.give_item2(30015, 2)
|
||||
pc.give_item2_select(70043)
|
||||
item.set_socket(2, 60)
|
||||
|
||||
set_state (state5_1)
|
||||
end
|
||||
end
|
||||
----------------------------------다시 대륙으로----------------------------------
|
||||
state state5_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv98._480_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(20378)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20378))
|
||||
end
|
||||
end
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv98._480_sendLetter)
|
||||
say(gameforge.main_quest_lv98._490_say)
|
||||
say("")
|
||||
say_reward(gameforge.main_quest_lv98._570_sayReward)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20378.chat.gameforge.main_quest_lv98._480_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._500_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._520_say)
|
||||
say("")
|
||||
wait()
|
||||
|
||||
--보상
|
||||
say_title(locale.reward)
|
||||
say_reward(string.format (gameforge.main_quest_lv60._190_sayReward, 38739560))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._200_sayReward, 390000))
|
||||
say_reward(string.format (gameforge.main_quest_lv60._210_sayReward, item_name(30006),1,locale.count_postfix))
|
||||
say("")
|
||||
|
||||
pc.give_exp2(38739560)
|
||||
pc.change_money(390000)
|
||||
pc.give_item2(30006, 1)
|
||||
|
||||
clear_letter()
|
||||
set_state (__COMPLETE__)
|
||||
end
|
||||
end
|
||||
|
||||
state __COMPLETE__ begin
|
||||
when enter begin
|
||||
q.done()
|
||||
end
|
||||
end
|
||||
end
|
@ -1,44 +0,0 @@
|
||||
quest new_christmas_2012 begin
|
||||
state start begin
|
||||
function has_santa()
|
||||
return (game.get_event_flag("new_xmas_event") > 0)
|
||||
end
|
||||
|
||||
when 20126.chat.gameforge.new_christmas._010_npcChat begin
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._020_say )
|
||||
wait()
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._030_say )
|
||||
wait()
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._040_say )
|
||||
wait()
|
||||
set_quest_state("new_christmas_2012_nog", "nog_first_give")
|
||||
set_quest_state("new_christmas_2012_sock", "baby_dear_give")
|
||||
set_state ("__COMPLETE__")
|
||||
end
|
||||
when login or enter with new_christmas_2012.has_santa() begin
|
||||
if pc.get_map_index() == 1 or pc.get_map_index() == 21 or pc.get_map_index() == 41 then
|
||||
if find_npc_by_vnum(20384) == 0 then
|
||||
if pc.get_map_index() == 1 then
|
||||
mob.spawn(20384, 625, 676, 0, 0 )
|
||||
elseif pc.get_map_index() == 21 then
|
||||
mob.spawn(20384, 542, 551, 0, 0)
|
||||
elseif pc.get_map_index() == 41 then
|
||||
mob.spawn(20384, 442, 717, 0, 0)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
state __COMPLETE__ begin
|
||||
when 20126.chat."init christmas quest" with is_test_server() or pc.is_gm() begin
|
||||
set_state ("start")
|
||||
set_quest_state("new_christmas_2012_nog", "start")
|
||||
set_quest_state("new_christmas_2012_sock", "start")
|
||||
say ("init complete")
|
||||
end
|
||||
end
|
||||
end
|
@ -1,36 +0,0 @@
|
||||
quest new_christmas_2012_nog begin
|
||||
state start begin
|
||||
end
|
||||
state nog_first_give begin
|
||||
when 20126.chat.gameforge.new_christmas._050_npcChat begin
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._060_say)
|
||||
wait()
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._070_say)
|
||||
wait()
|
||||
pc.give_item2 (50216, 6)
|
||||
pc.setqf ("last_nog_give_time", get_global_time())
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._080_say)
|
||||
set_state(nog_give)
|
||||
end
|
||||
end
|
||||
state nog_give begin
|
||||
when 20126.chat.gameforge.new_christmas._090_npcChat begin
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._100_say)
|
||||
wait()
|
||||
if get_global_time() - pc.getqf ("last_nog_give_time") >= 86400 then
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._110_say)
|
||||
pc.setqf ("last_nog_give_time", get_global_time())
|
||||
pc.give_item2 (50216, 6)
|
||||
else
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas._120_say)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -1,70 +0,0 @@
|
||||
quest new_christmas_2012_sock begin
|
||||
state start begin
|
||||
end
|
||||
state baby_dear_give begin
|
||||
when 20126.chat.gameforge.new_christmas_sock._010_npcChat begin
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas_sock._020_say)
|
||||
wait()
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas_sock._030_say)
|
||||
wait()
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas_sock._040_say)
|
||||
wait()
|
||||
say_title(mob_name(20126))
|
||||
pc.give_item2_select (53007, 1)
|
||||
item.set_socket (0, get_global_time() + 7200)
|
||||
pc.setqf ("last_reindeer_give_time", get_global_time())
|
||||
set_state(sock_take)
|
||||
end
|
||||
end
|
||||
state sock_take begin
|
||||
when 20126.chat.gameforge.new_christmas_sock._080_npcChat begin
|
||||
if get_global_time() - pc.getqf ("last_reindeer_give_time") < 86400 then
|
||||
say_title (mob_name (20126))
|
||||
say (gameforge.new_christmas_sock._090_say)
|
||||
else
|
||||
say_title (mob_name (20126))
|
||||
say (gameforge.new_christmas_sock._040_say)
|
||||
pc.give_item2_select (53007, 1)
|
||||
item.set_socket (0, get_global_time() + 7200)
|
||||
pc.setqf ("last_reindeer_give_time", get_global_time())
|
||||
end
|
||||
end
|
||||
|
||||
when 20126.chat."reset flags / reindeer, socks" with is_test_server() begin
|
||||
pc.setqf ("last_reindeer_give_time", 0)
|
||||
pc.setqf("last_sock_cooldown_time", 0)
|
||||
end
|
||||
|
||||
when 20126.chat.gameforge.new_christmas_sock._050_npcChat begin
|
||||
if get_time() < pc.getqf("last_sock_cooldown_time") then
|
||||
say_title (mob_name(20126))
|
||||
say (gameforge.new_christmas_sock._100_say)
|
||||
else
|
||||
local n = pc.count_item(50010)
|
||||
if n < 5 then
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas_sock._060_say)
|
||||
wait()
|
||||
else
|
||||
say_title(mob_name(20126))
|
||||
say (gameforge.new_christmas_sock._070_say)
|
||||
wait()
|
||||
pc.remove_item (50010, 5)
|
||||
say_title(locale.reward)
|
||||
|
||||
pc.give_item2(71144)
|
||||
say_reward (string.format("%s : 1%s",item_name(71144), locale.count_postfix))
|
||||
|
||||
if is_test_server() then
|
||||
pc.setqf("last_sock_cooldown_time", get_time() + 20)
|
||||
else
|
||||
pc.setqf("last_sock_cooldown_time", get_time()+60*60*24) -----------------------------------24 stunden nun
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
@ -1,470 +0,0 @@
|
||||
quest spider_dungeon_3floor_boss begin
|
||||
state start begin
|
||||
--2, 던전 끝 시간.
|
||||
when spider_end_timer.server_timer with game.get_event_flag("spider_dead"..get_channel_id()) == 0 begin --
|
||||
warp_all_in_area_to_area(82700, 612700, 93700,625700, 69100, 614800, 69100, 614800)
|
||||
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(),0)
|
||||
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
|
||||
game.set_event_flag("spider_dead"..get_channel_id(),0)
|
||||
purge_area(82700, 612700, 93700,625700)
|
||||
end
|
||||
|
||||
when spider_dead_timer.server_timer begin
|
||||
warp_all_in_area_to_area(82700, 612700, 93700,625700, 69100, 614800, 69100, 614800)
|
||||
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(), 0)
|
||||
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
|
||||
game.set_event_flag("spider_dead"..get_channel_id(),0)
|
||||
purge_area(82700, 612700, 93700,625700)
|
||||
end
|
||||
|
||||
when login or levelup or enter with pc.get_level() >= 50 begin
|
||||
set_state( step1 )
|
||||
end
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
say(gameforge.spider_dungeon_3floor_boss._20_say)
|
||||
end
|
||||
end
|
||||
|
||||
state step1 begin
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --테스트용
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
say(gameforge.spider_dungeon_3floor_boss._20_say)
|
||||
end
|
||||
|
||||
when 20355.chat.gameforge.spider_dungeon_3floor_boss._50_npcChat begin --경비대장에게 말을 걸어 퀘스트를 시작한다.
|
||||
|
||||
say_title(mob_name(20355))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.spider_dungeon_3floor_boss._60_say)
|
||||
set_state( step2 )
|
||||
pc.give_item2(76019)
|
||||
end
|
||||
end
|
||||
|
||||
state step2 begin --비석에 탁본을 뜨러 가야한다.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --테스트용
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
-----------퀘스트편지2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.spider_dungeon_3floor_boss._70_sendLetter)
|
||||
|
||||
local v = find_npc_by_vnum(30130)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(30130))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.spider_dungeon_3floor_boss._70_sendLetter)
|
||||
say(gameforge.spider_dungeon_3floor_boss._80_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._70_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(pc.getname())
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.spider_dungeon_3floor_boss._90_say)
|
||||
set_state(step3)
|
||||
end
|
||||
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
say(gameforge.spider_dungeon_3floor_boss._20_say)
|
||||
end
|
||||
|
||||
when 20355.chat.gameforge.spider_dungeon_3floor_boss._50_npcChat begin
|
||||
|
||||
say_title(mob_name(20355))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.spider_dungeon_3floor_boss._100_say)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
state step3 begin --탁본을 떴으니 경비에게 돌아간다.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --테스트용
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
say(gameforge.spider_dungeon_3floor_boss._20_say)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.spider_dungeon_3floor_boss._110_sendLetter)
|
||||
|
||||
--경비대장을 가리킨다.
|
||||
local v = find_npc_by_vnum(20355)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20355))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.spider_dungeon_3floor_boss._110_sendLetter)
|
||||
say(gameforge.spider_dungeon_3floor_boss._120_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--을두지를 선택하면 해당 퀘스트에 관련된 대화를 나눌 수 있다.
|
||||
when 20355.chat.gameforge.spider_dungeon_3floor_boss._110_sendLetter begin
|
||||
say_title(mob_name(20355))
|
||||
say(gameforge.spider_dungeon_3floor_boss._130_say)
|
||||
set_state(step4)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
state step4 begin --을두지에게 탁본을 맡기자.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --테스트용
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
say(gameforge.spider_dungeon_3floor_boss._20_say)
|
||||
end
|
||||
|
||||
-----------퀘스트편지2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.spider_dungeon_3floor_boss._110_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20011)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20011))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.spider_dungeon_3floor_boss._110_sendLetter)
|
||||
say(gameforge.spider_dungeon_3floor_boss._140_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._110_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.spider_dungeon_3floor_boss._150_say)
|
||||
say("")
|
||||
|
||||
set_state(step5)
|
||||
end
|
||||
|
||||
when 20355.chat.gameforge.spider_dungeon_3floor_boss._110_sendLetter begin
|
||||
say_title(mob_name(20355))
|
||||
say(gameforge.spider_dungeon_3floor_boss._130_say)
|
||||
end
|
||||
end
|
||||
|
||||
state step5 begin --경비한테 편지 배달
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --테스트용
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
say(gameforge.spider_dungeon_3floor_boss._20_say)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.spider_dungeon_3floor_boss._110_sendLetter)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20355)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20355))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.spider_dungeon_3floor_boss._170_sayTitle)
|
||||
say(gameforge.spider_dungeon_3floor_boss._180_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
when 20355.chat.gameforge.spider_dungeon_3floor_boss._190_npcChat begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20355))
|
||||
----"12345678901234567890123456789012345678901234567890"|
|
||||
say(gameforge.spider_dungeon_3floor_boss._200_say)
|
||||
say("")
|
||||
|
||||
set_state(step6) pc.give_item2(76019)
|
||||
end
|
||||
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._110_sendLetter begin
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.spider_dungeon_3floor_boss._160_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
state step6 begin --경비는 나만 일시킨다. 을두지와 상의하자.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --테스트용
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
say(gameforge.spider_dungeon_3floor_boss._20_say)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.spider_dungeon_3floor_boss._190_npcChat)
|
||||
|
||||
-- 을두지를 가리킨다.
|
||||
local v = find_npc_by_vnum(20011)
|
||||
if 0 != v then
|
||||
target.vid("__TARGET__", v, mob_name(20011))
|
||||
end
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.spider_dungeon_3floor_boss._190_npcChat)
|
||||
say(gameforge.spider_dungeon_3floor_boss._200_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--을두지를 선택하면 해당 퀘스트에 관련된 대화를 나눌 수 있다.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._190_npcChat begin
|
||||
target.delete("__TARGET__")
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.spider_dungeon_3floor_boss._230_say)
|
||||
|
||||
set_state(boss_ok)
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
state boss_ok begin -- 열쇠를 만들수 있게 된 최종상태. 이제부터 거미굴 보스룸에 입장할 수 있다.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --테스트용
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._210_npcChat begin
|
||||
|
||||
if pc.count_item(30025) > 0 and pc.count_item(30056) > 0 and pc.count_item(30057) > 0 and pc.count_item(30058) > 0 and pc.count_item(30059) > 0 and pc.count_item(30326) > 0 then
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.spider_dungeon_3floor_boss._250_say)
|
||||
pc.remove_item(30025, 1)
|
||||
pc.remove_item(30056, 1)
|
||||
pc.remove_item(30057, 1)
|
||||
pc.remove_item(30058, 1)
|
||||
pc.remove_item(30059, 1)
|
||||
pc.remove_item(30326, 1)
|
||||
if math.random(1,2000) <= 1000 then
|
||||
say(gameforge.spider_dungeon_3floor_boss._260_say)
|
||||
pc.give_item2(30324, 1)
|
||||
else
|
||||
say(gameforge.spider_dungeon_3floor_boss._270_say)
|
||||
end
|
||||
else
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.spider_dungeon_3floor_boss._280_say)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
|
||||
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
|
||||
|
||||
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
|
||||
local current_time = get_global_time()
|
||||
|
||||
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
|
||||
|
||||
if starttime + 300 >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
|
||||
say(gameforge.spider_dungeon_3floor_boss._300_say) -- 테스트용
|
||||
local warp = select(locale.confirm,locale.cancel)
|
||||
if warp == 1 then
|
||||
pc.setqf("firstIn",1)
|
||||
pc.setqf("retry_limit_time", starttime + 1200 + 3600 )
|
||||
set_state(inLair)
|
||||
pc.warp(88100,614800)
|
||||
return
|
||||
end
|
||||
else
|
||||
say(gameforge.spider_dungeon_3floor_boss._310_say) -- 테스트용
|
||||
return
|
||||
end
|
||||
else
|
||||
local remain_time = (game.get_event_flag("spider_lair_end_time_"..get_channel_id() ) - get_global_time()) / 60
|
||||
if remain_time < 0 then
|
||||
say(gameforge.spider_dungeon_3floor_boss._410_say)
|
||||
game.set_event_flag("spider_lair_ongoing_"..get_channel_id(),0)
|
||||
game.set_event_flag("spider_lair_leader_"..get_channel_id(), 0)
|
||||
game.set_event_flag("spider_dead"..get_channel_id(),0)
|
||||
return
|
||||
end
|
||||
say(gameforge.spider_dungeon_3floor_boss._320_say)
|
||||
--- here we should change to string.format %s key
|
||||
say(string.format(gameforge.spider_dungeon_3floor_boss._330_say, math.ceil(remain_time)))
|
||||
return
|
||||
end
|
||||
elseif pc.getqf("retry_limit_time") > get_global_time() then
|
||||
local access_limit = (pc.getqf("retry_limit_time") - get_global_time()) / 60
|
||||
say(gameforge.spider_dungeon_3floor_boss._340_say)
|
||||
-- here we should also change to string.format %s key
|
||||
say(string.format(gameforge.spider_dungeon_3floor_boss._350_say, math.ceil(access_limit)))
|
||||
return
|
||||
elseif party.is_leader() then
|
||||
if false == pc.can_warp() then
|
||||
say(gameforge.spider_dungeon_3floor_boss._360_say)
|
||||
return
|
||||
end
|
||||
if pc.count_item(30324) > 0 then
|
||||
say(gameforge.spider_dungeon_3floor_boss._370_say)
|
||||
local warp = select(locale.confirm,locale.cancel)
|
||||
if warp == 1 then
|
||||
|
||||
set_state(inLair)
|
||||
|
||||
pc.remove_item(30324, 1)
|
||||
|
||||
mob.spawn(2094,369,551,0,0)
|
||||
|
||||
--값 설정.
|
||||
game.set_event_flag("spider_lair_ongoing_"..get_channel_id() , 1)
|
||||
game.set_event_flag("spider_lair_start_time_"..get_channel_id() , get_global_time())
|
||||
game.set_event_flag("spider_lair_end_time_"..get_channel_id() , get_global_time() + 1200)
|
||||
game.set_event_flag("spider_lair_leader_"..get_channel_id() , party.get_leader_pid())
|
||||
|
||||
pc.setqf("retry_limit_time", get_global_time() + 1200 + 3600 )
|
||||
pc.setqf("firstIn",1)
|
||||
|
||||
|
||||
server_timer("spider_end_timer", 1200 )
|
||||
|
||||
|
||||
pc.warp(88100,614800)
|
||||
end
|
||||
return
|
||||
else
|
||||
say(gameforge.spider_dungeon_3floor_boss._380_say)
|
||||
return
|
||||
end
|
||||
else --리더 아니다.
|
||||
say(gameforge.spider_dungeon_3floor_boss._390_say)
|
||||
return
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
state inLair begin
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --테스트용
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
|
||||
|
||||
when login begin
|
||||
-- 정상적으로 보스룸에 입장.
|
||||
--if pc.getqf("firstIn") == 1 and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
|
||||
if get_global_time() < pc.getqf("retry_limit_time") - 3600 and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
|
||||
pc.setqf("firstIn",0)
|
||||
elseif pc.getx() >= 827 and pc.getx() <= 937 and pc.gety() >= 6127 and pc.gety() <= 6257 then
|
||||
pc.warp(95900,571000)
|
||||
pc.remove_item(30327, 1)
|
||||
else -- 위에서 팅겨낸 유저가 밖에서 로그인 하게 되면, 접근 제한 시간을 셋팅해줌.
|
||||
pc.remove_item(30327, 1)
|
||||
set_state( boss_ok )
|
||||
local limit = pc.getqf("retry_limit_time")
|
||||
|
||||
if limit > ( get_global_time() + 3600 ) then
|
||||
limit = ( get_global_time() + 3600 )
|
||||
end
|
||||
pc.setqf("retry_limit_time", limit )
|
||||
|
||||
local duration = limit - get_global_time()
|
||||
end
|
||||
end
|
||||
|
||||
when 30130.chat.gameforge.spider_dungeon_3floor_boss._10_npcChat begin
|
||||
if game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
|
||||
local starttime = game.get_event_flag("spider_lair_start_time_"..get_channel_id())
|
||||
local current_time = get_global_time()
|
||||
|
||||
if party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) then
|
||||
if starttime + 300 >= current_time and party.get_leader_pid() == game.get_event_flag("spider_lair_leader_"..get_channel_id()) and game.get_event_flag("spider_lair_ongoing_"..get_channel_id()) == 1 then
|
||||
say(gameforge.spider_dungeon_3floor_boss._300_say) -- 테스트용
|
||||
local warp = select(locale.confirm,locale.cancel)
|
||||
if warp == 1 then
|
||||
pc.warp(88100,614800)
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 2092.kill begin --대왕거미 죽임
|
||||
server_timer("spider_dead_timer", 180)
|
||||
game.set_event_flag("spider_dead"..get_channel_id(), 1)
|
||||
notice_multiline(gameforge.spider_dungeon_3floor_boss._400_say,notice_in_map)
|
||||
end
|
||||
|
||||
|
||||
when 2095.kill begin --거미알 죽임
|
||||
local kingVid = game.get_event_flag("king_vid")
|
||||
local remain_egg = game.get_event_flag("remain_egg"..get_channel_id())
|
||||
notice_multiline(gameforge.spider_dungeon_3floor_boss._420_notice,notice_in_map)
|
||||
|
||||
if remain_egg > 0 then
|
||||
remain_egg = remain_egg - 1
|
||||
game.set_event_flag("remain_egg"..get_channel_id(), remain_egg)
|
||||
end
|
||||
|
||||
--거미의 공격력 보정
|
||||
npc.set_vid_attack_mul(kingVid, 10/(remain_egg + 1))
|
||||
|
||||
--거미가 받는 피해량 보정
|
||||
npc.set_vid_damage_mul(kingVid, 10/(remain_egg + 1))
|
||||
end
|
||||
|
||||
|
||||
-- 2012.4.5 이상현 리젠위치 수정
|
||||
when 30327.use with pc.getx() >= 827 and pc.get_map_index() == 217 and pc.getx() <= 937 and pc.gety() >= 6127 and pc.gety() <= 6257 begin
|
||||
--say("맵번호 : "..pc.get_map_index())
|
||||
pc.remove_item(30327, 1)
|
||||
i = mob.spawn(2095,400,566,0,0)
|
||||
mob.spawn(2095,400,594,0,0)
|
||||
mob.spawn(2095,362,600,0,0)
|
||||
mob.spawn(2095,337,599,0,0)
|
||||
mob.spawn(2095,335,581,0,0)
|
||||
mob.spawn(2095,344,562,0,0)
|
||||
mob.spawn(2095,364,588,0,0)
|
||||
mob.spawn(2095,379,562,0,0)
|
||||
mob.spawn(2095,368,525,0,0)
|
||||
|
||||
|
||||
local kingVid = mob.spawn(2092,367,588,0,0)
|
||||
game.set_event_flag("king_vid",kingVid)
|
||||
--game.set_event_flag("remain_egg",9)
|
||||
game.set_event_flag("remain_egg"..get_channel_id(), 9)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
@ -1,158 +0,0 @@
|
||||
quest test_att_resist begin
|
||||
state start begin
|
||||
when 20001.chat."ATT_TEST : ITEM - BASIC" with is_test_server() begin
|
||||
say("Test items for basic")
|
||||
say("Check damage with these")
|
||||
|
||||
local item_armor
|
||||
local item_helmet
|
||||
local item_bracelet
|
||||
|
||||
local job = pc.get_job()
|
||||
if job == 0 then -- WARRIOR
|
||||
item_armor = 11299
|
||||
item_helmet = 12249
|
||||
item_bracelet = 14109
|
||||
elseif job==1 then -- ASSASSIN
|
||||
item_armor = 11499
|
||||
item_helmet = 12389
|
||||
item_bracelet = 14109
|
||||
elseif job==2 then -- SURA
|
||||
item_armor = 11699
|
||||
item_helmet = 12529
|
||||
item_bracelet = 14109
|
||||
elseif job==3 then -- SHAMAN
|
||||
item_armor = 11899
|
||||
item_helmet = 12669
|
||||
item_bracelet = 14109
|
||||
end
|
||||
|
||||
pc.give_item2_select(item_armor)
|
||||
pc.give_item2_select(item_helmet)
|
||||
pc.give_item2_select(item_bracelet)
|
||||
end
|
||||
when 20001.chat."ATT_TEST : ITEM - FIRE" with is_test_server() begin
|
||||
say("Test items for Fire resist")
|
||||
say("Use items and Type /state to check resist stat")
|
||||
|
||||
local item_armor
|
||||
local item_helmet
|
||||
local item_bracelet
|
||||
|
||||
local job = pc.get_job()
|
||||
if job == 0 then -- WARRIOR
|
||||
item_armor = 11299
|
||||
item_helmet = 12249
|
||||
item_bracelet = 14109
|
||||
elseif job==1 then -- ASSASSIN
|
||||
item_armor = 11499
|
||||
item_helmet = 12389
|
||||
item_bracelet = 14109
|
||||
elseif job==2 then -- SURA
|
||||
item_armor = 11699
|
||||
item_helmet = 12529
|
||||
item_bracelet = 14109
|
||||
elseif job==3 then -- SHAMAN
|
||||
item_armor = 11899
|
||||
item_helmet = 12669
|
||||
item_bracelet = 14109
|
||||
end
|
||||
|
||||
pc.give_item2_select(item_armor)
|
||||
item.set_value(0, 35, 15)
|
||||
pc.give_item2_select(item_helmet)
|
||||
item.set_value(0, 35, 15)
|
||||
pc.give_item2_select(item_bracelet)
|
||||
item.set_value(0, 35, 15)
|
||||
end
|
||||
when 20001.chat."ATT_TEST : ITEM - ELEC" with is_test_server() begin
|
||||
say("Test items for ELEC resist")
|
||||
say("Use items and Type /state to check resist stat")
|
||||
|
||||
local item_armor
|
||||
local item_helmet
|
||||
local item_bracelet
|
||||
|
||||
local job = pc.get_job()
|
||||
if job == 0 then -- WARRIOR
|
||||
item_armor = 11299
|
||||
item_helmet = 12249
|
||||
item_bracelet = 14109
|
||||
elseif job==1 then -- ASSASSIN
|
||||
item_armor = 11499
|
||||
item_helmet = 12389
|
||||
item_bracelet = 14109
|
||||
elseif job==2 then -- SURA
|
||||
item_armor = 11699
|
||||
item_helmet = 12529
|
||||
item_bracelet = 14109
|
||||
elseif job==3 then -- SHAMAN
|
||||
item_armor = 11899
|
||||
item_helmet = 12669
|
||||
item_bracelet = 14109
|
||||
end
|
||||
|
||||
pc.give_item2_select(item_armor)
|
||||
item.set_value(0, 36, 15)
|
||||
pc.give_item2_select(item_helmet)
|
||||
item.set_value(0, 36, 15)
|
||||
pc.give_item2_select(item_bracelet)
|
||||
item.set_value(0, 36, 15)
|
||||
|
||||
end
|
||||
when 20001.chat."ATT_TEST : ITEM - WIND" with is_test_server() begin
|
||||
say("Test items for WIND resist")
|
||||
say("Use items and Type /state to check resist stat")
|
||||
|
||||
local item_armor
|
||||
local item_helmet
|
||||
local item_bracelet
|
||||
|
||||
local job = pc.get_job()
|
||||
if job == 0 then -- WARRIOR
|
||||
item_armor = 11299
|
||||
item_helmet = 12249
|
||||
item_bracelet = 14109
|
||||
elseif job==1 then -- ASSASSIN
|
||||
item_armor = 11499
|
||||
item_helmet = 12389
|
||||
item_bracelet = 14109
|
||||
elseif job==2 then -- SURA
|
||||
item_armor = 11699
|
||||
item_helmet = 12529
|
||||
item_bracelet = 14109
|
||||
elseif job==3 then -- SHAMAN
|
||||
item_armor = 11899
|
||||
item_helmet = 12669
|
||||
item_bracelet = 14109
|
||||
end
|
||||
|
||||
pc.give_item2_select(item_armor)
|
||||
item.set_value(0, 38, 15)
|
||||
pc.give_item2_select(item_helmet)
|
||||
item.set_value(0, 38, 15)
|
||||
pc.give_item2_select(item_bracelet)
|
||||
item.set_value(0, 38, 15)
|
||||
end
|
||||
|
||||
|
||||
when 20001.chat."ATT_TEST : MOB - FIRE" with is_test_server() begin
|
||||
say("spawn FIRE monster")
|
||||
say("check damage with basic and resist armors")
|
||||
|
||||
mob.spawn(2201, pc.get_local_x(), pc.get_local_y(),0,1,1)
|
||||
end
|
||||
when 20001.chat."ATT_TEST : MOB - ELEC" with is_test_server() begin
|
||||
say("spawn ELEC monster")
|
||||
say("check damage with basic and resist armors")
|
||||
|
||||
mob.spawn(2401, pc.get_local_x(), pc.get_local_y(),0,1,1)
|
||||
end
|
||||
when 20001.chat."ATT_TEST : MOB - WIND" with is_test_server() begin
|
||||
say("spawn WIND monster")
|
||||
say("check damage with basic and resist armors")
|
||||
|
||||
mob.spawn(777, pc.get_local_x(), pc.get_local_y(),0,1,1)
|
||||
end
|
||||
end
|
||||
end
|
@ -1,23 +0,0 @@
|
||||
#!/usr/local/bin/python
|
||||
import pre_qc
|
||||
import os
|
||||
import sys
|
||||
os.system('rm -rf object')
|
||||
os.system('mkdir object')
|
||||
#os.system('rm -rf pre_qc')
|
||||
os.system('mkdir pre_qc')
|
||||
os.system('chgrp quest object')
|
||||
for line in file('locale_list'):
|
||||
r = pre_qc.run (line)
|
||||
if r == True:
|
||||
filename = 'pre_qc/'+line
|
||||
else:
|
||||
filename = line
|
||||
|
||||
if os.system('./qc '+filename):
|
||||
print 'Error occured on compile ' + line
|
||||
os.system('chmod -R 770 object')
|
||||
import sys
|
||||
sys.exit(-1)
|
||||
|
||||
os.system('chmod -R 770 object')
|
@ -1,8 +0,0 @@
|
||||
quest test begin
|
||||
state start begin
|
||||
when 20355.chat."bbbb" begin
|
||||
setskin(NOWINDOW)
|
||||
say_show_item(90013)
|
||||
end
|
||||
end
|
||||
end
|
@ -15,8 +15,8 @@ include_directories("include")
|
||||
add_library(${PROJECT_NAME} STATIC ${SOURCES})
|
||||
|
||||
# Find dependencies
|
||||
find_package(libmysql REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${MYSQL_LIBRARIES})
|
||||
find_package(unofficial-libmysql REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE unofficial::libmysql::libmysql)
|
||||
|
||||
find_package(Boost REQUIRED)
|
||||
include_directories(${Boost_INCLUDE_DIRS})
|
||||
|
@ -13,6 +13,7 @@ include_directories(src)
|
||||
find_package(Boost REQUIRED)
|
||||
|
||||
add_executable(${PROJECT_NAME} ${sources})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "qc")
|
||||
|
||||
# Link dependencies if found
|
||||
if (Boost_FOUND)
|
||||
|
Loading…
Reference in New Issue
Block a user