forked from metin2/server
Compare commits
12 Commits
Author | SHA1 | Date | |
---|---|---|---|
3f1ce57fa1 | |||
e4cbdcfc4d | |||
bba0294107 | |||
0aab8162fb | |||
9fba85f947 | |||
a7f4e4e54d | |||
7e543bd05f | |||
405b05fe59 | |||
feac4c0598 | |||
2f829ae2dc | |||
2c8cb0c857 | |||
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/
|
@ -1,8 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
# Build mode debug/release?
|
||||
set(CMAKE_BUILD_TYPE Debug)
|
||||
|
||||
# Set C++ standard to C++17
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
@ -23,15 +20,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")
|
||||
|
15
Dockerfile
15
Dockerfile
@ -3,16 +3,20 @@ WORKDIR /app
|
||||
|
||||
# Update the system and install various dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get install -y git cmake build-essential tar curl zip unzip pkg-config autoconf python3 \
|
||||
apt-get install -y git cmake ninja-build build-essential tar curl zip unzip pkg-config autoconf python3 \
|
||||
libdevil-dev libncurses5-dev libbsd-dev
|
||||
|
||||
# Arm specific
|
||||
ENV VCPKG_FORCE_SYSTEM_BINARIES=1
|
||||
|
||||
# Install vcpkg and the required libraries
|
||||
RUN git clone https://github.com/Microsoft/vcpkg.git
|
||||
RUN bash ./vcpkg/bootstrap-vcpkg.sh
|
||||
RUN ./vcpkg/vcpkg install boost-system cryptopp effolkronium-random libmysql libevent lzo
|
||||
RUN ./vcpkg/vcpkg install boost-system cryptopp effolkronium-random libmysql libevent lzo fmt spdlog
|
||||
|
||||
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 +24,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
|
||||
|
@ -39,7 +39,7 @@ Install `vcpkg` according to the [lastest instructions](https://vcpkg.io/en/gett
|
||||
|
||||
Build and install the required libraries:
|
||||
```shell
|
||||
vcpkg install boost-system cryptopp effolkronium-random libmysql libevent lzo
|
||||
vcpkg install boost-system cryptopp effolkronium-random libmysql libevent lzo fmt spdlog
|
||||
```
|
||||
|
||||
Then, it's time to build your binaries. Your commands should look along the lines of:
|
||||
@ -80,6 +80,7 @@ goodies you wish. Also, a lot of time.
|
||||
- Switched to the [effolkronium/random PRNG](https://github.com/effolkronium/random) instead of the standard C functions.
|
||||
- Refactored macros to modern C++ functions.
|
||||
- Network settings are manually configurable through the `PUBLIC_IP`, `PUBLIC_BIND_IP`, `INTERNAL_IP`, `INTERNAL_BIND_IP` settings in the `CONFIG` file. (Might need further work)
|
||||
- Refactored logging to use [spdlog](https://github.com/gabime/spdlog) for more consistent function calls.
|
||||
|
||||
## 4. Bugfixes
|
||||
**WARNING: This project is based on the "kraizy" leak. That was over 10 years ago.
|
||||
@ -102,7 +103,6 @@ This is a very serious security risk and one of the reasons this project is stil
|
||||
- Migrate `conf.txt` and `CONFIG` to a modern dotenv-like format, which would enable pretty nice Docker images.
|
||||
- Add a health check to the Docker image.
|
||||
- Use the [fmt](https://fmt.dev/latest/index.html) library for safe and modern string formatting.
|
||||
- Use a modern logging library to clean up the current mess.
|
||||
- Handle kernel signals (SIGTERM, SIGHUP etc.) for gracefully shutting down the game server.
|
||||
- Improve memory safety.
|
||||
- Use fixed width integer types instead of Microsoft-style typedefs.
|
||||
|
@ -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()
|
||||
-- <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> dragon_soul_daily_gift_mgr.quest<73><74><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20>뿪<EFBFBD><EBBFAA><EFBFBD><EFBFBD> Ȯ<><C8AE>.
|
||||
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
|
||||
-- <20><><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
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
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>̹<EFBFBD> <20><>.
|
||||
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()
|
||||
-- <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> dragon_soul_daily_gift_mgr.quest<73><74><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD> <20>뿪<EFBFBD><EBBFAA><EFBFBD><EFBFBD> Ȯ<><C8AE>.
|
||||
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
|
||||
|
||||
-- <20>̺<EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> event_id<69><64> <20>ٲٸ<D9B2> <20>ȵ<EFBFBD>.
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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},-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
["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}, --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ¾<D6B4> <20><><EFBFBD>ִ<EFBFBD> <20><>
|
||||
["YAK_pos"] = {376, 397} -- <20><>ȯ <20><><EFBFBD><EFBFBD>
|
||||
|
||||
}
|
||||
end
|
||||
function is_flamed(idx) -- <20><><EFBFBD>漺<EFBFBD><E6BCBA> <20>ִ<EFBFBD><D6B4><EFBFBD> Ȯ<><C8AE>
|
||||
return idx >= 351 * 10000 and idx < (351 + 1) *10000
|
||||
end
|
||||
function make_dungeon() -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>? // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : 0 <20><><EFBFBD><EFBFBD> : 1 // ƨ<><C6A8><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѽð<D1BD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
end
|
||||
function go_boss() -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
local setting = flame_dungeon.setting()
|
||||
if pc.get_level() < 104 then --<2D><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>
|
||||
-- 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 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ Ȯ<><C8AE>
|
||||
-- -- 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() -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>Ŭ<EFBFBD><C5AC><EFBFBD><EFBFBD>
|
||||
d.setf("level",0)
|
||||
d.clear_regen()
|
||||
d.purge_area(750000,620000,817400,689400) -- <20><><EFBFBD><EFBFBD>ü -- d.purge() <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
end
|
||||
function clear_timer(inx) -- Ÿ<≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
--<2D>Ʒ<EFBFBD><C6B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD>ƿ´<C6BF>. <20>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ <20>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȴ<EFBFBD>.
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ġ<EFBFBD><C4A1> <20><><EFBFBD>ƿ<EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>漺<EFBFBD><E6BCBA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ɼ<EFBFBD><C9BC><EFBFBD> Ȱ<><C8B0>ȭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
-- pc.set_warp_location(0, 0 , 0) --ƨ<><C6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ٽ<EFBFBD> <20><><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> <20>κ<EFBFBD>
|
||||
pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ƨ<><C6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
local ticketGroup = {71095, 1, 71130, 1}
|
||||
if d.getf("dungeon_enter") == 0 then -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴϸ<C6B4>
|
||||
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 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѽð<D1BD><C3B0><EFBFBD> <20>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD> Ƽ<><C6BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
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 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>αƿ<D7BE>
|
||||
pc.setf("flame_dungeon","exit_time",get_global_time()) -- <20>ν<EFBFBD><CEBD>Ͻ<EFBFBD> <20>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD>, <20>ٵ<EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> or <20>׳<EFBFBD> ƨ<><C6A8><EFBFBD>Ÿ<EFBFBD> <20>ȱ<EFBFBD><C8B1><EFBFBD>
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
end
|
||||
when 20394.chat.gameforge.flame_dungeon._110_npcChat begin
|
||||
|
||||
local setting = flame_dungeon.setting()
|
||||
if party.is_party() then
|
||||
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
||||
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 -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 5<><35> <20><>?
|
||||
local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))
|
||||
if dungeon_level == 17 then -- <20><><EFBFBD><EFBFBD>
|
||||
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<><35> <20>ʰ<EFBFBD><CAB0>Ͽ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD>
|
||||
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 : <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ѽð<D1BD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʾҽ<CABE><D2BD>ϴ<EFBFBD>.")
|
||||
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 : <20><><EFBFBD>ҽ<EFBFBD>Ȯ<EFBFBD><C8AE>" with is_test_server() begin -- <20><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
-- 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 -- <20><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
pc.setf("flame_dungeon","exit_time",get_global_time()-1800)
|
||||
say("Done")
|
||||
end
|
||||
-- when 20385.chat."Test : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>" with is_test_server() begin -- <20><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
-- say("<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : "..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 <20>Լ<EFBFBD> üũ
|
||||
-- end
|
||||
-- if d.is_unique_dead("stone1") then
|
||||
-- say("stone1 is dead")
|
||||
-- else
|
||||
-- say("stone1 is not dead")
|
||||
-- end
|
||||
-- end
|
||||
-- when 20385.chat."ó<><C3B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" begin -- <20><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
-- say("<22>ʱ<EFBFBD>ȭ <20>մϴ<D5B4>")
|
||||
-- flame_dungeon.clear_timer(d.get_map_index())
|
||||
-- flame_dungeon.make_dungeon()
|
||||
-- end
|
||||
when 20385.chat."Test : Boss Room" with is_test_server() begin -- <20><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
flame_dungeon.go_boss()
|
||||
end
|
||||
|
||||
-- < <20>ð<EFBFBD> <20><><EFBFBD><EFBFBD> Ÿ<≯<EFBFBD>>
|
||||
-- when 20385.chat."<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" begin -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ƨ<><C6A8><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ
|
||||
-- local setting = flame_dungeon.setting()
|
||||
-- say("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ðڽ<C3B0><DABD>ϱ<EFBFBD>?")
|
||||
-- local warp = select("Ȯ<><C8AE>","<22><><EFBFBD><EFBFBD>")
|
||||
-- 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
|
||||
|
||||
|
||||
-- <<<< <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>>>>> --
|
||||
when 20385.chat.gameforge.flame_dungeon._210_npcChat with npc.lock() begin -- '0x'<27><> x<><78>° <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD> <20><><EFBFBD><EFBFBD> , '1x'<27><> x<><78>° <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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)
|
||||
-- <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> ƨ<>ܹ<EFBFBD><DCB9>ȴµ<C8B4> <20>ڱ⸸ <20><><EFBFBD>Ƽ<EFBFBD> exit timer<65><72> <20><><EFBFBD>µǸ<C2B5> <20>ȵǴϱ<C7B4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD> <20><>
|
||||
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)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>õ<EFBFBD> ó<><C3B3>
|
||||
-- <20><><EFBFBD><EFBFBD> <20>Ŀ<EFBFBD> Ƽ<><C6BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ƨ<>ܳ<EFBFBD><DCB3><EFBFBD> <20><><EFBFBD>ؼ<EFBFBD> Ÿ<≯Ӹ<CCB8> <20>̿<EFBFBD><CCBF><EFBFBD> Ƽ<><C6BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
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)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>Ƽ<EFBFBD><C6BC> <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
party.setf("dungeon_index", d.get_map_index())
|
||||
d.setf("party_leader_pid", party.get_leader_pid())
|
||||
end
|
||||
if d.getf("level") < 7 then --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ƴϸ<C6B4>
|
||||
if d.getf("clear_count") == 6 then -- <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
d.setf("level",7)
|
||||
else
|
||||
local rand = number(1,6)--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>湮üũ<C3BC><C5A9> <20><><EFBFBD><EFBFBD> <20>迭<EFBFBD><E8BFAD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD> üũ<C3BC><C5A9>
|
||||
local setlev = 0
|
||||
d.setf("level",7) -- Ȥ<><C8A4> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>
|
||||
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]) -- <20><><EFBFBD>μ<EFBFBD> <20><>ȯ
|
||||
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] ) -- Ÿ<>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD>ȯ
|
||||
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]) -- Ÿ<>ٿ<EFBFBD><D9BF><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><>ȯ
|
||||
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 -- <20><><EFBFBD><EFBFBD> Ÿ<≯<EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD>)
|
||||
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 -- Ÿ<≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 (level1,level3)
|
||||
if d.select(get_server_timer_arg()) then
|
||||
if d.count_monster() <= 0 then -- 1<><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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 -- Ÿ<≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2 (1<><31> 2 <20><><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD><C6B0>鼭 <20><><EFBFBD>ư<EFBFBD>)
|
||||
if d.select(get_server_timer_arg()) then
|
||||
if d.count_monster() <= 0 then -- 1<><31><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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<><32><EFBFBD><EFBFBD> <20><><EFBFBD>μ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
local i = number(1, 100) -- 100<30><30><EFBFBD><EFBFBD> 1 Ȯ<><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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<><32><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD>
|
||||
local i = number(1, 5) -- 5<><35><EFBFBD><EFBFBD> 1 Ȯ<><C8AE><EFBFBD><EFBFBD> <20><>¥ <20><><EFBFBD><EFBFBD>
|
||||
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<><35><EFBFBD><EFBFBD> <20><><EFBFBD>μ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
local i = number(1, 30) -- 30<33><30><EFBFBD><EFBFBD> 1 Ȯ<><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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<><35><EFBFBD><EFBFBD> <20><>¥<EFBFBD><C2A5><EFBFBD><EFBFBD> <20>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD>
|
||||
local setting = flame_dungeon.setting()
|
||||
if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ù<><C3B9>° <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20>ʿ<EFBFBD><CABF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ڸ<EFBFBD><DAB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
npc.purge()
|
||||
item.remove()
|
||||
say(gameforge.flame_dungeon._470_say)
|
||||
d.setf("stonekill",2) -- 2<><32> <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7BF><EFBFBD>
|
||||
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<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>˵<EFBFBD> 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>踦 <20>Կ<EFBFBD><D4BF><EFBFBD> <20><>
|
||||
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<><32>")
|
||||
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<><33>")
|
||||
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<><34>")
|
||||
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<><35>")
|
||||
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<><36>")
|
||||
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<><37>")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD> <20><>
|
||||
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 -- <20><><EFBFBD><EFBFBD> <20><EFBFBD><D7BF><EFBFBD><EFBFBD><EFBFBD>
|
||||
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()
|
||||
|
||||
-- <20><>Ƽ<EFBFBD><C6BC> <20><>, <20>߸<EFBFBD>õ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ(104<30><34>, 105<30><35> <20><><EFBFBD><EFBFBD>Ʈ) <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ Ŭ<><C5AC><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5><EFBFBD>.
|
||||
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
|
||||
-- Ź<><C5B9><EFBFBD><EFBFBD> <20><>ü
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._040_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._060_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._070_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv100._080_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when enter begin
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> óġ <20><> <20><><EFBFBD><EFBFBD>
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._090_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._010_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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
|
||||
|
||||
-- <20><> <20>Ʒ<EFBFBD><C6B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> vnum<75><6D> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> Ŭ<><C5AC><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5><EFBFBD> <20>Ͽ<EFBFBD><CFBF><EFBFBD>.
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._130_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Ź<><C5B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1-1
|
||||
state state2_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._160_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._190_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._200_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._210_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._220_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._230_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin -- <20><><EFBFBD>Ḧ <20><><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD> <20>κ<EFBFBD>. <20><><EFBFBD>Ḧ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ľ<EFBFBD><C4BE><EFBFBD> <20>ȵ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> state <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>Ϸ<EFBFBD><CFB7><EFBFBD> <20><> <20>ִ<EFBFBD>.
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD>Ḧ <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ҵ<EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>Ŀ<EFBFBD> <20><><EFBFBD>Ḧ <20>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD>ݼ<EFBFBD><DDBC>翡<EFBFBD><E7BFA1> <20><><EFBFBD><EFBFBD> <20>ɸ<EFBFBD> state2_2<5F><32> <20>ٽ<EFBFBD> <20>Ѿ<D1BE><EEB0A1> <20>ȴ<EFBFBD>.
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._300_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._160_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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
|
||||
|
||||
-- Ź<><C5B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1-2
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._320_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._340_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20001))
|
||||
say(gameforge.main_quest_flame_lv100._350_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._240_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._320_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._400_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20016))
|
||||
say(gameforge.main_quest_flame_lv100._410_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv100._420_say)
|
||||
|
||||
pc.give_item2(31077, 1)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv100._440_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv100._320_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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))
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ü
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._040_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._050_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv101._070_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._080_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin -- <20>ܼ<EFBFBD> X, <20><><EFBFBD><EFBFBD> X
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
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) -- <20>ܼ<EFBFBD> X, <20><><EFBFBD><EFBFBD> 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) -- <20>ܼ<EFBFBD> O, <20><><EFBFBD><EFBFBD> X
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin -- <20>ܼ<EFBFBD> X, <20><><EFBFBD><EFBFBD> O
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
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") -- <20>ܼ<EFBFBD> O, <20><><EFBFBD><EFBFBD> O
|
||||
end
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_4 begin -- <20>ܼ<EFBFBD> O, <20><><EFBFBD><EFBFBD> X
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._210_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20377.chat.gameforge.main_quest_flame_lv101._010_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.remove_item(31074, pc.count_item(31074))
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._230_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv101._250_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(gameforge.main_quest_flame_lv101._260_sayTitle)
|
||||
say(gameforge.main_quest_flame_lv101._270_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._280_say)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pc.give_item2(27992, 1)
|
||||
pc.give_item2(27992, 1)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ص<EFBFBD>
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._330_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv101._340_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._350_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._360_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._380_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._290_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv101._290_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.remove_item(31080, pc.count_item(31080))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._400_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ
|
||||
pc.give_item2_select(72024)
|
||||
item.set_socket(2, 180)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71094),1)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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
|
||||
--<2D>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.setqf("limit_time", get_time() + 60*60*24)
|
||||
end
|
||||
|
||||
when login begin
|
||||
--<2D>ð<EFBFBD><C3B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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 Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._430_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv101._450_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv101._340_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv101._470_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv101._430_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv101._510_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pc.give_item2(71095, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72016),1)) -- <20><>3<EFBFBD><33> <20><>
|
||||
pc.give_item2_select(72016)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 102))
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD>
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._040_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._050_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._060_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
state state1_2 begin --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ƿ<EFBFBD><C6BF><EFBFBD> <20>κ<EFBFBD>.
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._130_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._170_say)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- ȭ<><C8AD><EFBFBD><EFBFBD> <20>ູ(<28><>)
|
||||
pc.give_item2(72723, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70050),1)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǥ
|
||||
pc.give_item2(70050, 1)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD> <20>߸<EFBFBD>õ?!
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._180_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._220_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._250_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._050_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._260_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._270_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._180_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._320_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._180_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv102._180_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.remove_item(31081, pc.count_item(31081))
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._330_say)
|
||||
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
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)) -- <20>ູ<EFBFBD><E0BAB9> <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)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- Ź<><C5B9><EFBFBD><EFBFBD> <20><>ȭ
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._350_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._380_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv102._390_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._460_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._350_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)) -- <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD>
|
||||
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
|
||||
|
||||
|
||||
-- <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD>
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._480_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._510_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._520_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._050_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20017))
|
||||
say(gameforge.main_quest_flame_lv102._530_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state4_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv102._540_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv102._480_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv102._570_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv102._580_say)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2_select(76011)
|
||||
item.set_socket(2, 60)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50707),5)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pc.give_item2(50707, 5)
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 103))
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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
|
||||
|
||||
-- <20><><EFBFBD>漺<EFBFBD><E6BCBA> <20><><EFBFBD><EFBFBD>
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._040_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._060_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._070_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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 Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._150_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._170_say)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._180_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._200_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv103._210_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> óġ <20><> <20><><EFBFBD><EFBFBD>
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._230_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._180_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
say(gameforge.main_quest_lv98._680_counterName)
|
||||
say(string.format(gameforge.main_quest_lv98._670_sayReward,"<22><><EFBFBD>漺 <20><><EFBFBD><EFBFBD>", 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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._280_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._180_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <20>ູ<EFBFBD><E0BAB9> <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2(70024, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30039),3)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pc.give_item2(30039, 3)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20><><EFBFBD>漺<EFBFBD><E6BCBA> <20><>ĩ<EFBFBD>Ÿ<EFBFBD>
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._300_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> óġ <20><> <20><><EFBFBD><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._330_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._300_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._370_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._300_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2_select(72001)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state4_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20>߸<EFBFBD>õ <20><><EFBFBD><EFBFBD>1-1
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state4_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._410_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv103._440_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv103._460_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv103._220_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state4_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_3 begin
|
||||
when enter begin
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> óġ <20><> <20><><EFBFBD><EFBFBD>
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._480_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv103._530_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv103._390_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><>ȭ<EFBFBD><C8AD> -- <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2(31078, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(30015),2)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰ
|
||||
pc.give_item2(30015, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70043),1)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>尩
|
||||
pc.give_item2_select(70043)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 104))
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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
|
||||
|
||||
-- <20>߸<EFBFBD>õ <20><><EFBFBD><EFBFBD> 1-2
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._040_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when enter begin
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> óġ <20><> <20><><EFBFBD><EFBFBD>
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._060_notice,notice)
|
||||
end
|
||||
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._010_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
|
||||
-- <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߸<EFBFBD>õ<EFBFBD><C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>, <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> Ŭ<><C5AC><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5><EFBFBD> <20>ϴ<EFBFBD> <20>ڵ<EFBFBD>.
|
||||
if party.is_party() then
|
||||
local map_index = pc.get_map_index()
|
||||
-- <20><><EFBFBD>漺<EFBFBD><E6BCBA> <20><><EFBFBD><EFBFBD><EFBFBD>ߴٴ<DFB4> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
if map_index >= 351 * 10000 and map_index < (351 + 1) *10000 then
|
||||
pc.setqf("in_dungeon", 1)
|
||||
else -- <20><><EFBFBD>漺<EFBFBD><E6BCBA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD>ش<EFBFBD>.
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 -- <20><>ȭ<EFBFBD><C8AD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
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 Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._150_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._160_say)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><>ö
|
||||
pc.give_item2(71026, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71025),2)) -- <20>߰<EFBFBD><DFB0><EFBFBD>
|
||||
pc.give_item2(71025, 1)
|
||||
pc.give_item2(71025, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70102),5)) -- <20><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pc.give_item2(50706, 20)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1-1
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._170_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv104._190_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._200_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._170_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._250_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._260_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._270_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._280_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._170_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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)
|
||||
-- <20><>ǰ <20><><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
say_title(mob_name(20380))
|
||||
say(string.format(gameforge.main_quest_flame_lv104._300_say, 5 - item_count))
|
||||
else -- <20><>ǰ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ä<><C3A4>.
|
||||
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)) -- ȭ<><C8AD><EFBFBD><EFBFBD> <20>ູ(<28><>)
|
||||
pc.give_item2(72723, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70050),1)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǥ
|
||||
pc.give_item2(70050, 1)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_1)
|
||||
end
|
||||
else -- <20><>ǰ <20><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1-2
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._330_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._360_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
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
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._400_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ħ
|
||||
pc.give_item2(30045, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50817),10)) -- <20><>Ȱ<EFBFBD>ɾ<EFBFBD>
|
||||
pc.give_item2(50817, 10)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._430_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._330_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--say_reward(locale.target_npc_info)
|
||||
end
|
||||
|
||||
when 20380.chat.gameforge.main_quest_flame_lv104._330_sendLetter begin
|
||||
target.delete("__TARGET__")
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._400_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ħ
|
||||
pc.give_item2(30045, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(50817),10)) -- <20><>Ȱ<EFBFBD>ɾ<EFBFBD>
|
||||
pc.give_item2(50817, 10)
|
||||
say()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>1-3
|
||||
state state4_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv104._470_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv104._050_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state4_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state4_2 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._480_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv104._520_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv104._450_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǰ
|
||||
pc.give_item2(30015, 2)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(70043),1)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>尩
|
||||
pc.give_item2_select(70043)
|
||||
item.set_socket(2, 60)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(31083),3)) -- <20><><EFBFBD><EFBFBD> <20>ָӴ<D6B8>
|
||||
pc.give_item2(31083, 3)
|
||||
|
||||
say()
|
||||
say_title(string.format(gameforge.main_quest_flame_lv99._430_say, 105))
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
state state1_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._040_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._050_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._060_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._070_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin
|
||||
when enter begin
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> óġ <20><> <20><><EFBFBD><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._080_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._010_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._130_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pc.give_item2(30033, 3)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD>
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._160_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._180_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._070_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin
|
||||
when enter begin
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> óġ <20><> <20><><EFBFBD><EFBFBD>
|
||||
pc.setqf("kill_count_1", 0)
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._190_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._160_sendLetter)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
q.set_counter_name(gameforge.main_quest_lv98._680_counterName)
|
||||
|
||||
-- <20><>Ƽ<EFBFBD><C6BC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>߸<EFBFBD>õ<EFBFBD><C3B5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>, <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> Ŭ<><C5AC><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5><EFBFBD> <20>ϴ<EFBFBD> <20>ڵ<EFBFBD>.
|
||||
if party.is_party() then
|
||||
local map_index = pc.get_map_index()
|
||||
-- <20><><EFBFBD>漺<EFBFBD><E6BCBA> <20><><EFBFBD><EFBFBD><EFBFBD>ߴٴ<DFB4> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
if map_index >= 351 * 10000 and map_index < (351 + 1) *10000 then
|
||||
pc.setqf("in_dungeon", 1)
|
||||
else -- <20><><EFBFBD>漺<EFBFBD><E6BCBA><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD>ش<EFBFBD>.
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> óġ <20><> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._230_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._160_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><>ö
|
||||
pc.give_item2(71026, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71025),2)) -- <20>߰<EFBFBD><DFB0><EFBFBD>
|
||||
pc.give_item2(71025, 1)
|
||||
pc.give_item2(71025, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(72001),1)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2_select(72001)
|
||||
item.set_socket(2, 60)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
state state3_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._250_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._270_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._070_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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 <20><><EFBFBD><EFBFBD>
|
||||
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)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_3 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv105._350_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv105._250_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv105._370_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv105._380_say)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ
|
||||
pc.give_item2_select(72024)
|
||||
item.set_socket(2, 180)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71094),1)) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2(71094, 1)
|
||||
say_reward(string.format(gameforge.main_quest_lv60._210_sayReward, item_name(71001),5)) -- <09>־ȼ<D6BE><C8BC><EFBFBD>
|
||||
pc.give_item2(71001, 5)
|
||||
say()
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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
|
||||
|
||||
-- <20>ٽ<EFBFBD> <20><><EFBFBD>۵Ǵ<DBB5> <20><><EFBFBD><EFBFBD> : <20>ӹ<EFBFBD><D3B9>ޱ<EFBFBD>
|
||||
state state1_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._050_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._060_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._070_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._080_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state1_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_2 begin -- <20>ٽ<EFBFBD> <20><><EFBFBD>۵Ǵ<DBB5> <20><><EFBFBD><EFBFBD> : <20><><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD>
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD> --
|
||||
when __TARGET__.target.arrive begin
|
||||
target.delete("__TARGET__")
|
||||
set_state (state1_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state1_3 begin -- <20>ٽ<EFBFBD> <20><><EFBFBD>۵Ǵ<DBB5> <20><><EFBFBD><EFBFBD> : <20>Ϸ<EFBFBD> & <20><><EFBFBD><EFBFBD><EFBFBD>ޱ<EFBFBD>
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv99._130_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._010_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._160_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_flame_lv99._170_say)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD>1-1 : <20>ӹ<EFBFBD><D3B9>ޱ<EFBFBD>
|
||||
state state2_1 begin
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._070_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_2 begin -- <20><><EFBFBD><EFBFBD>1-1 : <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> ã<>ư<EFBFBD><C6B0><EFBFBD> <20><><EFBFBD><EFBFBD>..
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._240_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state2_3)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state2_3 begin -- <20><><EFBFBD><EFBFBD>1-1 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
|
||||
-- <20><> <20>Ʒ<EFBFBD><C6B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> vnum<75><6D> <20>ٸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> Ŭ<><C5AC><EFBFBD><EFBFBD> <20>ǵ<EFBFBD><C7B5><EFBFBD> <20>Ͽ<EFBFBD><CFBF><EFBFBD>.
|
||||
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
|
||||
-- <20><><EFBFBD><EFBFBD>1-1 : <20><><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD>ư<EFBFBD><C6B0><EFBFBD>.
|
||||
state state2_4 begin
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv99._290_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._180_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_1)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD>1-2 : <20>ӹ<EFBFBD><D3B9>ޱ<EFBFBD>
|
||||
state state3_1 begin
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._310_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._340_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(mob_name(20380))
|
||||
say(gameforge.main_quest_flame_lv99._350_say)
|
||||
wait()--<2D>߰<EFBFBD> <20><>ȭ
|
||||
|
||||
say_title(pc.getname())
|
||||
say(gameforge.main_quest_flame_lv99._360_say)
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state (state3_2)
|
||||
end
|
||||
|
||||
when leave begin
|
||||
--q.done()
|
||||
end
|
||||
end
|
||||
state state3_2 begin -- <20><><EFBFBD><EFBFBD>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 Ÿ<><C5B8>
|
||||
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
|
||||
|
||||
-- <20>¾<EFBFBD><C2BE><EFBFBD> NPC<50><43> Ŭ<><C5AC><EFBFBD>Ͽ<EFBFBD> <20>¾<EFBFBD><C2BE><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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 -- <20><><EFBFBD><EFBFBD>1-2
|
||||
when enter begin
|
||||
-- notice <20><><EFBFBD><EFBFBD>
|
||||
notice_multiline(gameforge.main_quest_flame_lv99._410_notice,notice)
|
||||
end
|
||||
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_flame_lv99._310_sendLetter)
|
||||
--npc Ÿ<><C5B8>
|
||||
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 Ÿ<><C5B8> <20>ȳ<EFBFBD><C8B3><EFBFBD>
|
||||
--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)
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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))
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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 --<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>1
|
||||
send_letter(gameforge.main_quest_lv60._10_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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 -- <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD>
|
||||
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
|
||||
-----------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._60_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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 --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȭ<EFBFBD>ϰ<EFBFBD> Ź<><C5B9><EFBFBD><EFBFBD> <20>ƿ<DEBE><C6BF><EFBFBD><EFBFBD><EFBFBD> <20>̼<EFBFBD><CCBC><EFBFBD> <20>Ҵ<DEBE>.
|
||||
-----------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._60_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>. (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> npc<70><63> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.)
|
||||
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
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>õ<EFBFBD> <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
|
||||
when 20011.gameforge.main_quest_lv60._60_sendLetter begin
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._130_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--<2D><><EFBFBD>ϱ<EFBFBD><CFB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
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
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ź<><C5B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
state quest2_end begin
|
||||
-----------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._60_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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("")
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> --
|
||||
-- <20>̰<EFBFBD><CCB0><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
pc.give_exp2(980000)
|
||||
pc.change_money(175000)
|
||||
|
||||
pc.give_item2(71001, 10) -- <20>־ȼ<D6BE><C8BC><EFBFBD>
|
||||
pc.give_item2(50721, 10) -- <20><><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD>
|
||||
pc.give_item2(50725, 10) -- <20><>â<EFBFBD><C3A2>
|
||||
|
||||
|
||||
|
||||
set_state (quest3_begin)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
state quest3_begin begin
|
||||
-------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>3---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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
|
||||
-------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>3---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20><>ġ<EFBFBD><C4A1> ǥ<><C7A5><EFBFBD>Ѵ<EFBFBD>.--
|
||||
--------------------------------
|
||||
--------------------------------
|
||||
end
|
||||
|
||||
when button or info begin
|
||||
say_title(gameforge.main_quest_lv60._220_sendLetter)
|
||||
say(gameforge.main_quest_lv60._230_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>õ<EFBFBD> <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
|
||||
when 20011.chat.gameforge.main_quest_lv60._220_sendLetter begin
|
||||
say_title(mob_name(20011))
|
||||
say(gameforge.main_quest_lv60._260_say)
|
||||
say("")
|
||||
end
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1000<30><30><EFBFBD><EFBFBD> 1 Ȯ<><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ش<EFBFBD>.
|
||||
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.<2E><><EFBFBD><EFBFBD>
|
||||
set_state (quest3_end1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- <20><><EFBFBD>빮<EFBFBD><EBB9AE><EFBFBD><EFBFBD> <20>ϳ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
state quest3_end1 begin
|
||||
-------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>3---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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()
|
||||
|
||||
--@@@@@@@@@<40><><EFBFBD><EFBFBD>@@@@@@@@@@--
|
||||
--1. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
|
||||
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
|
||||
--<2D><> <20><><EFBFBD>¿<EFBFBD> ó<><C3B3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ǹ<EFBFBD> '<27><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>' <20><><EFBFBD><EFBFBD>Ʈ <20>÷<EFBFBD><C3B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
-- <20>ʱⰪ<CAB1><E2B0AA> 9<><39> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1<><31> <20>ٿ<EFBFBD> 0<><30><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
-- 0<><30> <20>Ǹ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><>ȭ<EFBFBD><C8AD>Ų<EFBFBD><C5B2>.
|
||||
when enter begin
|
||||
pc.setqf("remain_item",9)
|
||||
end
|
||||
|
||||
--*************************--
|
||||
-------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>3_1---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20><>ġ<EFBFBD><C4A1> ǥ<><C7A5><EFBFBD>Ѵ<EFBFBD>.--
|
||||
--------------------------------
|
||||
--------------------------------
|
||||
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
|
||||
-----------------------------
|
||||
--*************************--
|
||||
|
||||
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1000<30><30><EFBFBD><EFBFBD> 1 Ȯ<><C8AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ٿ<EFBFBD><D9BF>ش<EFBFBD>.
|
||||
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")))
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>Ѿ<D1BE><EEB0A3>.
|
||||
if pc.getqf("remain_item")==0 then
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD> <20><>ġ ǥ<>ø<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD> --
|
||||
-------------------------------------
|
||||
-------------------------------------
|
||||
set_state (quest3_end2)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
state quest3_end2 begin
|
||||
--*************************--
|
||||
-------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>3_1---------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._220_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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("")
|
||||
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> --
|
||||
pc.give_exp2(3300000)
|
||||
|
||||
pc.give_item2(71094, 3) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> * 3
|
||||
pc.give_item2(30056) -- <20>Ź<EFBFBD><C5B9><EFBFBD>
|
||||
pc.give_item2(30025) -- <20>Ź<EFBFBD><C5B9><EFBFBD> <20><><EFBFBD>ָӴ<D6B8>
|
||||
|
||||
set_state (quest4_begin)
|
||||
end
|
||||
end
|
||||
|
||||
state quest4_begin begin
|
||||
--*************************--
|
||||
-------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>4-----------
|
||||
when letter begin
|
||||
send_letter(gameforge.main_quest_lv60._340_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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("")
|
||||
|
||||
--@@@ <20><><EFBFBD><EFBFBD> @@@--
|
||||
--1. <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ÿ<EFBFBD><C5B8><EFBFBD><EFBFBD>.
|
||||
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 ("<22><><EFBFBD><EFBFBD> :")
|
||||
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) -- <20>ູ<EFBFBD><E0BAB9> <20><> * 3
|
||||
pc.give_item2(72301)
|
||||
pc.give_item2(72301)
|
||||
pc.give_item2(30046) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
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) -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
pc.give_item2(50727, 10) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10
|
||||
pc.give_item2(50728, 10) -- <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD> 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) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10
|
||||
pc.give_item2(50728, 10) -- <20><><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD> 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) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2(drug) -- <20>˼<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> (+<2B><> <20><><EFBFBD><EFBFBD>)
|
||||
pc.give_item2(30039) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
|
||||
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) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ູ(<28><>)
|
||||
pc.give_item2(70024) -- <20>ູ<EFBFBD><E0BAB9> <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2(70004) -- <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ູ(<28><>)
|
||||
pc.give_item2(70024) -- <20>ູ<EFBFBD><E0BAB9> <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2(70004) -- <20>ٸ<EFBFBD><D9B8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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) -- ȭ<><C8AD><EFBFBD><EFBFBD> <20>ູ(<28><>)
|
||||
pc.give_item2(70035) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ö
|
||||
pc.give_item2(70003) -- <20><><EFBFBD><EFBFBD>
|
||||
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) -- <20><>ö
|
||||
pc.give_item2(71026) -- <20><>ö
|
||||
pc.give_item2(70051) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>尩
|
||||
pc.give_item2(70050) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ǥ
|
||||
|
||||
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) -- <20>߰<EFBFBD><DFB0><EFBFBD>
|
||||
pc.give_item2(71025) -- <20>߰<EFBFBD><DFB0><EFBFBD>
|
||||
pc.give_item2(70038) -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
pc.give_item2(71107) -- õ<><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-1-----------------
|
||||
-----------------<1> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!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
|
||||
|
||||
--[[
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
-----------------<2> <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Żȯ<C5BB>϶<EFBFBD>!-----------------
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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
|
||||
-- <20><><EFBFBD><EFBFBD>Ʈ <20>Ϸ<EFBFBD>
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1-----------------
|
||||
-----------------<3> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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 -- <20><>ǰ <20><><EFBFBD><EFBFBD>
|
||||
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 -- <20><>ǰ <20><><EFBFBD><EFBFBD> <20><EFBFBD>
|
||||
pc.remove_item(31018, pc.count_item(31018))
|
||||
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._390_say)
|
||||
wait()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 -- <20><>ǰ <20><><EFBFBD><EFBFBD> <20>̴<EFBFBD>
|
||||
say(string.format(gameforge.main_quest_lv91._400_say,remain))
|
||||
end
|
||||
else -- <20><>ǰ <20><><EFBFBD><EFBFBD>
|
||||
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> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-2-----------------
|
||||
-----------------<4> <20>ι<EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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<><31> <20><>ǰ <20><><EFBFBD><EFBFBD> <20>ʰ<EFBFBD>
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._500_say)
|
||||
else -- <20><>ǰ <20>õ<EFBFBD>.
|
||||
pc.remove_item(31019, 1)
|
||||
|
||||
if number(1, 100 ) <= 70 then -- <20><>ǰ <20><><EFBFBD><EFBFBD>
|
||||
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 -- <20><>ǰ <20><><EFBFBD><EFBFBD> <20><EFBFBD>
|
||||
pc.remove_item(31019, pc.count_item(31019))
|
||||
|
||||
wait()
|
||||
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv91._520_say)
|
||||
wait()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 -- <20><>ǰ <20><><EFBFBD><EFBFBD> <20>̴<EFBFBD>
|
||||
say(string.format(gameforge.main_quest_lv91._530_say,remain))
|
||||
end
|
||||
else -- <20><>ǰ <20><><EFBFBD><EFBFBD>
|
||||
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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
-----------------<5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȯ-----------------
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
-- <20><><EFBFBD><EFBFBD>Ʈ <20>Ϸ<EFBFBD>
|
||||
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
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>н<EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!1-2------------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ã<>ƶ<EFBFBD>!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
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>--
|
||||
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("<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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)
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><EFBFBD> â ī<><C4AB>Ʈ
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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)
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><EFBFBD> â ī<><C4AB>Ʈ
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
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
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>--
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>° <20><><EFBFBD><EFBFBD> <20>ǵ<EFBFBD>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("<22><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>")
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
------------------------------------<2D>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-----------------------------------
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-1------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ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
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>--
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-2------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ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
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>--
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-3------------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ1-4-----------------------------------
|
||||
------------------------------------<2D><><EFBFBD>°<EFBFBD>ȭ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
|
||||
-- <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> --
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>1-1-----------------------------------
|
||||
------------------------------------<2D>ž<EFBFBD> <20><><EFBFBD><EFBFBD>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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ſ<EFBFBD>------------------------------------
|
||||
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
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>--
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ƿԴ<C6BF>.--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 --<2D>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Դ<EFBFBD>.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._090_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
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
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv95._250_say)
|
||||
|
||||
set_state (state2_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
------------------------------------<2D><><EFBFBD><EFBFBD>Ȳ<EFBFBD><C8B2> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>------------------------------------
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-1-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ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
|
||||
-- <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> --
|
||||
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
|
||||
|
||||
-- Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC> --
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
------------------------------------õ<><C3B5><EFBFBD><EFBFBD> <20><>ȭ1-2-----------------------------------
|
||||
-- <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> --
|
||||
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
|
||||
|
||||
-- Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC> --
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
------------------------------------<2D><><EFBFBD>ɼ<EFBFBD> <20><><EFBFBD><EFBFBD>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
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>--
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ƿԴ<C6BF>.--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 --<2D>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Դ<EFBFBD>.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv96._100_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------<2D><><EFBFBD>ɼ<EFBFBD> <20><><EFBFBD><EFBFBD>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
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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
|
||||
--<2D><><EFBFBD>ڿ<EFBFBD><DABF>Է<EFBFBD>
|
||||
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
|
||||
--<2D>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>忡<EFBFBD><E5BFA1>
|
||||
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()
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
------------------------------------<2D><><EFBFBD>ɼ<EFBFBD> <20><><EFBFBD><EFBFBD>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 -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
say_title(mob_name(20380 ))
|
||||
say(gameforge.main_quest_lv96._630_say)
|
||||
say("")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
------------------------------------<2D><><EFBFBD>ɼ<EFBFBD> <20><><EFBFBD><EFBFBD>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
|
||||
-- <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> --
|
||||
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
|
||||
|
||||
-- Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC> --
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
----------------------------------õ<><C3B5><EFBFBD>ų<EFBFBD> óġ----------------------------------
|
||||
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
|
||||
--<2D><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>--
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ƿԴ<C6BF>.--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 --<2D>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Դ<EFBFBD>.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv97._650_say)
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------- <20>ʸ<EFBFBD><CAB8><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> ----------------------------------
|
||||
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
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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()
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 -- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߷ȴ<DFB7>.
|
||||
say_title(mob_name(20377))
|
||||
say(gameforge.main_quest_lv97._170_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_2)
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------- <20>Ĺ<EFBFBD> Ȱ<><C8B0> Ȯ<><C8AE>----------------------------------
|
||||
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()
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
---------------------------------- <20><>ȣ<EFBFBD>ų<EFBFBD><C5B3><EFBFBD> <20><><EFBFBD><EFBFBD>, õ<><C3B5><EFBFBD>ų<EFBFBD>----------------------------------
|
||||
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
|
||||
-- <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> --
|
||||
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
|
||||
|
||||
-- Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC> --
|
||||
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
|
||||
-- <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> --
|
||||
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
|
||||
|
||||
-- Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC> --
|
||||
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 -- õ<><C3B5><EFBFBD>ų<EFBFBD> óġ
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
----------------------------------<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 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
|
||||
--<2D><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>--
|
||||
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
|
||||
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ƿԴ<C6BF>.--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 --<2D>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Դ<EFBFBD>.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._070_say)
|
||||
say("")
|
||||
|
||||
set_state (state1_2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> 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
|
||||
--Ŭ<><C5AC><EFBFBD><EFBFBD> <20><>--
|
||||
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
|
||||
|
||||
-- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>츦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>.
|
||||
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()
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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 -- <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߷ȴ<DFB7>.
|
||||
say_title(mob_name(20378))
|
||||
say(gameforge.main_quest_lv98._170_say)
|
||||
say("")
|
||||
|
||||
set_state (state2_2)
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
---------------------------------- <20><>Ȱ <20><><EFBFBD><EFBFBD>----------------------------------
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
---------------------------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>λ<EFBFBD>----------------------------------
|
||||
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
|
||||
-- <20>λ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD> --
|
||||
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
|
||||
|
||||
-- Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> Ŭ<><C5AC> --
|
||||
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 -- <20><><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD>
|
||||
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 -- <20><>ȭ<EFBFBD><C8AD><EFBFBD><EFBFBD>
|
||||
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 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
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()
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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
|
||||
----------------------------------<2D>ٽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>----------------------------------
|
||||
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()
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD>
|
||||
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, <20><><EFBFBD><EFBFBD> <20><> <20>ð<EFBFBD>.
|
||||
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 --<2D><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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 --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>忡<EFBFBD><E5BFA1> <20><><EFBFBD><EFBFBD> <20>ɾ<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
|
||||
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 --<2D><EFBFBD> Ź<><C5B9><EFBFBD><EFBFBD> <20>߷<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --<2D><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
-----------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>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 --Ź<><C5B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ư<EFBFBD><C6B0><EFBFBD>.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --<2D><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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)
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>õ<EFBFBD> <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
|
||||
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 --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ź<><C5B9><EFBFBD><EFBFBD> <20>ñ<EFBFBD><C3B1><EFBFBD>.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --<2D><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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
|
||||
|
||||
-----------<2D><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD>2------------
|
||||
when letter begin
|
||||
send_letter(gameforge.spider_dungeon_3floor_boss._110_sendLetter)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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 --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --<2D><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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 --<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ͻ<EFBFBD>Ų<EFBFBD><C5B2>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --<2D><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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)
|
||||
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2>.
|
||||
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
|
||||
|
||||
--<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD> <20>ش<EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>õ<EFBFBD> <20><>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
|
||||
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 -- <20><><EFBFBD>踦 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ְ<EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ẕ́<C5B9> <20><><EFBFBD><EFBFBD><EFBFBD>뿡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ִ<EFBFBD>.
|
||||
when 20011.chat.gameforge.spider_dungeon_3floor_boss._30_npcChat with is_test_server() begin --<2D><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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) -- <20><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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) -- <20><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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)
|
||||
|
||||
--<2D><> <20><><EFBFBD><EFBFBD>.
|
||||
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 --<2D><><EFBFBD><EFBFBD> <20>ƴϴ<C6B4>.
|
||||
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 --<2D><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
set_state(start)
|
||||
say(gameforge.spider_dungeon_3floor_boss._40_say)
|
||||
end
|
||||
|
||||
|
||||
|
||||
when login begin
|
||||
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>뿡 <20><><EFBFBD><EFBFBD>.
|
||||
--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 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ðܳ<C3B0> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ۿ<EFBFBD><DBBF><EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD> <20>ϰ<EFBFBD> <20>Ǹ<EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||||
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) -- <20><EFBFBD>Ʈ<EFBFBD><C6AE>
|
||||
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 --<2D><><EFBFBD>հŹ<D5B0> <20><><EFBFBD><EFBFBD>
|
||||
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 --<2D>Ź̾<C5B9> <20><><EFBFBD><EFBFBD>
|
||||
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
|
||||
|
||||
--<2D>Ź<EFBFBD><C5B9><EFBFBD> <20><><EFBFBD>ݷ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
npc.set_vid_attack_mul(kingVid, 10/(remain_egg + 1))
|
||||
|
||||
--<2D>Ź̰<C5B9> <20><EFBFBD> <20><><EFBFBD>ط<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
npc.set_vid_damage_mul(kingVid, 10/(remain_egg + 1))
|
||||
end
|
||||
|
||||
|
||||
-- 2012.4.5 <20>̻<EFBFBD><CCBB><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ġ <20><><EFBFBD><EFBFBD>
|
||||
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("<22>ʹ<EFBFBD>ȣ : "..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
|
@ -1,3 +1,6 @@
|
||||
#ifndef __INC_METIN2_UTILS_H__
|
||||
#define __INC_METIN2_UTILS_H__
|
||||
|
||||
/*----- atoi function -----*/
|
||||
inline bool str_to_number (bool& out, const char *in)
|
||||
{
|
||||
@ -72,3 +75,5 @@ inline bool str_to_number (float& out, const char *in)
|
||||
}
|
||||
|
||||
/*----- atoi function -----*/
|
||||
|
||||
#endif
|
||||
|
@ -10,6 +10,6 @@
|
||||
#define __COMPILER__ "@METIN2_COMPILER@"
|
||||
#define __CPU_TARGET__ "@METIN2_CPU_TARGET@"
|
||||
|
||||
void WriteVersion(std::ostream& out);
|
||||
void WriteVersion();
|
||||
|
||||
#endif
|
||||
|
@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.8)
|
||||
project(db CXX)
|
||||
|
||||
file(GLOB_RECURSE sources
|
||||
src/*.cpp src/*.h
|
||||
src/*.cpp src/*.h
|
||||
)
|
||||
|
||||
# Add the src directory to the include path
|
||||
@ -11,18 +11,25 @@ include_directories(src)
|
||||
|
||||
add_executable(${PROJECT_NAME} ${sources})
|
||||
|
||||
# Set the default log level based on the build type
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
message(STATUS "This is a debug build. Log level will be set to 'trace' for target '${PROJECT_NAME}'.")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE)
|
||||
endif()
|
||||
|
||||
# Treat char variables as signed, especially useful for ARM builds
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC -fsigned-char)
|
||||
|
||||
# Find dependencies
|
||||
|
||||
#
|
||||
# vcpkg dependencies
|
||||
#
|
||||
|
||||
# Boost
|
||||
find_package(Boost COMPONENTS system REQUIRED)
|
||||
target_link_libraries (${PROJECT_NAME} PRIVATE Boost::boost Boost::system)
|
||||
|
||||
# Pthreads
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
|
||||
|
||||
# LibBSD
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE bsd)
|
||||
|
||||
# Libevent
|
||||
find_package(Libevent CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE libevent::core libevent::extra libevent::pthreads)
|
||||
@ -31,4 +38,16 @@ target_link_libraries(${PROJECT_NAME} PRIVATE libevent::core libevent::extra lib
|
||||
find_package(effolkronium_random CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE effolkronium_random)
|
||||
|
||||
#
|
||||
# System-provided dependencies
|
||||
#
|
||||
|
||||
# Pthreads
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads)
|
||||
|
||||
# LibBSD
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE bsd)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE libpoly libsql libthecore)
|
||||
|
@ -406,13 +406,13 @@ AuctionResult AuctionManager::EnrollInAuction(CItemCache* item_cache, TAuctionIt
|
||||
CItemCache* c = GetItemCache (item_info.item_id);
|
||||
if (c != NULL)
|
||||
{
|
||||
sys_err ("item id : %d is already in AuctionManager", item_info.item_id);
|
||||
SPDLOG_ERROR("item id : {} is already in AuctionManager", item_info.item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
if (!Auction.InsertItemInfo (&item_info))
|
||||
{
|
||||
sys_err ("item id : %d is already in AuctionBoard", item_info.item_id);
|
||||
SPDLOG_ERROR("item id : {} is already in AuctionBoard", item_info.item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
@ -429,19 +429,19 @@ AuctionResult AuctionManager::EnrollInSale(CItemCache* item_cache, TSaleItemInfo
|
||||
CItemCache* c = GetItemCache (item_info.item_id);
|
||||
if (c != NULL)
|
||||
{
|
||||
sys_err ("item id : %d is already in AuctionManager", item_info.item_id);
|
||||
SPDLOG_ERROR("item id : {} is already in AuctionManager", item_info.item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
if (!Wish.GetItemInfoCache (WishBoard::Key (item_info.item_num, item_info.wisher_id)))
|
||||
{
|
||||
sys_err ("item_num : %d, wisher_id : %d is not in wish auction.", item_info.item_num, item_info.wisher_id);
|
||||
SPDLOG_ERROR("item_num : {}, wisher_id : {} is not in wish auction.", item_info.item_num, item_info.wisher_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
if (!Sale.InsertItemInfo (&item_info))
|
||||
{
|
||||
sys_err ("item id : %d is already in SaleBoard", item_info.item_id);
|
||||
SPDLOG_ERROR("item id : {} is already in SaleBoard", item_info.item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
@ -457,7 +457,7 @@ AuctionResult AuctionManager::EnrollInWish(TWishItemInfo &item_info)
|
||||
{
|
||||
if (!Wish.InsertItemInfo (&item_info))
|
||||
{
|
||||
sys_err ("wisher_id : %d, item_num : %d is already in WishBoard", item_info.offer_id, item_info.item_num);
|
||||
SPDLOG_ERROR("wisher_id : {}, item_num : {} is already in WishBoard", item_info.offer_id, item_info.item_num);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
@ -469,7 +469,7 @@ AuctionResult AuctionManager::Bid(DWORD bidder_id, const char* bidder_name, DWOR
|
||||
CItemCache* c = GetItemCache (item_id);
|
||||
if (c == NULL)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
@ -506,7 +506,7 @@ AuctionResult AuctionManager::Impur(DWORD purchaser_id, const char* purchaser_na
|
||||
CItemCache* c = GetItemCache (item_id);
|
||||
if (c == NULL)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
@ -533,14 +533,14 @@ AuctionResult AuctionManager::GetAuctionedItem (DWORD actor_id, DWORD item_id, T
|
||||
CItemCache* c = GetItemCache (item_id);
|
||||
if (c == NULL)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
CAuctionItemInfoCache* item_info_cache = Auction.GetItemInfoCache(item_id);
|
||||
if (item_info_cache == NULL)
|
||||
{
|
||||
sys_err ("how can this accident happen?");
|
||||
SPDLOG_ERROR("how can this accident happen?");
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
@ -561,14 +561,14 @@ AuctionResult AuctionManager::BuySoldItem (DWORD actor_id, DWORD item_id, TPlaye
|
||||
CItemCache* c = GetItemCache (item_id);
|
||||
if (c == NULL)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
CSaleItemInfoCache* item_info_cache = Sale.GetItemInfoCache(item_id);
|
||||
if (item_info_cache == NULL)
|
||||
{
|
||||
sys_err ("how can this accident happen?");
|
||||
SPDLOG_ERROR("how can this accident happen?");
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
@ -584,14 +584,14 @@ AuctionResult AuctionManager::CancelAuction (DWORD actor_id, DWORD item_id, TPla
|
||||
CItemCache* c = GetItemCache (item_id);
|
||||
if (c == NULL)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
CAuctionItemInfoCache* item_info_cache = Auction.GetItemInfoCache(item_id);
|
||||
if (item_info_cache == NULL)
|
||||
{
|
||||
sys_err ("how can this accident happen?");
|
||||
SPDLOG_ERROR("how can this accident happen?");
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
TAuctionItemInfo* item_info = item_info_cache->Get(false);
|
||||
@ -618,14 +618,14 @@ AuctionResult AuctionManager::CancelSale (DWORD actor_id, DWORD item_id, TPlayer
|
||||
CItemCache* c = GetItemCache (item_id);
|
||||
if (c == NULL)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
CSaleItemInfoCache* item_info_cache = Sale.GetItemInfoCache(item_id);
|
||||
if (item_info_cache == NULL)
|
||||
{
|
||||
sys_err ("how can this accident happen?");
|
||||
SPDLOG_ERROR("how can this accident happen?");
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
TSaleItemInfo* item_info = item_info_cache->Get(false);
|
||||
@ -639,13 +639,13 @@ AuctionResult AuctionManager::DeleteAuctionItem (DWORD actor_id, DWORD item_id)
|
||||
{
|
||||
if (DeleteItemCache (item_id) == false)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
if (Auction.DeleteItemInfoCache (item_id) == NULL)
|
||||
{
|
||||
sys_err ("how can this accident happen?");
|
||||
SPDLOG_ERROR("how can this accident happen?");
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
return AUCTION_SUCCESS;
|
||||
@ -655,13 +655,13 @@ AuctionResult AuctionManager::DeleteSaleItem (DWORD actor_id, DWORD item_id)
|
||||
{
|
||||
if (DeleteItemCache (item_id) == false)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
if (Sale.DeleteItemInfoCache (item_id) == NULL)
|
||||
{
|
||||
sys_err ("how can this accident happen?");
|
||||
SPDLOG_ERROR("how can this accident happen?");
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
return AUCTION_SUCCESS;
|
||||
@ -672,7 +672,7 @@ AuctionResult AuctionManager::ReBid(DWORD bidder_id, const char* bidder_name, DW
|
||||
CItemCache* c = GetItemCache (item_id);
|
||||
if (c == NULL)
|
||||
{
|
||||
sys_err ("item id : %d does not exist in auction.", item_id);
|
||||
SPDLOG_ERROR("item id : {} does not exist in auction.", item_id);
|
||||
return AUCTION_FAIL;
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ bool CBlockCountry::Load()
|
||||
|
||||
if (pMsg->Get()->uiNumRows == 0)
|
||||
{
|
||||
sys_err(" DirectQuery failed(%s)", szQuery);
|
||||
SPDLOG_ERROR(" DirectQuery failed({})", szQuery);
|
||||
delete pMsg;
|
||||
return false;
|
||||
}
|
||||
@ -64,7 +64,7 @@ bool CBlockCountry::Load()
|
||||
strlcpy(block_ip->country, row[2], sizeof(block_ip->country));
|
||||
|
||||
m_block_ip.push_back(block_ip);
|
||||
sys_log(0, "BLOCKED_IP : %u - %u", block_ip->ip_from, block_ip->ip_to);
|
||||
SPDLOG_DEBUG("BLOCKED_IP : {} - {}", block_ip->ip_from, block_ip->ip_to);
|
||||
|
||||
}
|
||||
delete pMsg;
|
||||
@ -79,7 +79,7 @@ bool CBlockCountry::Load()
|
||||
|
||||
if (pMsg->Get()->uiNumRows == 0)
|
||||
{
|
||||
sys_err(" DirectQuery failed(%s)", szQuery);
|
||||
SPDLOG_ERROR(" DirectQuery failed({})", szQuery);
|
||||
delete pMsg;
|
||||
return true;
|
||||
}
|
||||
@ -91,7 +91,7 @@ bool CBlockCountry::Load()
|
||||
|
||||
m_block_exception.push_back(strdup(login));
|
||||
|
||||
sys_log(0, "BLOCK_EXCEPTION = %s", login);
|
||||
SPDLOG_DEBUG("BLOCK_EXCEPTION = {}", login);
|
||||
|
||||
}
|
||||
delete pMsg;
|
||||
@ -129,7 +129,7 @@ bool CBlockCountry::IsBlockedCountryIp(const char *user_ip)
|
||||
|
||||
void CBlockCountry::SendBlockedCountryIp(CPeer *peer)
|
||||
{
|
||||
sys_log(0, "SendBlockedCountryIp start");
|
||||
SPDLOG_DEBUG("SendBlockedCountryIp start");
|
||||
BLOCK_IP *block_ip;
|
||||
BLOCK_IP_VECTOR::iterator iter;
|
||||
TPacketBlockCountryIp packet;
|
||||
@ -145,9 +145,9 @@ void CBlockCountry::SendBlockedCountryIp(CPeer *peer)
|
||||
peer->Encode(&packet, sizeof(packet));
|
||||
}
|
||||
|
||||
sys_log(0, "[DONE] CBlockCountry::SendBlockedCountryIp() : count = %d",
|
||||
SPDLOG_DEBUG("[DONE] CBlockCountry::SendBlockedCountryIp() : count = {}",
|
||||
m_block_ip.size());
|
||||
sys_log(0, "SendBlockedCountryIp end");
|
||||
SPDLOG_DEBUG("SendBlockedCountryIp end");
|
||||
} /* end of CBlockCountry::SendBlockedCountryIp() */
|
||||
|
||||
|
||||
|
@ -44,8 +44,7 @@ void CItemCache::Delete()
|
||||
|
||||
//char szQuery[QUERY_MAX_LEN];
|
||||
//szQuery[QUERY_MAX_LEN] = '\0';
|
||||
if (g_test_server)
|
||||
sys_log(0, "ItemCache::Delete : DELETE %u", m_data.id);
|
||||
SPDLOG_TRACE("ItemCache::Delete : DELETE {}", m_data.id);
|
||||
|
||||
m_data.vnum = 0;
|
||||
m_bNeedQuery = true;
|
||||
@ -64,8 +63,7 @@ void CItemCache::OnFlush()
|
||||
snprintf(szQuery, sizeof(szQuery), "DELETE FROM item%s WHERE id=%u", GetTablePostfix(), m_data.id);
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_ITEM_DESTROY, 0, NULL);
|
||||
|
||||
if (g_test_server)
|
||||
sys_log(0, "ItemCache::Flush : DELETE %u %s", m_data.id, szQuery);
|
||||
SPDLOG_TRACE("ItemCache::Flush : DELETE {} {}", m_data.id, szQuery);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -141,8 +139,7 @@ void CItemCache::OnFlush()
|
||||
char szItemQuery[QUERY_MAX_LEN + QUERY_MAX_LEN + 100];
|
||||
snprintf(szItemQuery, sizeof(szItemQuery), "REPLACE INTO item%s (%s) VALUES(%s)", GetTablePostfix(), szColumns, szValues);
|
||||
|
||||
if (g_test_server)
|
||||
sys_log(0, "ItemCache::Flush :REPLACE (%s)", szItemQuery);
|
||||
SPDLOG_TRACE("ItemCache::Flush :REPLACE ({})", szItemQuery);
|
||||
|
||||
CDBManager::instance().ReturnQuery(szItemQuery, QID_ITEM_SAVE, 0, NULL);
|
||||
|
||||
@ -167,8 +164,7 @@ CPlayerTableCache::~CPlayerTableCache()
|
||||
|
||||
void CPlayerTableCache::OnFlush()
|
||||
{
|
||||
if (g_test_server)
|
||||
sys_log(0, "PlayerTableCache::Flush : %s", m_data.name);
|
||||
SPDLOG_TRACE("PlayerTableCache::Flush : {}", m_data.name);
|
||||
|
||||
char szQuery[QUERY_MAX_LEN];
|
||||
CreatePlayerSaveQuery(szQuery, sizeof(szQuery), &m_data);
|
||||
@ -211,7 +207,7 @@ void CItemPriceListTableCache::UpdateList(const TItemPriceListTable* pUpdateList
|
||||
|
||||
if (pUpdateList->byCount > SHOP_PRICELIST_MAX_NUM)
|
||||
{
|
||||
sys_err("Count overflow!");
|
||||
SPDLOG_ERROR("Count overflow!");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -238,8 +234,8 @@ void CItemPriceListTableCache::UpdateList(const TItemPriceListTable* pUpdateList
|
||||
|
||||
m_bNeedQuery = true;
|
||||
|
||||
sys_log(0,
|
||||
"ItemPriceListTableCache::UpdateList : OwnerID[%u] Update [%u] Items, Delete [%u] Items, Total [%u] Items",
|
||||
SPDLOG_DEBUG(
|
||||
"ItemPriceListTableCache::UpdateList : OwnerID[{}] Update [{}] Items, Delete [{}] Items, Total [{}] Items",
|
||||
m_data.dwOwnerID, pUpdateList->byCount, nDeletedNum, m_data.byCount);
|
||||
}
|
||||
|
||||
@ -266,7 +262,7 @@ void CItemPriceListTableCache::OnFlush()
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_ITEMPRICE_SAVE, 0, NULL);
|
||||
}
|
||||
|
||||
sys_log(0, "ItemPriceListTableCache::Flush : OwnerID[%u] Update [%u]Items", m_data.dwOwnerID, m_data.byCount);
|
||||
SPDLOG_DEBUG("ItemPriceListTableCache::Flush : OwnerID[{}] Update [{}]Items", m_data.dwOwnerID, m_data.byCount);
|
||||
|
||||
m_bNeedQuery = false;
|
||||
}
|
||||
@ -287,8 +283,7 @@ void CAuctionItemInfoCache::Delete()
|
||||
if (m_data.item_num == 0)
|
||||
return;
|
||||
|
||||
if (g_test_server)
|
||||
sys_log(0, "CAuctionItemInfoCache::Delete : DELETE %u", m_data.item_id);
|
||||
SPDLOG_TRACE("CAuctionItemInfoCache::Delete : DELETE {}", m_data.item_id);
|
||||
|
||||
m_data.item_num = 0;
|
||||
m_bNeedQuery = true;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -16,84 +16,84 @@ bool CClientManager::InitializeTables()
|
||||
{
|
||||
if (!InitializeMobTable())
|
||||
{
|
||||
sys_err("InitializeMobTable FAILED");
|
||||
SPDLOG_ERROR("InitializeMobTable FAILED");
|
||||
return false;
|
||||
}
|
||||
if (!MirrorMobTableIntoDB())
|
||||
{
|
||||
sys_err("MirrorMobTableIntoDB FAILED");
|
||||
SPDLOG_ERROR("MirrorMobTableIntoDB FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeItemTable())
|
||||
{
|
||||
sys_err("InitializeItemTable FAILED");
|
||||
SPDLOG_ERROR("InitializeItemTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!MirrorItemTableIntoDB())
|
||||
{
|
||||
sys_err("MirrorItemTableIntoDB FAILED");
|
||||
SPDLOG_ERROR("MirrorItemTableIntoDB FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeShopTable())
|
||||
{
|
||||
sys_err("InitializeShopTable FAILED");
|
||||
SPDLOG_ERROR("InitializeShopTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeSkillTable())
|
||||
{
|
||||
sys_err("InitializeSkillTable FAILED");
|
||||
SPDLOG_ERROR("InitializeSkillTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeRefineTable())
|
||||
{
|
||||
sys_err("InitializeRefineTable FAILED");
|
||||
SPDLOG_ERROR("InitializeRefineTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeItemAttrTable())
|
||||
{
|
||||
sys_err("InitializeItemAttrTable FAILED");
|
||||
SPDLOG_ERROR("InitializeItemAttrTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeItemRareTable())
|
||||
{
|
||||
sys_err("InitializeItemRareTable FAILED");
|
||||
SPDLOG_ERROR("InitializeItemRareTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeBanwordTable())
|
||||
{
|
||||
sys_err("InitializeBanwordTable FAILED");
|
||||
SPDLOG_ERROR("InitializeBanwordTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeLandTable())
|
||||
{
|
||||
sys_err("InitializeLandTable FAILED");
|
||||
SPDLOG_ERROR("InitializeLandTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeObjectProto())
|
||||
{
|
||||
sys_err("InitializeObjectProto FAILED");
|
||||
SPDLOG_ERROR("InitializeObjectProto FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeObjectTable())
|
||||
{
|
||||
sys_err("InitializeObjectTable FAILED");
|
||||
SPDLOG_ERROR("InitializeObjectTable FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!InitializeMonarch())
|
||||
{
|
||||
sys_err("InitializeMonarch FAILED");
|
||||
SPDLOG_ERROR("InitializeMonarch FAILED");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -117,7 +117,7 @@ bool CClientManager::InitializeRefineTable()
|
||||
|
||||
if (m_pRefineTable)
|
||||
{
|
||||
sys_log(0, "RELOAD: refine_proto");
|
||||
SPDLOG_DEBUG("RELOAD: refine_proto");
|
||||
delete [] m_pRefineTable;
|
||||
m_pRefineTable = NULL;
|
||||
}
|
||||
@ -153,7 +153,7 @@ bool CClientManager::InitializeRefineTable()
|
||||
}
|
||||
}
|
||||
|
||||
sys_log(0, "REFINE: id %ld cost %d prob %d mat1 %lu cnt1 %d", prt->id, prt->cost, prt->prob, prt->materials[0].vnum, prt->materials[0].count);
|
||||
SPDLOG_TRACE("REFINE: id {} cost {} prob {} mat1 {} cnt1 {}", prt->id, prt->cost, prt->prob, prt->materials[0].vnum, prt->materials[0].count);
|
||||
|
||||
prt++;
|
||||
}
|
||||
@ -203,7 +203,7 @@ bool CClientManager::InitializeMobTable()
|
||||
cCsvTable nameData;
|
||||
if(!nameData.Load("mob_names.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "mob_names.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>\n");
|
||||
SPDLOG_ERROR("mob_names.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>");
|
||||
isNameFile = false;
|
||||
} else {
|
||||
nameData.Next(); //<2F><><EFBFBD><EFBFBD>row <20><><EFBFBD><EFBFBD>.
|
||||
@ -224,7 +224,7 @@ bool CClientManager::InitializeMobTable()
|
||||
cCsvTable test_data;
|
||||
if(!test_data.Load("mob_proto_test.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "<EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <20>״<EFBFBD><D7B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.\n");
|
||||
SPDLOG_ERROR("<EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <20>״<EFBFBD><D7B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.");
|
||||
isTestFile = false;
|
||||
}
|
||||
//2. (c)[test_map_mobTableByVnum](vnum:TMobTable) <20><> <20><><EFBFBD><EFBFBD>.
|
||||
@ -243,7 +243,7 @@ bool CClientManager::InitializeMobTable()
|
||||
|
||||
if (!Set_Proto_Mob_Table(test_mob_table, test_data, localMap))
|
||||
{
|
||||
fprintf(stderr, "<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.\n");
|
||||
SPDLOG_ERROR("<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.");
|
||||
}
|
||||
|
||||
test_map_mobTableByVnum.insert(std::map<DWORD, TMobTable *>::value_type(test_mob_table->dwVnum, test_mob_table));
|
||||
@ -264,7 +264,7 @@ bool CClientManager::InitializeMobTable()
|
||||
//1. <20><><EFBFBD><EFBFBD> <20>б<EFBFBD>.
|
||||
cCsvTable data;
|
||||
if(!data.Load("mob_proto.txt",'\t')) {
|
||||
fprintf(stderr, "mob_proto.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>\n");
|
||||
SPDLOG_ERROR("mob_proto.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
data.Next(); //<2F><><EFBFBD><EFBFBD> row <20>Ѿ<D1BE><EEB0A1>
|
||||
@ -283,14 +283,14 @@ bool CClientManager::InitializeMobTable()
|
||||
data.Destroy();
|
||||
if(!data.Load("mob_proto.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "mob_proto.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>\n");
|
||||
SPDLOG_ERROR("mob_proto.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
data.Next(); //<2F><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Į<><C4AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>κ<EFBFBD>)
|
||||
//2.2 ũ<> <20>°<EFBFBD> mob_table <20><><EFBFBD><EFBFBD>
|
||||
if (!m_vec_mobTable.empty())
|
||||
{
|
||||
sys_log(0, "RELOAD: mob_proto");
|
||||
SPDLOG_DEBUG("RELOAD: mob_proto");
|
||||
m_vec_mobTable.clear();
|
||||
}
|
||||
m_vec_mobTable.resize(data.m_File.GetRowCount()-1 + addNumber);
|
||||
@ -378,7 +378,7 @@ bool CClientManager::InitializeMobTable()
|
||||
|
||||
if (!Set_Proto_Mob_Table(mob_table, data, localMap))
|
||||
{
|
||||
fprintf(stderr, "<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.\n");
|
||||
SPDLOG_ERROR("<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.");
|
||||
}
|
||||
|
||||
|
||||
@ -388,7 +388,7 @@ bool CClientManager::InitializeMobTable()
|
||||
vnumSet.insert(mob_table->dwVnum);
|
||||
|
||||
|
||||
sys_log(1, "MOB #%-5d %-24s %-24s level: %-3u rank: %u empire: %d", mob_table->dwVnum, mob_table->szName, mob_table->szLocaleName, mob_table->bLevel, mob_table->bRank, mob_table->bEmpire);
|
||||
SPDLOG_TRACE("MOB #{:<5} {:24} {:24} level: {:<3} rank: {} empire: {}", mob_table->dwVnum, mob_table->szName, mob_table->szLocaleName, mob_table->bLevel, mob_table->bRank, mob_table->bEmpire);
|
||||
++mob_table;
|
||||
|
||||
}
|
||||
@ -402,7 +402,7 @@ bool CClientManager::InitializeMobTable()
|
||||
test_data;
|
||||
if(!test_data.Load("mob_proto_test.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "<EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <20>״<EFBFBD><D7B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.\n");
|
||||
SPDLOG_ERROR("<EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>. <20>״<EFBFBD><D7B4><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.");
|
||||
isTestFile = false;
|
||||
}
|
||||
if(isTestFile) {
|
||||
@ -419,10 +419,10 @@ bool CClientManager::InitializeMobTable()
|
||||
|
||||
if (!Set_Proto_Mob_Table(mob_table, test_data, localMap))
|
||||
{
|
||||
fprintf(stderr, "<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.\n");
|
||||
SPDLOG_ERROR("<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.");
|
||||
}
|
||||
|
||||
sys_log(0, "MOB #%-5d %-24s %-24s level: %-3u rank: %u empire: %d", mob_table->dwVnum, mob_table->szName, mob_table->szLocaleName, mob_table->bLevel, mob_table->bRank, mob_table->bEmpire);
|
||||
SPDLOG_DEBUG("MOB #{:<5} {:24} {:24} level: {:<3} rank: {} empire: {}", mob_table->dwVnum, mob_table->szName, mob_table->szLocaleName, mob_table->bLevel, mob_table->bRank, mob_table->bEmpire);
|
||||
++mob_table;
|
||||
|
||||
}
|
||||
@ -453,7 +453,7 @@ bool CClientManager::InitializeShopTable()
|
||||
|
||||
if (!pRes2->uiNumRows)
|
||||
{
|
||||
sys_err("InitializeShopTable : Table count is zero.");
|
||||
SPDLOG_ERROR("InitializeShopTable : Table count is zero.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -508,7 +508,7 @@ bool CClientManager::InitializeShopTable()
|
||||
while (it != map_shop.end())
|
||||
{
|
||||
memcpy((m_pShopTable + i), (it++)->second, sizeof(TShopTable));
|
||||
sys_log(0, "SHOP: #%d items: %d", (m_pShopTable + i)->dwVnum, (m_pShopTable + i)->byItemCount);
|
||||
SPDLOG_DEBUG("SHOP: #{} items: {}", (m_pShopTable + i)->dwVnum, (m_pShopTable + i)->byItemCount);
|
||||
++i;
|
||||
}
|
||||
|
||||
@ -529,7 +529,7 @@ bool CClientManager::InitializeQuestItemTable()
|
||||
|
||||
if (!pRes->uiNumRows)
|
||||
{
|
||||
sys_err("query error or no rows: %s", query);
|
||||
SPDLOG_ERROR("query error or no rows: {}", query);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -556,7 +556,7 @@ bool CClientManager::InitializeQuestItemTable()
|
||||
|
||||
if (m_map_itemTableByVnum.find(tbl.dwVnum) != m_map_itemTableByVnum.end())
|
||||
{
|
||||
sys_err("QUEST_ITEM_ERROR! %lu vnum already exist! (name %s)", tbl.dwVnum, tbl.szLocaleName);
|
||||
SPDLOG_ERROR("QUEST_ITEM_ERROR! {} vnum already exist! (name {})", tbl.dwVnum, tbl.szLocaleName);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -603,7 +603,7 @@ bool CClientManager::InitializeItemTable()
|
||||
cCsvTable nameData;
|
||||
if(!nameData.Load("item_names.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "item_names.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>\n");
|
||||
SPDLOG_ERROR("item_names.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>");
|
||||
isNameFile = false;
|
||||
} else {
|
||||
nameData.Next();
|
||||
@ -622,7 +622,7 @@ bool CClientManager::InitializeItemTable()
|
||||
cCsvTable test_data;
|
||||
if(!test_data.Load("item_proto_test.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "item_proto_test.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>\n");
|
||||
SPDLOG_ERROR("item_proto_test.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>");
|
||||
//return false;
|
||||
} else {
|
||||
test_data.Next(); //<2F><><EFBFBD><EFBFBD> <20>ο<EFBFBD> <20>Ѿ<D1BE><EEB0A1>.
|
||||
@ -639,7 +639,7 @@ bool CClientManager::InitializeItemTable()
|
||||
|
||||
if (!Set_Proto_Item_Table(test_item_table, test_data, localMap))
|
||||
{
|
||||
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.\n");
|
||||
SPDLOG_ERROR("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.");
|
||||
}
|
||||
|
||||
test_map_itemTableByVnum.insert(std::map<DWORD, TItemTable *>::value_type(test_item_table->dwVnum, test_item_table));
|
||||
@ -666,14 +666,14 @@ bool CClientManager::InitializeItemTable()
|
||||
cCsvTable data;
|
||||
if(!data.Load("item_proto.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "item_proto.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>\n");
|
||||
SPDLOG_ERROR("item_proto.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
data.Next(); //<2F><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Į<><C4AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>κ<EFBFBD>)
|
||||
|
||||
if (!m_vec_itemTable.empty())
|
||||
{
|
||||
sys_log(0, "RELOAD: item_proto");
|
||||
SPDLOG_DEBUG("RELOAD: item_proto");
|
||||
m_vec_itemTable.clear();
|
||||
m_map_itemTableByVnum.clear();
|
||||
}
|
||||
@ -693,7 +693,7 @@ bool CClientManager::InitializeItemTable()
|
||||
data.Destroy();
|
||||
if(!data.Load("item_proto.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "item_proto.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>\n");
|
||||
SPDLOG_ERROR("item_proto.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>");
|
||||
return false;
|
||||
}
|
||||
data.Next(); //<2F><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Į<><C4AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>κ<EFBFBD>)
|
||||
@ -715,7 +715,7 @@ bool CClientManager::InitializeItemTable()
|
||||
|
||||
if (!Set_Proto_Item_Table(item_table, data, localMap))
|
||||
{
|
||||
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.\n");
|
||||
SPDLOG_ERROR("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.");
|
||||
}
|
||||
|
||||
|
||||
@ -782,7 +782,7 @@ bool CClientManager::InitializeItemTable()
|
||||
test_data.Destroy();
|
||||
if(!test_data.Load("item_proto_test.txt",'\t'))
|
||||
{
|
||||
fprintf(stderr, "item_proto_test.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>\n");
|
||||
SPDLOG_ERROR("item_proto_test.txt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>");
|
||||
//return false;
|
||||
} else {
|
||||
test_data.Next(); //<2F><><EFBFBD><EFBFBD> <20>ο<EFBFBD> <20>Ѿ<D1BE><EEB0A1>.
|
||||
@ -798,7 +798,7 @@ bool CClientManager::InitializeItemTable()
|
||||
|
||||
if (!Set_Proto_Item_Table(item_table, test_data, localMap))
|
||||
{
|
||||
fprintf(stderr, "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.\n");
|
||||
SPDLOG_ERROR("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.");
|
||||
}
|
||||
|
||||
|
||||
@ -823,7 +823,7 @@ bool CClientManager::InitializeItemTable()
|
||||
{
|
||||
TItemTable * item_table = &(*(it++));
|
||||
|
||||
sys_log(1, "ITEM: #%-5lu %-24s %-24s VAL: %ld %ld %ld %ld %ld %ld WEAR %lu ANTI %lu IMMUNE %lu REFINE %lu REFINE_SET %u MAGIC_PCT %u",
|
||||
SPDLOG_TRACE("ITEM: #{:<5} {:24} {:24} VAL: {} {} {} {} {} {} WEAR {} ANTI {} IMMUNE {} REFINE {} REFINE_SET {} MAGIC_PCT {}",
|
||||
item_table->dwVnum,
|
||||
item_table->szName,
|
||||
item_table->szLocaleName,
|
||||
@ -865,13 +865,13 @@ bool CClientManager::InitializeSkillTable()
|
||||
|
||||
if (!pRes->uiNumRows)
|
||||
{
|
||||
sys_err("no result from skill_proto");
|
||||
SPDLOG_ERROR("no result from skill_proto");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_vec_skillTable.empty())
|
||||
{
|
||||
sys_log(0, "RELOAD: skill_proto");
|
||||
SPDLOG_DEBUG("RELOAD: skill_proto");
|
||||
m_vec_skillTable.clear();
|
||||
}
|
||||
|
||||
@ -929,7 +929,7 @@ bool CClientManager::InitializeSkillTable()
|
||||
str_to_number(t.bSkillAttrType, data[col++]);
|
||||
str_to_number(t.dwTargetRange, data[col++]);
|
||||
|
||||
sys_log(0, "SKILL: #%d %s flag %u point %s affect %u cooldown %s", t.dwVnum, t.szName, t.dwFlag, t.szPointOn, t.dwAffectFlag, t.szCooldownPoly);
|
||||
SPDLOG_TRACE("SKILL: #{} {} flag {} point {} affect {} cooldown {}", t.dwVnum, t.szName, t.dwFlag, t.szPointOn, t.dwAffectFlag, t.szCooldownPoly);
|
||||
|
||||
m_vec_skillTable.push_back(t);
|
||||
}
|
||||
@ -961,7 +961,7 @@ bool CClientManager::InitializeBanwordTable()
|
||||
}
|
||||
}
|
||||
|
||||
sys_log(0, "BANWORD: total %d", m_vec_banwordTable.size());
|
||||
SPDLOG_DEBUG("BANWORD: total {}", m_vec_banwordTable.size());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -977,13 +977,13 @@ bool CClientManager::InitializeItemAttrTable()
|
||||
|
||||
if (!pRes->uiNumRows)
|
||||
{
|
||||
sys_err("no result from item_attr");
|
||||
SPDLOG_ERROR("no result from item_attr");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_vec_itemAttrTable.empty())
|
||||
{
|
||||
sys_log(0, "RELOAD: item_attr");
|
||||
SPDLOG_DEBUG("RELOAD: item_attr");
|
||||
m_vec_itemAttrTable.clear();
|
||||
}
|
||||
|
||||
@ -1016,7 +1016,7 @@ bool CClientManager::InitializeItemAttrTable()
|
||||
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_SHIELD], data[col++]);
|
||||
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_EAR], data[col++]);
|
||||
|
||||
sys_log(0, "ITEM_ATTR: %-20s %4lu { %3d %3d %3d %3d %3d } { %d %d %d %d %d %d %d }",
|
||||
SPDLOG_TRACE("ITEM_ATTR: {:20} {:4} ( {:3} {:3} {:3} {:3} {:3} ) ( {} {} {} {} {} {} {} )",
|
||||
t.szApply,
|
||||
t.dwProb,
|
||||
t.lValues[0],
|
||||
@ -1051,13 +1051,13 @@ bool CClientManager::InitializeItemRareTable()
|
||||
|
||||
if (!pRes->uiNumRows)
|
||||
{
|
||||
sys_err("no result from item_attr_rare");
|
||||
SPDLOG_ERROR("no result from item_attr_rare");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_vec_itemRareTable.empty())
|
||||
{
|
||||
sys_log(0, "RELOAD: item_attr_rare");
|
||||
SPDLOG_DEBUG("RELOAD: item_attr_rare");
|
||||
m_vec_itemRareTable.clear();
|
||||
}
|
||||
|
||||
@ -1090,7 +1090,7 @@ bool CClientManager::InitializeItemRareTable()
|
||||
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_SHIELD], data[col++]);
|
||||
str_to_number(t.bMaxLevelBySet[ATTRIBUTE_SET_EAR], data[col++]);
|
||||
|
||||
sys_log(0, "ITEM_RARE: %-20s %4lu { %3d %3d %3d %3d %3d } { %d %d %d %d %d %d %d }",
|
||||
SPDLOG_TRACE("ITEM_RARE: {:20} {:4} ( {:3} {:3} {:3} {:3} {:3} ) ( {} {} {} {} {} {} {} )",
|
||||
t.szApply,
|
||||
t.dwProb,
|
||||
t.lValues[0],
|
||||
@ -1129,7 +1129,7 @@ bool CClientManager::InitializeLandTable()
|
||||
|
||||
if (!m_vec_kLandTable.empty())
|
||||
{
|
||||
sys_log(0, "RELOAD: land");
|
||||
SPDLOG_DEBUG("RELOAD: land");
|
||||
m_vec_kLandTable.clear();
|
||||
}
|
||||
|
||||
@ -1156,7 +1156,7 @@ bool CClientManager::InitializeLandTable()
|
||||
str_to_number(t.bGuildLevelLimit, data[col++]);
|
||||
str_to_number(t.dwPrice, data[col++]);
|
||||
|
||||
sys_log(0, "LAND: %lu map %-4ld %7ldx%-7ld w %-4ld h %-4ld", t.dwID, t.lMapIndex, t.x, t.y, t.width, t.height);
|
||||
SPDLOG_TRACE("LAND: {} map {:<4} {:7}x{:<7} w {:<4} h {:<4}", t.dwID, t.lMapIndex, t.x, t.y, t.width, t.height);
|
||||
|
||||
m_vec_kLandTable.push_back(t);
|
||||
}
|
||||
@ -1232,7 +1232,7 @@ bool CClientManager::InitializeObjectProto()
|
||||
|
||||
if (!m_vec_kObjectProto.empty())
|
||||
{
|
||||
sys_log(0, "RELOAD: object_proto");
|
||||
SPDLOG_DEBUG("RELOAD: object_proto");
|
||||
m_vec_kObjectProto.clear();
|
||||
}
|
||||
|
||||
@ -1280,7 +1280,7 @@ bool CClientManager::InitializeObjectProto()
|
||||
t.lNPCY = std::max(t.lRegion[1], t.lRegion[3])+300;
|
||||
// END_OF_ADD_BUILDING_NPC
|
||||
|
||||
sys_log(0, "OBJ_PROTO: vnum %lu price %lu mat %lu %lu",
|
||||
SPDLOG_TRACE("OBJ_PROTO: vnum {} price {} mat {} {}",
|
||||
t.dwVnum, t.dwPrice, t.kMaterials[0].dwItemVnum, t.kMaterials[0].dwCount);
|
||||
|
||||
m_vec_kObjectProto.push_back(t);
|
||||
@ -1301,7 +1301,7 @@ bool CClientManager::InitializeObjectTable()
|
||||
|
||||
if (!m_map_pkObjectTable.empty())
|
||||
{
|
||||
sys_log(0, "RELOAD: object");
|
||||
SPDLOG_DEBUG("RELOAD: object");
|
||||
m_map_pkObjectTable.clear();
|
||||
}
|
||||
|
||||
@ -1327,7 +1327,7 @@ bool CClientManager::InitializeObjectTable()
|
||||
str_to_number(k->zRot, data[col++]);
|
||||
str_to_number(k->lLife, data[col++]);
|
||||
|
||||
sys_log(0, "OBJ: %lu vnum %lu map %-4ld %7ldx%-7ld life %ld",
|
||||
SPDLOG_DEBUG("OBJ: {} vnum {} map {:<4} {:7}x{:<7} life {}",
|
||||
k->dwID, k->dwVnum, k->lMapIndex, k->x, k->y, k->lLife);
|
||||
|
||||
m_map_pkObjectTable.insert(std::make_pair(k->dwID, k));
|
||||
|
@ -21,7 +21,7 @@ void CClientManager::LoadEventFlag()
|
||||
TPacketSetEventFlag p;
|
||||
strlcpy(p.szFlagName, row[0], sizeof(p.szFlagName));
|
||||
str_to_number(p.lValue, row[1]);
|
||||
sys_log(0, "EventFlag Load %s %d", p.szFlagName, p.lValue);
|
||||
SPDLOG_DEBUG("EventFlag Load {} {}", p.szFlagName, p.lValue);
|
||||
m_map_lEventFlag.insert(std::make_pair(std::string(p.szFlagName), p.lValue));
|
||||
ForwardPacket(HEADER_DG_SET_EVENT_FLAG, &p, sizeof(TPacketSetEventFlag));
|
||||
}
|
||||
@ -56,10 +56,10 @@ void CClientManager::SetEventFlag(TPacketSetEventFlag* p)
|
||||
|
||||
//CDBManager::instance().ReturnQuery(szQuery, QID_QUEST_SAVE, 0, NULL);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
sys_log(0, "HEADER_GD_SET_EVENT_FLAG : Changed CClientmanager::SetEventFlag(%s %d) ", p->szFlagName, p->lValue);
|
||||
SPDLOG_DEBUG("HEADER_GD_SET_EVENT_FLAG : Changed CClientmanager::SetEventFlag({} {}) ", p->szFlagName, p->lValue);
|
||||
return;
|
||||
}
|
||||
sys_log(0, "HEADER_GD_SET_EVENT_FLAG : No Changed CClientmanager::SetEventFlag(%s %d) ", p->szFlagName, p->lValue);
|
||||
SPDLOG_DEBUG("HEADER_GD_SET_EVENT_FLAG : No Changed CClientmanager::SetEventFlag({} {}) ", p->szFlagName, p->lValue);
|
||||
}
|
||||
|
||||
void CClientManager::SendEventFlagsOnSetup(CPeer* peer)
|
||||
|
@ -10,7 +10,7 @@
|
||||
|
||||
void CClientManager::GuildCreate(CPeer * peer, DWORD dwGuildID)
|
||||
{
|
||||
sys_log(0, "GuildCreate %u", dwGuildID);
|
||||
SPDLOG_DEBUG("GuildCreate {}", dwGuildID);
|
||||
ForwardPacket(HEADER_DG_GUILD_LOAD, &dwGuildID, sizeof(DWORD));
|
||||
|
||||
CGuildManager::instance().Load(dwGuildID);
|
||||
@ -18,14 +18,14 @@ void CClientManager::GuildCreate(CPeer * peer, DWORD dwGuildID)
|
||||
|
||||
void CClientManager::GuildChangeGrade(CPeer* peer, TPacketGuild* p)
|
||||
{
|
||||
sys_log(0, "GuildChangeGrade %u %u", p->dwGuild, p->dwInfo);
|
||||
SPDLOG_DEBUG("GuildChangeGrade {} {}", p->dwGuild, p->dwInfo);
|
||||
ForwardPacket(HEADER_DG_GUILD_CHANGE_GRADE, p, sizeof(TPacketGuild));
|
||||
}
|
||||
|
||||
void CClientManager::GuildAddMember(CPeer* peer, TPacketGDGuildAddMember * p)
|
||||
{
|
||||
CGuildManager::instance().TouchGuild(p->dwGuild);
|
||||
sys_log(0, "GuildAddMember %u %u", p->dwGuild, p->dwPID);
|
||||
SPDLOG_DEBUG("GuildAddMember {} {}", p->dwGuild, p->dwPID);
|
||||
|
||||
char szQuery[512];
|
||||
|
||||
@ -42,7 +42,7 @@ void CClientManager::GuildAddMember(CPeer* peer, TPacketGDGuildAddMember * p)
|
||||
|
||||
if (pmsg->Get()->uiNumRows == 0)
|
||||
{
|
||||
sys_err("Query failed when getting guild member data %s", pmsg->stQuery.c_str());
|
||||
SPDLOG_ERROR("Query failed when getting guild member data {}", pmsg->stQuery.c_str());
|
||||
return;
|
||||
}
|
||||
|
||||
@ -67,7 +67,7 @@ void CClientManager::GuildAddMember(CPeer* peer, TPacketGDGuildAddMember * p)
|
||||
|
||||
void CClientManager::GuildRemoveMember(CPeer* peer, TPacketGuild* p)
|
||||
{
|
||||
sys_log(0, "GuildRemoveMember %u %u", p->dwGuild, p->dwInfo);
|
||||
SPDLOG_DEBUG("GuildRemoveMember {} {}", p->dwGuild, p->dwInfo);
|
||||
|
||||
char szQuery[512];
|
||||
snprintf(szQuery, sizeof(szQuery), "DELETE FROM guild_member%s WHERE pid=%u and guild_id=%u", GetTablePostfix(), p->dwInfo, p->dwGuild);
|
||||
@ -81,25 +81,25 @@ void CClientManager::GuildRemoveMember(CPeer* peer, TPacketGuild* p)
|
||||
|
||||
void CClientManager::GuildSkillUpdate(CPeer* peer, TPacketGuildSkillUpdate* p)
|
||||
{
|
||||
sys_log(0, "GuildSkillUpdate %d", p->amount);
|
||||
SPDLOG_DEBUG("GuildSkillUpdate {}", p->amount);
|
||||
ForwardPacket(HEADER_DG_GUILD_SKILL_UPDATE, p, sizeof(TPacketGuildSkillUpdate));
|
||||
}
|
||||
|
||||
void CClientManager::GuildExpUpdate(CPeer* peer, TPacketGuildExpUpdate* p)
|
||||
{
|
||||
sys_log(0, "GuildExpUpdate %d", p->amount);
|
||||
SPDLOG_DEBUG("GuildExpUpdate {}", p->amount);
|
||||
ForwardPacket(HEADER_DG_GUILD_EXP_UPDATE, p, sizeof(TPacketGuildExpUpdate), 0, peer);
|
||||
}
|
||||
|
||||
void CClientManager::GuildChangeMemberData(CPeer* peer, TPacketGuildChangeMemberData* p)
|
||||
{
|
||||
sys_log(0, "GuildChangeMemberData %u %u %d %d", p->pid, p->offer, p->level, p->grade);
|
||||
SPDLOG_DEBUG("GuildChangeMemberData {} {} {} {}", p->pid, p->offer, p->level, p->grade);
|
||||
ForwardPacket(HEADER_DG_GUILD_CHANGE_MEMBER_DATA, p, sizeof(TPacketGuildChangeMemberData), 0, peer);
|
||||
}
|
||||
|
||||
void CClientManager::GuildDisband(CPeer* peer, TPacketGuild* p)
|
||||
{
|
||||
sys_log(0, "GuildDisband %u", p->dwGuild);
|
||||
SPDLOG_DEBUG("GuildDisband {}", p->dwGuild);
|
||||
|
||||
char szQuery[512];
|
||||
|
||||
@ -141,12 +141,12 @@ void CClientManager::GuildWar(CPeer* peer, TPacketGuildWar* p)
|
||||
switch (p->bWar)
|
||||
{
|
||||
case GUILD_WAR_SEND_DECLARE:
|
||||
sys_log(0, "GuildWar: GUILD_WAR_SEND_DECLARE type(%s) guild(%d - %d)", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD_WAR_SEND_DECLARE type({}) guild({} - {})", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
CGuildManager::instance().AddDeclare(p->bType, p->dwGuildFrom, p->dwGuildTo);
|
||||
break;
|
||||
|
||||
case GUILD_WAR_REFUSE:
|
||||
sys_log(0, "GuildWar: GUILD_WAR_REFUSE type(%s) guild(%d - %d)", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD_WAR_REFUSE type({}) guild({} - {})", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
CGuildManager::instance().RemoveDeclare(p->dwGuildFrom, p->dwGuildTo);
|
||||
break;
|
||||
/*
|
||||
@ -160,10 +160,10 @@ void CClientManager::GuildWar(CPeer* peer, TPacketGuildWar* p)
|
||||
*/
|
||||
|
||||
case GUILD_WAR_WAIT_START:
|
||||
sys_log(0, "GuildWar: GUILD_WAR_WAIT_START type(%s) guild(%d - %d)", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD_WAR_WAIT_START type({}) guild({} - {})", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
case GUILD_WAR_RESERVE: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if (p->bWar != GUILD_WAR_WAIT_START)
|
||||
sys_log(0, "GuildWar: GUILD_WAR_RESERVE type(%s) guild(%d - %d)", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD_WAR_RESERVE type({}) guild({} - {})", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
CGuildManager::instance().RemoveDeclare(p->dwGuildFrom, p->dwGuildTo);
|
||||
|
||||
if (!CGuildManager::instance().ReserveWar(p))
|
||||
@ -174,23 +174,23 @@ void CClientManager::GuildWar(CPeer* peer, TPacketGuildWar* p)
|
||||
break;
|
||||
|
||||
case GUILD_WAR_ON_WAR: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ų<EFBFBD><C5B2>. (<28>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD> <20>ٷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>)
|
||||
sys_log(0, "GuildWar: GUILD_WAR_ON_WAR type(%s) guild(%d - %d)", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD_WAR_ON_WAR type({}) guild({} - {})", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
CGuildManager::instance().RemoveDeclare(p->dwGuildFrom, p->dwGuildTo);
|
||||
CGuildManager::instance().StartWar(p->bType, p->dwGuildFrom, p->dwGuildTo);
|
||||
break;
|
||||
|
||||
case GUILD_WAR_OVER: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
sys_log(0, "GuildWar: GUILD_WAR_OVER type(%s) guild(%d - %d)", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD_WAR_OVER type({}) guild({} - {})", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
CGuildManager::instance().RecvWarOver(p->dwGuildFrom, p->dwGuildTo, p->bType, p->lWarPrice);
|
||||
break;
|
||||
|
||||
case GUILD_WAR_END: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
sys_log(0, "GuildWar: GUILD_WAR_END type(%s) guild(%d - %d)", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD_WAR_END type({}) guild({} - {})", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
CGuildManager::instance().RecvWarEnd(p->dwGuildFrom, p->dwGuildTo);
|
||||
return; // NOTE: RecvWarEnd<6E><64><EFBFBD><EFBFBD> <20><>Ŷ<EFBFBD><C5B6> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ε<EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ʴ´<CAB4>.
|
||||
|
||||
case GUILD_WAR_CANCEL :
|
||||
sys_log(0, "GuildWar: GUILD_WAR_CANCEL type(%s) guild(%d - %d)", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD_WAR_CANCEL type({}) guild({} - {})", __GetWarType(p->bType), p->dwGuildFrom, p->dwGuildTo);
|
||||
CGuildManager::instance().CancelWar(p->dwGuildFrom, p->dwGuildTo);
|
||||
break;
|
||||
}
|
||||
@ -205,20 +205,20 @@ void CClientManager::GuildWarScore(CPeer* peer, TPacketGuildWarScore * p)
|
||||
|
||||
void CClientManager::GuildChangeLadderPoint(TPacketGuildLadderPoint* p)
|
||||
{
|
||||
sys_log(0, "GuildChangeLadderPoint Recv %u %d", p->dwGuild, p->lChange);
|
||||
SPDLOG_DEBUG("GuildChangeLadderPoint Recv {} {}", p->dwGuild, p->lChange);
|
||||
CGuildManager::instance().ChangeLadderPoint(p->dwGuild, p->lChange);
|
||||
}
|
||||
|
||||
void CClientManager::GuildUseSkill(TPacketGuildUseSkill* p)
|
||||
{
|
||||
sys_log(0, "GuildUseSkill Recv %u %d", p->dwGuild, p->dwSkillVnum);
|
||||
SPDLOG_DEBUG("GuildUseSkill Recv {} {}", p->dwGuild, p->dwSkillVnum);
|
||||
CGuildManager::instance().UseSkill(p->dwGuild, p->dwSkillVnum, p->dwCooltime);
|
||||
SendGuildSkillUsable(p->dwGuild, p->dwSkillVnum, false);
|
||||
}
|
||||
|
||||
void CClientManager::SendGuildSkillUsable(DWORD guild_id, DWORD dwSkillVnum, bool bUsable)
|
||||
{
|
||||
sys_log(0, "SendGuildSkillUsable Send %u %d %s", guild_id, dwSkillVnum, bUsable?"true":"false");
|
||||
SPDLOG_DEBUG("SendGuildSkillUsable Send {} {} {}", guild_id, dwSkillVnum, bUsable?"true":"false");
|
||||
|
||||
TPacketGuildSkillUsableChange p;
|
||||
|
||||
|
@ -11,7 +11,6 @@
|
||||
extern std::string g_stLocale;
|
||||
extern bool CreatePlayerTableFromRes(MYSQL_RES * res, TPlayerTable * pkTab);
|
||||
extern int g_test_server;
|
||||
extern int g_log;
|
||||
|
||||
bool CClientManager::InsertLogonAccount(const char * c_pszLogin, DWORD dwHandle, const char * c_pszIP)
|
||||
{
|
||||
@ -49,7 +48,7 @@ bool CClientManager::DeleteLogonAccount(const char * c_pszLogin, DWORD dwHandle)
|
||||
|
||||
if (pkLD->GetConnectedPeerHandle() != dwHandle)
|
||||
{
|
||||
sys_err("%s tried to logout in other peer handle %lu, current handle %lu", szLogin, dwHandle, pkLD->GetConnectedPeerHandle());
|
||||
SPDLOG_ERROR("{} tried to logout in other peer handle {}, current handle {}", szLogin, dwHandle, pkLD->GetConnectedPeerHandle());
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -87,7 +86,7 @@ void CClientManager::QUERY_LOGIN_BY_KEY(CPeer * pkPeer, DWORD dwHandle, TPacketG
|
||||
|
||||
if (!pkLoginData)
|
||||
{
|
||||
sys_log(0, "LOGIN_BY_KEY key not exist %s %lu", szLogin, p->dwLoginKey);
|
||||
SPDLOG_DEBUG("LOGIN_BY_KEY key not exist {} {}", szLogin, p->dwLoginKey);
|
||||
pkPeer->EncodeReturn(HEADER_DG_LOGIN_NOT_EXIST, dwHandle);
|
||||
return;
|
||||
}
|
||||
@ -96,7 +95,7 @@ void CClientManager::QUERY_LOGIN_BY_KEY(CPeer * pkPeer, DWORD dwHandle, TPacketG
|
||||
|
||||
if (FindLogonAccount(r.login))
|
||||
{
|
||||
sys_log(0, "LOGIN_BY_KEY already login %s %lu", r.login, p->dwLoginKey);
|
||||
SPDLOG_DEBUG("LOGIN_BY_KEY already login {} {}", r.login, p->dwLoginKey);
|
||||
TPacketDGLoginAlready ptog;
|
||||
strlcpy(ptog.szLogin, szLogin, sizeof(ptog.szLogin));
|
||||
pkPeer->EncodeHeader(HEADER_DG_LOGIN_ALREADY, dwHandle, sizeof(TPacketDGLoginAlready));
|
||||
@ -106,7 +105,7 @@ void CClientManager::QUERY_LOGIN_BY_KEY(CPeer * pkPeer, DWORD dwHandle, TPacketG
|
||||
|
||||
if (strcasecmp(r.login, szLogin))
|
||||
{
|
||||
sys_log(0, "LOGIN_BY_KEY login differ %s %lu input %s", r.login, p->dwLoginKey, szLogin);
|
||||
SPDLOG_DEBUG("LOGIN_BY_KEY login differ {} {} input {}", r.login, p->dwLoginKey, szLogin);
|
||||
pkPeer->EncodeReturn(HEADER_DG_LOGIN_NOT_EXIST, dwHandle);
|
||||
return;
|
||||
}
|
||||
@ -115,7 +114,7 @@ void CClientManager::QUERY_LOGIN_BY_KEY(CPeer * pkPeer, DWORD dwHandle, TPacketG
|
||||
{
|
||||
const DWORD * pdwClientKey = pkLoginData->GetClientKey();
|
||||
|
||||
sys_log(0, "LOGIN_BY_KEY client key differ %s %lu %lu %lu %lu, %lu %lu %lu %lu",
|
||||
SPDLOG_DEBUG("LOGIN_BY_KEY client key differ {} {} {} {} {}, {} {} {} {}",
|
||||
r.login,
|
||||
p->adwClientKey[0], p->adwClientKey[1], p->adwClientKey[2], p->adwClientKey[3],
|
||||
pdwClientKey[0], pdwClientKey[1], pdwClientKey[2], pdwClientKey[3]);
|
||||
@ -137,7 +136,7 @@ void CClientManager::QUERY_LOGIN_BY_KEY(CPeer * pkPeer, DWORD dwHandle, TPacketG
|
||||
info->pAccountTable = pkTab;
|
||||
strlcpy(info->ip, p->szIP, sizeof(info->ip));
|
||||
|
||||
sys_log(0, "LOGIN_BY_KEY success %s %lu %s", r.login, p->dwLoginKey, info->ip);
|
||||
SPDLOG_DEBUG("LOGIN_BY_KEY success {} {} {}", r.login, p->dwLoginKey, info->ip);
|
||||
char szQuery[QUERY_MAX_LEN];
|
||||
snprintf(szQuery, sizeof(szQuery), "SELECT pid1, pid2, pid3, pid4, empire FROM player_index%s WHERE id=%u", GetTablePostfix(), r.id);
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_LOGIN_BY_KEY, pkPeer->GetHandle(), info);
|
||||
@ -164,11 +163,11 @@ void CClientManager::RESULT_LOGIN_BY_KEY(CPeer * peer, SQLMsg * msg)
|
||||
snprintf(szQuery, sizeof(szQuery), "SELECT pid1, pid2, pid3, pid4, empire FROM player_index%s WHERE id=%u", GetTablePostfix(), account_id);
|
||||
std::unique_ptr<SQLMsg> pMsg(CDBManager::instance().DirectQuery(szQuery, SQL_PLAYER));
|
||||
|
||||
sys_log(0, "RESULT_LOGIN_BY_KEY FAIL player_index's NULL : ID:%d", account_id);
|
||||
SPDLOG_DEBUG("RESULT_LOGIN_BY_KEY FAIL player_index's NULL : ID:{}", account_id);
|
||||
|
||||
if (pMsg->Get()->uiNumRows == 0)
|
||||
{
|
||||
sys_log(0, "RESULT_LOGIN_BY_KEY FAIL player_index's NULL : ID:%d", account_id);
|
||||
SPDLOG_DEBUG("RESULT_LOGIN_BY_KEY FAIL player_index's NULL : ID:{}", account_id);
|
||||
|
||||
// PLAYER_INDEX_CREATE_BUG_FIX
|
||||
//snprintf(szQuery, sizeof(szQuery), "INSERT IGNORE INTO player_index%s (id) VALUES(%lu)", GetTablePostfix(), info->pAccountTable->id);
|
||||
@ -332,14 +331,14 @@ void CreateAccountPlayerDataFromRes(MYSQL_RES * pRes, TAccountTable * pkTab)
|
||||
str_to_number(pkTab->players[j].bChangeName, row[col++]);
|
||||
}
|
||||
|
||||
sys_log(0, "%s %lu %lu hair %u",
|
||||
SPDLOG_DEBUG("{} {} {} hair {}",
|
||||
pkTab->players[j].szName, pkTab->players[j].x, pkTab->players[j].y, pkTab->players[j].wHairPart);
|
||||
break;
|
||||
}
|
||||
}
|
||||
/*
|
||||
if (j == PLAYER_PER_ACCOUNT)
|
||||
sys_err("cannot find player_id on this account (login: %s id %lu account %lu %lu %lu)",
|
||||
SPDLOG_ERROR("cannot find player_id on this account (login: {} id {} account {} {} {})",
|
||||
pkTab->login, player_id,
|
||||
pkTab->players[0].dwID,
|
||||
pkTab->players[1].dwID,
|
||||
@ -358,7 +357,7 @@ void CClientManager::RESULT_LOGIN(CPeer * peer, SQLMsg * msg)
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>?
|
||||
if (msg->Get()->uiNumRows == 0)
|
||||
{
|
||||
sys_log(0, "RESULT_LOGIN: no account");
|
||||
SPDLOG_DEBUG("RESULT_LOGIN: no account");
|
||||
peer->EncodeHeader(HEADER_DG_LOGIN_NOT_EXIST, info->dwHandle, 0);
|
||||
delete info;
|
||||
return;
|
||||
@ -368,7 +367,7 @@ void CClientManager::RESULT_LOGIN(CPeer * peer, SQLMsg * msg)
|
||||
|
||||
if (!info->pAccountTable)
|
||||
{
|
||||
sys_log(0, "RESULT_LOGIN: no account : WRONG_PASSWD");
|
||||
SPDLOG_DEBUG("RESULT_LOGIN: no account : WRONG_PASSWD");
|
||||
peer->EncodeReturn(HEADER_DG_LOGIN_WRONG_PASSWD, info->dwHandle);
|
||||
delete info;
|
||||
}
|
||||
@ -407,7 +406,7 @@ void CClientManager::RESULT_LOGIN(CPeer * peer, SQLMsg * msg)
|
||||
// <20>ٸ<EFBFBD> <20><><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD> <20>̹<EFBFBD> <20>α<EFBFBD><CEB1><EFBFBD> <20>ع<EFBFBD><D8B9>ȴٸ<C8B4>.. <20>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ߴٰ<DFB4> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
if (!InsertLogonAccount(info->pAccountTable->login, peer->GetHandle(), info->ip))
|
||||
{
|
||||
sys_log(0, "RESULT_LOGIN: already logon %s", info->pAccountTable->login);
|
||||
SPDLOG_DEBUG("RESULT_LOGIN: already logon {}", info->pAccountTable->login);
|
||||
|
||||
TPacketDGLoginAlready p;
|
||||
strlcpy(p.szLogin, info->pAccountTable->login, sizeof(p.szLogin));
|
||||
@ -417,7 +416,7 @@ void CClientManager::RESULT_LOGIN(CPeer * peer, SQLMsg * msg)
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_log(0, "RESULT_LOGIN: login success %s rows: %lu", info->pAccountTable->login, msg->Get()->uiNumRows);
|
||||
SPDLOG_DEBUG("RESULT_LOGIN: login success {} rows: {}", info->pAccountTable->login, msg->Get()->uiNumRows);
|
||||
|
||||
if (msg->Get()->uiNumRows > 0)
|
||||
CreateAccountPlayerDataFromRes(msg->Get()->pSQLResult, info->pAccountTable);
|
||||
@ -456,23 +455,20 @@ void CClientManager::QUERY_LOGOUT(CPeer * peer, DWORD dwHandle,const char * data
|
||||
{
|
||||
if (pLoginData->GetAccountRef().players[n].dwID == 0)
|
||||
{
|
||||
if (g_test_server)
|
||||
sys_log(0, "LOGOUT %s %d", packet->login, pLoginData->GetAccountRef().players[n].dwID);
|
||||
SPDLOG_TRACE("LOGOUT {} {}", packet->login, pLoginData->GetAccountRef().players[n].dwID);
|
||||
continue;
|
||||
}
|
||||
|
||||
pid[n] = pLoginData->GetAccountRef().players[n].dwID;
|
||||
|
||||
if (g_log)
|
||||
sys_log(0, "LOGOUT InsertLogoutPlayer %s %d", packet->login, pid[n]);
|
||||
SPDLOG_TRACE("LOGOUT InsertLogoutPlayer {} {}", packet->login, pid[n]);
|
||||
|
||||
InsertLogoutPlayer(pid[n]);
|
||||
}
|
||||
|
||||
if (DeleteLogonAccount(packet->login, peer->GetHandle()))
|
||||
{
|
||||
if (g_log)
|
||||
sys_log(0, "LOGOUT %s ", packet->login);
|
||||
SPDLOG_TRACE("LOGOUT {} ", packet->login);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,11 +13,11 @@ void CClientManager::QUERY_PARTY_CREATE(CPeer* peer, TPacketPartyCreate* p)
|
||||
{
|
||||
pm.insert(make_pair(p->dwLeaderPID, TPartyMember()));
|
||||
ForwardPacket(HEADER_DG_PARTY_CREATE, p, sizeof(TPacketPartyCreate), peer->GetChannel(), peer);
|
||||
sys_log(0, "PARTY Create [%lu]", p->dwLeaderPID);
|
||||
SPDLOG_DEBUG("PARTY Create [{}]", p->dwLeaderPID);
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err("PARTY Create - Already exists [%lu]", p->dwLeaderPID);
|
||||
SPDLOG_ERROR("PARTY Create - Already exists [{}]", p->dwLeaderPID);
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,13 +28,13 @@ void CClientManager::QUERY_PARTY_DELETE(CPeer* peer, TPacketPartyDelete* p)
|
||||
|
||||
if (it == pm.end())
|
||||
{
|
||||
sys_err("PARTY Delete - Non exists [%lu]", p->dwLeaderPID);
|
||||
SPDLOG_ERROR("PARTY Delete - Non exists [{}]", p->dwLeaderPID);
|
||||
return;
|
||||
}
|
||||
|
||||
pm.erase(it);
|
||||
ForwardPacket(HEADER_DG_PARTY_DELETE, p, sizeof(TPacketPartyDelete), peer->GetChannel(), peer);
|
||||
sys_log(0, "PARTY Delete [%lu]", p->dwLeaderPID);
|
||||
SPDLOG_DEBUG("PARTY Delete [{}]", p->dwLeaderPID);
|
||||
}
|
||||
|
||||
void CClientManager::QUERY_PARTY_ADD(CPeer* peer, TPacketPartyAdd* p)
|
||||
@ -44,7 +44,7 @@ void CClientManager::QUERY_PARTY_ADD(CPeer* peer, TPacketPartyAdd* p)
|
||||
|
||||
if (it == pm.end())
|
||||
{
|
||||
sys_err("PARTY Add - Non exists [%lu]", p->dwLeaderPID);
|
||||
SPDLOG_ERROR("PARTY Add - Non exists [{}]", p->dwLeaderPID);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -52,10 +52,10 @@ void CClientManager::QUERY_PARTY_ADD(CPeer* peer, TPacketPartyAdd* p)
|
||||
{
|
||||
it->second.insert(std::make_pair(p->dwPID, TPartyInfo()));
|
||||
ForwardPacket(HEADER_DG_PARTY_ADD, p, sizeof(TPacketPartyAdd), peer->GetChannel(), peer);
|
||||
sys_log(0, "PARTY Add [%lu] to [%lu]", p->dwPID, p->dwLeaderPID);
|
||||
SPDLOG_DEBUG("PARTY Add [{}] to [{}]", p->dwPID, p->dwLeaderPID);
|
||||
}
|
||||
else
|
||||
sys_err("PARTY Add - Already [%lu] in party [%lu]", p->dwPID, p->dwLeaderPID);
|
||||
SPDLOG_ERROR("PARTY Add - Already [{}] in party [{}]", p->dwPID, p->dwLeaderPID);
|
||||
}
|
||||
|
||||
void CClientManager::QUERY_PARTY_REMOVE(CPeer* peer, TPacketPartyRemove* p)
|
||||
@ -65,7 +65,7 @@ void CClientManager::QUERY_PARTY_REMOVE(CPeer* peer, TPacketPartyRemove* p)
|
||||
|
||||
if (it == pm.end())
|
||||
{
|
||||
sys_err("PARTY Remove - Non exists [%lu] cannot remove [%lu]",p->dwLeaderPID, p->dwPID);
|
||||
SPDLOG_ERROR("PARTY Remove - Non exists [{}] cannot remove [{}]",p->dwLeaderPID, p->dwPID);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -75,10 +75,10 @@ void CClientManager::QUERY_PARTY_REMOVE(CPeer* peer, TPacketPartyRemove* p)
|
||||
{
|
||||
it->second.erase(pit);
|
||||
ForwardPacket(HEADER_DG_PARTY_REMOVE, p, sizeof(TPacketPartyRemove), peer->GetChannel(), peer);
|
||||
sys_log(0, "PARTY Remove [%lu] to [%lu]", p->dwPID, p->dwLeaderPID);
|
||||
SPDLOG_DEBUG("PARTY Remove [{}] to [{}]", p->dwPID, p->dwLeaderPID);
|
||||
}
|
||||
else
|
||||
sys_err("PARTY Remove - Cannot find [%lu] in party [%lu]", p->dwPID, p->dwLeaderPID);
|
||||
SPDLOG_ERROR("PARTY Remove - Cannot find [{}] in party [{}]", p->dwPID, p->dwLeaderPID);
|
||||
}
|
||||
|
||||
void CClientManager::QUERY_PARTY_STATE_CHANGE(CPeer* peer, TPacketPartyStateChange* p)
|
||||
@ -88,7 +88,7 @@ void CClientManager::QUERY_PARTY_STATE_CHANGE(CPeer* peer, TPacketPartyStateChan
|
||||
|
||||
if (it == pm.end())
|
||||
{
|
||||
sys_err("PARTY StateChange - Non exists [%lu] cannot state change [%lu]",p->dwLeaderPID, p->dwPID);
|
||||
SPDLOG_ERROR("PARTY StateChange - Non exists [{}] cannot state change [{}]",p->dwLeaderPID, p->dwPID);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -96,7 +96,7 @@ void CClientManager::QUERY_PARTY_STATE_CHANGE(CPeer* peer, TPacketPartyStateChan
|
||||
|
||||
if (pit == it->second.end())
|
||||
{
|
||||
sys_err("PARTY StateChange - Cannot find [%lu] in party [%lu]", p->dwPID, p->dwLeaderPID);
|
||||
SPDLOG_ERROR("PARTY StateChange - Cannot find [{}] in party [{}]", p->dwPID, p->dwLeaderPID);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ void CClientManager::QUERY_PARTY_STATE_CHANGE(CPeer* peer, TPacketPartyStateChan
|
||||
pit->second.bRole = 0;
|
||||
|
||||
ForwardPacket(HEADER_DG_PARTY_STATE_CHANGE, p, sizeof(TPacketPartyStateChange), peer->GetChannel(), peer);
|
||||
sys_log(0, "PARTY StateChange [%lu] at [%lu] from %d %d",p->dwPID, p->dwLeaderPID, p->bRole, p->bFlag);
|
||||
SPDLOG_DEBUG("PARTY StateChange [{}] at [{}] from {} {}",p->dwPID, p->dwLeaderPID, p->bRole, p->bFlag);
|
||||
}
|
||||
|
||||
void CClientManager::QUERY_PARTY_SET_MEMBER_LEVEL(CPeer* peer, TPacketPartySetMemberLevel* p)
|
||||
@ -116,7 +116,7 @@ void CClientManager::QUERY_PARTY_SET_MEMBER_LEVEL(CPeer* peer, TPacketPartySetMe
|
||||
|
||||
if (it == pm.end())
|
||||
{
|
||||
sys_err("PARTY SetMemberLevel - Non exists [%lu] cannot level change [%lu]",p->dwLeaderPID, p->dwPID);
|
||||
SPDLOG_ERROR("PARTY SetMemberLevel - Non exists [{}] cannot level change [{}]",p->dwLeaderPID, p->dwPID);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -124,12 +124,12 @@ void CClientManager::QUERY_PARTY_SET_MEMBER_LEVEL(CPeer* peer, TPacketPartySetMe
|
||||
|
||||
if (pit == it->second.end())
|
||||
{
|
||||
sys_err("PARTY SetMemberLevel - Cannot find [%lu] in party [%lu]", p->dwPID, p->dwLeaderPID);
|
||||
SPDLOG_ERROR("PARTY SetMemberLevel - Cannot find [{}] in party [{}]", p->dwPID, p->dwLeaderPID);
|
||||
return;
|
||||
}
|
||||
|
||||
pit->second.bLevel = p->bLevel;
|
||||
|
||||
ForwardPacket(HEADER_DG_PARTY_SET_MEMBER_LEVEL, p, sizeof(TPacketPartySetMemberLevel), peer->GetChannel());
|
||||
sys_log(0, "PARTY SetMemberLevel pid [%lu] level %d",p->dwPID, p->bLevel);
|
||||
SPDLOG_DEBUG("PARTY SetMemberLevel pid [{}] level {}",p->dwPID, p->bLevel);
|
||||
}
|
||||
|
@ -13,7 +13,6 @@ extern bool g_bHotBackup;
|
||||
|
||||
extern std::string g_stLocale;
|
||||
extern int g_test_server;
|
||||
extern int g_log;
|
||||
|
||||
//
|
||||
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
@ -236,7 +235,7 @@ void CClientManager::QUERY_PLAYER_LOAD(CPeer * peer, DWORD dwHandle, TPlayerLoad
|
||||
|
||||
if (!pkLD || pkLD->IsPlay())
|
||||
{
|
||||
sys_log(0, "PLAYER_LOAD_ERROR: LoginData %p IsPlay %d", pkLD, pkLD ? pkLD->IsPlay() : 0);
|
||||
SPDLOG_DEBUG("PLAYER_LOAD_ERROR: LoginData {} IsPlay {}", (void*) pkLD, pkLD ? pkLD->IsPlay() : 0);
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_LOAD_FAILED, dwHandle, 0);
|
||||
return;
|
||||
}
|
||||
@ -265,7 +264,7 @@ void CClientManager::QUERY_PLAYER_LOAD(CPeer * peer, DWORD dwHandle, TPlayerLoad
|
||||
|
||||
TItemCacheSet * pSet = GetItemCacheSet(pTab->id);
|
||||
|
||||
sys_log(0, "[PLAYER_LOAD] ID %s pid %d gold %d ", pTab->name, pTab->id, pTab->gold);
|
||||
SPDLOG_DEBUG("[PLAYER_LOAD] ID {} pid {} gold {} ", pTab->name, pTab->id, pTab->gold);
|
||||
|
||||
//--------------------------------------------
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> & AFFECT & QUEST <20>ε<EFBFBD> :
|
||||
@ -293,8 +292,7 @@ void CClientManager::QUERY_PLAYER_LOAD(CPeer * peer, DWORD dwHandle, TPlayerLoad
|
||||
memcpy(&s_items[dwCount++], p, sizeof(TPlayerItem));
|
||||
}
|
||||
|
||||
if (g_test_server)
|
||||
sys_log(0, "ITEM_CACHE: HIT! %s count: %u", pTab->name, dwCount);
|
||||
SPDLOG_TRACE("ITEM_CACHE: HIT! {} count: {}", pTab->name, dwCount);
|
||||
|
||||
peer->EncodeHeader(HEADER_DG_ITEM_LOAD, dwHandle, sizeof(DWORD) + sizeof(TPlayerItem) * dwCount);
|
||||
peer->EncodeDWORD(dwCount);
|
||||
@ -354,7 +352,7 @@ void CClientManager::QUERY_PLAYER_LOAD(CPeer * peer, DWORD dwHandle, TPlayerLoad
|
||||
//----------------------------------
|
||||
else
|
||||
{
|
||||
sys_log(0, "[PLAYER_LOAD] Load from PlayerDB pid[%d]", packet->player_id);
|
||||
SPDLOG_DEBUG("[PLAYER_LOAD] Load from PlayerDB pid[{}]", packet->player_id);
|
||||
|
||||
char queryStr[QUERY_MAX_LEN];
|
||||
|
||||
@ -554,26 +552,26 @@ void CClientManager::RESULT_COMPOSITE_PLAYER(CPeer * peer, SQLMsg * pMsg, DWORD
|
||||
MYSQL_RES * pSQLResult = pMsg->Get()->pSQLResult;
|
||||
if (!pSQLResult)
|
||||
{
|
||||
sys_err("null MYSQL_RES QID %u", dwQID);
|
||||
SPDLOG_ERROR("null MYSQL_RES QID {}", dwQID);
|
||||
return;
|
||||
}
|
||||
|
||||
switch (dwQID)
|
||||
{
|
||||
case QID_PLAYER:
|
||||
sys_log(0, "QID_PLAYER %u %u", info->dwHandle, info->player_id);
|
||||
SPDLOG_DEBUG("QID_PLAYER {} {}", info->dwHandle, info->player_id);
|
||||
RESULT_PLAYER_LOAD(peer, pSQLResult, info.get());
|
||||
|
||||
break;
|
||||
|
||||
case QID_ITEM:
|
||||
sys_log(0, "QID_ITEM %u", info->dwHandle);
|
||||
SPDLOG_DEBUG("QID_ITEM {}", info->dwHandle);
|
||||
RESULT_ITEM_LOAD(peer, pSQLResult, info->dwHandle, info->player_id);
|
||||
break;
|
||||
|
||||
case QID_QUEST:
|
||||
{
|
||||
sys_log(0, "QID_QUEST %u", info->dwHandle);
|
||||
SPDLOG_DEBUG("QID_QUEST {}", info->dwHandle);
|
||||
RESULT_QUEST_LOAD(peer, pSQLResult, info->dwHandle, info->player_id);
|
||||
//aid<69><64><EFBFBD><EFBFBD>
|
||||
ClientHandleInfo* temp1 = info.get();
|
||||
@ -586,42 +584,42 @@ void CClientManager::RESULT_COMPOSITE_PLAYER(CPeer * peer, SQLMsg * pMsg, DWORD
|
||||
break;
|
||||
if( pLoginData1 == NULL )
|
||||
break;
|
||||
sys_log(0,"info of pLoginData1 before call ItemAwardfunction %d",pLoginData1);
|
||||
SPDLOG_DEBUG("info of pLoginData1 before call ItemAwardfunction {}", (void*) pLoginData1);
|
||||
ItemAward(peer,pLoginData1->GetAccountRef().login);
|
||||
}
|
||||
break;
|
||||
|
||||
case QID_AFFECT:
|
||||
sys_log(0, "QID_AFFECT %u", info->dwHandle);
|
||||
SPDLOG_DEBUG("QID_AFFECT {}", info->dwHandle);
|
||||
RESULT_AFFECT_LOAD(peer, pSQLResult, info->dwHandle);
|
||||
break;
|
||||
/*
|
||||
case QID_PLAYER_ITEM_QUEST_AFFECT:
|
||||
sys_log(0, "QID_PLAYER_ITEM_QUEST_AFFECT %u", info->dwHandle);
|
||||
SPDLOG_DEBUG("QID_PLAYER_ITEM_QUEST_AFFECT {}", info->dwHandle);
|
||||
RESULT_PLAYER_LOAD(peer, pSQLResult, info->dwHandle);
|
||||
|
||||
if (!pMsg->Next())
|
||||
{
|
||||
sys_err("RESULT_COMPOSITE_PLAYER: QID_PLAYER_ITEM_QUEST_AFFECT: ITEM FAILED");
|
||||
SPDLOG_ERROR("RESULT_COMPOSITE_PLAYER: QID_PLAYER_ITEM_QUEST_AFFECT: ITEM FAILED");
|
||||
return;
|
||||
}
|
||||
|
||||
case QID_ITEM_QUEST_AFFECT:
|
||||
sys_log(0, "QID_ITEM_QUEST_AFFECT %u", info->dwHandle);
|
||||
SPDLOG_DEBUG("QID_ITEM_QUEST_AFFECT {}", info->dwHandle);
|
||||
RESULT_ITEM_LOAD(peer, pSQLResult, info->dwHandle, info->player_id);
|
||||
|
||||
if (!pMsg->Next())
|
||||
{
|
||||
sys_err("RESULT_COMPOSITE_PLAYER: QID_PLAYER_ITEM_QUEST_AFFECT: QUEST FAILED");
|
||||
SPDLOG_ERROR("RESULT_COMPOSITE_PLAYER: QID_PLAYER_ITEM_QUEST_AFFECT: QUEST FAILED");
|
||||
return;
|
||||
}
|
||||
|
||||
case QID_QUEST_AFFECT:
|
||||
sys_log(0, "QID_QUEST_AFFECT %u", info->dwHandle);
|
||||
SPDLOG_DEBUG("QID_QUEST_AFFECT {}", info->dwHandle);
|
||||
RESULT_QUEST_LOAD(peer, pSQLResult, info->dwHandle);
|
||||
|
||||
if (!pMsg->Next())
|
||||
sys_err("RESULT_COMPOSITE_PLAYER: QID_PLAYER_ITEM_QUEST_AFFECT: AFFECT FAILED");
|
||||
SPDLOG_ERROR("RESULT_COMPOSITE_PLAYER: QID_PLAYER_ITEM_QUEST_AFFECT: AFFECT FAILED");
|
||||
else
|
||||
RESULT_AFFECT_LOAD(peer, pSQLResult, info->dwHandle);
|
||||
|
||||
@ -645,7 +643,7 @@ void CClientManager::RESULT_PLAYER_LOAD(CPeer * peer, MYSQL_RES * pRes, ClientHa
|
||||
|
||||
if (!pkLD || pkLD->IsPlay())
|
||||
{
|
||||
sys_log(0, "PLAYER_LOAD_ERROR: LoginData %p IsPlay %d", pkLD, pkLD ? pkLD->IsPlay() : 0);
|
||||
SPDLOG_DEBUG("PLAYER_LOAD_ERROR: LoginData {} IsPlay {}", (void*) pkLD, pkLD ? pkLD->IsPlay() : 0);
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_LOAD_FAILED, pkInfo->dwHandle, 0);
|
||||
return;
|
||||
}
|
||||
@ -683,7 +681,7 @@ void CClientManager::RESULT_ITEM_LOAD(CPeer * peer, MYSQL_RES * pRes, DWORD dwHa
|
||||
CreateItemCacheSet(dwPID);
|
||||
|
||||
// ITEM_LOAD_LOG_ATTACH_PID
|
||||
sys_log(0, "ITEM_LOAD: count %u pid %u", dwCount, dwPID);
|
||||
SPDLOG_DEBUG("ITEM_LOAD: count {} pid {}", dwCount, dwPID);
|
||||
// END_OF_ITEM_LOAD_LOG_ATTACH_PID
|
||||
|
||||
if (dwCount)
|
||||
@ -725,7 +723,7 @@ void CClientManager::RESULT_AFFECT_LOAD(CPeer * peer, MYSQL_RES * pRes, DWORD dw
|
||||
str_to_number(r.lSPCost, row[6]);
|
||||
}
|
||||
|
||||
sys_log(0, "AFFECT_LOAD: count %d PID %u", s_elements.size(), dwPID);
|
||||
SPDLOG_DEBUG("AFFECT_LOAD: count {} PID {}", s_elements.size(), dwPID);
|
||||
|
||||
DWORD dwCount = s_elements.size();
|
||||
|
||||
@ -764,7 +762,7 @@ void CClientManager::RESULT_QUEST_LOAD(CPeer * peer, MYSQL_RES * pRes, DWORD dwH
|
||||
str_to_number(r.lValue, row[3]);
|
||||
}
|
||||
|
||||
sys_log(0, "QUEST_LOAD: count %d PID %u", s_table.size(), s_table[0].dwPID);
|
||||
SPDLOG_DEBUG("QUEST_LOAD: count {} PID {}", s_table.size(), s_table[0].dwPID);
|
||||
|
||||
DWORD dwCount = s_table.size();
|
||||
|
||||
@ -778,8 +776,7 @@ void CClientManager::RESULT_QUEST_LOAD(CPeer * peer, MYSQL_RES * pRes, DWORD dwH
|
||||
*/
|
||||
void CClientManager::QUERY_PLAYER_SAVE(CPeer * peer, DWORD dwHandle, TPlayerTable * pkTab)
|
||||
{
|
||||
if (g_test_server)
|
||||
sys_log(0, "PLAYER_SAVE: %s", pkTab->name);
|
||||
SPDLOG_TRACE("PLAYER_SAVE: {}", pkTab->name);
|
||||
|
||||
PutPlayerCache(pkTab);
|
||||
}
|
||||
@ -829,7 +826,7 @@ void CClientManager::__QUERY_PLAYER_CREATE(CPeer *peer, DWORD dwHandle, TPlayerC
|
||||
if (row[0] && dwPID > 0)
|
||||
{
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0);
|
||||
sys_log(0, "ALREADY EXIST AccountChrIdx %d ID %d", packet->account_index, dwPID);
|
||||
SPDLOG_DEBUG("ALREADY EXIST AccountChrIdx {} ID {}", packet->account_index, dwPID);
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -861,7 +858,7 @@ void CClientManager::__QUERY_PLAYER_CREATE(CPeer *peer, DWORD dwHandle, TPlayerC
|
||||
|
||||
if (*row[0] != '0')
|
||||
{
|
||||
sys_log(0, "ALREADY EXIST name %s, row[0] %s query %s", packet->player_table.name, row[0], queryStr);
|
||||
SPDLOG_DEBUG("ALREADY EXIST name {}, row[0] {} query {}", packet->player_table.name, row[0], queryStr);
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0);
|
||||
return;
|
||||
}
|
||||
@ -886,7 +883,7 @@ void CClientManager::__QUERY_PLAYER_CREATE(CPeer *peer, DWORD dwHandle, TPlayerC
|
||||
packet->player_table.job, packet->player_table.voice, packet->player_table.dir, packet->player_table.x, packet->player_table.y, packet->player_table.z,
|
||||
packet->player_table.hp, packet->player_table.sp, packet->player_table.sRandomHP, packet->player_table.sRandomSP, packet->player_table.stat_point, packet->player_table.stamina, packet->player_table.part_base, packet->player_table.part_base, packet->player_table.gold);
|
||||
|
||||
sys_log(0, "PlayerCreate accountid %d name %s level %d gold %d, st %d ht %d job %d",
|
||||
SPDLOG_DEBUG("PlayerCreate accountid {} name {} level {} gold {}, st {} ht {} job {}",
|
||||
packet->account_id,
|
||||
packet->player_table.name,
|
||||
packet->player_table.level,
|
||||
@ -899,20 +896,18 @@ void CClientManager::__QUERY_PLAYER_CREATE(CPeer *peer, DWORD dwHandle, TPlayerC
|
||||
|
||||
CDBManager::instance().EscapeString(text, packet->player_table.skills, sizeof(packet->player_table.skills));
|
||||
queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s', ", text);
|
||||
if (g_test_server)
|
||||
sys_log(0, "Create_Player queryLen[%d] TEXT[%s]", queryLen, text);
|
||||
SPDLOG_TRACE("Create_Player queryLen[{}] TEXT[{}]", queryLen, text);
|
||||
|
||||
CDBManager::instance().EscapeString(text, packet->player_table.quickslot, sizeof(packet->player_table.quickslot));
|
||||
queryLen += snprintf(queryStr + queryLen, sizeof(queryStr) - queryLen, "'%s')", text);
|
||||
|
||||
std::unique_ptr<SQLMsg> pMsg2(CDBManager::instance().DirectQuery(queryStr));
|
||||
if (g_test_server)
|
||||
sys_log(0, "Create_Player queryLen[%d] TEXT[%s]", queryLen, text);
|
||||
SPDLOG_TRACE("Create_Player queryLen[{}] TEXT[{}]", queryLen, text);
|
||||
|
||||
if (pMsg2->Get()->uiAffectedRows <= 0)
|
||||
{
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_ALREADY, dwHandle, 0);
|
||||
sys_log(0, "ALREADY EXIST3 query: %s AffectedRows %lu", queryStr, pMsg2->Get()->uiAffectedRows);
|
||||
SPDLOG_DEBUG("ALREADY EXIST3 query: {} AffectedRows {}", queryStr, pMsg2->Get()->uiAffectedRows);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -924,7 +919,7 @@ void CClientManager::__QUERY_PLAYER_CREATE(CPeer *peer, DWORD dwHandle, TPlayerC
|
||||
|
||||
if (pMsg3->Get()->uiAffectedRows <= 0)
|
||||
{
|
||||
sys_err("QUERY_ERROR: %s", queryStr);
|
||||
SPDLOG_ERROR("QUERY_ERROR: {}", queryStr);
|
||||
|
||||
snprintf(queryStr, sizeof(queryStr), "DELETE FROM player%s WHERE id=%d", GetTablePostfix(), player_id);
|
||||
CDBManager::instance().DirectQuery(queryStr);
|
||||
@ -954,7 +949,7 @@ void CClientManager::__QUERY_PLAYER_CREATE(CPeer *peer, DWORD dwHandle, TPlayerC
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_CREATE_SUCCESS, dwHandle, sizeof(TPacketDGCreateSuccess));
|
||||
peer->Encode(&pack, sizeof(TPacketDGCreateSuccess));
|
||||
|
||||
sys_log(0, "7 name %s job %d", pack.player.szName, pack.player.byJob);
|
||||
SPDLOG_DEBUG("7 name {} job {}", pack.player.szName, pack.player.byJob);
|
||||
|
||||
s_createTimeByAccountID[packet->account_id] = time(0);
|
||||
}
|
||||
@ -985,7 +980,7 @@ void CClientManager::__QUERY_PLAYER_DELETE(CPeer* peer, DWORD dwHandle, TPlayerD
|
||||
{
|
||||
if (strlen(r.social_id) < 7 || strncmp(packet->private_code, r.social_id + strlen(r.social_id) - 7, 7))
|
||||
{
|
||||
sys_log(0, "PLAYER_DELETE FAILED len(%d)", strlen(r.social_id));
|
||||
SPDLOG_DEBUG("PLAYER_DELETE FAILED len({})", strlen(r.social_id));
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, dwHandle, 1);
|
||||
peer->EncodeBYTE(packet->account_index);
|
||||
return;
|
||||
@ -998,7 +993,7 @@ void CClientManager::__QUERY_PLAYER_DELETE(CPeer* peer, DWORD dwHandle, TPlayerD
|
||||
|
||||
if (pTab->level >= m_iPlayerDeleteLevelLimit)
|
||||
{
|
||||
sys_log(0, "PLAYER_DELETE FAILED LEVEL %u >= DELETE LIMIT %d", pTab->level, m_iPlayerDeleteLevelLimit);
|
||||
SPDLOG_DEBUG("PLAYER_DELETE FAILED LEVEL {} >= DELETE LIMIT {}", pTab->level, m_iPlayerDeleteLevelLimit);
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, dwHandle, 1);
|
||||
peer->EncodeBYTE(packet->account_index);
|
||||
return;
|
||||
@ -1006,7 +1001,7 @@ void CClientManager::__QUERY_PLAYER_DELETE(CPeer* peer, DWORD dwHandle, TPlayerD
|
||||
|
||||
if (pTab->level < m_iPlayerDeleteLevelLimitLower)
|
||||
{
|
||||
sys_log(0, "PLAYER_DELETE FAILED LEVEL %u < DELETE LIMIT %d", pTab->level, m_iPlayerDeleteLevelLimitLower);
|
||||
SPDLOG_DEBUG("PLAYER_DELETE FAILED LEVEL {} < DELETE LIMIT {}", pTab->level, m_iPlayerDeleteLevelLimitLower);
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, dwHandle, 1);
|
||||
peer->EncodeBYTE(packet->account_index);
|
||||
return;
|
||||
@ -1022,7 +1017,7 @@ void CClientManager::__QUERY_PLAYER_DELETE(CPeer* peer, DWORD dwHandle, TPlayerD
|
||||
ClientHandleInfo * pi = new ClientHandleInfo(dwHandle, packet->player_id);
|
||||
pi->account_index = packet->account_index;
|
||||
|
||||
sys_log(0, "PLAYER_DELETE TRY: %s %d pid%d", packet->login, packet->player_id, packet->account_index + 1);
|
||||
SPDLOG_DEBUG("PLAYER_DELETE TRY: {} {} pid{}", packet->login, packet->player_id, packet->account_index + 1);
|
||||
CDBManager::instance().ReturnQuery(szQuery, QID_PLAYER_DELETE, peer->GetHandle(), pi);
|
||||
}
|
||||
|
||||
@ -1049,7 +1044,7 @@ void CClientManager::__RESULT_PLAYER_DELETE(CPeer *peer, SQLMsg* msg)
|
||||
|
||||
if (deletedLevelLimit >= m_iPlayerDeleteLevelLimit && !IsChinaEventServer())
|
||||
{
|
||||
sys_log(0, "PLAYER_DELETE FAILED LEVEL %u >= DELETE LIMIT %d", deletedLevelLimit, m_iPlayerDeleteLevelLimit);
|
||||
SPDLOG_DEBUG("PLAYER_DELETE FAILED LEVEL {} >= DELETE LIMIT {}", deletedLevelLimit, m_iPlayerDeleteLevelLimit);
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, pi->dwHandle, 1);
|
||||
peer->EncodeBYTE(pi->account_index);
|
||||
return;
|
||||
@ -1057,7 +1052,7 @@ void CClientManager::__RESULT_PLAYER_DELETE(CPeer *peer, SQLMsg* msg)
|
||||
|
||||
if (deletedLevelLimit < m_iPlayerDeleteLevelLimitLower)
|
||||
{
|
||||
sys_log(0, "PLAYER_DELETE FAILED LEVEL %u < DELETE LIMIT %d", deletedLevelLimit, m_iPlayerDeleteLevelLimitLower);
|
||||
SPDLOG_DEBUG("PLAYER_DELETE FAILED LEVEL {} < DELETE LIMIT {}", deletedLevelLimit, m_iPlayerDeleteLevelLimitLower);
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, pi->dwHandle, 1);
|
||||
peer->EncodeBYTE(pi->account_index);
|
||||
return;
|
||||
@ -1071,7 +1066,7 @@ void CClientManager::__RESULT_PLAYER_DELETE(CPeer *peer, SQLMsg* msg)
|
||||
|
||||
if (pIns->Get()->uiAffectedRows == 0 || pIns->Get()->uiAffectedRows == (uint32_t)-1)
|
||||
{
|
||||
sys_log(0, "PLAYER_DELETE FAILED %u CANNOT INSERT TO player%s_deleted", dwPID, GetTablePostfix());
|
||||
SPDLOG_DEBUG("PLAYER_DELETE FAILED {} CANNOT INSERT TO player{}_deleted", dwPID, GetTablePostfix());
|
||||
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, pi->dwHandle, 1);
|
||||
peer->EncodeBYTE(pi->account_index);
|
||||
@ -1079,7 +1074,7 @@ void CClientManager::__RESULT_PLAYER_DELETE(CPeer *peer, SQLMsg* msg)
|
||||
}
|
||||
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
sys_log(0, "PLAYER_DELETE SUCCESS %u", dwPID);
|
||||
SPDLOG_DEBUG("PLAYER_DELETE SUCCESS {}", dwPID);
|
||||
|
||||
char account_index_string[16];
|
||||
|
||||
@ -1123,7 +1118,7 @@ void CClientManager::__RESULT_PLAYER_DELETE(CPeer *peer, SQLMsg* msg)
|
||||
|
||||
if (pMsg->Get()->uiAffectedRows == 0 || pMsg->Get()->uiAffectedRows == (uint32_t)-1)
|
||||
{
|
||||
sys_log(0, "PLAYER_DELETE FAIL WHEN UPDATE account table");
|
||||
SPDLOG_DEBUG("PLAYER_DELETE FAIL WHEN UPDATE account table");
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, pi->dwHandle, 1);
|
||||
peer->EncodeBYTE(pi->account_index);
|
||||
return;
|
||||
@ -1158,7 +1153,7 @@ void CClientManager::__RESULT_PLAYER_DELETE(CPeer *peer, SQLMsg* msg)
|
||||
else
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
sys_log(0, "PLAYER_DELETE FAIL NO ROW");
|
||||
SPDLOG_DEBUG("PLAYER_DELETE FAIL NO ROW");
|
||||
peer->EncodeHeader(HEADER_DG_PLAYER_DELETE_FAILED, pi->dwHandle, 1);
|
||||
peer->EncodeBYTE(pi->account_index);
|
||||
}
|
||||
@ -1217,7 +1212,7 @@ void CClientManager::QUERY_HIGHSCORE_REGISTER(CPeer* peer, TPacketGDHighscore *
|
||||
char szQuery[128];
|
||||
snprintf(szQuery, sizeof(szQuery), "SELECT value FROM highscore%s WHERE board='%s' AND pid = %u", GetTablePostfix(), data->szBoard, data->dwPID);
|
||||
|
||||
sys_log(0, "HEADER_GD_HIGHSCORE_REGISTER: PID %u", data->dwPID);
|
||||
SPDLOG_DEBUG("HEADER_GD_HIGHSCORE_REGISTER: PID {}", data->dwPID);
|
||||
|
||||
ClientHandleInfo * pi = new ClientHandleInfo(0);
|
||||
strlcpy(pi->login, data->szBoard, sizeof(pi->login));
|
||||
@ -1289,8 +1284,7 @@ void CClientManager::InsertLogoutPlayer(DWORD pid)
|
||||
if (it != m_map_logout.end())
|
||||
{
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD>Ұ<EFBFBD><D2B0><EFBFBD> <20>ð<EFBFBD><C3B0><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if (g_log)
|
||||
sys_log(0, "LOGOUT: Update player time pid(%d)", pid);
|
||||
SPDLOG_TRACE("LOGOUT: Update player time pid({})", pid);
|
||||
|
||||
it->second->time = time(0);
|
||||
return;
|
||||
@ -1301,8 +1295,7 @@ void CClientManager::InsertLogoutPlayer(DWORD pid)
|
||||
pLogout->time = time(0);
|
||||
m_map_logout.insert(std::make_pair(pid, pLogout));
|
||||
|
||||
if (g_log)
|
||||
sys_log(0, "LOGOUT: Insert player pid(%d)", pid);
|
||||
SPDLOG_TRACE("LOGOUT: Insert player pid({})", pid);
|
||||
}
|
||||
|
||||
void CClientManager::DeleteLogoutPlayer(DWORD pid)
|
||||
|
@ -171,7 +171,7 @@ bool CConfig::GetParam(const char*key, int index, DWORD *Param)
|
||||
|
||||
str_to_number(*Param, szParam[index]);
|
||||
|
||||
sys_log(0, "GetParam %d", *Param);
|
||||
SPDLOG_DEBUG("GetParam {}", *Param);
|
||||
return true;
|
||||
}
|
||||
const char * CConfig::Get(const char* key)
|
||||
|
@ -98,7 +98,7 @@ int CDBManager::Connect(int iSlot, const char * db_address, const int db_port, c
|
||||
if (iSlot < 0 || iSlot >= SQL_MAX_NUM)
|
||||
return false;
|
||||
|
||||
sys_log(0, "CREATING DIRECT_SQL");
|
||||
SPDLOG_INFO("CREATING DIRECT_SQL");
|
||||
m_directSQL[iSlot] = new CAsyncSQL2;
|
||||
if (!m_directSQL[iSlot]->Setup(db_address, user, pwd, db_name, g_stLocale.c_str(), true, db_port))
|
||||
{
|
||||
@ -107,7 +107,7 @@ int CDBManager::Connect(int iSlot, const char * db_address, const int db_port, c
|
||||
}
|
||||
|
||||
|
||||
sys_log(0, "CREATING MAIN_SQL");
|
||||
SPDLOG_INFO("CREATING MAIN_SQL");
|
||||
m_mainSQL[iSlot] = new CAsyncSQL2;
|
||||
if (!m_mainSQL[iSlot]->Setup(db_address, user, pwd, db_name, g_stLocale.c_str(), false, db_port))
|
||||
{
|
||||
@ -115,7 +115,7 @@ int CDBManager::Connect(int iSlot, const char * db_address, const int db_port, c
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log(0, "CREATING ASYNC_SQL");
|
||||
SPDLOG_INFO("CREATING ASYNC_SQL");
|
||||
m_asyncSQL[iSlot] = new CAsyncSQL2;
|
||||
if (!m_asyncSQL[iSlot]->Setup(db_address, user, pwd, db_name, g_stLocale.c_str(), false, db_port))
|
||||
{
|
||||
@ -137,7 +137,7 @@ extern int g_query_count[2];
|
||||
void CDBManager::ReturnQuery(const char * c_pszQuery, int iType, IDENT dwIdent, void * udata, int iSlot)
|
||||
{
|
||||
assert(iSlot < SQL_MAX_NUM);
|
||||
//sys_log(0, "ReturnQuery %s", c_pszQuery);
|
||||
//SPDLOG_DEBUG("ReturnQuery {}", c_pszQuery);
|
||||
CQueryInfo * p = new CQueryInfo;
|
||||
|
||||
p->iType = iType;
|
||||
@ -166,14 +166,14 @@ unsigned int CDBManager::EscapeString(void *to, const void *from, unsigned int l
|
||||
void CDBManager::SetLocale(const char * szLocale)
|
||||
{
|
||||
const std::string stLocale(szLocale);
|
||||
sys_log(0, "SetLocale start" );
|
||||
SPDLOG_DEBUG("SetLocale start");
|
||||
for (int n = 0; n < SQL_MAX_NUM; ++n)
|
||||
{
|
||||
m_mainSQL[n]->SetLocale(stLocale);
|
||||
m_directSQL[n]->SetLocale(stLocale);
|
||||
m_asyncSQL[n]->SetLocale(stLocale);
|
||||
}
|
||||
sys_log(0, "End setlocale %s", szLocale);
|
||||
SPDLOG_DEBUG("End setlocale {}", szLocale);
|
||||
}
|
||||
|
||||
void CDBManager::QueryLocaleSet()
|
||||
|
@ -145,8 +145,8 @@ void CGuildManager::ParseResult(SQLResult * pRes)
|
||||
str_to_number(r_info.gold, row[6]);
|
||||
str_to_number(r_info.level, row[7]);
|
||||
|
||||
sys_log(0,
|
||||
"GuildWar: %-24s ladder %-5d win %-3d draw %-3d loss %-3d",
|
||||
SPDLOG_DEBUG(
|
||||
"GuildWar: {:24} ladder {:<5} win {:<3} draw {:<3} loss {:<3}",
|
||||
r_info.szName,
|
||||
r_info.ladder_point,
|
||||
r_info.win,
|
||||
@ -170,17 +170,17 @@ void CGuildManager::Initialize()
|
||||
*str = '\0';
|
||||
|
||||
if (!polyPower.Analyze(str))
|
||||
sys_err("cannot set power poly: %s", str);
|
||||
SPDLOG_ERROR("cannot set power poly: {}", str);
|
||||
else
|
||||
sys_log(0, "POWER_POLY: %s", str);
|
||||
SPDLOG_DEBUG("POWER_POLY: {}", str);
|
||||
|
||||
if (!CConfig::instance().GetValue("POLY_HANDICAP", str, sizeof(str)))
|
||||
*str = '\0';
|
||||
|
||||
if (!polyHandicap.Analyze(str))
|
||||
sys_err("cannot set handicap poly: %s", str);
|
||||
SPDLOG_ERROR("cannot set handicap poly: {}", str);
|
||||
else
|
||||
sys_log(0, "HANDICAP_POLY: %s", str);
|
||||
SPDLOG_DEBUG("HANDICAP_POLY: {}", str);
|
||||
|
||||
QueryRanking();
|
||||
}
|
||||
@ -234,7 +234,7 @@ void CGuildManager::ResultRanking(MYSQL_RES * pRes)
|
||||
if (iLadderPoint != iLastLadderPoint)
|
||||
++iRank;
|
||||
|
||||
sys_log(0, "GUILD_RANK: %-24s %2d %d", row[1], iRank, iLadderPoint);
|
||||
SPDLOG_DEBUG("GUILD_RANK: {:24} {:2} {}", row[1], iRank, iLadderPoint);
|
||||
|
||||
map_kLadderPointRankingByGID.insert(std::make_pair(dwGID, iRank));
|
||||
}
|
||||
@ -250,7 +250,7 @@ void CGuildManager::Update()
|
||||
{
|
||||
// UNKNOWN_GUILD_MANAGE_UPDATE_LOG
|
||||
/*
|
||||
sys_log(0, "GuildManager::Update size %d now %d top %d, %s(%u) vs %s(%u)",
|
||||
SPDLOG_DEBUG("GuildManager::Update size {} now {} top {}, {}({}) vs {}({})",
|
||||
m_WarMap.size(),
|
||||
now,
|
||||
m_pqOnWar.top().first,
|
||||
@ -307,7 +307,7 @@ void CGuildManager::Update()
|
||||
p.dwGuildTo = ws.GID[1];
|
||||
|
||||
CClientManager::instance().ForwardPacket(HEADER_DG_GUILD_WAR, &p, sizeof(p));
|
||||
sys_log(0, "GuildWar: GUILD sending start of wait start war %d %d", ws.GID[0], ws.GID[1]);
|
||||
SPDLOG_DEBUG("GuildWar: GUILD sending start of wait start war {} {}", ws.GID[0], ws.GID[1]);
|
||||
}
|
||||
}
|
||||
|
||||
@ -402,7 +402,7 @@ bool CGuildManager::IsHalfWinLadderPoint(DWORD dwGuildWinner, DWORD dwGuildLoser
|
||||
|
||||
void CGuildManager::ProcessDraw(DWORD dwGuildID1, DWORD dwGuildID2)
|
||||
{
|
||||
sys_log(0, "GuildWar: \tThe war between %d and %d is ended in draw", dwGuildID1, dwGuildID2);
|
||||
SPDLOG_DEBUG("GuildWar: \tThe war between {} and {} is ended in draw", dwGuildID1, dwGuildID2);
|
||||
|
||||
GuildWarDraw(dwGuildID1);
|
||||
GuildWarDraw(dwGuildID2);
|
||||
@ -416,7 +416,7 @@ void CGuildManager::ProcessWinLose(DWORD dwGuildWinner, DWORD dwGuildLoser)
|
||||
{
|
||||
GuildWarWin(dwGuildWinner);
|
||||
GuildWarLose(dwGuildLoser);
|
||||
sys_log(0, "GuildWar: \tWinner : %d Loser : %d", dwGuildWinner, dwGuildLoser);
|
||||
SPDLOG_DEBUG("GuildWar: \tWinner : {} Loser : {}", dwGuildWinner, dwGuildLoser);
|
||||
|
||||
int iPoint = GetLadderPoint(dwGuildLoser);
|
||||
int gain = (int)(iPoint * 0.05);
|
||||
@ -425,7 +425,7 @@ void CGuildManager::ProcessWinLose(DWORD dwGuildWinner, DWORD dwGuildLoser)
|
||||
if (IsHalfWinLadderPoint(dwGuildWinner, dwGuildLoser))
|
||||
gain /= 2;
|
||||
|
||||
sys_log(0, "GuildWar: \tgain : %d loss : %d", gain, loss);
|
||||
SPDLOG_DEBUG("GuildWar: \tgain : {} loss : {}", gain, loss);
|
||||
|
||||
ChangeLadderPoint(dwGuildWinner, gain);
|
||||
ChangeLadderPoint(dwGuildLoser, -loss);
|
||||
@ -435,7 +435,7 @@ void CGuildManager::ProcessWinLose(DWORD dwGuildWinner, DWORD dwGuildLoser)
|
||||
|
||||
void CGuildManager::RemoveWar(DWORD GID1, DWORD GID2)
|
||||
{
|
||||
sys_log(0, "GuildWar: RemoveWar(%d, %d)", GID1, GID2);
|
||||
SPDLOG_DEBUG("GuildWar: RemoveWar({}, {})", GID1, GID2);
|
||||
|
||||
if (GID1 > GID2)
|
||||
std::swap(GID2, GID1);
|
||||
@ -469,13 +469,13 @@ void CGuildManager::WarEnd(DWORD GID1, DWORD GID2, bool bForceDraw)
|
||||
if (GID1 > GID2)
|
||||
std::swap(GID2, GID1);
|
||||
|
||||
sys_log(0, "GuildWar: WarEnd %d %d", GID1, GID2);
|
||||
SPDLOG_DEBUG("GuildWar: WarEnd {} {}", GID1, GID2);
|
||||
|
||||
itertype(m_WarMap[GID1]) itWarMap = m_WarMap[GID1].find(GID2);
|
||||
|
||||
if (itWarMap == m_WarMap[GID1].end())
|
||||
{
|
||||
sys_err("GuildWar: war not exist or already ended. [1]");
|
||||
SPDLOG_ERROR("GuildWar: war not exist or already ended. [1]");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -484,7 +484,7 @@ void CGuildManager::WarEnd(DWORD GID1, DWORD GID2, bool bForceDraw)
|
||||
|
||||
if (!pData || pData->bEnd)
|
||||
{
|
||||
sys_err("GuildWar: war not exist or already ended. [2]");
|
||||
SPDLOG_ERROR("GuildWar: war not exist or already ended. [2]");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -527,7 +527,7 @@ void CGuildManager::WarEnd(DWORD GID1, DWORD GID2, bool bForceDraw)
|
||||
//
|
||||
void CGuildManager::RecvWarOver(DWORD dwGuildWinner, DWORD dwGuildLoser, bool bDraw, int lWarPrice)
|
||||
{
|
||||
sys_log(0, "GuildWar: RecvWarOver : winner %u vs %u draw? %d war_price %d", dwGuildWinner, dwGuildLoser, bDraw ? 1 : 0, lWarPrice);
|
||||
SPDLOG_DEBUG("GuildWar: RecvWarOver : winner {} vs {} draw? {} war_price {}", dwGuildWinner, dwGuildLoser, bDraw ? 1 : 0, lWarPrice);
|
||||
|
||||
DWORD GID1 = dwGuildWinner;
|
||||
DWORD GID2 = dwGuildLoser;
|
||||
@ -570,13 +570,13 @@ void CGuildManager::RecvWarOver(DWORD dwGuildWinner, DWORD dwGuildLoser, bool bD
|
||||
|
||||
void CGuildManager::RecvWarEnd(DWORD GID1, DWORD GID2)
|
||||
{
|
||||
sys_log(0, "GuildWar: RecvWarEnded : %u vs %u", GID1, GID2);
|
||||
SPDLOG_DEBUG("GuildWar: RecvWarEnded : {} vs {}", GID1, GID2);
|
||||
WarEnd(GID1, GID2, true); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>Ѿ<EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
}
|
||||
|
||||
void CGuildManager::StartWar(BYTE bType, DWORD GID1, DWORD GID2, CGuildWarReserve * pkReserve)
|
||||
{
|
||||
sys_log(0, "GuildWar: StartWar(%d,%d,%d)", bType, GID1, GID2);
|
||||
SPDLOG_DEBUG("GuildWar: StartWar({},{},{})", bType, GID1, GID2);
|
||||
|
||||
if (GID1 > GID2)
|
||||
std::swap(GID1, GID2);
|
||||
@ -610,7 +610,7 @@ void CGuildManager::UpdateScore(DWORD dwGainGID, DWORD dwOppGID, int iScoreDelta
|
||||
|
||||
if (!p || p->bEnd)
|
||||
{
|
||||
sys_err("GuildWar: war not exist or already ended.");
|
||||
SPDLOG_ERROR("GuildWar: war not exist or already ended.");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -634,7 +634,7 @@ void CGuildManager::UpdateScore(DWORD dwGainGID, DWORD dwOppGID, int iScoreDelta
|
||||
iNewBetScore = p->iBetScore[1];
|
||||
}
|
||||
|
||||
sys_log(0, "GuildWar: SendGuildWarScore guild %u wartype %u score_delta %d betscore_delta %d result %u, %u",
|
||||
SPDLOG_DEBUG("GuildWar: SendGuildWarScore guild {} wartype {} score_delta {} betscore_delta {} result {}, {}",
|
||||
dwGainGID, p->bType, iScoreDelta, iBetScoreDelta, iNewScore, iNewBetScore);
|
||||
|
||||
CClientManager::instance().for_each_peer(FSendGuildWarScore(dwGainGID, dwOppGID, iNewScore, iNewBetScore));
|
||||
@ -648,7 +648,7 @@ void CGuildManager::AddDeclare(BYTE bType, DWORD guild_from, DWORD guild_to)
|
||||
if (m_DeclareMap.find(di) == m_DeclareMap.end())
|
||||
m_DeclareMap.insert(di);
|
||||
|
||||
sys_log(0, "GuildWar: AddDeclare(Type:%d,from:%d,to:%d)", bType, guild_from, guild_to);
|
||||
SPDLOG_DEBUG("GuildWar: AddDeclare(Type:{},from:{},to:{})", bType, guild_from, guild_to);
|
||||
}
|
||||
|
||||
void CGuildManager::RemoveDeclare(DWORD guild_from, DWORD guild_to)
|
||||
@ -663,7 +663,7 @@ void CGuildManager::RemoveDeclare(DWORD guild_from, DWORD guild_to)
|
||||
if (it != m_DeclareMap.end())
|
||||
m_DeclareMap.erase(it);
|
||||
|
||||
sys_log(0, "GuildWar: RemoveDeclare(from:%d,to:%d)", guild_from, guild_to);
|
||||
SPDLOG_DEBUG("GuildWar: RemoveDeclare(from:{},to:{})", guild_from, guild_to);
|
||||
}
|
||||
|
||||
bool CGuildManager::TakeBetPrice(DWORD dwGuildTo, DWORD dwGuildFrom, int lWarPrice)
|
||||
@ -673,14 +673,14 @@ bool CGuildManager::TakeBetPrice(DWORD dwGuildTo, DWORD dwGuildFrom, int lWarPri
|
||||
|
||||
if (it_from == m_map_kGuild.end() || it_to == m_map_kGuild.end())
|
||||
{
|
||||
sys_log(0, "TakeBetPrice: guild not exist %u %u",
|
||||
SPDLOG_DEBUG("TakeBetPrice: guild not exist {} {}",
|
||||
dwGuildFrom, dwGuildTo);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (it_from->second.gold < lWarPrice || it_to->second.gold < lWarPrice)
|
||||
{
|
||||
sys_log(0, "TakeBetPrice: not enough gold %u %d to %u %d",
|
||||
SPDLOG_DEBUG("TakeBetPrice: not enough gold {} {} to {} {}",
|
||||
dwGuildFrom, it_from->second.gold, dwGuildTo, it_to->second.gold);
|
||||
return false;
|
||||
}
|
||||
@ -704,8 +704,8 @@ bool CGuildManager::WaitStart(TPacketGuildWar * p)
|
||||
TGuildWaitStartInfo info(p->bType, p->dwGuildFrom, p->dwGuildTo, p->lWarPrice, p->lInitialScore, NULL);
|
||||
m_pqWaitStart.push(std::make_pair(dwCurTime + GetGuildWarWaitStartDuration(), info));
|
||||
|
||||
sys_log(0,
|
||||
"GuildWar: WaitStart g1 %d g2 %d price %d start at %u",
|
||||
SPDLOG_DEBUG(
|
||||
"GuildWar: WaitStart g1 {} g2 {} price {} start at {}",
|
||||
p->dwGuildFrom,
|
||||
p->dwGuildTo,
|
||||
p->lWarPrice,
|
||||
@ -742,8 +742,8 @@ void CGuildManager::ChangeLadderPoint(DWORD GID, int change)
|
||||
snprintf(buf, sizeof(buf), "UPDATE guild%s SET ladder_point=%d WHERE id=%u", GetTablePostfix(), r.ladder_point, GID);
|
||||
CDBManager::instance().AsyncQuery(buf);
|
||||
|
||||
sys_log(0, "GuildManager::ChangeLadderPoint %u %d", GID, r.ladder_point);
|
||||
sys_log(0, "%s", buf);
|
||||
SPDLOG_DEBUG("GuildManager::ChangeLadderPoint {} {}", GID, r.ladder_point);
|
||||
SPDLOG_DEBUG("{}", buf);
|
||||
|
||||
// Packet <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
TPacketGuildLadder p;
|
||||
@ -760,14 +760,14 @@ void CGuildManager::ChangeLadderPoint(DWORD GID, int change)
|
||||
void CGuildManager::UseSkill(DWORD GID, DWORD dwSkillVnum, DWORD dwCooltime)
|
||||
{
|
||||
// GUILD_SKILL_COOLTIME_BUG_FIX
|
||||
sys_log(0, "UseSkill(gid=%d, skill=%d) CoolTime(%d:%d)", GID, dwSkillVnum, dwCooltime, CClientManager::instance().GetCurrentTime() + dwCooltime);
|
||||
SPDLOG_DEBUG("UseSkill(gid={}, skill={}) CoolTime({}:{})", GID, dwSkillVnum, dwCooltime, CClientManager::instance().GetCurrentTime() + dwCooltime);
|
||||
m_pqSkill.push(std::make_pair(CClientManager::instance().GetCurrentTime() + dwCooltime, TGuildSkillUsed(GID, dwSkillVnum)));
|
||||
// END_OF_GUILD_SKILL_COOLTIME_BUG_FIX
|
||||
}
|
||||
|
||||
void CGuildManager::MoneyChange(DWORD dwGuild, DWORD dwGold)
|
||||
{
|
||||
sys_log(0, "GuildManager::MoneyChange %d %d", dwGuild, dwGold);
|
||||
SPDLOG_DEBUG("GuildManager::MoneyChange {} {}", dwGuild, dwGold);
|
||||
|
||||
TPacketDGGuildMoneyChange p;
|
||||
p.dwGuild = dwGuild;
|
||||
@ -788,12 +788,12 @@ void CGuildManager::DepositMoney(DWORD dwGuild, INT iGold)
|
||||
|
||||
if (it == m_map_kGuild.end())
|
||||
{
|
||||
sys_err("No guild by id %u", dwGuild);
|
||||
SPDLOG_ERROR("No guild by id {}", dwGuild);
|
||||
return;
|
||||
}
|
||||
|
||||
it->second.gold += iGold;
|
||||
sys_log(0, "GUILD: %u Deposit %u Total %d", dwGuild, iGold, it->second.gold);
|
||||
SPDLOG_DEBUG("GUILD: {} Deposit {} Total {}", dwGuild, iGold, it->second.gold);
|
||||
|
||||
MoneyChange(dwGuild, it->second.gold);
|
||||
}
|
||||
@ -804,7 +804,7 @@ void CGuildManager::WithdrawMoney(CPeer* peer, DWORD dwGuild, INT iGold)
|
||||
|
||||
if (it == m_map_kGuild.end())
|
||||
{
|
||||
sys_err("No guild by id %u", dwGuild);
|
||||
SPDLOG_ERROR("No guild by id {}", dwGuild);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -812,7 +812,7 @@ void CGuildManager::WithdrawMoney(CPeer* peer, DWORD dwGuild, INT iGold)
|
||||
if (it->second.gold >= iGold)
|
||||
{
|
||||
it->second.gold -= iGold;
|
||||
sys_log(0, "GUILD: %u Withdraw %d Total %d", dwGuild, iGold, it->second.gold);
|
||||
SPDLOG_DEBUG("GUILD: {} Withdraw {} Total {}", dwGuild, iGold, it->second.gold);
|
||||
|
||||
TPacketDGGuildMoneyWithdraw p;
|
||||
p.dwGuild = dwGuild;
|
||||
@ -830,7 +830,7 @@ void CGuildManager::WithdrawMoneyReply(DWORD dwGuild, BYTE bGiveSuccess, INT iGo
|
||||
if (it == m_map_kGuild.end())
|
||||
return;
|
||||
|
||||
sys_log(0, "GuildManager::WithdrawMoneyReply : guild %u success %d gold %d", dwGuild, bGiveSuccess, iGold);
|
||||
SPDLOG_DEBUG("GuildManager::WithdrawMoneyReply : guild {} success {} gold {}", dwGuild, bGiveSuccess, iGold);
|
||||
|
||||
if (!bGiveSuccess)
|
||||
it->second.gold += iGold;
|
||||
@ -938,16 +938,16 @@ void CGuildManager::BootReserveWar()
|
||||
if (i == 0 || (int) t.dwTime - CClientManager::instance().GetCurrentTime() < 0)
|
||||
{
|
||||
if (i == 0)
|
||||
sys_log(0, "%s : DB was shutdowned while war is being.", buf);
|
||||
SPDLOG_DEBUG("{} : DB was shutdowned while war is being.", buf);
|
||||
else
|
||||
sys_log(0, "%s : left time lower than 5 minutes, will be canceled", buf);
|
||||
SPDLOG_DEBUG("{} : left time lower than 5 minutes, will be canceled", buf);
|
||||
|
||||
pkReserve->Draw();
|
||||
delete pkReserve;
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_log(0, "%s : OK", buf);
|
||||
SPDLOG_DEBUG("{} : OK", buf);
|
||||
m_map_kWarReserve.insert(std::make_pair(t.dwID, pkReserve));
|
||||
}
|
||||
}
|
||||
@ -1024,7 +1024,7 @@ bool CGuildManager::ReserveWar(TPacketGuildWar * p)
|
||||
polyPower.SetVar("mc", mc);
|
||||
|
||||
t.lPowerFrom = (int) polyPower.Eval();
|
||||
sys_log(0, "GuildWar: %u lvp %d rkp %d alv %d mc %d power %d", GID1, lvp, rkp, alv, mc, t.lPowerFrom);
|
||||
SPDLOG_DEBUG("GuildWar: {} lvp {} rkp {} alv {} mc {} power {}", GID1, lvp, rkp, alv, mc, t.lPowerFrom);
|
||||
|
||||
// <20>Ŀ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
TGuild & k2 = TouchGuild(GID2);
|
||||
@ -1040,7 +1040,7 @@ bool CGuildManager::ReserveWar(TPacketGuildWar * p)
|
||||
polyPower.SetVar("mc", mc);
|
||||
|
||||
t.lPowerTo = (int) polyPower.Eval();
|
||||
sys_log(0, "GuildWar: %u lvp %d rkp %d alv %d mc %d power %d", GID2, lvp, rkp, alv, mc, t.lPowerTo);
|
||||
SPDLOG_DEBUG("GuildWar: {} lvp {} rkp {} alv {} mc {} power {}", GID2, lvp, rkp, alv, mc, t.lPowerTo);
|
||||
|
||||
// <20>ڵ<EFBFBD>ĸ <20><><EFBFBD><EFBFBD>
|
||||
if (t.lPowerTo > t.lPowerFrom)
|
||||
@ -1055,7 +1055,7 @@ bool CGuildManager::ReserveWar(TPacketGuildWar * p)
|
||||
}
|
||||
|
||||
t.lHandicap = (int) polyHandicap.Eval();
|
||||
sys_log(0, "GuildWar: handicap %d", t.lHandicap);
|
||||
SPDLOG_DEBUG("GuildWar: handicap {}", t.lHandicap);
|
||||
|
||||
// <20><><EFBFBD><EFBFBD>
|
||||
char szQuery[512];
|
||||
@ -1069,7 +1069,7 @@ bool CGuildManager::ReserveWar(TPacketGuildWar * p)
|
||||
|
||||
if (pmsg->Get()->uiAffectedRows == 0 || pmsg->Get()->uiInsertID == 0 || pmsg->Get()->uiAffectedRows == (uint32_t)-1)
|
||||
{
|
||||
sys_err("GuildWar: Cannot insert row");
|
||||
SPDLOG_ERROR("GuildWar: Cannot insert row");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1101,7 +1101,7 @@ void CGuildManager::ProcessReserveWar()
|
||||
TGuild & r_1 = m_map_kGuild[r.dwGuildFrom];
|
||||
TGuild & r_2 = m_map_kGuild[r.dwGuildTo];
|
||||
|
||||
sys_log(0, "GuildWar: started GID1 %u GID2 %u %d time %d min %d", r.dwGuildFrom, r.dwGuildTo, r.bStarted, dwCurTime - r.dwTime, iMin);
|
||||
SPDLOG_DEBUG("GuildWar: started GID1 {} GID2 {} {} time {} min {}", r.dwGuildFrom, r.dwGuildTo, r.bStarted, dwCurTime - r.dwTime, iMin);
|
||||
|
||||
if (iMin <= 0)
|
||||
{
|
||||
@ -1152,7 +1152,7 @@ bool CGuildManager::Bet(DWORD dwID, const char * c_pszLogin, DWORD dwGold, DWORD
|
||||
|
||||
if (it == m_map_kWarReserve.end())
|
||||
{
|
||||
sys_log(0, "WAR_RESERVE: Bet: cannot find reserve war by id %u", dwID);
|
||||
SPDLOG_DEBUG("WAR_RESERVE: Bet: cannot find reserve war by id {}", dwID);
|
||||
snprintf(szQuery, sizeof(szQuery), "INSERT INTO item_award (login, vnum, socket0, given_time) VALUES('%s', %d, %u, NOW())",
|
||||
c_pszLogin, ITEM_ELK_VNUM, dwGold);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
@ -1161,7 +1161,7 @@ bool CGuildManager::Bet(DWORD dwID, const char * c_pszLogin, DWORD dwGold, DWORD
|
||||
|
||||
if (!it->second->Bet(c_pszLogin, dwGold, dwGuild))
|
||||
{
|
||||
sys_log(0, "WAR_RESERVE: Bet: cannot bet id %u, login %s, gold %u, guild %u", dwID, c_pszLogin, dwGold, dwGuild);
|
||||
SPDLOG_DEBUG("WAR_RESERVE: Bet: cannot bet id {}, login {}, gold {}, guild {}", dwID, c_pszLogin, dwGold, dwGuild);
|
||||
snprintf(szQuery, sizeof(szQuery), "INSERT INTO item_award (login, vnum, socket0, given_time) VALUES('%s', %d, %u, NOW())",
|
||||
c_pszLogin, ITEM_ELK_VNUM, dwGold);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
@ -1271,19 +1271,19 @@ bool CGuildWarReserve::Bet(const char * pszLogin, DWORD dwGold, DWORD dwGuild)
|
||||
|
||||
if (m_data.dwGuildFrom != dwGuild && m_data.dwGuildTo != dwGuild)
|
||||
{
|
||||
sys_log(0, "GuildWarReserve::Bet: invalid guild id");
|
||||
SPDLOG_DEBUG("GuildWarReserve::Bet: invalid guild id");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_data.bStarted)
|
||||
{
|
||||
sys_log(0, "GuildWarReserve::Bet: war is already started");
|
||||
SPDLOG_DEBUG("GuildWarReserve::Bet: war is already started");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mapBet.find(pszLogin) != mapBet.end())
|
||||
{
|
||||
sys_log(0, "GuildWarReserve::Bet: failed. already bet");
|
||||
SPDLOG_DEBUG("GuildWarReserve::Bet: failed. already bet");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1295,7 +1295,7 @@ bool CGuildWarReserve::Bet(const char * pszLogin, DWORD dwGold, DWORD dwGuild)
|
||||
|
||||
if (pmsg->Get()->uiAffectedRows == 0 || pmsg->Get()->uiAffectedRows == (uint32_t)-1)
|
||||
{
|
||||
sys_log(0, "GuildWarReserve::Bet: failed. cannot insert row to guild_war_bet table");
|
||||
SPDLOG_DEBUG("GuildWarReserve::Bet: failed. cannot insert row to guild_war_bet table");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1311,7 +1311,7 @@ bool CGuildWarReserve::Bet(const char * pszLogin, DWORD dwGold, DWORD dwGuild)
|
||||
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
|
||||
sys_log(0, "GuildWarReserve::Bet: success. %s %u war_id %u bet %u : %u", pszLogin, dwGuild, m_data.dwID, m_data.dwBetFrom, m_data.dwBetTo);
|
||||
SPDLOG_DEBUG("GuildWarReserve::Bet: success. {} {} war_id {} bet {} : {}", pszLogin, dwGuild, m_data.dwID, m_data.dwBetFrom, m_data.dwBetTo);
|
||||
mapBet.insert(std::make_pair(pszLogin, std::make_pair(dwGuild, dwGold)));
|
||||
|
||||
TPacketGDGuildWarBet pckBet;
|
||||
@ -1338,7 +1338,7 @@ void CGuildWarReserve::Draw()
|
||||
if (mapBet.empty())
|
||||
return;
|
||||
|
||||
sys_log(0, "WAR_REWARD: Draw. war_id %u", m_data.dwID);
|
||||
SPDLOG_DEBUG("WAR_REWARD: Draw. war_id {}", m_data.dwID);
|
||||
|
||||
itertype(mapBet) it = mapBet.begin();
|
||||
|
||||
@ -1368,7 +1368,7 @@ void CGuildWarReserve::Draw()
|
||||
|
||||
if (iRow > 0)
|
||||
{
|
||||
sys_log(0, "WAR_REWARD: QUERY: %s", szQuery);
|
||||
SPDLOG_DEBUG("WAR_REWARD: QUERY: {}", szQuery);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
}
|
||||
|
||||
@ -1381,18 +1381,18 @@ void CGuildWarReserve::End(int iScoreFrom, int iScoreTo)
|
||||
{
|
||||
DWORD dwWinner;
|
||||
|
||||
sys_log(0, "WAR_REWARD: End: From %u %d To %u %d", m_data.dwGuildFrom, iScoreFrom, m_data.dwGuildTo, iScoreTo);
|
||||
SPDLOG_DEBUG("WAR_REWARD: End: From {} {} To {} {}", m_data.dwGuildFrom, iScoreFrom, m_data.dwGuildTo, iScoreTo);
|
||||
|
||||
if (m_data.lPowerFrom > m_data.lPowerTo)
|
||||
{
|
||||
if (m_data.lHandicap > iScoreFrom - iScoreTo)
|
||||
{
|
||||
sys_log(0, "WAR_REWARD: End: failed to overcome handicap, From is strong but To won");
|
||||
SPDLOG_DEBUG("WAR_REWARD: End: failed to overcome handicap, From is strong but To won");
|
||||
dwWinner = m_data.dwGuildTo;
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_log(0, "WAR_REWARD: End: success to overcome handicap, From win!");
|
||||
SPDLOG_DEBUG("WAR_REWARD: End: success to overcome handicap, From win!");
|
||||
dwWinner = m_data.dwGuildFrom;
|
||||
}
|
||||
}
|
||||
@ -1400,12 +1400,12 @@ void CGuildWarReserve::End(int iScoreFrom, int iScoreTo)
|
||||
{
|
||||
if (m_data.lHandicap > iScoreTo - iScoreFrom)
|
||||
{
|
||||
sys_log(0, "WAR_REWARD: End: failed to overcome handicap, To is strong but From won");
|
||||
SPDLOG_DEBUG("WAR_REWARD: End: failed to overcome handicap, To is strong but From won");
|
||||
dwWinner = m_data.dwGuildFrom;
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_log(0, "WAR_REWARD: End: success to overcome handicap, To win!");
|
||||
SPDLOG_DEBUG("WAR_REWARD: End: success to overcome handicap, To win!");
|
||||
dwWinner = m_data.dwGuildTo;
|
||||
}
|
||||
}
|
||||
@ -1427,17 +1427,17 @@ void CGuildWarReserve::End(int iScoreFrom, int iScoreTo)
|
||||
dwWinnerBet = m_data.dwBetTo;
|
||||
else
|
||||
{
|
||||
sys_err("WAR_REWARD: fatal error, winner does not exist!");
|
||||
SPDLOG_ERROR("WAR_REWARD: fatal error, winner does not exist!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (dwWinnerBet == 0)
|
||||
{
|
||||
sys_err("WAR_REWARD: total bet money on winner is zero");
|
||||
SPDLOG_ERROR("WAR_REWARD: total bet money on winner is zero");
|
||||
return;
|
||||
}
|
||||
|
||||
sys_log(0, "WAR_REWARD: End: Total bet: %u, Winner bet: %u", dwTotalBet, dwWinnerBet);
|
||||
SPDLOG_DEBUG("WAR_REWARD: End: Total bet: {}, Winner bet: {}", dwTotalBet, dwWinnerBet);
|
||||
|
||||
itertype(mapBet) it = mapBet.begin();
|
||||
|
||||
@ -1459,7 +1459,7 @@ void CGuildWarReserve::End(int iScoreFrom, int iScoreTo)
|
||||
double ratio = (double) it->second.second / dwWinnerBet;
|
||||
|
||||
// 10% <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20>й<EFBFBD>
|
||||
sys_log(0, "WAR_REWARD: %s %u ratio %f", it->first.c_str(), it->second.second, ratio);
|
||||
SPDLOG_DEBUG("WAR_REWARD: {} {} ratio {}", it->first.c_str(), it->second.second, ratio);
|
||||
|
||||
DWORD dwGold = (DWORD) (dwTotalBet * ratio * 0.9);
|
||||
|
||||
@ -1480,7 +1480,7 @@ void CGuildWarReserve::End(int iScoreFrom, int iScoreTo)
|
||||
|
||||
if (iRow > 0)
|
||||
{
|
||||
sys_log(0, "WAR_REWARD: query: %s", szQuery);
|
||||
SPDLOG_DEBUG("WAR_REWARD: query: {}", szQuery);
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
}
|
||||
|
||||
|
@ -68,13 +68,13 @@ bool PlayerHB::Query(DWORD id)
|
||||
|
||||
if (pos < 0)
|
||||
{
|
||||
sys_err("cannot find %s ", szFind);
|
||||
// sys_err("cannot find %s in %s", szFind, m_stCreateTableQuery.c_str());
|
||||
SPDLOG_ERROR("cannot find {} ", szFind);
|
||||
// SPDLOG_ERROR("cannot find {} in {}", szFind, m_stCreateTableQuery.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
snprintf(szQuery, sizeof(szQuery), "CREATE TABLE IF NOT EXISTS %s%s", szTableName, m_stCreateTableQuery.c_str() + strlen(szFind));
|
||||
// sys_log(0, "%s", szQuery);
|
||||
// SPDLOG_DEBUG("{}", szQuery);
|
||||
std::unique_ptr<SQLMsg> pMsg(CDBManager::instance().DirectQuery(szQuery, SQL_HOTBACKUP));
|
||||
m_stTableName = szTableName;
|
||||
}
|
||||
|
@ -60,7 +60,7 @@ void ItemAwardManager::Load(SQLMsg * pMsg)
|
||||
strcpy(cmdStr,whyStr); //<2F><><EFBFBD>ɾ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ū<EFBFBD><C5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ūȭ <20>DZ<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
char command[20] = "";
|
||||
strcpy(command,CClientManager::instance().GetCommand(cmdStr).c_str()); // command <20><><EFBFBD><EFBFBD>
|
||||
//sys_err("%d, %s",pItemAward->dwID,command);
|
||||
//SPDLOG_ERROR("{}, {}",pItemAward->dwID,command);
|
||||
if( !(strcmp(command,"GIFT") )) // command <20><> GIFT<46≯<EFBFBD>
|
||||
{
|
||||
TPacketItemAwardInfromer giftData;
|
||||
@ -74,7 +74,7 @@ void ItemAwardManager::Load(SQLMsg * pMsg)
|
||||
m_map_award.insert(std::make_pair(dwID, kData));
|
||||
|
||||
printf("ITEM_AWARD load id %u bMall %d \n", kData->dwID, kData->bMall);
|
||||
sys_log(0, "ITEM_AWARD: load id %lu login %s vnum %lu count %u socket %lu", kData->dwID, kData->szLogin, kData->dwVnum, kData->dwCount, kData->dwSocket0);
|
||||
SPDLOG_DEBUG("ITEM_AWARD: load id {} login {} vnum {} count {} socket {}", kData->dwID, kData->szLogin, kData->dwVnum, kData->dwCount, kData->dwSocket0);
|
||||
std::set<TItemAward *> & kSet = m_map_kSetAwardByLogin[kData->szLogin];
|
||||
kSet.insert(kData);
|
||||
|
||||
@ -99,7 +99,7 @@ void ItemAwardManager::Taken(DWORD dwAwardID, DWORD dwItemID)
|
||||
|
||||
if (it == m_map_award.end())
|
||||
{
|
||||
sys_log(0, "ITEM_AWARD: Taken ID not exist %lu", dwAwardID);
|
||||
SPDLOG_DEBUG("ITEM_AWARD: Taken ID not exist {}", dwAwardID);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -79,7 +79,7 @@ TItemIDRangeTable CItemIDRangeManager::GetRange()
|
||||
}
|
||||
|
||||
for (int i = 0; i < 10; ++i)
|
||||
sys_err("ItemIDRange: NO MORE ITEM ID RANGE");
|
||||
SPDLOG_ERROR("ItemIDRange: NO MORE ITEM ID RANGE");
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -112,7 +112,7 @@ bool CItemIDRangeManager::BuildRange(DWORD dwMin, DWORD dwMax, TItemIDRangeTable
|
||||
|
||||
if ((dwMax < dwItemMaxID) || (dwMax - dwItemMaxID < cs_dwMinimumRemainCount))
|
||||
{
|
||||
sys_log(0, "ItemIDRange: Build %u ~ %u start: %u\tNOT USE remain count is below %u",
|
||||
SPDLOG_DEBUG("ItemIDRange: Build {} ~ {} start: {}\tNOT USE remain count is below {}",
|
||||
dwMin, dwMax, dwItemMaxID, cs_dwMinimumRemainCount);
|
||||
}
|
||||
else
|
||||
@ -136,12 +136,12 @@ bool CItemIDRangeManager::BuildRange(DWORD dwMin, DWORD dwMax, TItemIDRangeTable
|
||||
|
||||
if (count > 0)
|
||||
{
|
||||
sys_err("ItemIDRange: Build: %u ~ %u\thave a item", range.dwUsableItemIDMin, range.dwMax);
|
||||
SPDLOG_ERROR("ItemIDRange: Build: {} ~ {}\thave a item", range.dwUsableItemIDMin, range.dwMax);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_log(0, "ItemIDRange: Build: %u ~ %u start:%u", range.dwMin, range.dwMax, range.dwUsableItemIDMin);
|
||||
SPDLOG_TRACE("ItemIDRange: Build: {} ~ {} start:{}", range.dwMin, range.dwMax, range.dwUsableItemIDMin);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
@ -2,16 +2,18 @@
|
||||
#ifndef __INC_METIN_II_ITEM_ID_RANGE_MANAGER_H__
|
||||
#define __INC_METIN_II_ITEM_ID_RANGE_MANAGER_H__
|
||||
|
||||
namespace {
|
||||
static const uint32_t cs_dwMaxItemID = 4290000000UL;
|
||||
static const uint32_t cs_dwMinimumRange = 10000000UL;
|
||||
static const uint32_t cs_dwMinimumRemainCount = 10000UL;
|
||||
}
|
||||
|
||||
class CItemIDRangeManager : public singleton<CItemIDRangeManager>
|
||||
{
|
||||
private :
|
||||
const static DWORD cs_dwMaxItemID = 4290000000UL;
|
||||
const static DWORD cs_dwMinimumRange = 10000000UL;
|
||||
const static DWORD cs_dwMinimumRemainCount = 10000UL;
|
||||
|
||||
private:
|
||||
std::list<TItemIDRangeTable> m_listData;
|
||||
|
||||
public :
|
||||
public:
|
||||
CItemIDRangeManager();
|
||||
|
||||
void Build();
|
||||
|
@ -78,11 +78,11 @@ void CLoginData::SetPlay(bool bOn)
|
||||
{
|
||||
if (bOn)
|
||||
{
|
||||
sys_log(0, "SetPlay on %lu %s", GetKey(), m_data.login);
|
||||
SPDLOG_DEBUG("SetPlay on {} {}", GetKey(), m_data.login);
|
||||
SetLogonTime();
|
||||
}
|
||||
else
|
||||
sys_log(0, "SetPlay off %lu %s", GetKey(), m_data.login);
|
||||
SPDLOG_DEBUG("SetPlay off {} {}", GetKey(), m_data.login);
|
||||
|
||||
m_bPlay = bOn;
|
||||
m_lastPlayTime = CClientManager::instance().GetCurrentTime();
|
||||
|
@ -38,8 +38,6 @@ int g_iItemCacheFlushSeconds = 60*5;
|
||||
//g_iLogoutSeconds <20><>ġ<EFBFBD><C4A1> g_iPlayerCacheFlushSeconds <20><> g_iItemCacheFlushSeconds <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ѵ<EFBFBD>.
|
||||
int g_iLogoutSeconds = 60*10;
|
||||
|
||||
int g_log = 1;
|
||||
|
||||
|
||||
// MYSHOP_PRICE_LIST
|
||||
int g_iItemPriceListTableCacheFlushSeconds = 540;
|
||||
@ -52,9 +50,9 @@ extern const char * _malloc_options;
|
||||
void emergency_sig(int sig)
|
||||
{
|
||||
if (sig == SIGSEGV)
|
||||
sys_log(0, "SIGNAL: SIGSEGV");
|
||||
SPDLOG_DEBUG("SIGNAL: SIGSEGV");
|
||||
else if (sig == SIGUSR1)
|
||||
sys_log(0, "SIGNAL: SIGUSR1");
|
||||
SPDLOG_DEBUG("SIGNAL: SIGUSR1");
|
||||
|
||||
if (sig == SIGSEGV)
|
||||
abort();
|
||||
@ -62,7 +60,8 @@ void emergency_sig(int sig)
|
||||
|
||||
int main()
|
||||
{
|
||||
WriteVersion(std::cout);
|
||||
WriteVersion();
|
||||
log_init();
|
||||
|
||||
#ifdef __FreeBSD__
|
||||
_malloc_options = "A";
|
||||
@ -93,7 +92,7 @@ int main()
|
||||
#ifdef __AUCTION__
|
||||
AuctionManager::instance().Initialize();
|
||||
#endif
|
||||
sys_log(0, "Metin2DBCacheServer Start\n");
|
||||
SPDLOG_DEBUG("Metin2DBCacheServer Start");
|
||||
|
||||
CClientManager::instance().MainLoop();
|
||||
|
||||
@ -113,9 +112,11 @@ int main()
|
||||
break;
|
||||
|
||||
usleep(1000);
|
||||
sys_log(0, "WAITING_QUERY_COUNT %d", iCount);
|
||||
SPDLOG_DEBUG("WAITING_QUERY_COUNT {}", iCount);
|
||||
}
|
||||
|
||||
log_destroy();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -133,45 +134,31 @@ int Start()
|
||||
{
|
||||
if (!CConfig::instance().LoadFile("conf.txt"))
|
||||
{
|
||||
fprintf(stderr, "Loading conf.txt failed.\n");
|
||||
SPDLOG_ERROR("Loading conf.txt failed.");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!CConfig::instance().GetValue("TEST_SERVER", &g_test_server))
|
||||
{
|
||||
fprintf(stderr, "Real Server\n");
|
||||
SPDLOG_INFO("Real Server");
|
||||
}
|
||||
else
|
||||
fprintf(stderr, "Test Server\n");
|
||||
SPDLOG_INFO("Test Server");
|
||||
|
||||
if (!CConfig::instance().GetValue("LOG", &g_log))
|
||||
{
|
||||
fprintf(stderr, "Log Off");
|
||||
g_log= 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
g_log = 1;
|
||||
fprintf(stderr, "Log On");
|
||||
}
|
||||
|
||||
|
||||
int tmpValue;
|
||||
|
||||
int heart_beat = 50;
|
||||
if (!CConfig::instance().GetValue("CLIENT_HEART_FPS", &heart_beat))
|
||||
{
|
||||
fprintf(stderr, "Cannot find CLIENT_HEART_FPS configuration.\n");
|
||||
SPDLOG_ERROR("Cannot find CLIENT_HEART_FPS configuration.");
|
||||
return false;
|
||||
}
|
||||
|
||||
log_set_expiration_days(3);
|
||||
|
||||
if (CConfig::instance().GetValue("LOG_KEEP_DAYS", &tmpValue))
|
||||
if (CConfig::instance().GetValue("LOG_LEVEL", &tmpValue))
|
||||
{
|
||||
tmpValue = std::clamp(tmpValue, 3, 30);
|
||||
log_set_expiration_days(tmpValue);
|
||||
fprintf(stderr, "Setting log keeping days to %d\n", tmpValue);
|
||||
SPDLOG_INFO("Setting log level to {}", tmpValue);
|
||||
tmpValue = std::clamp(tmpValue, SPDLOG_LEVEL_TRACE, SPDLOG_LEVEL_OFF);
|
||||
log_set_level(tmpValue);
|
||||
}
|
||||
|
||||
thecore_init(heart_beat, emptybeat);
|
||||
@ -182,12 +169,12 @@ int Start()
|
||||
if (CConfig::instance().GetValue("LOCALE", szBuf, 256))
|
||||
{
|
||||
g_stLocale = szBuf;
|
||||
sys_log(0, "LOCALE set to %s", g_stLocale.c_str());
|
||||
SPDLOG_INFO("LOCALE set to {}", g_stLocale.c_str());
|
||||
|
||||
// CHINA_DISABLE_HOTBACKUP
|
||||
if ("gb2312" == g_stLocale)
|
||||
{
|
||||
sys_log(0, "CIBN_LOCALE: DISABLE_HOTBACKUP");
|
||||
SPDLOG_INFO("CIBN_LOCALE: DISABLE_HOTBACKUP");
|
||||
g_bHotBackup = false;
|
||||
}
|
||||
// END_OF_CHINA_DISABLE_HOTBACKUP
|
||||
@ -197,8 +184,8 @@ int Start()
|
||||
if (CConfig::instance().GetValue("DISABLE_HOTBACKUP", &iDisableHotBackup))
|
||||
{
|
||||
if (iDisableHotBackup)
|
||||
{
|
||||
sys_log(0, "CONFIG: DISABLE_HOTBACKUP");
|
||||
{
|
||||
SPDLOG_INFO("CONFIG: DISABLE_HOTBACKUP");
|
||||
g_bHotBackup = false;
|
||||
}
|
||||
}
|
||||
@ -206,7 +193,7 @@ int Start()
|
||||
|
||||
if (!CConfig::instance().GetValue("TABLE_POSTFIX", szBuf, 256))
|
||||
{
|
||||
sys_err("TABLE_POSTFIX not configured use default");
|
||||
SPDLOG_WARN("TABLE_POSTFIX not configured use default");
|
||||
szBuf[0] = '\0';
|
||||
}
|
||||
|
||||
@ -215,20 +202,20 @@ int Start()
|
||||
if (CConfig::instance().GetValue("PLAYER_CACHE_FLUSH_SECONDS", szBuf, 256))
|
||||
{
|
||||
str_to_number(g_iPlayerCacheFlushSeconds, szBuf);
|
||||
sys_log(0, "PLAYER_CACHE_FLUSH_SECONDS: %d", g_iPlayerCacheFlushSeconds);
|
||||
SPDLOG_INFO("PLAYER_CACHE_FLUSH_SECONDS: {}", g_iPlayerCacheFlushSeconds);
|
||||
}
|
||||
|
||||
if (CConfig::instance().GetValue("ITEM_CACHE_FLUSH_SECONDS", szBuf, 256))
|
||||
{
|
||||
str_to_number(g_iItemCacheFlushSeconds, szBuf);
|
||||
sys_log(0, "ITEM_CACHE_FLUSH_SECONDS: %d", g_iItemCacheFlushSeconds);
|
||||
SPDLOG_INFO("ITEM_CACHE_FLUSH_SECONDS: {}", g_iItemCacheFlushSeconds);
|
||||
}
|
||||
|
||||
// MYSHOP_PRICE_LIST
|
||||
if (CConfig::instance().GetValue("ITEM_PRICELIST_CACHE_FLUSH_SECONDS", szBuf, 256))
|
||||
{
|
||||
str_to_number(g_iItemPriceListTableCacheFlushSeconds, szBuf);
|
||||
sys_log(0, "ITEM_PRICELIST_CACHE_FLUSH_SECONDS: %d", g_iItemPriceListTableCacheFlushSeconds);
|
||||
SPDLOG_INFO("ITEM_PRICELIST_CACHE_FLUSH_SECONDS: {}", g_iItemPriceListTableCacheFlushSeconds);
|
||||
}
|
||||
// END_OF_MYSHOP_PRICE_LIST
|
||||
//
|
||||
@ -241,7 +228,7 @@ int Start()
|
||||
int iIDStart;
|
||||
if (!CConfig::instance().GetValue("PLAYER_ID_START", &iIDStart))
|
||||
{
|
||||
sys_err("PLAYER_ID_START not configured");
|
||||
SPDLOG_ERROR("PLAYER_ID_START not configured");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -249,7 +236,7 @@ int Start()
|
||||
|
||||
if (CConfig::instance().GetValue("NAME_COLUMN", szBuf, 256))
|
||||
{
|
||||
fprintf(stderr, "%s %s", g_stLocaleNameColumn.c_str(), szBuf);
|
||||
SPDLOG_INFO("{} {}", g_stLocaleNameColumn, szBuf);
|
||||
g_stLocaleNameColumn = szBuf;
|
||||
}
|
||||
|
||||
@ -260,7 +247,7 @@ int Start()
|
||||
if (CConfig::instance().GetValue("SQL_PLAYER", line, 256))
|
||||
{
|
||||
sscanf(line, " %s %s %s %s %d ", szAddr, szDB, szUser, szPassword, &iPort);
|
||||
sys_log(0, "connecting to MySQL server (player)");
|
||||
SPDLOG_DEBUG("Connecting to MySQL server (player)");
|
||||
|
||||
int iRetry = 5;
|
||||
|
||||
@ -268,27 +255,25 @@ int Start()
|
||||
{
|
||||
if (CDBManager::instance().Connect(SQL_PLAYER, szAddr, iPort, szDB, szUser, szPassword))
|
||||
{
|
||||
sys_log(0, " OK");
|
||||
SPDLOG_INFO("Connected to MySQL server (player)");
|
||||
break;
|
||||
}
|
||||
|
||||
sys_log(0, " failed, retrying in 5 seconds");
|
||||
fprintf(stderr, " failed, retrying in 5 seconds");
|
||||
SPDLOG_ERROR("Connection to MySQL server (player) failed, retrying in 5 seconds");
|
||||
sleep(5);
|
||||
} while (iRetry--);
|
||||
fprintf(stderr, "Success PLAYER\n");
|
||||
SetPlayerDBName(szDB);
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err("SQL_PLAYER not configured");
|
||||
SPDLOG_ERROR("SQL_PLAYER not configured");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (CConfig::instance().GetValue("SQL_ACCOUNT", line, 256))
|
||||
{
|
||||
sscanf(line, " %s %s %s %s %d ", szAddr, szDB, szUser, szPassword, &iPort);
|
||||
sys_log(0, "connecting to MySQL server (account)");
|
||||
SPDLOG_DEBUG("connecting to MySQL server (account)");
|
||||
|
||||
int iRetry = 5;
|
||||
|
||||
@ -296,26 +281,26 @@ int Start()
|
||||
{
|
||||
if (CDBManager::instance().Connect(SQL_ACCOUNT, szAddr, iPort, szDB, szUser, szPassword))
|
||||
{
|
||||
sys_log(0, " OK");
|
||||
SPDLOG_DEBUG(" OK");
|
||||
break;
|
||||
}
|
||||
|
||||
sys_log(0, " failed, retrying in 5 seconds");
|
||||
fprintf(stderr, " failed, retrying in 5 seconds");
|
||||
SPDLOG_DEBUG(" failed, retrying in 5 seconds");
|
||||
SPDLOG_ERROR(" failed, retrying in 5 seconds");
|
||||
sleep(5);
|
||||
} while (iRetry--);
|
||||
fprintf(stderr, "Success ACCOUNT\n");
|
||||
SPDLOG_INFO("Success ACCOUNT");
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err("SQL_ACCOUNT not configured");
|
||||
SPDLOG_ERROR("SQL_ACCOUNT not configured");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (CConfig::instance().GetValue("SQL_COMMON", line, 256))
|
||||
{
|
||||
sscanf(line, " %s %s %s %s %d ", szAddr, szDB, szUser, szPassword, &iPort);
|
||||
sys_log(0, "connecting to MySQL server (common)");
|
||||
SPDLOG_DEBUG("connecting to MySQL server (common)");
|
||||
|
||||
int iRetry = 5;
|
||||
|
||||
@ -323,26 +308,26 @@ int Start()
|
||||
{
|
||||
if (CDBManager::instance().Connect(SQL_COMMON, szAddr, iPort, szDB, szUser, szPassword))
|
||||
{
|
||||
sys_log(0, " OK");
|
||||
SPDLOG_DEBUG(" OK");
|
||||
break;
|
||||
}
|
||||
|
||||
sys_log(0, " failed, retrying in 5 seconds");
|
||||
fprintf(stderr, " failed, retrying in 5 seconds");
|
||||
SPDLOG_DEBUG(" failed, retrying in 5 seconds");
|
||||
SPDLOG_ERROR(" failed, retrying in 5 seconds");
|
||||
sleep(5);
|
||||
} while (iRetry--);
|
||||
fprintf(stderr, "Success COMMON\n");
|
||||
SPDLOG_INFO("Success COMMON");
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err("SQL_COMMON not configured");
|
||||
SPDLOG_ERROR("SQL_COMMON not configured");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (CConfig::instance().GetValue("SQL_HOTBACKUP", line, 256))
|
||||
{
|
||||
sscanf(line, " %s %s %s %s %d ", szAddr, szDB, szUser, szPassword, &iPort);
|
||||
sys_log(0, "connecting to MySQL server (hotbackup)");
|
||||
SPDLOG_DEBUG("connecting to MySQL server (hotbackup)");
|
||||
|
||||
int iRetry = 5;
|
||||
|
||||
@ -350,37 +335,35 @@ int Start()
|
||||
{
|
||||
if (CDBManager::instance().Connect(SQL_HOTBACKUP, szAddr, iPort, szDB, szUser, szPassword))
|
||||
{
|
||||
sys_log(0, " OK");
|
||||
SPDLOG_DEBUG(" OK");
|
||||
break;
|
||||
}
|
||||
|
||||
sys_log(0, " failed, retrying in 5 seconds");
|
||||
fprintf(stderr, " failed, retrying in 5 seconds");
|
||||
SPDLOG_DEBUG(" failed, retrying in 5 seconds");
|
||||
SPDLOG_ERROR(" failed, retrying in 5 seconds");
|
||||
sleep(5);
|
||||
}
|
||||
while (iRetry--);
|
||||
|
||||
fprintf(stderr, "Success HOTBACKUP\n");
|
||||
SPDLOG_INFO("Success HOTBACKUP");
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err("SQL_HOTBACKUP not configured");
|
||||
SPDLOG_ERROR("SQL_HOTBACKUP not configured");
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log(0, "ClientManager initialization.. ");
|
||||
|
||||
if (!CClientManager::instance().Initialize())
|
||||
{
|
||||
sys_log(0, " failed");
|
||||
SPDLOG_ERROR("ClientManager initialization failed");
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log(0, " OK");
|
||||
SPDLOG_INFO("ClientManager initialization OK");
|
||||
|
||||
if (!PlayerHB::instance().Initialize())
|
||||
if (!PlayerHB::instance().Initialize())
|
||||
{
|
||||
sys_err("cannot initialize player hotbackup");
|
||||
SPDLOG_ERROR("cannot initialize player hotbackup");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ namespace marriage
|
||||
unique_ptr<SQLMsg> pmsg(CDBManager::instance().DirectQuery(szQuery));
|
||||
|
||||
SQLResult * pRes = pmsg->Get();
|
||||
sys_log(0, "MarriageList(size=%lu)", pRes->uiNumRows);
|
||||
SPDLOG_DEBUG("MarriageList(size={})", pRes->uiNumRows);
|
||||
|
||||
if (pRes->uiNumRows > 0)
|
||||
{
|
||||
@ -65,7 +65,7 @@ namespace marriage
|
||||
m_MarriageByPID.insert(make_pair(pid1, pMarriage));
|
||||
m_MarriageByPID.insert(make_pair(pid2, pMarriage));
|
||||
|
||||
sys_log(0, "Marriage %lu: LP:%d TM:%u ST:%d %10lu:%16s %10lu:%16s ", uiRow, love_point, time, is_married, pid1, name1, pid2, name2);
|
||||
SPDLOG_DEBUG("Marriage {}: LP:{} TM:{} ST:{} {:10}:{:16} {:10}:{:16} ", uiRow, love_point, time, is_married, pid1, name1, pid2, name2);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@ -92,7 +92,7 @@ namespace marriage
|
||||
DWORD now = CClientManager::instance().GetCurrentTime();
|
||||
if (IsMarried(dwPID1) || IsMarried(dwPID2))
|
||||
{
|
||||
sys_err("cannot marry already married character. %d - %d", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("cannot marry already married character. {} - {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -106,11 +106,11 @@ namespace marriage
|
||||
SQLResult* res = pmsg->Get();
|
||||
if (res->uiAffectedRows == 0 || res->uiAffectedRows == (uint32_t)-1)
|
||||
{
|
||||
sys_err("cannot insert marriage");
|
||||
SPDLOG_ERROR("cannot insert marriage");
|
||||
return;
|
||||
}
|
||||
|
||||
sys_log(0, "MARRIAGE ADD %u %u", dwPID1, dwPID2);
|
||||
SPDLOG_DEBUG("MARRIAGE ADD {} {}", dwPID1, dwPID2);
|
||||
|
||||
TMarriage* pMarriage = new TMarriage(dwPID1, dwPID2, 0, now, 0, szName1, szName2);
|
||||
m_Marriages.insert(pMarriage);
|
||||
@ -131,7 +131,7 @@ namespace marriage
|
||||
TMarriage* pMarriage = Get(dwPID1);
|
||||
if (!pMarriage || pMarriage->GetOther(dwPID1) != dwPID2)
|
||||
{
|
||||
sys_err("not under marriage : %u %u", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("not under marriage : {} {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -146,11 +146,11 @@ namespace marriage
|
||||
SQLResult* res = pmsg->Get();
|
||||
if (res->uiAffectedRows == 0 || res->uiAffectedRows == (uint32_t)-1)
|
||||
{
|
||||
sys_err("cannot update marriage : PID:%u %u", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("cannot update marriage : PID:{} {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
sys_log(0, "MARRIAGE UPDATE PID:%u %u LP:%u ST:%d", dwPID1, dwPID2, iLovePoint, byMarried);
|
||||
SPDLOG_DEBUG("MARRIAGE UPDATE PID:{} {} LP:{} ST:{}", dwPID1, dwPID2, iLovePoint, byMarried);
|
||||
pMarriage->love_point = iLovePoint;
|
||||
pMarriage->is_married = byMarried;
|
||||
|
||||
@ -168,7 +168,7 @@ namespace marriage
|
||||
|
||||
if (pMarriage)
|
||||
{
|
||||
sys_log(0, "Break Marriage pid1 %d pid2 %d Other %d", dwPID1, dwPID2, pMarriage->GetOther(dwPID1));
|
||||
SPDLOG_DEBUG("Break Marriage pid1 {} pid2 {} Other {}", dwPID1, dwPID2, pMarriage->GetOther(dwPID1));
|
||||
}
|
||||
if (!pMarriage || pMarriage->GetOther(dwPID1) != dwPID2)
|
||||
{
|
||||
@ -176,9 +176,9 @@ namespace marriage
|
||||
|
||||
for (; it != m_MarriageByPID.end(); ++it)
|
||||
{
|
||||
sys_log(0, "Marriage List pid1 %d pid2 %d", it->second->pid1, it->second->pid2);
|
||||
SPDLOG_DEBUG("Marriage List pid1 {} pid2 {}", it->second->pid1, it->second->pid2);
|
||||
}
|
||||
sys_err("not under marriage : PID:%u %u", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("not under marriage : PID:{} {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -192,11 +192,11 @@ namespace marriage
|
||||
SQLResult* res = pmsg->Get();
|
||||
if (res->uiAffectedRows == 0 || res->uiAffectedRows == (uint32_t)-1)
|
||||
{
|
||||
sys_err("cannot delete marriage : PID:%u %u", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("cannot delete marriage : PID:{} {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
sys_log(0, "MARRIAGE REMOVE PID:%u %u", dwPID1, dwPID2);
|
||||
SPDLOG_DEBUG("MARRIAGE REMOVE PID:{} {}", dwPID1, dwPID2);
|
||||
|
||||
m_Marriages.erase(pMarriage);
|
||||
m_MarriageByPID.erase(dwPID1);
|
||||
@ -215,13 +215,13 @@ namespace marriage
|
||||
TMarriage* pMarriage = Get(dwPID1);
|
||||
if (!pMarriage || pMarriage->GetOther(dwPID1) != dwPID2)
|
||||
{
|
||||
sys_err("not under marriage : PID:%u %u", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("not under marriage : PID:{} {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
if (pMarriage->is_married)
|
||||
{
|
||||
sys_err("already married, cannot change engage to marry : PID:%u %u", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("already married, cannot change engage to marry : PID:{} {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -236,11 +236,11 @@ namespace marriage
|
||||
SQLResult* res = pmsg->Get();
|
||||
if (res->uiAffectedRows == 0 || res->uiAffectedRows == (uint32_t)-1)
|
||||
{
|
||||
sys_err("cannot change engage to marriage : PID:%u %u", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("cannot change engage to marriage : PID:{} {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
sys_log(0, "MARRIAGE ENGAGE->MARRIAGE PID:%u %u", dwPID1, dwPID2);
|
||||
SPDLOG_DEBUG("MARRIAGE ENGAGE->MARRIAGE PID:{} {}", dwPID1, dwPID2);
|
||||
pMarriage->is_married = 1;
|
||||
|
||||
TPacketMarriageUpdate p;
|
||||
@ -313,7 +313,7 @@ namespace marriage
|
||||
itertype(m_mapRunningWedding) it = m_mapRunningWedding.find(make_pair(dwPID1, dwPID2));
|
||||
if (it == m_mapRunningWedding.end())
|
||||
{
|
||||
sys_err("try to end wedding %u %u", dwPID1, dwPID2);
|
||||
SPDLOG_ERROR("try to end wedding {} {}", dwPID1, dwPID2);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
#include "stdafx.h"
|
||||
|
||||
#include "Monarch.h"
|
||||
#include <common/utils.h>
|
||||
#include "Main.h"
|
||||
@ -53,8 +55,7 @@ void CMonarch::ElectMonarch()
|
||||
|
||||
++s[idx];
|
||||
|
||||
if (g_test_server)
|
||||
sys_log (0, "[MONARCH_VOTE] pid(%d) come to vote candidacy pid(%d)", it->second->pid, m_vec_MonarchCandidacy[idx].pid);
|
||||
SPDLOG_TRACE("[MONARCH_VOTE] pid({}) come to vote candidacy pid({})", it->second->pid, m_vec_MonarchCandidacy[idx].pid);
|
||||
}
|
||||
|
||||
delete [] s;
|
||||
@ -167,8 +168,7 @@ bool CMonarch::TakeMoney(int Empire, DWORD pid, int64_t Money)
|
||||
|
||||
CDBManager::instance().AsyncQuery(szQuery);
|
||||
|
||||
if (g_test_server)
|
||||
sys_log(0, "[MONARCH] Take money empire(%d) money(%lld)", Empire, m_MonarchInfo.money[Empire]);
|
||||
SPDLOG_TRACE("[MONARCH] Take money empire({}) money({})", Empire, m_MonarchInfo.money[Empire]);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -197,8 +197,7 @@ bool CMonarch::LoadMonarch()
|
||||
str_to_number(p->money[Empire], row[idx++]);
|
||||
strlcpy(p->date[Empire], row[idx++], sizeof(p->date[Empire]));
|
||||
|
||||
if (g_test_server)
|
||||
sys_log(0, "[LOAD_MONARCH] Empire %d pid %d money %lld windate %s", Empire, p->pid[Empire], p->money[Empire], p->date[Empire]);
|
||||
SPDLOG_TRACE("[LOAD_MONARCH] Empire {} pid {} money {} windate {}", Empire, p->pid[Empire], p->money[Empire], p->date[Empire]);
|
||||
}
|
||||
|
||||
delete pMsg;
|
||||
@ -230,8 +229,7 @@ bool CMonarch::SetMonarch(const char * name)
|
||||
strlcpy(p->name[Empire], row[idx++], sizeof(p->name[Empire]));
|
||||
p->money[Empire] = atoll(row[idx++]);
|
||||
|
||||
if (g_test_server)
|
||||
sys_log(0, "[Set_MONARCH] Empire %d pid %d money %lld windate %s", Empire, p->pid[Empire], p->money[Empire], p->date[Empire]);
|
||||
SPDLOG_TRACE("[Set_MONARCH] Empire {} pid {} money {} windate {}", Empire, p->pid[Empire], p->money[Empire], p->date[Empire]);
|
||||
}
|
||||
delete pMsg;
|
||||
|
||||
@ -278,7 +276,7 @@ bool CMonarch::DelMonarch(const char * name)
|
||||
|
||||
if (pMsg->Get()->uiNumRows == 0)
|
||||
{
|
||||
sys_err(" DirectQuery failed(%s)", szQuery);
|
||||
SPDLOG_ERROR(" DirectQuery failed({})", szQuery);
|
||||
delete pMsg;
|
||||
return false;
|
||||
}
|
||||
|
@ -29,15 +29,15 @@ void CPeer::OnAccept()
|
||||
static DWORD current_handle = 0;
|
||||
m_dwHandle = ++current_handle;
|
||||
|
||||
sys_log(0, "Connection accepted. (host: %s handle: %u)", m_host, m_dwHandle);
|
||||
SPDLOG_DEBUG("Connection accepted. (host: {} handle: {})", m_host, m_dwHandle);
|
||||
}
|
||||
|
||||
void CPeer::OnClose()
|
||||
{
|
||||
m_state = STATE_CLOSE;
|
||||
|
||||
sys_log(0, "Connection closed. (host: %s)", m_host);
|
||||
sys_log(0, "ItemIDRange: returned. %u ~ %u", m_itemRange.dwMin, m_itemRange.dwMax);
|
||||
SPDLOG_DEBUG("Connection closed. (host: {})", m_host);
|
||||
SPDLOG_DEBUG("ItemIDRange: returned. {} ~ {}", m_itemRange.dwMin, m_itemRange.dwMax);
|
||||
|
||||
CItemIDRangeManager::instance().UpdateRange(m_itemRange.dwMin, m_itemRange.dwMax);
|
||||
|
||||
@ -69,7 +69,7 @@ bool CPeer::PeekPacket(int & iBytesProceed, BYTE & header, DWORD & dwHandle, DWO
|
||||
|
||||
const char * buf = (const char *) GetRecvBuffer(iBytesProceed + 9);
|
||||
if (!buf) {
|
||||
sys_err("PeekPacket: Failed to get network buffer!");
|
||||
SPDLOG_ERROR("PeekPacket: Failed to get network buffer!");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -87,7 +87,7 @@ bool CPeer::PeekPacket(int & iBytesProceed, BYTE & header, DWORD & dwHandle, DWO
|
||||
// Ensure that all the data was fully received
|
||||
if (iBytesProceed + dwLength + 9 > (DWORD) GetRecvLength())
|
||||
{
|
||||
sys_log(0, "PeekPacket: not enough buffer size: len %u, recv %d",
|
||||
SPDLOG_DEBUG("PeekPacket: not enough buffer size: len {}, recv {}",
|
||||
9+dwLength, GetRecvLength()-iBytesProceed);
|
||||
return false;
|
||||
}
|
||||
@ -95,7 +95,7 @@ bool CPeer::PeekPacket(int & iBytesProceed, BYTE & header, DWORD & dwHandle, DWO
|
||||
// Ensure that all the required data is available in a contiguous area
|
||||
buf = (const char *) GetRecvBuffer(iBytesProceed + dwLength + 9);
|
||||
if (!buf) {
|
||||
sys_err("PeekPacket: Failed to get network buffer!");
|
||||
SPDLOG_ERROR("PeekPacket: Failed to get network buffer!");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ void CPeer::EncodeHeader(BYTE header, DWORD dwHandle, DWORD dwSize)
|
||||
{
|
||||
HEADER h;
|
||||
|
||||
sys_log(1, "EncodeHeader %u handle %u size %u", header, dwHandle, dwSize);
|
||||
SPDLOG_TRACE("EncodeHeader {} handle {} size {}", header, dwHandle, dwSize);
|
||||
|
||||
h.bHeader = header;
|
||||
h.dwHandle = dwHandle;
|
||||
@ -149,7 +149,7 @@ void CPeer::SendSpareItemIDRange()
|
||||
|
||||
if (SetSpareItemIDRange(CItemIDRangeManager::instance().GetRange()) == false)
|
||||
{
|
||||
sys_log(0, "ItemIDRange: spare range set error");
|
||||
SPDLOG_DEBUG("ItemIDRange: spare range set error");
|
||||
m_itemSpareRange.dwMin = m_itemSpareRange.dwMax = m_itemSpareRange.dwUsableItemIDMin = 0;
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ bool CPeer::SetItemIDRange(TItemIDRangeTable itemRange)
|
||||
if (itemRange.dwMin == 0 || itemRange.dwMax == 0 || itemRange.dwUsableItemIDMin == 0) return false;
|
||||
|
||||
m_itemRange = itemRange;
|
||||
sys_log(0, "ItemIDRange: SET %s %u ~ %u start: %u", GetPublicIP(), m_itemRange.dwMin, m_itemRange.dwMax, m_itemRange.dwUsableItemIDMin);
|
||||
SPDLOG_DEBUG("ItemIDRange: SET {} {} ~ {} start: {}", GetPublicIP(), m_itemRange.dwMin, m_itemRange.dwMax, m_itemRange.dwUsableItemIDMin);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -173,7 +173,7 @@ bool CPeer::SetSpareItemIDRange(TItemIDRangeTable itemRange)
|
||||
if (itemRange.dwMin == 0 || itemRange.dwMax == 0 || itemRange.dwUsableItemIDMin == 0) return false;
|
||||
|
||||
m_itemSpareRange = itemRange;
|
||||
sys_log(0, "ItemIDRange: SPARE SET %s %u ~ %u start: %u", GetPublicIP(), m_itemSpareRange.dwMin, m_itemSpareRange.dwMax,
|
||||
SPDLOG_DEBUG("ItemIDRange: SPARE SET {} {} ~ {} start: {}", GetPublicIP(), m_itemSpareRange.dwMin, m_itemSpareRange.dwMax,
|
||||
m_itemSpareRange.dwUsableItemIDMin);
|
||||
|
||||
return true;
|
||||
@ -183,14 +183,14 @@ bool CPeer::CheckItemIDRangeCollision(TItemIDRangeTable itemRange)
|
||||
{
|
||||
if (m_itemRange.dwMin < itemRange.dwMax && m_itemRange.dwMax > itemRange.dwMin)
|
||||
{
|
||||
sys_err("ItemIDRange: Collision!! this %u ~ %u check %u ~ %u",
|
||||
SPDLOG_ERROR("ItemIDRange: Collision!! this {} ~ {} check {} ~ {}",
|
||||
m_itemRange.dwMin, m_itemRange.dwMax, itemRange.dwMin, itemRange.dwMax);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_itemSpareRange.dwMin < itemRange.dwMax && m_itemSpareRange.dwMax > itemRange.dwMin)
|
||||
{
|
||||
sys_err("ItemIDRange: Collision with spare range this %u ~ %u check %u ~ %u",
|
||||
SPDLOG_ERROR("ItemIDRange: Collision with spare range this {} ~ {} check {} ~ {}",
|
||||
m_itemSpareRange.dwMin, m_itemSpareRange.dwMax, itemRange.dwMin, itemRange.dwMax);
|
||||
return false;
|
||||
}
|
||||
|
@ -23,12 +23,12 @@ void CPeerBase::Destroy()
|
||||
bool CPeerBase::Accept(bufferevent* bufev, sockaddr* addr)
|
||||
{
|
||||
if (!bufev) {
|
||||
sys_err("Cannot accept empty bufferevent!");
|
||||
SPDLOG_ERROR("Cannot accept empty bufferevent!");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (m_bufferevent != nullptr) {
|
||||
sys_err("Peer is already initialized");
|
||||
SPDLOG_ERROR("Peer is already initialized");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ bool CPeerBase::Accept(bufferevent* bufev, sockaddr* addr)
|
||||
// Trigger the OnAccept event
|
||||
OnAccept();
|
||||
|
||||
sys_log(0, "ACCEPT FROM %s", m_host);
|
||||
SPDLOG_DEBUG("ACCEPT FROM {}", m_host);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -86,12 +86,12 @@ void CPeerBase::Encode(const void* data, size_t size)
|
||||
{
|
||||
if (!m_bufferevent)
|
||||
{
|
||||
sys_err("Bufferevent not ready!");
|
||||
SPDLOG_ERROR("Bufferevent not ready!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (bufferevent_write(m_bufferevent, data, size) != 0) {
|
||||
sys_err("Buffer write error!");
|
||||
SPDLOG_ERROR("Buffer write error!");
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -100,7 +100,7 @@ void CPeerBase::RecvEnd(size_t proceed_bytes)
|
||||
{
|
||||
if (!m_bufferevent)
|
||||
{
|
||||
sys_err("Bufferevent not ready!");
|
||||
SPDLOG_ERROR("Bufferevent not ready!");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ size_t CPeerBase::GetRecvLength()
|
||||
{
|
||||
if (!m_bufferevent)
|
||||
{
|
||||
sys_err("Bufferevent not ready!");
|
||||
SPDLOG_ERROR("Bufferevent not ready!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -124,7 +124,7 @@ const void * CPeerBase::GetRecvBuffer(ssize_t ensure_bytes)
|
||||
{
|
||||
if (!m_bufferevent)
|
||||
{
|
||||
sys_err("Bufferevent not ready!");
|
||||
SPDLOG_ERROR("Bufferevent not ready!");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -136,7 +136,7 @@ size_t CPeerBase::GetSendLength()
|
||||
{
|
||||
if (!m_bufferevent)
|
||||
{
|
||||
sys_err("Bufferevent not ready!");
|
||||
SPDLOG_ERROR("Bufferevent not ready!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ void CPrivManager::AddCharPriv(DWORD pid, BYTE type, int value)
|
||||
{
|
||||
if (MAX_PRIV_NUM <= type)
|
||||
{
|
||||
sys_err("PRIV_MANAGER: AddCharPriv: wrong char priv type(%u) recved", type);
|
||||
SPDLOG_ERROR("PRIV_MANAGER: AddCharPriv: wrong char priv type({}) recved", type);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -108,7 +108,7 @@ void CPrivManager::AddCharPriv(DWORD pid, BYTE type, int value)
|
||||
m_aPrivChar[type].insert(std::make_pair(pid, p));
|
||||
|
||||
// TODO send packet
|
||||
sys_log(0, "AddCharPriv %d %d %d", pid, type, value);
|
||||
SPDLOG_DEBUG("AddCharPriv {} {} {}", pid, type, value);
|
||||
SendChangeCharPriv(pid, type, value);
|
||||
}
|
||||
|
||||
@ -119,7 +119,7 @@ void CPrivManager::AddGuildPriv(DWORD guild_id, BYTE type, int value, time_t dur
|
||||
{
|
||||
if (MAX_PRIV_NUM <= type)
|
||||
{
|
||||
sys_err("PRIV_MANAGER: AddGuildPriv: wrong guild priv type(%u) recved", type);
|
||||
SPDLOG_ERROR("PRIV_MANAGER: AddGuildPriv: wrong guild priv type({}) recved", type);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -141,14 +141,14 @@ void CPrivManager::AddGuildPriv(DWORD guild_id, BYTE type, int value, time_t dur
|
||||
SendChangeGuildPriv(guild_id, type, value, end);
|
||||
// END_OF_ADD_GUILD_PRIV_TIME
|
||||
|
||||
sys_log(0, "Guild Priv guild(%d) type(%d) value(%d) duration_sec(%d)", guild_id, type, value, duration_sec);
|
||||
SPDLOG_DEBUG("Guild Priv guild({}) type({}) value({}) duration_sec({})", guild_id, type, value, duration_sec);
|
||||
}
|
||||
|
||||
void CPrivManager::AddEmpirePriv(BYTE empire, BYTE type, int value, time_t duration_sec)
|
||||
{
|
||||
if (MAX_PRIV_NUM <= type)
|
||||
{
|
||||
sys_err("PRIV_MANAGER: AddEmpirePriv: wrong empire priv type(%u) recved", type);
|
||||
SPDLOG_ERROR("PRIV_MANAGER: AddEmpirePriv: wrong empire priv type({}) recved", type);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -173,7 +173,7 @@ void CPrivManager::AddEmpirePriv(BYTE empire, BYTE type, int value, time_t durat
|
||||
SendChangeEmpirePriv(empire, type, value, end);
|
||||
// END_OF_ADD_EMPIRE_PRIV_TIME
|
||||
|
||||
sys_log(0, "Empire Priv empire(%d) type(%d) value(%d) duration_sec(%d)", empire, type, value, duration_sec);
|
||||
SPDLOG_DEBUG("Empire Priv empire({}) type({}) value({}) duration_sec({})", empire, type, value, duration_sec);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -206,7 +206,7 @@ int get_Item_SubType_Value(int type_value, string inputString)
|
||||
// assert <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>..
|
||||
if (_countof(arSubType) <= type_value)
|
||||
{
|
||||
sys_err("SubType : Out of range!! (type_value: %d, count of registered subtype: %d", type_value, _countof(arSubType));
|
||||
SPDLOG_ERROR("SubType : Out of range!! (type_value: {}, count of registered subtype: {}", type_value, _countof(arSubType));
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -683,7 +683,7 @@ bool Set_Proto_Mob_Table(TMobTable *mobTable, cCsvTable &csvTable,std::map<int,c
|
||||
str_to_number(mobTable->bDeathBlowPoint, csvTable.AsStringByIndex(col++));
|
||||
str_to_number(mobTable->bRevivePoint, csvTable.AsStringByIndex(col++));
|
||||
|
||||
sys_log(0, "MOB #%-5d %-24s level: %-3u rank: %u empire: %d", mobTable->dwVnum, mobTable->szLocaleName, mobTable->bLevel, mobTable->bRank, mobTable->bEmpire);
|
||||
SPDLOG_TRACE("MOB #{:<5} {:24} level: {:<3} rank: {} empire: {}", mobTable->dwVnum, mobTable->szLocaleName, mobTable->bLevel, mobTable->bRank, mobTable->bEmpire);
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -739,9 +739,9 @@ bool Set_Proto_Item_Table(TItemTable *itemTable, cCsvTable &csvTable,std::map<in
|
||||
for (int j = 0; j < i; ++j)
|
||||
dataStream << dataArray[j] << ",";
|
||||
|
||||
//fprintf(stderr, "ItemProto Reading Failed : Invalid value.\n");
|
||||
sys_err("ItemProto Reading Failed : Invalid value. (index: %d, col: %d, value: %s)", i, col, csvTable.AsStringByIndex(col));
|
||||
sys_err("\t%d ~ %d Values: %s", 0, i, dataStream.str().c_str());
|
||||
//SPDLOG_ERROR("ItemProto Reading Failed : Invalid value.");
|
||||
SPDLOG_ERROR("ItemProto Reading Failed : Invalid value. (index: {}, col: {}, value: {})", i, col, csvTable.AsStringByIndex(col));
|
||||
SPDLOG_ERROR("\t{} ~ {} Values: {}", 0, i, dataStream.str().c_str());
|
||||
|
||||
exit(0);
|
||||
}
|
||||
@ -768,7 +768,7 @@ bool Set_Proto_Item_Table(TItemTable *itemTable, cCsvTable &csvTable,std::map<in
|
||||
int end_vnum = atoi(s_end_vnum.c_str());
|
||||
if (0 == start_vnum || (0 != end_vnum && end_vnum < start_vnum))
|
||||
{
|
||||
sys_err ("INVALID VNUM %s", s.c_str());
|
||||
SPDLOG_ERROR("INVALID VNUM {}", s.c_str());
|
||||
return false;
|
||||
}
|
||||
itemTable->dwVnum = start_vnum;
|
||||
|
@ -1,15 +1,8 @@
|
||||
#include <fmt/core.h>
|
||||
#include <version.h>
|
||||
|
||||
void WriteVersion(std::ostream& out) {
|
||||
out << "Metin2 DB Cache version " << __COMMIT_TAG__ << " "
|
||||
<< "(rev. " << __REVISION__ << ", date: " << __COMMIT_DATE__ << ")"
|
||||
<< std::endl;
|
||||
|
||||
out << "OS: " << __OS_NAME__ << ", "
|
||||
<< "target arch: " << __CPU_TARGET__ << ", "
|
||||
<< "compiler: " << __COMPILER__
|
||||
<< std::endl;
|
||||
|
||||
out << std::endl;
|
||||
void WriteVersion() {
|
||||
fmt::println("Metin2 DB Cache version {} (rev. {}, date: {})", __COMMIT_TAG__, __REVISION__, __COMMIT_DATE__);
|
||||
fmt::println("OS: {}, target arch: {}, compiler: {}", __OS_NAME__, __CPU_TARGET__, __COMPILER__);
|
||||
}
|
||||
|
||||
|
@ -3,15 +3,29 @@ cmake_minimum_required(VERSION 3.8)
|
||||
project(game CXX)
|
||||
|
||||
file(GLOB_RECURSE sources
|
||||
src/*.cpp src/*.h
|
||||
src/*.cpp src/*.h
|
||||
)
|
||||
|
||||
# Add the src directory to the include path
|
||||
include_directories(src)
|
||||
|
||||
add_executable(${PROJECT_NAME} ${sources})
|
||||
|
||||
# Set the default log level based on the build type
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
message(STATUS "This is a debug build. Log level will be set to 'trace' for target '${PROJECT_NAME}'.")
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE SPDLOG_ACTIVE_LEVEL=SPDLOG_LEVEL_TRACE)
|
||||
endif()
|
||||
|
||||
# Treat char variables as signed, especially useful for ARM builds
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC -fsigned-char)
|
||||
|
||||
# Find dependencies
|
||||
|
||||
#
|
||||
# vcpkg dependencies
|
||||
#
|
||||
|
||||
# MySQL
|
||||
find_package(unofficial-libmysql REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} unofficial::libmysql::libmysql)
|
||||
@ -28,11 +42,6 @@ target_link_libraries (${PROJECT_NAME} Boost::boost)
|
||||
find_package(Libevent CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} libevent::core libevent::extra libevent::pthreads)
|
||||
|
||||
# DevIL
|
||||
find_package(DevIL REQUIRED)
|
||||
include_directories(${IL_INCLUDE_DIR})
|
||||
target_link_libraries(${PROJECT_NAME} ${IL_LIBRARIES})
|
||||
|
||||
# LZO
|
||||
find_package(LZO REQUIRED)
|
||||
if (LZO_FOUND)
|
||||
@ -40,6 +49,19 @@ if (LZO_FOUND)
|
||||
target_link_libraries(${PROJECT_NAME} ${LZO_LIBRARIES})
|
||||
endif (LZO_FOUND)
|
||||
|
||||
# effolkronium/random
|
||||
find_package(effolkronium_random CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} effolkronium_random)
|
||||
|
||||
#
|
||||
# System-provided dependencies
|
||||
#
|
||||
|
||||
# DevIL
|
||||
find_package(DevIL REQUIRED)
|
||||
include_directories(${IL_INCLUDE_DIR})
|
||||
target_link_libraries(${PROJECT_NAME} ${IL_LIBRARIES})
|
||||
|
||||
# Pthreads
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
@ -48,8 +70,8 @@ target_link_libraries(${PROJECT_NAME} Threads::Threads)
|
||||
# LibBSD
|
||||
target_link_libraries(${PROJECT_NAME} bsd)
|
||||
|
||||
# effolkronium/random
|
||||
find_package(effolkronium_random CONFIG REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} effolkronium_random)
|
||||
#
|
||||
# Project-provided dependencies
|
||||
#
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} libgame libpoly libsql libthecore liblua)
|
||||
|
@ -31,7 +31,7 @@ time_t UseBlueDragonSkill(LPCHARACTER pChar, unsigned int idx)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
sys_log(0, "BlueDragon: Using Skill Breath");
|
||||
SPDLOG_DEBUG("BlueDragon: Using Skill Breath");
|
||||
|
||||
FSkillBreath f(pChar);
|
||||
|
||||
@ -43,7 +43,7 @@ time_t UseBlueDragonSkill(LPCHARACTER pChar, unsigned int idx)
|
||||
|
||||
case 1:
|
||||
{
|
||||
sys_log(0, "BlueDragon: Using Skill Weak Breath");
|
||||
SPDLOG_DEBUG("BlueDragon: Using Skill Weak Breath");
|
||||
|
||||
FSkillWeakBreath f(pChar);
|
||||
|
||||
@ -55,7 +55,7 @@ time_t UseBlueDragonSkill(LPCHARACTER pChar, unsigned int idx)
|
||||
|
||||
case 2:
|
||||
{
|
||||
sys_log(0, "BlueDragon: Using Skill EarthQuake");
|
||||
SPDLOG_DEBUG("BlueDragon: Using Skill EarthQuake");
|
||||
|
||||
FSkillEarthQuake f(pChar);
|
||||
|
||||
@ -71,7 +71,7 @@ time_t UseBlueDragonSkill(LPCHARACTER pChar, unsigned int idx)
|
||||
break;
|
||||
|
||||
default:
|
||||
sys_err("BlueDragon: Wrong Skill Index: %d", idx);
|
||||
SPDLOG_ERROR("BlueDragon: Wrong Skill Index: {}", idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ unsigned int BlueDragon_GetSkillFactor(const size_t cnt, ...)
|
||||
{
|
||||
va_end(vl);
|
||||
lua_settop( L, stack_top );
|
||||
sys_err("BlueDragon: wrong key list");
|
||||
SPDLOG_ERROR("BlueDragon: wrong key list");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -43,7 +43,7 @@ unsigned int BlueDragon_GetSkillFactor(const size_t cnt, ...)
|
||||
{
|
||||
va_end(vl);
|
||||
lua_settop( L, stack_top );
|
||||
sys_err("BlueDragon: wrong key table %s", key);
|
||||
SPDLOG_ERROR("BlueDragon: wrong key table {}", key);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@ -53,7 +53,7 @@ unsigned int BlueDragon_GetSkillFactor(const size_t cnt, ...)
|
||||
if (false == lua_isnumber(L, -1))
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
sys_err("BlueDragon: Last key is not a number");
|
||||
SPDLOG_ERROR("BlueDragon: Last key is not a number");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -86,7 +86,7 @@ unsigned int BlueDragon_GetRangeFactor(const char* key, const int val)
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
|
||||
sys_err("BlueDragon: no required table %s", key);
|
||||
SPDLOG_ERROR("BlueDragon: no required table {}", key);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ unsigned int BlueDragon_GetRangeFactor(const char* key, const int val)
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
|
||||
sys_err("BlueDragon: wrong table index %s %d", key, i);
|
||||
SPDLOG_ERROR("BlueDragon: wrong table index {} {}", key, i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -111,7 +111,7 @@ unsigned int BlueDragon_GetRangeFactor(const char* key, const int val)
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
|
||||
sys_err("BlueDragon: no min value set %s", key);
|
||||
SPDLOG_ERROR("BlueDragon: no min value set {}", key);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -126,7 +126,7 @@ unsigned int BlueDragon_GetRangeFactor(const char* key, const int val)
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
|
||||
sys_err("BlueDragon: no max value set %s", key);
|
||||
SPDLOG_ERROR("BlueDragon: no max value set {}", key);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ unsigned int BlueDragon_GetRangeFactor(const char* key, const int val)
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
|
||||
sys_err("BlueDragon: no pct value set %s", key);
|
||||
SPDLOG_ERROR("BlueDragon: no pct value set {}", key);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -184,7 +184,7 @@ unsigned int BlueDragon_GetIndexFactor(const char* container, const size_t idx,
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
|
||||
sys_err("BlueDragon: no required table %s", key);
|
||||
SPDLOG_ERROR("BlueDragon: no required table {}", key);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -194,7 +194,7 @@ unsigned int BlueDragon_GetIndexFactor(const char* container, const size_t idx,
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
|
||||
sys_err("BlueDragon: wrong table index %s %d", key, idx);
|
||||
SPDLOG_ERROR("BlueDragon: wrong table index {} {}", key, idx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -205,7 +205,7 @@ unsigned int BlueDragon_GetIndexFactor(const char* container, const size_t idx,
|
||||
{
|
||||
lua_settop( L, stack_top );
|
||||
|
||||
sys_err("BlueDragon: no min value set %s", key);
|
||||
SPDLOG_ERROR("BlueDragon: no min value set {}", key);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ struct FSkillBreath
|
||||
|
||||
if ((signed)BlueDragon_GetSkillFactor(2, "Skill0", "damage_area") < DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()))
|
||||
{
|
||||
sys_log(0, "BlueDragon: Breath too far (%d)", DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()) );
|
||||
SPDLOG_DEBUG("BlueDragon: Breath too far ({})", DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()) );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -124,7 +124,7 @@ struct FSkillBreath
|
||||
|
||||
ch->Damage( pAttacker, dam, DAMAGE_TYPE_ICE );
|
||||
|
||||
sys_log(0, "BlueDragon: Breath to %s pct(%d) dam(%d) overlap(%d)", ch->GetName(), pct, dam, overlapDamageCount);
|
||||
SPDLOG_DEBUG("BlueDragon: Breath to {} pct({}) dam({}) overlap({})", ch->GetName(), pct, dam, overlapDamageCount);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -155,7 +155,7 @@ struct FSkillWeakBreath
|
||||
|
||||
if ((signed)BlueDragon_GetSkillFactor(2, "Skill1", "damage_area") < DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()))
|
||||
{
|
||||
sys_log(0, "BlueDragon: Breath too far (%d)", DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()) );
|
||||
SPDLOG_DEBUG("BlueDragon: Breath too far ({})", DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()) );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -166,7 +166,7 @@ struct FSkillWeakBreath
|
||||
|
||||
ch->Damage( pAttacker, dam, DAMAGE_TYPE_ICE );
|
||||
|
||||
sys_log(0, "BlueDragon: WeakBreath to %s addPct(%d) dam(%d)", ch->GetName(), addPct, dam);
|
||||
SPDLOG_DEBUG("BlueDragon: WeakBreath to {} addPct({}) dam({})", ch->GetName(), addPct, dam);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -209,7 +209,7 @@ struct FSkillEarthQuake
|
||||
|
||||
if ((signed)BlueDragon_GetSkillFactor(2, "Skill2", "damage_area") < DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()))
|
||||
{
|
||||
sys_log(0, "BlueDragon: Breath too far (%d)", DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()) );
|
||||
SPDLOG_DEBUG("BlueDragon: Breath too far ({})", DISTANCE_APPROX(pAttacker->GetX()-ch->GetX(), pAttacker->GetY()-ch->GetY()) );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -274,7 +274,7 @@ struct FSkillEarthQuake
|
||||
|
||||
SkillAttackAffect( ch, 1000, IMMUNE_STUN, AFFECT_STUN, POINT_NONE, 0, AFF_STUN, sec, "BDRAGON_STUN" );
|
||||
|
||||
sys_log(0, "BlueDragon: EarthQuake to %s addPct(%d) dam(%d) sec(%d)", ch->GetName(), addPct, dam, sec);
|
||||
SPDLOG_DEBUG("BlueDragon: EarthQuake to {} addPct({}) dam({}) sec({})", ch->GetName(), addPct, dam, sec);
|
||||
|
||||
|
||||
VECTOR vec;
|
||||
|
@ -37,7 +37,7 @@ bool CClientPackageCryptInfo::LoadPackageCryptFile( const char* pCryptFile )
|
||||
|
||||
if (0 == iCryptKeySize)
|
||||
{
|
||||
sys_log(0, "[PackageCryptInfo] failed to load crypt key. (file: %s, key size: %d)", pCryptFile, iCryptKeySize);
|
||||
SPDLOG_WARN("[PackageCryptInfo] failed to load crypt key. (file: {}, key size: {})", pCryptFile, iCryptKeySize);
|
||||
m_nCryptKeyPackageCnt -= iPackageCnt;
|
||||
}
|
||||
else
|
||||
@ -47,7 +47,7 @@ bool CClientPackageCryptInfo::LoadPackageCryptFile( const char* pCryptFile )
|
||||
|
||||
memcpy( &m_vecPackageCryptKeys[nCurKeySize], &iCryptKeySize, sizeof(int));
|
||||
fread( &m_vecPackageCryptKeys[nCurKeySize + sizeof(int)], sizeof(BYTE), iCryptKeySize, fp );
|
||||
sys_log(0, "[PackageCryptInfo] %s loaded. (key size: %d, count: %d, total: %d)", pCryptFile, iCryptKeySize, iPackageCnt, m_nCryptKeyPackageCnt);
|
||||
SPDLOG_WARN("[PackageCryptInfo] {} loaded. (key size: {}, count: {}, total: {})", pCryptFile, iCryptKeySize, iPackageCnt, m_nCryptKeyPackageCnt);
|
||||
}
|
||||
}
|
||||
|
||||
@ -81,7 +81,7 @@ bool CClientPackageCryptInfo::LoadPackageCryptFile( const char* pCryptFile )
|
||||
|
||||
fread(&dwSDBFileCnt, sizeof(DWORD), 1, fp);
|
||||
|
||||
sys_log(0, "[PackageCryptInfo] SDB Loaded. (Name Hash : %d, Stream Size: %d, File Count: %d)", dwPackageNameHash,dwPackageStreamSize, dwSDBFileCnt);
|
||||
SPDLOG_INFO("[PackageCryptInfo] SDB Loaded. (Name Hash : {}, Stream Size: {}, File Count: {})", dwPackageNameHash,dwPackageStreamSize, dwSDBFileCnt);
|
||||
|
||||
for( int j = 0; j < (int)dwSDBFileCnt; ++j )
|
||||
{
|
||||
@ -91,7 +91,7 @@ bool CClientPackageCryptInfo::LoadPackageCryptFile( const char* pCryptFile )
|
||||
strRelatedMapName.resize( dwMapNameSize );
|
||||
fread(&strRelatedMapName[0], sizeof(BYTE), dwMapNameSize, fp);
|
||||
|
||||
sys_log(0, "[PackageCryptInfo] \t SDB each file info loaded.(MapName: %s, NameHash: %X)", strRelatedMapName.c_str(), dwFileNameHash);
|
||||
SPDLOG_INFO("[PackageCryptInfo] \t SDB each file info loaded.(MapName: {}, NameHash: {})", strRelatedMapName.c_str(), dwFileNameHash);
|
||||
|
||||
BYTE bSDBStreamSize;
|
||||
std::vector<BYTE> vecSDBStream;
|
||||
@ -152,16 +152,16 @@ bool CClientPackageCryptInfo::LoadPackageCryptInfo( const char* pCryptInfoDir )
|
||||
//if (strncmp( &(pDirEnt->d_name[0]), szPrefixCryptInfoFile, strlen(szPrefixCryptInfoFile)) )
|
||||
if (std::string::npos == std::string(pDirEnt->d_name).find(szPrefixCryptInfoFile))
|
||||
{
|
||||
sys_log(0, "[PackageCryptInfo] %s is not crypt file. pass!", pDirEnt->d_name);
|
||||
SPDLOG_DEBUG("[PackageCryptInfo] {} is not crypt file. pass!", pDirEnt->d_name);
|
||||
continue;
|
||||
}
|
||||
|
||||
std::string strFullPathName = std::string(pCryptInfoDir) + std::string(pDirEnt->d_name);
|
||||
|
||||
sys_log(0, "[PackageCryptInfo] Try to load crypt file: %s", strFullPathName.c_str());
|
||||
SPDLOG_DEBUG("[PackageCryptInfo] Try to load crypt file: {}", strFullPathName.c_str());
|
||||
|
||||
if (false == LoadPackageCryptFile( strFullPathName.c_str() ))
|
||||
sys_err("[PackageCryptInfo] Failed to load %s", strFullPathName.c_str());
|
||||
SPDLOG_DEBUG("[PackageCryptInfo] Failed to load {}", strFullPathName.c_str());
|
||||
}
|
||||
|
||||
closedir(pDir);
|
||||
@ -207,15 +207,13 @@ bool CClientPackageCryptInfo::GetRelatedMapSDBStreams(const char* pMapName, BYTE
|
||||
TPackageSDBMap::iterator it = m_mapPackageSDB.find( strLowerMapName.c_str() );
|
||||
if( it == m_mapPackageSDB.end() || it->second.vecSDBInfos.size() == 0 )
|
||||
{
|
||||
//sys_err("GetRelatedMapSDBStreams Failed(%s)", strLowerMapName.c_str());
|
||||
SPDLOG_ERROR("GetRelatedMapSDBStreams Failed({})", strLowerMapName.c_str());
|
||||
return false;
|
||||
}
|
||||
|
||||
*ppData = it->second.GetSerializedStream();
|
||||
iDataSize = it->second.GetSize();
|
||||
|
||||
//sys_log(0, "GetRelatedMapSDBStreams Size(%d)", iDataSize);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -84,7 +84,7 @@ EVENTFUNC( DragonLair_Collapse_Event )
|
||||
|
||||
if ( pInfo == NULL )
|
||||
{
|
||||
sys_err( "DragonLair_Collapse_Event> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("DragonLair_Collapse_Event> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -146,7 +146,7 @@ DWORD CDragonLair::GetEstimatedTime() const
|
||||
|
||||
void CDragonLair::OnDragonDead(LPCHARACTER pDragon)
|
||||
{
|
||||
sys_log(0, "DragonLair: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7BE><EFBFBD>ȿ");
|
||||
SPDLOG_DEBUG("DragonLair: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><D7BE><EFBFBD>ȿ");
|
||||
|
||||
LogManager::instance().DragonSlayLog( GuildID_, pDragon->GetMobTable().dwVnum, StartTime_, get_global_time() );
|
||||
}
|
||||
@ -174,7 +174,7 @@ bool CDragonLairManager::Start(int MapIndexFrom, int BaseMapIndex, DWORD GuildID
|
||||
{
|
||||
int instanceMapIndex = SECTREE_MANAGER::instance().CreatePrivateMap(BaseMapIndex);
|
||||
if (instanceMapIndex == 0) {
|
||||
sys_err("CDragonLairManager::Start() : no private map index available");
|
||||
SPDLOG_ERROR("CDragonLairManager::Start() : no private map index available");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -203,8 +203,6 @@ bool CDragonLairManager::Start(int MapIndexFrom, int BaseMapIndex, DWORD GuildID
|
||||
|
||||
strMapBasePath += "/" + pRegionInfo->strMapName + "/instance_regen.txt";
|
||||
|
||||
sys_log(0, "%s", strMapBasePath.c_str());
|
||||
|
||||
regen_do(strMapBasePath.c_str(), instanceMapIndex, pTargetMap->m_setting.iBaseX, pTargetMap->m_setting.iBaseY, NULL, true);
|
||||
|
||||
return true;
|
||||
|
@ -147,7 +147,7 @@ bool DSManager::RefreshItemAttributes(LPITEM pDS)
|
||||
{
|
||||
if (!pDS->IsDragonSoul())
|
||||
{
|
||||
sys_err ("This item(ID : %d) is not DragonSoul.", pDS->GetID());
|
||||
SPDLOG_ERROR("This item(ID : {}) is not DragonSoul.", pDS->GetID());
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -159,13 +159,13 @@ bool DSManager::RefreshItemAttributes(LPITEM pDS)
|
||||
|
||||
if (!m_pTable->GetBasicApplys(ds_type, vec_basic_applys))
|
||||
{
|
||||
sys_err ("There is no BasicApply about %d type dragon soul.", ds_type);
|
||||
SPDLOG_ERROR("There is no BasicApply about {} type dragon soul.", ds_type);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_pTable->GetAdditionalApplys(ds_type, vec_addtional_applys))
|
||||
{
|
||||
sys_err ("There is no AdditionalApply about %d type dragon soul.", ds_type);
|
||||
SPDLOG_ERROR("There is no AdditionalApply about {} type dragon soul.", ds_type);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -173,7 +173,7 @@ bool DSManager::RefreshItemAttributes(LPITEM pDS)
|
||||
int basic_apply_num, add_min, add_max;
|
||||
if (!m_pTable->GetApplyNumSettings(ds_type, grade_idx, basic_apply_num, add_min, add_max))
|
||||
{
|
||||
sys_err ("In ApplyNumSettings, INVALID VALUES Group type(%d), GRADE idx(%d)", ds_type, grade_idx);
|
||||
SPDLOG_ERROR("In ApplyNumSettings, INVALID VALUES Group type({}), GRADE idx({})", ds_type, grade_idx);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -217,7 +217,7 @@ bool DSManager::PutAttributes(LPITEM pDS)
|
||||
{
|
||||
if (!pDS->IsDragonSoul())
|
||||
{
|
||||
sys_err ("This item(ID : %d) is not DragonSoul.", pDS->GetID());
|
||||
SPDLOG_ERROR("This item(ID : {}) is not DragonSoul.", pDS->GetID());
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -229,12 +229,12 @@ bool DSManager::PutAttributes(LPITEM pDS)
|
||||
|
||||
if (!m_pTable->GetBasicApplys(ds_type, vec_basic_applys))
|
||||
{
|
||||
sys_err ("There is no BasicApply about %d type dragon soul.", ds_type);
|
||||
SPDLOG_ERROR("There is no BasicApply about {} type dragon soul.", ds_type);
|
||||
return false;
|
||||
}
|
||||
if (!m_pTable->GetAdditionalApplys(ds_type, vec_addtional_applys))
|
||||
{
|
||||
sys_err ("There is no AdditionalApply about %d type dragon soul.", ds_type);
|
||||
SPDLOG_ERROR("There is no AdditionalApply about {} type dragon soul.", ds_type);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -242,7 +242,7 @@ bool DSManager::PutAttributes(LPITEM pDS)
|
||||
int basic_apply_num, add_min, add_max;
|
||||
if (!m_pTable->GetApplyNumSettings(ds_type, grade_idx, basic_apply_num, add_min, add_max))
|
||||
{
|
||||
sys_err ("In ApplyNumSettings, INVALID VALUES Group type(%d), GRADE idx(%d)", ds_type, grade_idx);
|
||||
SPDLOG_ERROR("In ApplyNumSettings, INVALID VALUES Group type({}), GRADE idx({})", ds_type, grade_idx);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -276,7 +276,7 @@ bool DSManager::PutAttributes(LPITEM pDS)
|
||||
}
|
||||
if (!MakeDistinctRandomNumberSet(list_probs, random_set))
|
||||
{
|
||||
sys_err ("MakeDistinctRandomNumberSet error.");
|
||||
SPDLOG_ERROR("MakeDistinctRandomNumberSet error.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -350,7 +350,7 @@ bool DSManager::ExtractDragonHeart(LPCHARACTER ch, LPITEM pItem, LPITEM pExtract
|
||||
float sum = 0.f;
|
||||
if (-1 == idx)
|
||||
{
|
||||
sys_err ("Gamble is failed. ds_type(%d), grade_idx(%d)", ds_type, grade_idx);
|
||||
SPDLOG_ERROR("Gamble is failed. ds_type({}), grade_idx({})", ds_type, grade_idx);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -375,8 +375,8 @@ bool DSManager::ExtractDragonHeart(LPCHARACTER ch, LPITEM pItem, LPITEM pExtract
|
||||
|
||||
if (NULL == pDH)
|
||||
{
|
||||
sys_err ("Cannot create DRAGON_HEART(%d).", DRAGON_HEART_VNUM);
|
||||
return NULL;
|
||||
SPDLOG_ERROR("Cannot create DRAGON_HEART({}).", (int) DRAGON_HEART_VNUM);
|
||||
return false;
|
||||
}
|
||||
|
||||
pItem->SetCount(pItem->GetCount() - 1);
|
||||
@ -402,7 +402,7 @@ bool DSManager::PullOut(LPCHARACTER ch, TItemPos DestCell, LPITEM& pItem, LPITEM
|
||||
{
|
||||
if (NULL == ch || NULL == pItem)
|
||||
{
|
||||
sys_err ("NULL POINTER. ch(%p) or pItem(%p)", ch, pItem);
|
||||
SPDLOG_ERROR("NULL POINTER. ch({}) or pItem({})", (void*) ch, (void*) pItem);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -514,7 +514,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
|
||||
|
||||
if (!ch->DragonSoul_RefineWindow_CanRefine())
|
||||
{
|
||||
sys_err ("%s do not activate DragonSoulRefineWindow. But how can he come here?", ch->GetName());
|
||||
SPDLOG_ERROR("{} do not activate DragonSoulRefineWindow. But how can he come here?", ch->GetName());
|
||||
ch->ChatPacket(CHAT_TYPE_INFO, "[SYSTEM ERROR]You cannot upgrade dragon soul without refine window.");
|
||||
return false;
|
||||
}
|
||||
@ -595,7 +595,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
|
||||
// Ŭ<><EFBFBD> <20>ѹ<EFBFBD> <20><><EFBFBD><EFBFBD> üũ<C3BC><C5A9> <20>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> count != need_count<6E><74><EFBFBD><EFBFBD> invalid Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD> ũ<><C5A9>.
|
||||
if (count != need_count)
|
||||
{
|
||||
sys_err ("Possiblity of invalid client. Name %s", ch->GetName());
|
||||
SPDLOG_ERROR("Possiblity of invalid client. Name {}", ch->GetName());
|
||||
BYTE bSubHeader = count < need_count? DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL : DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL;
|
||||
SendRefineResultPacket(ch, bSubHeader, NPOS);
|
||||
return false;
|
||||
@ -610,7 +610,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
|
||||
|
||||
if (-1 == (result_grade = Gamble(vec_probs)))
|
||||
{
|
||||
sys_err ("Gamble failed. See RefineGardeTables' probabilities");
|
||||
SPDLOG_ERROR("Gamble failed. See RefineGardeTables' probabilities");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -618,7 +618,7 @@ bool DSManager::DoRefineGrade(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL
|
||||
|
||||
if (NULL == pResultItem)
|
||||
{
|
||||
sys_err ("INVALID DRAGON SOUL(%d)", MakeDragonSoulVnum(ds_type, (BYTE)result_grade, 0, 0));
|
||||
SPDLOG_ERROR("INVALID DRAGON SOUL({})", MakeDragonSoulVnum(ds_type, (BYTE)result_grade, 0, 0));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -674,7 +674,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
|
||||
|
||||
if (!ch->DragonSoul_RefineWindow_CanRefine())
|
||||
{
|
||||
sys_err ("%s do not activate DragonSoulRefineWindow. But how can he come here?", ch->GetName());
|
||||
SPDLOG_ERROR("{} do not activate DragonSoulRefineWindow. But how can he come here?", ch->GetName());
|
||||
ch->ChatPacket(CHAT_TYPE_INFO, "[SYSTEM ERROR]You cannot use dragon soul refine window.");
|
||||
return false;
|
||||
}
|
||||
@ -747,7 +747,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
|
||||
// Ŭ<><EFBFBD> <20>ѹ<EFBFBD> <20><><EFBFBD><EFBFBD> üũ<C3BC><C5A9> <20>ϱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> count != need_count<6E><74><EFBFBD><EFBFBD> invalid Ŭ<><C5AC><EFBFBD><EFBFBD> <20><><EFBFBD>ɼ<EFBFBD><C9BC><EFBFBD> ũ<><C5A9>.
|
||||
if (count != need_count)
|
||||
{
|
||||
sys_err ("Possiblity of invalid client. Name %s", ch->GetName());
|
||||
SPDLOG_ERROR("Possiblity of invalid client. Name {}", ch->GetName());
|
||||
BYTE bSubHeader = count < need_count? DS_SUB_HEADER_REFINE_FAIL_NOT_ENOUGH_MATERIAL : DS_SUB_HEADER_REFINE_FAIL_TOO_MUCH_MATERIAL;
|
||||
SendRefineResultPacket(ch, bSubHeader, NPOS);
|
||||
return false;
|
||||
@ -764,7 +764,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
|
||||
|
||||
if (-1 == (result_step = Gamble(vec_probs)))
|
||||
{
|
||||
sys_err ("Gamble failed. See RefineStepTables' probabilities");
|
||||
SPDLOG_ERROR("Gamble failed. See RefineStepTables' probabilities");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -772,7 +772,7 @@ bool DSManager::DoRefineStep(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_SOUL_
|
||||
|
||||
if (NULL == pResultItem)
|
||||
{
|
||||
sys_err ("INVALID DRAGON SOUL(%d)", MakeDragonSoulVnum(ds_type, grade_idx, (BYTE)result_step, 0));
|
||||
SPDLOG_ERROR("INVALID DRAGON SOUL({})", MakeDragonSoulVnum(ds_type, grade_idx, (BYTE)result_step, 0));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -835,7 +835,7 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
|
||||
|
||||
if (!ch->DragonSoul_RefineWindow_CanRefine())
|
||||
{
|
||||
sys_err ("%s do not activate DragonSoulRefineWindow. But how can he come here?", ch->GetName());
|
||||
SPDLOG_ERROR("{} do not activate DragonSoulRefineWindow. But how can he come here?", ch->GetName());
|
||||
ch->ChatPacket(CHAT_TYPE_INFO, "[SYSTEM ERROR]You cannot use dragon soul refine window.");
|
||||
return false;
|
||||
}
|
||||
@ -953,7 +953,7 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
|
||||
pResult = ITEM_MANAGER::instance().CreateItem(MakeDragonSoulVnum(bType, bGrade, bStep, bStrength + 1));
|
||||
if (NULL == pResult)
|
||||
{
|
||||
sys_err ("INVALID DRAGON SOUL(%d)", MakeDragonSoulVnum(bType, bGrade, bStep, bStrength + 1));
|
||||
SPDLOG_ERROR("INVALID DRAGON SOUL({})", MakeDragonSoulVnum(bType, bGrade, bStep, bStrength + 1));
|
||||
return false;
|
||||
}
|
||||
pDragonSoul->RemoveFromCharacter();
|
||||
@ -978,7 +978,7 @@ bool DSManager::DoRefineStrength(LPCHARACTER ch, TItemPos (&aItemPoses)[DRAGON_S
|
||||
pResult = ITEM_MANAGER::instance().CreateItem(MakeDragonSoulVnum(bType, bGrade, bStep, bStrength - 1));
|
||||
if (NULL == pResult)
|
||||
{
|
||||
sys_err ("INVALID DRAGON SOUL(%d)", MakeDragonSoulVnum(bType, bGrade, bStep, bStrength - 1));
|
||||
SPDLOG_ERROR("INVALID DRAGON SOUL({})", MakeDragonSoulVnum(bType, bGrade, bStep, bStrength - 1));
|
||||
return false;
|
||||
}
|
||||
pDragonSoul->CopyAttributeTo(pResult);
|
||||
|
@ -14,7 +14,7 @@ static Pixel * LoadOldGuildMarkImageFile()
|
||||
|
||||
if (!fp)
|
||||
{
|
||||
sys_err("cannot open %s", OLD_MARK_INDEX_FILENAME);
|
||||
SPDLOG_ERROR("cannot open {}", OLD_MARK_INDEX_FILENAME);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -69,7 +69,7 @@ bool GuildMarkConvert(const std::vector<DWORD> & vecGuildID)
|
||||
pkImage->PutData(0, 0, 512, 512, oldImagePtr);
|
||||
pkImage->Save("guild_mark_real.tga");
|
||||
*/
|
||||
sys_log(0, "Guild Mark Converting Start.");
|
||||
SPDLOG_INFO("Guild Mark Converting Start.");
|
||||
|
||||
char line[256];
|
||||
DWORD guild_id;
|
||||
@ -82,7 +82,7 @@ bool GuildMarkConvert(const std::vector<DWORD> & vecGuildID)
|
||||
|
||||
if (find(vecGuildID.begin(), vecGuildID.end(), guild_id) == vecGuildID.end())
|
||||
{
|
||||
sys_log(0, " skipping guild ID %u", guild_id);
|
||||
SPDLOG_INFO(" skipping guild ID {}", guild_id);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ bool GuildMarkConvert(const std::vector<DWORD> & vecGuildID)
|
||||
|
||||
if (row >= 42)
|
||||
{
|
||||
sys_err("invalid mark_id %u", mark_id);
|
||||
SPDLOG_ERROR("invalid mark_id {}", mark_id);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -128,7 +128,7 @@ bool GuildMarkConvert(const std::vector<DWORD> & vecGuildID)
|
||||
system("move /Y guild_mark.tga guild_mark.tga.removable");
|
||||
#endif
|
||||
|
||||
sys_log(0, "Guild Mark Converting Complete.");
|
||||
SPDLOG_INFO("Guild Mark Converting Complete.");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -56,7 +56,7 @@ bool CGuildMarkImage::Save(const char* c_szFileName)
|
||||
|
||||
bool CGuildMarkImage::Build(const char * c_szFileName)
|
||||
{
|
||||
sys_log(0, "GuildMarkImage: creating new file %s", c_szFileName);
|
||||
SPDLOG_INFO("GuildMarkImage: creating new file {}", c_szFileName);
|
||||
|
||||
Destroy();
|
||||
Create();
|
||||
@ -70,7 +70,7 @@ bool CGuildMarkImage::Build(const char * c_szFileName)
|
||||
|
||||
if (!ilTexImage(WIDTH, HEIGHT, 1, 4, IL_BGRA, IL_UNSIGNED_BYTE, data))
|
||||
{
|
||||
sys_err("GuildMarkImage: cannot initialize image");
|
||||
SPDLOG_ERROR("GuildMarkImage: cannot initialize image");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -95,19 +95,19 @@ bool CGuildMarkImage::Load(const char * c_szFileName)
|
||||
|
||||
if (!ilLoad(IL_TYPE_UNKNOWN, (const ILstring) c_szFileName))
|
||||
{
|
||||
sys_err("GuildMarkImage: %s cannot open file.", c_szFileName);
|
||||
SPDLOG_ERROR("GuildMarkImage: {} cannot open file.", c_szFileName);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ilGetInteger(IL_IMAGE_WIDTH) != WIDTH)
|
||||
{
|
||||
sys_err("GuildMarkImage: %s width must be %u", c_szFileName, WIDTH);
|
||||
SPDLOG_ERROR("GuildMarkImage: {} width must be {}", c_szFileName, (int) WIDTH);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ilGetInteger(IL_IMAGE_HEIGHT) != HEIGHT)
|
||||
{
|
||||
sys_err("GuildMarkImage: %s height must be %u", c_szFileName, HEIGHT);
|
||||
SPDLOG_ERROR("GuildMarkImage: {} height must be {}", c_szFileName, (int) HEIGHT);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -139,7 +139,7 @@ bool CGuildMarkImage::SaveMark(DWORD posMark, BYTE * pbImage)
|
||||
{
|
||||
if (posMark >= MARK_TOTAL_COUNT)
|
||||
{
|
||||
sys_err("GuildMarkImage::CopyMarkFromData: Invalid mark position %u", posMark);
|
||||
SPDLOG_ERROR("GuildMarkImage::CopyMarkFromData: Invalid mark position {}", posMark);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -178,13 +178,13 @@ bool CGuildMarkImage::SaveBlockFromCompressedData(DWORD posBlock, const BYTE * p
|
||||
|
||||
if (LZO_E_OK != lzo1x_decompress_safe(pbComp, dwCompSize, (BYTE *) apxBuf, &sizeBuf, CLZO::Instance().GetWorkMemory()))
|
||||
{
|
||||
sys_err("GuildMarkImage::CopyBlockFromCompressedData: cannot decompress, compressed size = %u", dwCompSize);
|
||||
SPDLOG_ERROR("GuildMarkImage::CopyBlockFromCompressedData: cannot decompress, compressed size = {}", dwCompSize);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (sizeBuf != sizeof(apxBuf))
|
||||
{
|
||||
sys_err("GuildMarkImage::CopyBlockFromCompressedData: image corrupted, decompressed size = %u", sizeBuf);
|
||||
SPDLOG_ERROR("GuildMarkImage::CopyBlockFromCompressedData: image corrupted, decompressed size = {}", sizeBuf);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -200,7 +200,7 @@ bool CGuildMarkImage::SaveBlockFromCompressedData(DWORD posBlock, const BYTE * p
|
||||
void CGuildMarkImage::BuildAllBlocks() // <20>̹<EFBFBD><CCB9><EFBFBD> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD>ȭ
|
||||
{
|
||||
Pixel apxBuf[SGuildMarkBlock::SIZE];
|
||||
sys_log(0, "GuildMarkImage::BuildAllBlocks");
|
||||
SPDLOG_INFO("GuildMarkImage::BuildAllBlocks");
|
||||
|
||||
for (UINT row = 0; row < BLOCK_ROW_COUNT; ++row)
|
||||
for (UINT col = 0; col < BLOCK_COL_COUNT; ++col)
|
||||
@ -290,10 +290,9 @@ void SGuildMarkBlock::Compress(const Pixel * pxBuf)
|
||||
|
||||
if (LZO_E_OK != lzo1x_1_compress((const BYTE *) pxBuf, sizeof(Pixel) * SGuildMarkBlock::SIZE, m_abCompBuf, &m_sizeCompBuf, CLZO::Instance().GetWorkMemory()))
|
||||
{
|
||||
sys_err("SGuildMarkBlock::Compress: Error! %u > %u", sizeof(Pixel) * SGuildMarkBlock::SIZE, m_sizeCompBuf);
|
||||
SPDLOG_ERROR("SGuildMarkBlock::Compress: Error! {} > {}", sizeof(Pixel) * SGuildMarkBlock::SIZE, m_sizeCompBuf);
|
||||
return;
|
||||
}
|
||||
|
||||
//sys_log(0, "SGuildMarkBlock::Compress %u > %u", sizeof(Pixel) * SGuildMarkBlock::SIZE, m_sizeCompBuf);
|
||||
m_crc = GetCRC32((const char *) pxBuf, sizeof(Pixel) * SGuildMarkBlock::SIZE);
|
||||
}
|
||||
|
@ -80,7 +80,7 @@ bool CGuildMarkManager::SaveMarkIndex()
|
||||
|
||||
if (!fp)
|
||||
{
|
||||
sys_err("MarkManager::SaveMarkIndex: cannot open index file.");
|
||||
SPDLOG_ERROR("MarkManager::SaveMarkIndex: cannot open index file.");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -88,7 +88,7 @@ bool CGuildMarkManager::SaveMarkIndex()
|
||||
fprintf(fp, "%u %u\n", it->first, it->second);
|
||||
|
||||
fclose(fp);
|
||||
sys_log(0, "MarkManager::SaveMarkIndex: index count %d", m_mapGID_MarkID.size());
|
||||
SPDLOG_INFO("MarkManager::SaveMarkIndex: index count {}", m_mapGID_MarkID.size());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -116,7 +116,7 @@ void CGuildMarkManager::SaveMarkImage(DWORD imgIdx)
|
||||
|
||||
if (GetMarkImageFilename(imgIdx, path))
|
||||
if (!__GetImage(imgIdx)->Save(path.c_str()))
|
||||
sys_err("%s Save failed\n", path.c_str());
|
||||
SPDLOG_ERROR("{} Save failed", path.c_str());
|
||||
}
|
||||
|
||||
CGuildMarkImage * CGuildMarkManager::__GetImage(DWORD imgIdx)
|
||||
@ -152,7 +152,6 @@ bool CGuildMarkManager::AddMarkIDByGuildID(DWORD guildID, DWORD markID)
|
||||
if (markID >= MAX_IMAGE_COUNT * CGuildMarkImage::MARK_TOTAL_COUNT)
|
||||
return false;
|
||||
|
||||
//sys_log(0, "MarkManager: guild_id=%d mark_id=%d", guildID, markID);
|
||||
m_mapGID_MarkID.insert(std::map<DWORD, DWORD>::value_type(guildID, markID));
|
||||
m_setFreeMarkID.erase(markID);
|
||||
return true;
|
||||
@ -217,14 +216,14 @@ DWORD CGuildMarkManager::SaveMark(DWORD guildID, BYTE * pbMarkImage)
|
||||
{
|
||||
if ((idMark = __AllocMarkID(guildID)) == INVALID_MARK_ID)
|
||||
{
|
||||
sys_err("CGuildMarkManager: cannot alloc mark id %u", guildID);
|
||||
SPDLOG_ERROR("CGuildMarkManager: cannot alloc mark id {}", guildID);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
sys_log(0, "SaveMark: mark id alloc %u", idMark);
|
||||
SPDLOG_INFO("SaveMark: mark id alloc {}", idMark);
|
||||
}
|
||||
else
|
||||
sys_log(0, "SaveMark: mark id found %u", idMark);
|
||||
SPDLOG_INFO("SaveMark: mark id found {}", idMark);
|
||||
|
||||
DWORD imgIdx = (idMark / CGuildMarkImage::MARK_TOTAL_COUNT);
|
||||
CGuildMarkImage * pkImage = __GetImage(imgIdx);
|
||||
@ -267,7 +266,7 @@ void CGuildMarkManager::GetDiffBlocks(DWORD imgIdx, const DWORD * crcList, std::
|
||||
// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>̹<EFBFBD><CCB9><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
if (m_mapIdx_Image.end() == m_mapIdx_Image.find(imgIdx))
|
||||
{
|
||||
sys_err("invalid idx %u", imgIdx);
|
||||
SPDLOG_ERROR("invalid idx {}", imgIdx);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -294,7 +293,7 @@ bool CGuildMarkManager::GetBlockCRCList(DWORD imgIdx, DWORD * crcList)
|
||||
// Ŭ<><C5AC><EFBFBD>̾<EFBFBD>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>̹<EFBFBD><CCB9><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
if (m_mapIdx_Image.end() == m_mapIdx_Image.find(imgIdx))
|
||||
{
|
||||
sys_err("invalid idx %u", imgIdx);
|
||||
SPDLOG_ERROR("invalid idx {}", imgIdx);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -354,7 +353,7 @@ void CGuildMarkManager::SaveSymbol(const char* filename)
|
||||
FILE* fp = fopen(filename, "wb");
|
||||
if (!fp)
|
||||
{
|
||||
sys_err("Cannot open Symbol file (name: %s)", filename);
|
||||
SPDLOG_ERROR("Cannot open Symbol file (name: {})", filename);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -375,7 +374,7 @@ void CGuildMarkManager::SaveSymbol(const char* filename)
|
||||
|
||||
void CGuildMarkManager::UploadSymbol(DWORD guildID, int iSize, const BYTE* pbyData)
|
||||
{
|
||||
sys_log(0, "GuildSymbolUpload guildID %u Size %d", guildID, iSize);
|
||||
SPDLOG_INFO("GuildSymbolUpload guildID {} Size {}", guildID, iSize);
|
||||
|
||||
if (m_mapSymbol.find(guildID) == m_mapSymbol.end())
|
||||
m_mapSymbol.insert(std::make_pair(guildID, TGuildSymbol()));
|
||||
|
@ -90,7 +90,7 @@ bool COXEventManager::Enter(LPCHARACTER pkChar)
|
||||
{
|
||||
if (GetStatus() == OXEVENT_FINISH)
|
||||
{
|
||||
sys_log(0, "OXEVENT : map finished. but char enter. %s", pkChar->GetName());
|
||||
SPDLOG_WARN("OXEVENT : map finished. but char enter. {}", pkChar->GetName());
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -106,7 +106,7 @@ bool COXEventManager::Enter(LPCHARACTER pkChar)
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_log(0, "OXEVENT : wrong pos enter %d %d", pos.x, pos.y);
|
||||
SPDLOG_ERROR("OXEVENT : wrong pos enter {} {}", pos.x, pos.y);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ EVENTFUNC(oxevent_timer)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "oxevent_timer> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("oxevent_timer> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -30,7 +30,7 @@ EVENTFUNC(petsystem_update_event)
|
||||
petsystem_event_info* info = dynamic_cast<petsystem_event_info*>( event->info );
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "check_speedhack_event> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("check_speedhack_event> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -166,7 +166,7 @@ DWORD CPetActor::Summon(const char* petName, LPITEM pSummonItem, bool bSpawnFar)
|
||||
|
||||
if (0 == m_pkChar)
|
||||
{
|
||||
sys_err("[CPetSystem::Summon] Failed to summon the pet. (vnum: %d)", m_dwVnum);
|
||||
SPDLOG_ERROR("[CPetSystem::Summon] Failed to summon the pet. (vnum: {})", m_dwVnum);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -223,7 +223,7 @@ bool CPetActor::_UpdateFollowAI()
|
||||
{
|
||||
if (0 == m_pkChar->m_pkMobData)
|
||||
{
|
||||
//sys_err("[CPetActor::_UpdateFollowAI] m_pkChar->m_pkMobData is NULL");
|
||||
SPDLOG_ERROR("[CPetActor::_UpdateFollowAI] m_pkChar->m_pkMobData is NULL");
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -480,14 +480,14 @@ void CPetSystem::DeletePet(DWORD mobVnum)
|
||||
|
||||
if (m_petActorMap.end() == iter)
|
||||
{
|
||||
sys_err("[CPetSystem::DeletePet] Can't find pet on my list (VNUM: %d)", mobVnum);
|
||||
SPDLOG_ERROR("[CPetSystem::DeletePet] Can't find pet on my list (VNUM: {})", mobVnum);
|
||||
return;
|
||||
}
|
||||
|
||||
CPetActor* petActor = iter->second;
|
||||
|
||||
if (0 == petActor)
|
||||
sys_err("[CPetSystem::DeletePet] Null Pointer (petActor)");
|
||||
SPDLOG_ERROR("[CPetSystem::DeletePet] Null Pointer (petActor)");
|
||||
else
|
||||
delete petActor;
|
||||
|
||||
@ -508,7 +508,7 @@ void CPetSystem::DeletePet(CPetActor* petActor)
|
||||
}
|
||||
}
|
||||
|
||||
sys_err("[CPetSystem::DeletePet] Can't find petActor(0x%x) on my list(size: %d) ", petActor, m_petActorMap.size());
|
||||
SPDLOG_ERROR("[CPetSystem::DeletePet] Can't find petActor({}) on my list(size: {}) ", (void*) petActor, m_petActorMap.size());
|
||||
}
|
||||
|
||||
void CPetSystem::Unsummon(DWORD vnum, bool bDeleteFromList)
|
||||
@ -517,7 +517,7 @@ void CPetSystem::Unsummon(DWORD vnum, bool bDeleteFromList)
|
||||
|
||||
if (0 == actor)
|
||||
{
|
||||
sys_err("[CPetSystem::GetByVnum(%d)] Null Pointer (petActor)", vnum);
|
||||
SPDLOG_ERROR("[CPetSystem::GetByVnum({})] Null Pointer (petActor)", vnum);
|
||||
return;
|
||||
}
|
||||
actor->Unsummon();
|
||||
@ -576,7 +576,7 @@ CPetActor* CPetSystem::GetByVID(DWORD vid) const
|
||||
|
||||
if (0 == petActor)
|
||||
{
|
||||
sys_err("[CPetSystem::GetByVID(%d)] Null Pointer (petActor)", vid);
|
||||
SPDLOG_ERROR("[CPetSystem::GetByVID({})] Null Pointer (petActor)", vid);
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -26,10 +26,10 @@ bool CSpeedServerManager::Initialize()
|
||||
{
|
||||
for (int i = 1; i < EMPIRE_MAX_NUM; i++)
|
||||
{
|
||||
sys_log (0,"speed manager init");
|
||||
SPDLOG_DEBUG("speed manager init");
|
||||
if(!Empire[i].Initialize (i))
|
||||
{
|
||||
sys_err ("EMPIRE %d Exp Bonus Manager Init fail",i);
|
||||
SPDLOG_ERROR("EMPIRE {} Exp Bonus Manager Init fail",i);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -39,7 +39,7 @@ bool CSpeedServerManager::Initialize()
|
||||
bool CSpeedServerEmpireExp::Initialize (BYTE e)
|
||||
{
|
||||
empire = e;
|
||||
sys_log (0, "empire exp init %d", empire);
|
||||
SPDLOG_DEBUG("empire exp init {}", empire);
|
||||
snprintf (file_name, sizeof(file_name), "%s/exp_bonus_table_%d.txt", LocaleService_GetBasePath().c_str(), empire);
|
||||
|
||||
for (int i = 1; i < 6; i++)
|
||||
@ -66,7 +66,7 @@ bool CSpeedServerEmpireExp::LoadWdayExpTable(int wday, char *str)
|
||||
char *t;
|
||||
char *h, *m, *e;
|
||||
int hour, min, exp;
|
||||
sys_log (0, "str %s", str);
|
||||
SPDLOG_DEBUG("str {}", str);
|
||||
strtok (str, delim);
|
||||
p = strtok (NULL, ";");
|
||||
n = strtok (NULL, ";");
|
||||
@ -78,11 +78,11 @@ bool CSpeedServerEmpireExp::LoadWdayExpTable(int wday, char *str)
|
||||
m = strtok (NULL, delim);
|
||||
if (!str_to_number (hour, h) || !str_to_number (min, m) || !str_to_number (exp, e))
|
||||
{
|
||||
sys_log (0, "h m e : %s %s %s",h, m, e);
|
||||
sys_err ("Invalid argument. Please insert hh:mm exp");
|
||||
SPDLOG_DEBUG("h m e : {} {} {}",h, m, e);
|
||||
SPDLOG_ERROR("Invalid argument. Please insert hh:mm exp");
|
||||
return false;
|
||||
}
|
||||
sys_log (0, "h m e : %s %s %s",h, m, e);
|
||||
SPDLOG_DEBUG("h m e : {} {} {}",h, m, e);
|
||||
|
||||
lst.push_back (HME (hour, min, exp));
|
||||
p = strtok (n, ";");
|
||||
@ -100,7 +100,7 @@ bool CSpeedServerEmpireExp::WriteExpTable()
|
||||
{
|
||||
FILE *fp;
|
||||
|
||||
sys_log (0, "write");
|
||||
SPDLOG_DEBUG("write");
|
||||
if (0==file_name || 0==file_name[0])
|
||||
return false;
|
||||
|
||||
@ -140,7 +140,7 @@ bool CSpeedServerEmpireExp::LoadExpTable()
|
||||
char temp[256];
|
||||
const char *delim = " \t\r\n";
|
||||
|
||||
sys_log (0, "load");
|
||||
SPDLOG_DEBUG("load");
|
||||
if (0==file_name || 0==file_name[0])
|
||||
return false;
|
||||
|
||||
@ -198,7 +198,7 @@ bool CSpeedServerEmpireExp::LoadExpTable()
|
||||
|
||||
v = strtok (temp, delim);
|
||||
v = strtok (NULL, delim);
|
||||
sys_log (0, "holiday %s", v);
|
||||
SPDLOG_DEBUG("holiday {}", v);
|
||||
|
||||
p = strtok (NULL, ";");
|
||||
n = strtok (NULL, ";");
|
||||
@ -210,11 +210,11 @@ bool CSpeedServerEmpireExp::LoadExpTable()
|
||||
m = strtok (NULL, delim);
|
||||
if (!str_to_number (hour, h) || !str_to_number (min, m) || !str_to_number (exp, e))
|
||||
{
|
||||
sys_log (0, "h m e : %s %s %s",h, m, e);
|
||||
sys_err ("Invalid argument. Please insert hh:mm exp");
|
||||
SPDLOG_DEBUG("h m e : {} {} {}",h, m, e);
|
||||
SPDLOG_ERROR("Invalid argument. Please insert hh:mm exp");
|
||||
return false;
|
||||
}
|
||||
sys_log (0, "h m e : %s %s %s",h, m, e);
|
||||
SPDLOG_DEBUG("h m e : {} {} {}",h, m, e);
|
||||
|
||||
lst.push_back (HME (hour, min, exp));
|
||||
p = strtok (n, ";");
|
||||
@ -225,11 +225,11 @@ bool CSpeedServerEmpireExp::LoadExpTable()
|
||||
|| !str_to_number ( mon, strtok (NULL, "."))
|
||||
|| !str_to_number ( day, strtok (NULL, ".")))
|
||||
{
|
||||
sys_err ("Invalid Date");
|
||||
SPDLOG_ERROR("Invalid Date");
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log (0, "y m d %d %d %d",year, mon, day);
|
||||
SPDLOG_DEBUG("y m d {} {} {}",year, mon, day);
|
||||
|
||||
holiday_map.insert (std::pair <Date, std::list <HME> > (Date (year - 1900, mon - 1, day), lst));
|
||||
}
|
||||
@ -265,7 +265,7 @@ void CSpeedServerManager::InitWdayExpTableOfEmpire (BYTE empire, int wday)
|
||||
{
|
||||
if (empire > EMPIRE_MAX_NUM)
|
||||
{
|
||||
sys_err ("invalid empire");
|
||||
SPDLOG_ERROR("invalid empire");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -294,7 +294,7 @@ std::list <HME>& CSpeedServerEmpireExp::GetHolidayExpTable(Date date, bool &is_e
|
||||
else
|
||||
{
|
||||
is_exist = false;
|
||||
sys_err ("Cannot find Holiday %d %d %d",date.year, date.mon, date.day);
|
||||
SPDLOG_ERROR("Cannot find Holiday {} {} {}",date.year, date.mon, date.day);
|
||||
}
|
||||
return it->second;
|
||||
}
|
||||
@ -318,7 +318,7 @@ void CSpeedServerManager::InitHolidayExpTableOfEmpire (BYTE empire, Date date)
|
||||
{
|
||||
if (empire > EMPIRE_MAX_NUM)
|
||||
{
|
||||
sys_err ("invalid empire");
|
||||
SPDLOG_ERROR("invalid empire");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -327,7 +327,7 @@ void CSpeedServerManager::InitHolidayExpTableOfEmpire (BYTE empire, Date date)
|
||||
|
||||
void CSpeedServerEmpireExp::InitHolidayExpTable(Date date)
|
||||
{
|
||||
sys_log (0, "init holiday");
|
||||
SPDLOG_DEBUG("init holiday");
|
||||
std::map <Date, std::list <HME> >::iterator it = holiday_map.find(date);
|
||||
if (it == holiday_map.end())
|
||||
{
|
||||
|
@ -11,7 +11,6 @@
|
||||
#include "char.h"
|
||||
#include "item.h"
|
||||
#include "ani.h"
|
||||
#include "dev_log.h"
|
||||
|
||||
const char* FN_race_name(int race)
|
||||
{
|
||||
@ -141,7 +140,7 @@ bool ANI::load()
|
||||
{
|
||||
if (false == load_one_race(race, dir_name[race]))
|
||||
{
|
||||
sys_err("ANI directory = %s", dir_name[race]);
|
||||
SPDLOG_ERROR("ANI directory = {}", dir_name[race]);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -200,7 +199,7 @@ bool ANI::load_one_race(int race, const char *dir_name)
|
||||
|
||||
for (int weapon = WEAPON_SWORD; weapon < WEAPON_NUM_TYPES; ++weapon)
|
||||
{
|
||||
dev_log(LOG_DEB0, "ANI (%s,%s)", FN_race_name(race), FN_weapon_type(weapon));
|
||||
SPDLOG_TRACE("ANI ({},{})", FN_race_name(race), FN_weapon_type(weapon));
|
||||
|
||||
for (BYTE combo = 1; combo <= 8; ++combo)
|
||||
{
|
||||
@ -212,11 +211,11 @@ bool ANI::load_one_race(int race, const char *dir_name)
|
||||
m_speed[race][1][weapon][combo] = load_one_weapon(dir_name, weapon, combo, true);
|
||||
m_speed[race][1][weapon][0] = std::min(m_speed[race][1][weapon][0], m_speed[race][1][weapon][combo]); // <20>ּҰ<D6BC>
|
||||
|
||||
dev_log(LOG_DEB0, "combo%02d speed=%d horse=%d",
|
||||
SPDLOG_TRACE("combo{:02} speed={} horse={}",
|
||||
combo, m_speed[race][0][weapon][combo], m_speed[race][1][weapon][combo]);
|
||||
}
|
||||
|
||||
dev_log(LOG_DEB0, "minspeed=%u", m_speed[race][0][weapon][0]);
|
||||
SPDLOG_TRACE("minspeed={}", m_speed[race][0][weapon][0]);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -331,7 +330,7 @@ DWORD ani_attack_speed(LPCHARACTER ch)
|
||||
int weapon = item->GetSubType();
|
||||
|
||||
/*
|
||||
dev_log(LOG_DEB0, "%s : (race,weapon) = (%s,%s) POINT_ATT_SPEED = %d",
|
||||
SPDLOG_TRACE("{} : (race,weapon) = ({},{}) POINT_ATT_SPEED = {}",
|
||||
ch->GetName(),
|
||||
FN_race_name(race),
|
||||
FN_weapon_type(weapon),
|
||||
|
@ -67,7 +67,7 @@ bool CArenaManager::AddArena(DWORD mapIdx, WORD startA_X, WORD startA_Y, WORD st
|
||||
|
||||
if (pArenaMap->AddArena(mapIdx, startA_X, startA_Y, startB_X, startB_Y) == false)
|
||||
{
|
||||
sys_log(0, "CArenaManager::AddArena - AddMap Error MapID: %d", mapIdx);
|
||||
SPDLOG_ERROR("CArenaManager::AddArena - AddMap Error MapID: {}", mapIdx);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -80,7 +80,7 @@ bool CArenaMap::AddArena(DWORD mapIdx, WORD startA_X, WORD startA_Y, WORD startB
|
||||
{
|
||||
if (iter->CheckArea(startA_X, startA_Y, startB_X, startB_Y) == false)
|
||||
{
|
||||
sys_log(0, "CArenaMap::AddArena - Same Start Position set. stA(%d, %d) stB(%d, %d)", startA_X, startA_Y, startB_X, startB_Y);
|
||||
SPDLOG_ERROR("CArenaMap::AddArena - Same Start Position set. stA({}, {}) stB({}, {})", startA_X, startA_Y, startB_X, startB_Y);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -111,7 +111,7 @@ void CArenaMap::Destroy()
|
||||
{
|
||||
itertype(m_listArena) iter = m_listArena.begin();
|
||||
|
||||
sys_log(0, "ARENA: ArenaMap will be destroy. mapIndex(%d)", m_dwMapIndex);
|
||||
SPDLOG_DEBUG("ARENA: ArenaMap will be destroy. mapIndex({})", m_dwMapIndex);
|
||||
|
||||
for (; iter != m_listArena.end(); iter++)
|
||||
{
|
||||
@ -212,7 +212,7 @@ EVENTFUNC(ready_to_start_event)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "ready_to_start_event> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("ready_to_start_event> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -220,7 +220,7 @@ EVENTFUNC(ready_to_start_event)
|
||||
|
||||
if (pArena == NULL)
|
||||
{
|
||||
sys_err("ARENA: Arena start event info is null.");
|
||||
SPDLOG_ERROR("ARENA: Arena start event info is null.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -229,18 +229,18 @@ EVENTFUNC(ready_to_start_event)
|
||||
|
||||
if (chA == NULL || chB == NULL)
|
||||
{
|
||||
sys_err("ARENA: Player err in event func ready_start_event");
|
||||
SPDLOG_ERROR("ARENA: Player err in event func ready_start_event");
|
||||
|
||||
if (chA != NULL)
|
||||
{
|
||||
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>밡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
sys_log(0, "ARENA: Oppernent is disappered. MyPID(%d) OppPID(%d)", pArena->GetPlayerAPID(), pArena->GetPlayerBPID());
|
||||
SPDLOG_DEBUG("ARENA: Oppernent is disappered. MyPID({}) OppPID({})", pArena->GetPlayerAPID(), pArena->GetPlayerBPID());
|
||||
}
|
||||
|
||||
if (chB != NULL)
|
||||
{
|
||||
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>밡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
sys_log(0, "ARENA: Oppernent is disappered. MyPID(%d) OppPID(%d)", pArena->GetPlayerBPID(), pArena->GetPlayerAPID());
|
||||
SPDLOG_DEBUG("ARENA: Oppernent is disappered. MyPID({}) OppPID({})", pArena->GetPlayerBPID(), pArena->GetPlayerAPID());
|
||||
}
|
||||
|
||||
pArena->SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>밡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
@ -370,7 +370,7 @@ EVENTFUNC(ready_to_start_event)
|
||||
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
|
||||
sys_log(0, "ARENA: Something wrong in event func. info->state(%d)", info->state);
|
||||
SPDLOG_DEBUG("ARENA: Something wrong in event func. info->state({})", info->state);
|
||||
|
||||
pArena->EndDuel();
|
||||
|
||||
@ -388,7 +388,7 @@ EVENTFUNC(duel_time_out)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "duel_time_out> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("duel_time_out> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -396,7 +396,7 @@ EVENTFUNC(duel_time_out)
|
||||
|
||||
if (pArena == NULL)
|
||||
{
|
||||
sys_err("ARENA: Time out event error");
|
||||
SPDLOG_ERROR("ARENA: Time out event error");
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -408,13 +408,13 @@ EVENTFUNC(duel_time_out)
|
||||
if (chA != NULL)
|
||||
{
|
||||
chA->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>밡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
sys_log(0, "ARENA: Oppernent is disappered. MyPID(%d) OppPID(%d)", pArena->GetPlayerAPID(), pArena->GetPlayerBPID());
|
||||
SPDLOG_DEBUG("ARENA: Oppernent is disappered. MyPID({}) OppPID({})", pArena->GetPlayerAPID(), pArena->GetPlayerBPID());
|
||||
}
|
||||
|
||||
if (chB != NULL)
|
||||
{
|
||||
chB->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>밡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
sys_log(0, "ARENA: Oppernent is disappered. MyPID(%d) OppPID(%d)", pArena->GetPlayerBPID(), pArena->GetPlayerAPID());
|
||||
SPDLOG_DEBUG("ARENA: Oppernent is disappered. MyPID({}) OppPID({})", pArena->GetPlayerBPID(), pArena->GetPlayerAPID());
|
||||
}
|
||||
|
||||
pArena->SendChatPacketToObserver(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>밡 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
@ -445,7 +445,7 @@ EVENTFUNC(duel_time_out)
|
||||
|
||||
info->state++;
|
||||
|
||||
sys_log(0, "ARENA: Because of time over, duel is end. PIDA(%d) vs PIDB(%d)", pArena->GetPlayerAPID(), pArena->GetPlayerBPID());
|
||||
SPDLOG_DEBUG("ARENA: Because of time over, duel is end. PIDA({}) vs PIDB({})", pArena->GetPlayerAPID(), pArena->GetPlayerBPID());
|
||||
|
||||
return PASSES_PER_SEC(10);
|
||||
break;
|
||||
@ -496,7 +496,7 @@ bool CArena::StartDuel(LPCHARACTER pCharFrom, LPCHARACTER pCharTo, int nSetPoint
|
||||
pCharTo->PointChange(POINT_HP, pCharTo->GetMaxHP() - pCharTo->GetHP());
|
||||
pCharTo->PointChange(POINT_SP, pCharTo->GetMaxSP() - pCharTo->GetSP());
|
||||
|
||||
sys_log(0, "ARENA: Start Duel with PID_A(%d) vs PID_B(%d)", GetPlayerAPID(), GetPlayerBPID());
|
||||
SPDLOG_DEBUG("ARENA: Start Duel with PID_A({}) vs PID_B({})", GetPlayerAPID(), GetPlayerBPID());
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -577,7 +577,7 @@ void CArena::EndDuel()
|
||||
|
||||
m_mapObserver.clear();
|
||||
|
||||
sys_log(0, "ARENA: End Duel PID_A(%d) vs PID_B(%d)", GetPlayerAPID(), GetPlayerBPID());
|
||||
SPDLOG_DEBUG("ARENA: End Duel PID_A({}) vs PID_B({})", GetPlayerAPID(), GetPlayerBPID());
|
||||
|
||||
Clear();
|
||||
}
|
||||
@ -756,7 +756,7 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
|
||||
pCharB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD> <20>¸<EFBFBD><C2B8>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>."), pCharA->GetName());
|
||||
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("%s <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD> <20>¸<EFBFBD><C2B8>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>."), pCharA->GetName());
|
||||
|
||||
sys_log(0, "ARENA: Duel is end. Winner %s(%d) Loser %s(%d)",
|
||||
SPDLOG_DEBUG("ARENA: Duel is end. Winner {}({}) Loser {}({})",
|
||||
pCharA->GetName(), GetPlayerAPID(), pCharB->GetName(), GetPlayerBPID());
|
||||
}
|
||||
else
|
||||
@ -770,7 +770,7 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
|
||||
|
||||
SendChatPacketToObserver(CHAT_TYPE_NOTICE, "%s %d : %d %s", pCharA->GetName(), m_dwSetPointOfA, m_dwSetPointOfB, pCharB->GetName());
|
||||
|
||||
sys_log(0, "ARENA: %s(%d) won a round vs %s(%d)",
|
||||
SPDLOG_DEBUG("ARENA: {}({}) won a round vs {}({})",
|
||||
pCharA->GetName(), GetPlayerAPID(), pCharB->GetName(), GetPlayerBPID());
|
||||
}
|
||||
}
|
||||
@ -783,7 +783,7 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
|
||||
pCharB->ChatPacket(CHAT_TYPE_NOTICE, LC_TEXT("%s <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD> <20>¸<EFBFBD><C2B8>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>."), pCharB->GetName());
|
||||
SendChatPacketToObserver(CHAT_TYPE_NOTICE, LC_TEXT("%s <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD> <20>¸<EFBFBD><C2B8>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD>ϴ<EFBFBD>."), pCharB->GetName());
|
||||
|
||||
sys_log(0, "ARENA: Duel is end. Winner(%d) Loser(%d)", GetPlayerBPID(), GetPlayerAPID());
|
||||
SPDLOG_DEBUG("ARENA: Duel is end. Winner({}) Loser({})", GetPlayerBPID(), GetPlayerAPID());
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -796,13 +796,13 @@ bool CArena::OnDead(DWORD dwPIDA, DWORD dwPIDB)
|
||||
|
||||
SendChatPacketToObserver(CHAT_TYPE_NOTICE, "%s %d : %d %s", pCharA->GetName(), m_dwSetPointOfA, m_dwSetPointOfB, pCharB->GetName());
|
||||
|
||||
sys_log(0, "ARENA : PID(%d) won a round. Opp(%d)", GetPlayerBPID(), GetPlayerAPID());
|
||||
SPDLOG_DEBUG("ARENA : PID({}) won a round. Opp({})", GetPlayerBPID(), GetPlayerAPID());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// wtf
|
||||
sys_log(0, "ARENA : OnDead Error (%d, %d) (%d, %d)", m_dwPIDA, m_dwPIDB, dwPIDA, dwPIDB);
|
||||
SPDLOG_WARN("ARENA : OnDead Error ({}, {}) ({}, {})", m_dwPIDA, m_dwPIDB, dwPIDA, dwPIDB);
|
||||
}
|
||||
|
||||
int potion = quest::CQuestManager::instance().GetEventFlag("arena_potion_limit_count");
|
||||
@ -951,7 +951,7 @@ void CArena::OnDisconnect(DWORD pid)
|
||||
if (GetPlayerB() != NULL)
|
||||
GetPlayerB()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>Ͱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
|
||||
sys_log(0, "ARENA : Duel is end because of Opp(%d) is disconnect. MyPID(%d)", GetPlayerAPID(), GetPlayerBPID());
|
||||
SPDLOG_DEBUG("ARENA : Duel is end because of Opp({}) is disconnect. MyPID({})", GetPlayerAPID(), GetPlayerBPID());
|
||||
EndDuel();
|
||||
}
|
||||
else if (m_dwPIDB == pid)
|
||||
@ -959,7 +959,7 @@ void CArena::OnDisconnect(DWORD pid)
|
||||
if (GetPlayerA() != NULL)
|
||||
GetPlayerA()->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ij<><C4B3><EFBFBD>Ͱ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>."));
|
||||
|
||||
sys_log(0, "ARENA : Duel is end because of Opp(%d) is disconnect. MyPID(%d)", GetPlayerBPID(), GetPlayerAPID());
|
||||
SPDLOG_DEBUG("ARENA : Duel is end because of Opp({}) is disconnect. MyPID({})", GetPlayerBPID(), GetPlayerAPID());
|
||||
EndDuel();
|
||||
}
|
||||
}
|
||||
@ -1057,7 +1057,7 @@ bool CArenaManager::RegisterObserverPtr(LPCHARACTER pChar, DWORD mapIdx, WORD Ob
|
||||
|
||||
if (iter == m_mapArenaMap.end())
|
||||
{
|
||||
sys_log(0, "ARENA : Cannot find ArenaMap. %d %d %d", mapIdx, ObserverX, ObserverY);
|
||||
SPDLOG_ERROR("ARENA : Cannot find ArenaMap. {} {} {}", mapIdx, ObserverX, ObserverY);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1089,7 +1089,7 @@ bool CArena::RegisterObserverPtr(LPCHARACTER pChar)
|
||||
|
||||
if (iter == m_mapObserver.end())
|
||||
{
|
||||
sys_log(0, "ARENA : not in ob list");
|
||||
SPDLOG_ERROR("ARENA : not in ob list");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -576,7 +576,7 @@ void AuctionManager::Boot (const char* &data, WORD size)
|
||||
{
|
||||
if (decode_2bytes(data) != sizeof(TPlayerItem))
|
||||
{
|
||||
sys_err("TPlayerItem table size error");
|
||||
SPDLOG_ERROR("TPlayerItem table size error");
|
||||
thecore_shutdown();
|
||||
return;
|
||||
}
|
||||
@ -597,7 +597,7 @@ void AuctionManager::Boot (const char* &data, WORD size)
|
||||
}
|
||||
if (decode_2bytes(data) != sizeof(TAuctionItemInfo))
|
||||
{
|
||||
sys_err("TAuctionItemInfo table size error");
|
||||
SPDLOG_ERROR("TAuctionItemInfo table size error");
|
||||
thecore_shutdown();
|
||||
return;
|
||||
}
|
||||
@ -617,7 +617,7 @@ void AuctionManager::Boot (const char* &data, WORD size)
|
||||
}
|
||||
if (decode_2bytes(data) != sizeof(TSaleItemInfo))
|
||||
{
|
||||
sys_err("TSaleItemInfo table size error");
|
||||
SPDLOG_ERROR("TSaleItemInfo table size error");
|
||||
thecore_shutdown();
|
||||
return;
|
||||
}
|
||||
@ -638,7 +638,7 @@ void AuctionManager::Boot (const char* &data, WORD size)
|
||||
|
||||
if (decode_2bytes(data) != sizeof(TWishItemInfo))
|
||||
{
|
||||
sys_err("TWishItemInfo table size error");
|
||||
SPDLOG_ERROR("TWishItemInfo table size error");
|
||||
thecore_shutdown();
|
||||
return;
|
||||
}
|
||||
@ -659,7 +659,7 @@ void AuctionManager::Boot (const char* &data, WORD size)
|
||||
|
||||
if (decode_2bytes(data) != (sizeof(DWORD) + sizeof(DWORD) + sizeof(int)))
|
||||
{
|
||||
sys_err("my_bid table size error");
|
||||
SPDLOG_ERROR("my_bid table size error");
|
||||
thecore_shutdown();
|
||||
return;
|
||||
}
|
||||
@ -702,7 +702,7 @@ bool AuctionManager::InsertItem (TPlayerItem* player_item)
|
||||
|
||||
if (!item)
|
||||
{
|
||||
sys_err("cannot create item vnum %d id %u",player_item->vnum, player_item->id);
|
||||
SPDLOG_ERROR("cannot create item vnum {} id {}",player_item->vnum, player_item->id);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -756,7 +756,7 @@ bool AuctionManager::DeleteItem (DWORD item_id)
|
||||
// return false;
|
||||
// if (it->second + changing_amount < 0)
|
||||
// {
|
||||
// sys_err ("Cannot have money under 0.");
|
||||
// SPDLOG_ERROR("Cannot have money under 0.");
|
||||
// return false;
|
||||
// }
|
||||
//
|
||||
@ -876,7 +876,7 @@ void AuctionManager::enroll_auction (LPCHARACTER ch, LPITEM item, BYTE empire, i
|
||||
{
|
||||
if (ch != item->GetOwner())
|
||||
{
|
||||
sys_err ("Item %d's owner is %s, not %s",ch->GetName(), item->GetOwner()->GetName());
|
||||
SPDLOG_ERROR("Item {}'s owner is {}, not {}", ch->GetName(), item->GetOwner()->GetName());
|
||||
return;
|
||||
}
|
||||
if (item->IsEquipped())
|
||||
@ -887,14 +887,14 @@ void AuctionManager::enroll_auction (LPCHARACTER ch, LPITEM item, BYTE empire, i
|
||||
|
||||
if (GetAuctionItemInfo (item->GetID()))
|
||||
{
|
||||
sys_err ("Item %d is already in auction.", item->GetID());
|
||||
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
|
||||
ch->ChatPacket(CHAT_TYPE_INFO, "<EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ž<EFBFBD>. <20><><EFBFBD><EFBFBD>ü <20><><EFBFBD><EFBFBD>?");
|
||||
return;
|
||||
}
|
||||
|
||||
if (item->GetWindow() == AUCTION)
|
||||
{
|
||||
sys_err ("Item %d is already in auction.", item->GetID());
|
||||
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
|
||||
ch->ChatPacket(CHAT_TYPE_INFO, "<EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>..");
|
||||
return;
|
||||
}
|
||||
@ -913,7 +913,7 @@ void AuctionManager::enroll_sale (LPCHARACTER ch, LPITEM item, DWORD wisher_id,
|
||||
{
|
||||
if (ch != item->GetOwner())
|
||||
{
|
||||
sys_err ("Item %d's owner is %s, not %s",ch->GetName(), item->GetOwner()->GetName());
|
||||
SPDLOG_ERROR("Item {}'s owner is {}, not {}", ch->GetName(), item->GetOwner()->GetName());
|
||||
return;
|
||||
}
|
||||
if (item->IsEquipped())
|
||||
@ -924,14 +924,14 @@ void AuctionManager::enroll_sale (LPCHARACTER ch, LPITEM item, DWORD wisher_id,
|
||||
|
||||
if (GetSaleItemInfo (item->GetID()))
|
||||
{
|
||||
sys_err ("Item %d is already in auction.", item->GetID());
|
||||
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
|
||||
ch->ChatPacket(CHAT_TYPE_INFO, "<EFBFBD>̹<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ž<EFBFBD>. <20><><EFBFBD><EFBFBD>ü <20><><EFBFBD><EFBFBD>?");
|
||||
return;
|
||||
}
|
||||
|
||||
if (item->GetWindow() == AUCTION)
|
||||
{
|
||||
sys_err ("Item %d is already in auction.", item->GetID());
|
||||
SPDLOG_ERROR("Item {} is already in auction.", item->GetID());
|
||||
ch->ChatPacket(CHAT_TYPE_INFO, "<EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>..");
|
||||
return;
|
||||
}
|
||||
@ -982,7 +982,7 @@ void AuctionManager::immediate_purchase (LPCHARACTER ch, DWORD item_id)
|
||||
|
||||
if (item_info == NULL)
|
||||
{
|
||||
sys_err ("Invild item id : %d", item_id);
|
||||
SPDLOG_ERROR("Invild item id : {}", item_id);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1063,7 +1063,7 @@ void AuctionManager::rebid (LPCHARACTER ch, DWORD item_id, int bid_price)
|
||||
bool lock = mb.second;
|
||||
if (money == -1)
|
||||
{
|
||||
sys_err ("Do bid first. How can you rebid? pid %d, item_id %d",ch->GetPlayerID(), item_id);
|
||||
SPDLOG_ERROR("Do bid first. How can you rebid? pid {}, item_id {}", ch->GetPlayerID(), item_id);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1095,7 +1095,7 @@ void AuctionManager::bid_cancel (LPCHARACTER ch, DWORD item_id)
|
||||
bool lock = mb.second;
|
||||
if (money == -1)
|
||||
{
|
||||
sys_err ("Do bid first. How can you bid cancel? pid %d, item_id %d",ch->GetPlayerID(), item_id);
|
||||
SPDLOG_ERROR("Do bid first. How can you bid cancel? pid {}, item_id {}",ch->GetPlayerID(), item_id);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1303,7 +1303,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
|
||||
|
||||
if (!GetInventoryItem(player_item->id))
|
||||
{
|
||||
sys_err ("AUCTION_CMD %d : invalid item_id %d", cmd, item_id);
|
||||
SPDLOG_ERROR("AUCTION_CMD {} : invalid item_id {}", cmd, item_id);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -1333,7 +1333,7 @@ void AuctionManager::recv_result_auction (DWORD commander_id, TPacketDGResultAuc
|
||||
{
|
||||
if (!Wish.DeleteItemInfo (commander_id, cmd_result->target))
|
||||
{
|
||||
sys_err ("Cannot cancel wish, invalid player_id : %d, item_num : %d", commander_id, cmd_result->target);
|
||||
SPDLOG_ERROR("Cannot cancel wish, invalid player_id : {}, item_num : {}", commander_id, cmd_result->target);
|
||||
}
|
||||
else if (ch != NULL)
|
||||
{
|
||||
|
@ -105,19 +105,19 @@ bool battle_is_attackable(LPCHARACTER ch, LPCHARACTER victim)
|
||||
int battle_melee_attack(LPCHARACTER ch, LPCHARACTER victim)
|
||||
{
|
||||
if (test_server&&ch->IsPC())
|
||||
sys_log(0, "battle_melee_attack : [%s] attack to [%s]", ch->GetName(), victim->GetName());
|
||||
SPDLOG_TRACE("battle_melee_attack : [{}] attack to [{}]", ch->GetName(), victim->GetName());
|
||||
|
||||
if (!victim || ch == victim)
|
||||
return BATTLE_NONE;
|
||||
|
||||
if (test_server&&ch->IsPC())
|
||||
sys_log(0, "battle_melee_attack : [%s] attack to [%s]", ch->GetName(), victim->GetName());
|
||||
SPDLOG_TRACE("battle_melee_attack : [{}] attack to [{}]", ch->GetName(), victim->GetName());
|
||||
|
||||
if (!battle_is_attackable(ch, victim))
|
||||
return BATTLE_NONE;
|
||||
|
||||
if (test_server&&ch->IsPC())
|
||||
sys_log(0, "battle_melee_attack : [%s] attack to [%s]", ch->GetName(), victim->GetName());
|
||||
SPDLOG_TRACE("battle_melee_attack : [{}] attack to [{}]", ch->GetName(), victim->GetName());
|
||||
|
||||
// <20>Ÿ<EFBFBD> üũ
|
||||
int distance = DISTANCE_APPROX(ch->GetX() - victim->GetX(), ch->GetY() - victim->GetY());
|
||||
@ -140,8 +140,7 @@ int battle_melee_attack(LPCHARACTER ch, LPCHARACTER victim)
|
||||
|
||||
if (distance > max)
|
||||
{
|
||||
if (test_server)
|
||||
sys_log(0, "VICTIM_FAR: %s distance: %d max: %d", ch->GetName(), distance, max);
|
||||
SPDLOG_TRACE("VICTIM_FAR: {} distance: {} max: {}", ch->GetName(), distance, max);
|
||||
|
||||
return BATTLE_NONE;
|
||||
}
|
||||
@ -367,7 +366,7 @@ void Item_GetDamage(LPITEM pkItem, int* pdamMin, int* pdamMax)
|
||||
}
|
||||
|
||||
if (pkItem->GetType() != ITEM_WEAPON)
|
||||
sys_err("Item_GetDamage - !ITEM_WEAPON vnum=%d, type=%d", pkItem->GetOriginalVnum(), pkItem->GetType());
|
||||
SPDLOG_ERROR("Item_GetDamage - !ITEM_WEAPON vnum={}, type={}", pkItem->GetOriginalVnum(), pkItem->GetType());
|
||||
|
||||
*pdamMin = pkItem->GetValue(3);
|
||||
*pdamMax = pkItem->GetValue(4);
|
||||
@ -394,7 +393,7 @@ int CalcMeleeDamage(LPCHARACTER pkAttacker, LPCHARACTER pkVictim, bool bIgnoreDe
|
||||
break;
|
||||
|
||||
case WEAPON_BOW:
|
||||
sys_err("CalcMeleeDamage should not handle bows (name: %s)", pkAttacker->GetName());
|
||||
SPDLOG_ERROR("CalcMeleeDamage should not handle bows (name: {})", pkAttacker->GetName());
|
||||
return 0;
|
||||
|
||||
default:
|
||||
@ -677,8 +676,7 @@ int battle_hit(LPCHARACTER pkAttacker, LPCHARACTER pkVictim)
|
||||
iDam = attMul * tempIDam + 0.5f;
|
||||
|
||||
//PROF_UNIT puHit("Hit");
|
||||
if (test_server)
|
||||
sys_log(0, "battle_hit : [%s] attack to [%s] : dam: %d", pkAttacker->GetName(), pkVictim->GetName(), iDam);
|
||||
SPDLOG_TRACE("battle_hit : [{}] attack to [{}] : dam: {}", pkAttacker->GetName(), pkVictim->GetName(), iDam);
|
||||
|
||||
//PROF_UNIT puDam("Dam");
|
||||
if (pkVictim->Damage(pkAttacker, iDam, DAMAGE_TYPE_NORMAL))
|
||||
@ -740,7 +738,7 @@ void SET_ATTACKED_TIME(LPCHARACTER ch, LPCHARACTER victim, DWORD current_time)
|
||||
bool IS_SPEED_HACK(LPCHARACTER ch, LPCHARACTER victim, DWORD current_time)
|
||||
{
|
||||
// 2013 09 11 CYH debugging log
|
||||
/*sys_log(0, "%s attack test log! time (delta, limit)=(%u, %u). ch->m_kAttackLog.dwvID(%u) victim->GetVID(%u)",
|
||||
/*SPDLOG_DEBUG("{} attack test log! time (delta, limit)=({}, {}). ch->m_kAttackLog.dwvID({}) victim->GetVID({})",
|
||||
ch->GetName(),
|
||||
current_time - ch->m_kAttackLog.dwTime,
|
||||
GET_ATTACK_SPEED(ch),
|
||||
@ -748,7 +746,7 @@ bool IS_SPEED_HACK(LPCHARACTER ch, LPCHARACTER victim, DWORD current_time)
|
||||
victim->GetVID()
|
||||
);
|
||||
|
||||
sys_log(0, "%s attack test log! time (delta, limit)=(%u, %u). victim->m_AttackedLog.dwPID(%u) ch->GetPlayerID(%u)",
|
||||
SPDLOG_DEBUG("{} attack test log! time (delta, limit)=({}, {}). victim->m_AttackedLog.dwPID({}) ch->GetPlayerID({})",
|
||||
ch->GetName(),
|
||||
current_time - victim->m_AttackedLog.dwAttackedTime,
|
||||
GET_ATTACK_SPEED(ch),
|
||||
@ -764,7 +762,7 @@ bool IS_SPEED_HACK(LPCHARACTER ch, LPCHARACTER victim, DWORD current_time)
|
||||
|
||||
if (test_server)
|
||||
{
|
||||
sys_log(0, "%s attack hack! time (delta, limit)=(%u, %u) hack_count %d",
|
||||
SPDLOG_TRACE("{} attack hack! time (delta, limit)=({}, {}) hack_count {}",
|
||||
ch->GetName(),
|
||||
current_time - ch->m_kAttackLog.dwTime,
|
||||
GET_ATTACK_SPEED(ch),
|
||||
@ -793,7 +791,7 @@ bool IS_SPEED_HACK(LPCHARACTER ch, LPCHARACTER victim, DWORD current_time)
|
||||
|
||||
if (test_server)
|
||||
{
|
||||
sys_log(0, "%s Attack Speed HACK! time (delta, limit)=(%u, %u), hack_count = %d",
|
||||
SPDLOG_TRACE("{} Attack Speed HACK! time (delta, limit)=({}, {}), hack_count = {}",
|
||||
ch->GetName(),
|
||||
current_time - victim->m_AttackedLog.dwAttackedTime,
|
||||
GET_ATTACK_SPEED(ch),
|
||||
|
@ -27,7 +27,7 @@ public:
|
||||
|
||||
if (level >= _countof(beltGradeByLevelTable))
|
||||
{
|
||||
sys_err("CBeltInventoryHelper::GetBeltGradeByRefineLevel - Overflow level (%d", level);
|
||||
SPDLOG_ERROR("CBeltInventoryHelper::GetBeltGradeByRefineLevel - Overflow level ({})", level);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -10,7 +10,6 @@
|
||||
#include "stdafx.h"
|
||||
#include "constants.h"
|
||||
#include "log.h"
|
||||
#include "dev_log.h"
|
||||
#include "locale_service.h"
|
||||
#include "item.h"
|
||||
#include "blend_item.h"
|
||||
@ -37,7 +36,7 @@ bool Blend_Item_init()
|
||||
char file_name[256];
|
||||
snprintf (file_name, sizeof(file_name), "%s/blend.txt", LocaleService_GetBasePath().c_str());
|
||||
|
||||
sys_log(0, "Blend_Item_init %s ", file_name);
|
||||
SPDLOG_INFO("Blend_Item_init {} ", file_name);
|
||||
|
||||
DO_ALL_BLEND_INFO(iter)
|
||||
{
|
||||
@ -48,7 +47,7 @@ bool Blend_Item_init()
|
||||
|
||||
if (false==Blend_Item_load(file_name))
|
||||
{
|
||||
sys_err("<Blend_Item_init> fail");
|
||||
SPDLOG_ERROR("<Blend_Item_init> fail");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@ -108,7 +107,7 @@ bool Blend_Item_load(char *file)
|
||||
|
||||
if (0 == (blend_item_info->apply_type = FN_get_apply_type(v)))
|
||||
{
|
||||
sys_err ("Invalid apply_type(%s)", v);
|
||||
SPDLOG_ERROR("Invalid apply_type({})", v);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -222,7 +221,7 @@ bool Blend_Item_set_value(LPITEM item)
|
||||
apply_value = blend_info->apply_value [FN_random_index()];
|
||||
apply_duration = blend_info->apply_duration [FN_random_index()];
|
||||
}
|
||||
sys_log (0, "blend_item : type : %d, value : %d, du : %d", apply_type, apply_value, apply_duration);
|
||||
SPDLOG_DEBUG("blend_item : type : {}, value : {}, du : {}", apply_type, apply_value, apply_duration);
|
||||
item->SetSocket(0, apply_type);
|
||||
item->SetSocket(1, apply_value);
|
||||
item->SetSocket(2, apply_duration);
|
||||
|
@ -10,7 +10,6 @@
|
||||
#include "stdafx.h"
|
||||
#include "constants.h"
|
||||
#include "block_country.h"
|
||||
#include "dev_log.h"
|
||||
|
||||
#define DEC_ITER(iter) std::vector<T_BLOCK_IP*>::iterator iter
|
||||
#define DO_ALL_BLOCKED_IP(iter) for ((iter)=s_blocked_ip.begin(); (iter)!=s_blocked_ip.end(); ++(iter))
|
||||
@ -36,7 +35,7 @@ std::set<std::string> s_block_exception;
|
||||
// static functions
|
||||
static void __add_block_exception(const char *login)
|
||||
{
|
||||
dev_log(LOG_DEB0, "BLOCK_EXCEPTION_ADD : %s", login);
|
||||
SPDLOG_TRACE("BLOCK_EXCEPTION_ADD : {}", login);
|
||||
|
||||
DEC_EXCEPTION_ITER(iter);
|
||||
std::string string_login(login);
|
||||
@ -52,7 +51,7 @@ dev_log(LOG_DEB0, "BLOCK_EXCEPTION_ADD : %s", login);
|
||||
|
||||
static void __del_block_exception(const char *login)
|
||||
{
|
||||
dev_log(LOG_DEB0, "BLOCK_EXCEPTION_DEL : %s", login);
|
||||
SPDLOG_TRACE("BLOCK_EXCEPTION_DEL : {}", login);
|
||||
|
||||
DEC_EXCEPTION_ITER(iter);
|
||||
std::string string_login(login);
|
||||
@ -80,7 +79,7 @@ void add_blocked_country_ip(TPacketBlockCountryIp *data)
|
||||
|
||||
s_blocked_ip.push_back(block_ip);
|
||||
|
||||
dev_log(LOG_DEB0, "BLOCKED_IP = %u - %u", block_ip->ip_from, block_ip->ip_to);
|
||||
SPDLOG_TRACE("BLOCKED_IP = {} - {}", block_ip->ip_from, block_ip->ip_to);
|
||||
}
|
||||
|
||||
|
||||
@ -119,7 +118,7 @@ bool is_blocked_country_ip(const char *user_ip)
|
||||
if (INADDR_NONE == in_address)
|
||||
#endif
|
||||
{
|
||||
dev_log(LOG_INFO, "BLOCKED_COUNTRY_IP (%s) : YES", user_ip);
|
||||
SPDLOG_INFO("BLOCKED_COUNTRY_IP ({}) : YES", user_ip);
|
||||
return true; // <20><><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <20>ϴ<EFBFBD> <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3>
|
||||
}
|
||||
ip_number = htonl(st_addr.s_addr);
|
||||
@ -129,12 +128,12 @@ bool is_blocked_country_ip(const char *user_ip)
|
||||
block_ip = *iter;
|
||||
if ( block_ip->ip_from <= ip_number && ip_number <= block_ip->ip_to )
|
||||
{
|
||||
dev_log(LOG_INFO, "BLOCKED_COUNTRY_IP (%s) : YES", user_ip);
|
||||
SPDLOG_INFO("BLOCKED_COUNTRY_IP ({}) : YES", user_ip);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
dev_log(LOG_INFO, "BLOCKED_COUNTRY_IP (%s) : NO", user_ip);
|
||||
SPDLOG_DEBUG("BLOCKED_COUNTRY_IP ({}) : NO", user_ip);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -51,7 +51,7 @@ void CBuffOnAttributes::RemoveBuffFromItem(LPITEM pItem)
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err ("Buff ERROR(type %d). This item(%d) attr_type(%d) was not in buff pool", m_bPointType, pItem->GetVnum(), attr.bType);
|
||||
SPDLOG_ERROR("Buff ERROR(type {}). This item({}) attr_type({}) was not in buff pool", m_bPointType, pItem->GetVnum(), attr.bType);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ void CObject::EncodeInsertPacket(LPENTITY entity)
|
||||
if (!(d = entity->GetDesc()))
|
||||
return;
|
||||
|
||||
sys_log(0, "ObjectInsertPacket vid %u vnum %u rot %f %f %f",
|
||||
SPDLOG_DEBUG("ObjectInsertPacket vid {} vnum {} rot {} {} {}",
|
||||
m_dwVID, m_data.dwVnum, m_data.xRot, m_data.yRot, m_data.zRot);
|
||||
|
||||
TPacketGCCharacterAdd pack;
|
||||
@ -132,7 +132,7 @@ void CObject::EncodeRemovePacket(LPENTITY entity)
|
||||
if (!(d = entity->GetDesc()))
|
||||
return;
|
||||
|
||||
sys_log(0, "ObjectRemovePacket vid %u", m_dwVID);
|
||||
SPDLOG_DEBUG("ObjectRemovePacket vid {}", m_dwVID);
|
||||
|
||||
TPacketGCCharacterDelete pack;
|
||||
|
||||
@ -153,7 +153,7 @@ bool CObject::Show(int lMapIndex, int x, int y)
|
||||
|
||||
if (!tree)
|
||||
{
|
||||
sys_err("cannot find sectree by %dx%d mapindex %d", x, y, lMapIndex);
|
||||
SPDLOG_ERROR("cannot find sectree by {}x{} mapindex {}", x, y, lMapIndex);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -292,7 +292,7 @@ void CObject::RegenNPC()
|
||||
|
||||
if (!m_chNPC)
|
||||
{
|
||||
sys_err("Cannot create guild npc");
|
||||
SPDLOG_ERROR("Cannot create guild npc");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -461,7 +461,7 @@ void CLand::DeleteObject(DWORD dwID)
|
||||
if (!(pkObj = FindObject(dwID)))
|
||||
return;
|
||||
|
||||
sys_log(0, "Land::DeleteObject %u", dwID);
|
||||
SPDLOG_DEBUG("Land::DeleteObject {}", dwID);
|
||||
CManager::instance().UnregisterObject(pkObj);
|
||||
M2_DESTROY_CHARACTER (pkObj->GetNPC());
|
||||
|
||||
@ -506,14 +506,14 @@ bool CLand::RequestCreateObject(DWORD dwVnum, int lMapIndex, int x, int y, float
|
||||
|
||||
if (!pkProto)
|
||||
{
|
||||
sys_err("Invalid Object vnum %u", dwVnum);
|
||||
SPDLOG_ERROR("Invalid Object vnum {}", dwVnum);
|
||||
return false;
|
||||
}
|
||||
const TMapRegion * r = rkSecTreeMgr.GetMapRegion(lMapIndex);
|
||||
if (!r)
|
||||
return false;
|
||||
|
||||
sys_log(0, "RequestCreateObject(vnum=%u, map=%d, pos=(%d,%d), rot=(%.1f,%.1f,%.1f) region(%d,%d ~ %d,%d)",
|
||||
SPDLOG_DEBUG("RequestCreateObject(vnum={}, map={}, pos=({},{}), rot=({:.1f},{:.1f},{:.1f}) region({},{} ~ {},{})",
|
||||
dwVnum, lMapIndex, x, y, xRot, yRot, zRot, r->sx, r->sy, r->ex, r->ey);
|
||||
|
||||
x += r->sx;
|
||||
@ -539,7 +539,7 @@ bool CLand::RequestCreateObject(DWORD dwVnum, int lMapIndex, int x, int y, float
|
||||
|
||||
if (tsx < sx || tex > ex || tsy < sy || tey > ey)
|
||||
{
|
||||
sys_err("invalid position: object is outside of land region\nLAND: %d %d ~ %d %d\nOBJ: %d %d ~ %d %d", sx, sy, ex, ey, osx, osy, oex, oey);
|
||||
SPDLOG_ERROR("invalid position: object is outside of land region\nLAND: {} {} ~ {} {}\nOBJ: {} {} ~ {} {}", sx, sy, ex, ey, osx, osy, oex, oey);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -548,7 +548,7 @@ bool CLand::RequestCreateObject(DWORD dwVnum, int lMapIndex, int x, int y, float
|
||||
{
|
||||
if (rkSecTreeMgr.ForAttrRegion(lMapIndex, osx, osy, oex, oey, (int)zRot, ATTR_OBJECT, ATTR_REGION_MODE_CHECK))
|
||||
{
|
||||
sys_err("another object already exist");
|
||||
SPDLOG_ERROR("another object already exist");
|
||||
return false;
|
||||
}
|
||||
FIsIn f (osx, osy, oex, oey);
|
||||
@ -556,7 +556,7 @@ bool CLand::RequestCreateObject(DWORD dwVnum, int lMapIndex, int x, int y, float
|
||||
|
||||
if (f.bIn)
|
||||
{
|
||||
sys_err("another object already exist");
|
||||
SPDLOG_ERROR("another object already exist");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -581,12 +581,12 @@ void CLand::RequestDeleteObject(DWORD dwID)
|
||||
{
|
||||
if (!FindObject(dwID))
|
||||
{
|
||||
sys_err("no object by id %u", dwID);
|
||||
SPDLOG_ERROR("no object by id {}", dwID);
|
||||
return;
|
||||
}
|
||||
|
||||
db_clientdesc->DBPacket(HEADER_GD_DELETE_OBJECT, 0, &dwID, sizeof(DWORD));
|
||||
sys_log(0, "RequestDeleteObject id %u", dwID);
|
||||
SPDLOG_DEBUG("RequestDeleteObject id {}", dwID);
|
||||
}
|
||||
|
||||
void CLand::RequestDeleteObjectByVID(DWORD dwVID)
|
||||
@ -595,13 +595,13 @@ void CLand::RequestDeleteObjectByVID(DWORD dwVID)
|
||||
|
||||
if (!(pkObj = FindObjectByVID(dwVID)))
|
||||
{
|
||||
sys_err("no object by vid %u", dwVID);
|
||||
SPDLOG_ERROR("no object by vid {}", dwVID);
|
||||
return;
|
||||
}
|
||||
|
||||
DWORD dwID = pkObj->GetID();
|
||||
db_clientdesc->DBPacket(HEADER_GD_DELETE_OBJECT, 0, &dwID, sizeof(DWORD));
|
||||
sys_log(0, "RequestDeleteObject vid %u id %u", dwVID, dwID);
|
||||
SPDLOG_DEBUG("RequestDeleteObject vid {} id {}", dwVID, dwID);
|
||||
}
|
||||
|
||||
void CLand::SetOwner(DWORD dwGuild)
|
||||
@ -621,7 +621,7 @@ void CLand::RequestUpdate(DWORD dwGuild)
|
||||
a[1] = dwGuild;
|
||||
|
||||
db_clientdesc->DBPacket(HEADER_GD_UPDATE_LAND, 0, &a[0], sizeof(DWORD) * 2);
|
||||
sys_log(0, "RequestUpdate id %u guild %u", a[0], a[1]);
|
||||
SPDLOG_DEBUG("RequestUpdate id {} guild {}", a[0], a[1]);
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////
|
||||
@ -654,7 +654,7 @@ bool CManager::LoadObjectProto(const TObjectProto * pProto, int size) // from DB
|
||||
TObjectProto & r = m_vec_kObjectProto[i];
|
||||
|
||||
// BUILDING_NPC
|
||||
sys_log(0, "ObjectProto %u price %u upgrade %u upg_limit %u life %d NPC %u",
|
||||
SPDLOG_DEBUG("ObjectProto {} price {} upgrade {} upg_limit {} life {} NPC {}",
|
||||
r.dwVnum, r.dwPrice, r.dwUpgradeVnum, r.dwUpgradeLimitTime, r.lLife, r.dwNPCVnum);
|
||||
// END_OF_BUILDING_NPC
|
||||
|
||||
@ -665,11 +665,11 @@ bool CManager::LoadObjectProto(const TObjectProto * pProto, int size) // from DB
|
||||
|
||||
if (NULL == ITEM_MANAGER::instance().GetTable(r.kMaterials[j].dwItemVnum))
|
||||
{
|
||||
sys_err(" mat: ERROR!! no item by vnum %u", r.kMaterials[j].dwItemVnum);
|
||||
SPDLOG_ERROR(" mat: ERROR!! no item by vnum {}", r.kMaterials[j].dwItemVnum);
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log(0, " mat: %u %u", r.kMaterials[j].dwItemVnum, r.kMaterials[j].dwCount);
|
||||
SPDLOG_TRACE(" mat: {} {}", r.kMaterials[j].dwItemVnum, r.kMaterials[j].dwCount);
|
||||
}
|
||||
|
||||
m_map_pkObjectProto.insert(std::make_pair(r.dwVnum, &m_vec_kObjectProto[i]));
|
||||
@ -700,7 +700,7 @@ bool CManager::LoadLand(TLand * pTable) // from DB
|
||||
CLand * pkLand = M2_NEW CLand(pTable);
|
||||
m_map_pkLand.insert(std::make_pair(pkLand->GetID(), pkLand));
|
||||
|
||||
sys_log(0, "LAND: %u map %d %dx%d w %u h %u",
|
||||
SPDLOG_INFO("LAND: {} map {} {}x{} w {} h {}",
|
||||
pTable->dwID, pTable->lMapIndex, pTable->x, pTable->y, pTable->width, pTable->height);
|
||||
|
||||
return true;
|
||||
@ -712,7 +712,7 @@ void CManager::UpdateLand(TLand * pTable)
|
||||
|
||||
if (!pkLand)
|
||||
{
|
||||
sys_err("cannot find land by id %u", pTable->dwID);
|
||||
SPDLOG_ERROR("cannot find land by id {}", pTable->dwID);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -736,7 +736,7 @@ void CManager::UpdateLand(TLand * pTable)
|
||||
e.height = pTable->height;
|
||||
e.dwGuildID = pTable->dwGuildID;
|
||||
|
||||
sys_log(0, "BUILDING: UpdateLand %u pos %dx%d guild %u", e.dwID, e.x, e.y, e.dwGuildID);
|
||||
SPDLOG_INFO("BUILDING: UpdateLand {} pos {}x{} guild {}", e.dwID, e.x, e.y, e.dwGuildID);
|
||||
|
||||
CGuild *guild = CGuildManager::instance().FindGuild(pTable->dwGuildID);
|
||||
while (it != cont.end())
|
||||
@ -766,7 +766,7 @@ CLand * CManager::FindLand(DWORD dwID)
|
||||
|
||||
CLand * CManager::FindLand(int lMapIndex, int x, int y)
|
||||
{
|
||||
sys_log(0, "BUILDING: FindLand %d %d %d", lMapIndex, x, y);
|
||||
SPDLOG_DEBUG("BUILDING: FindLand {} {} {}", lMapIndex, x, y);
|
||||
|
||||
const TMapRegion * r = SECTREE_MANAGER::instance().GetMapRegion(lMapIndex);
|
||||
|
||||
@ -819,7 +819,7 @@ bool CManager::LoadObject(TObject * pTable, bool isBoot) // from DB
|
||||
|
||||
if (!pkLand)
|
||||
{
|
||||
sys_log(0, "Cannot find land by id %u", pTable->dwLandID);
|
||||
SPDLOG_ERROR("Cannot find land by id {}", pTable->dwLandID);
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -827,11 +827,11 @@ bool CManager::LoadObject(TObject * pTable, bool isBoot) // from DB
|
||||
|
||||
if (!pkProto)
|
||||
{
|
||||
sys_err("Cannot find object %u in prototype (id %u)", pTable->dwVnum, pTable->dwID);
|
||||
SPDLOG_ERROR("Cannot find object {} in prototype (id {})", pTable->dwVnum, pTable->dwID);
|
||||
return false;
|
||||
}
|
||||
|
||||
sys_log(0, "OBJ: id %u vnum %u map %d pos %dx%d", pTable->dwID, pTable->dwVnum, pTable->lMapIndex, pTable->x, pTable->y);
|
||||
SPDLOG_DEBUG("OBJ: id {} vnum {} map {} pos {}x{}", pTable->dwID, pTable->dwVnum, pTable->lMapIndex, pTable->x, pTable->y);
|
||||
|
||||
LPOBJECT pkObj = M2_NEW CObject(pTable, pkProto);
|
||||
|
||||
@ -880,7 +880,7 @@ void CManager::FinalizeBoot()
|
||||
}
|
||||
|
||||
// BUILDING_NPC
|
||||
sys_log(0, "FinalizeBoot");
|
||||
SPDLOG_DEBUG("FinalizeBoot");
|
||||
// END_OF_BUILDING_NPC
|
||||
|
||||
itertype(m_map_pkLand) it2 = m_map_pkLand.begin();
|
||||
@ -892,7 +892,7 @@ void CManager::FinalizeBoot()
|
||||
const TLand & r = pkLand->GetData();
|
||||
|
||||
// LAND_MASTER_LOG
|
||||
sys_log(0, "LandMaster map_index=%d pos=(%d, %d)", r.lMapIndex, r.x, r.y);
|
||||
SPDLOG_DEBUG("LandMaster map_index={} pos=({}, {})", r.lMapIndex, r.x, r.y);
|
||||
// END_OF_LAND_MASTER_LOG
|
||||
|
||||
if (r.dwGuildID != 0)
|
||||
@ -911,7 +911,7 @@ void CManager::FinalizeBoot()
|
||||
|
||||
void CManager::DeleteObject(DWORD dwID) // from DB
|
||||
{
|
||||
sys_log(0, "OBJ_DEL: %u", dwID);
|
||||
SPDLOG_DEBUG("OBJ_DEL: {}", dwID);
|
||||
|
||||
itertype(m_map_pkObjByID) it = m_map_pkObjByID.find(dwID);
|
||||
|
||||
@ -975,7 +975,7 @@ void CManager::SendLandList(LPDESC d, int lMapIndex)
|
||||
++wCount;
|
||||
}
|
||||
|
||||
sys_log(0, "SendLandList map %d count %u elem_size: %d", lMapIndex, wCount, buf.size());
|
||||
SPDLOG_DEBUG("SendLandList map {} count {} elem_size: {}", lMapIndex, wCount, buf.size());
|
||||
|
||||
if (wCount != 0)
|
||||
{
|
||||
@ -996,13 +996,13 @@ void CManager::ClearLand(DWORD dwLandID)
|
||||
|
||||
if ( pLand == NULL )
|
||||
{
|
||||
sys_log(0, "LAND_CLEAR: there is no LAND id like %d", dwLandID);
|
||||
SPDLOG_WARN("LAND_CLEAR: there is no LAND id like {}", dwLandID);
|
||||
return;
|
||||
}
|
||||
|
||||
pLand->ClearLand();
|
||||
|
||||
sys_log(0, "LAND_CLEAR: request Land Clear. LandID: %d", pLand->GetID());
|
||||
SPDLOG_DEBUG("LAND_CLEAR: request Land Clear. LandID: {}", pLand->GetID());
|
||||
}
|
||||
|
||||
void CManager::ClearLandByGuildID(DWORD dwGuildID)
|
||||
@ -1011,13 +1011,13 @@ void CManager::ClearLandByGuildID(DWORD dwGuildID)
|
||||
|
||||
if ( pLand == NULL )
|
||||
{
|
||||
sys_log(0, "LAND_CLEAR: there is no GUILD id like %d", dwGuildID);
|
||||
SPDLOG_WARN("LAND_CLEAR: there is no GUILD id like {}", dwGuildID);
|
||||
return;
|
||||
}
|
||||
|
||||
pLand->ClearLand();
|
||||
|
||||
sys_log(0, "LAND_CLEAR: request Land Clear. LandID: %d", pLand->GetID());
|
||||
SPDLOG_DEBUG("LAND_CLEAR: request Land Clear. LandID: {}", pLand->GetID());
|
||||
}
|
||||
|
||||
void CLand::ClearLand()
|
||||
|
@ -241,7 +241,7 @@ EVENTFUNC(castle_siege_event)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "castle_siege_event> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("castle_siege_event> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -320,7 +320,7 @@ EVENTFUNC(castle_stone_event)
|
||||
|
||||
if (info == NULL)
|
||||
{
|
||||
sys_err( "castle_stone_event> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("castle_stone_event> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -470,7 +470,7 @@ bool castle_boot()
|
||||
else
|
||||
{
|
||||
fclose(fp);
|
||||
sys_err("wrong empire number is null");
|
||||
SPDLOG_ERROR("wrong empire number is null");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -526,7 +526,7 @@ void castle_save()
|
||||
|
||||
if (NULL == fp)
|
||||
{
|
||||
sys_err("<FAIL> fopen(%s)", castle_file);
|
||||
SPDLOG_ERROR("<FAIL> fopen({})", castle_file);
|
||||
return;
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -71,7 +71,7 @@ EVENTFUNC(affect_event)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "affect_event> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("affect_event> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -174,7 +174,7 @@ void CHARACTER::StartAffectEvent()
|
||||
char_event_info* info = AllocEventInfo<char_event_info>();
|
||||
info->ch = this;
|
||||
m_pkAffectEvent = event_create(affect_event, info, passes_per_sec);
|
||||
sys_log(1, "StartAffectEvent %s %p %p", GetName(), this, get_pointer(m_pkAffectEvent));
|
||||
SPDLOG_DEBUG("StartAffectEvent {} {} {}", GetName(), (void*) this, (void*) get_pointer(m_pkAffectEvent));
|
||||
}
|
||||
|
||||
void CHARACTER::ClearAffect(bool bSave)
|
||||
@ -357,7 +357,7 @@ void CHARACTER::SaveAffect()
|
||||
if (IS_NO_SAVE_AFFECT(pkAff->dwType))
|
||||
continue;
|
||||
|
||||
sys_log(1, "AFFECT_SAVE: %u %u %d %d", pkAff->dwType, pkAff->bApplyOn, pkAff->lApplyValue, pkAff->lDuration);
|
||||
SPDLOG_DEBUG("AFFECT_SAVE: {} {} {} {}", pkAff->dwType, pkAff->bApplyOn, pkAff->lApplyValue, pkAff->lDuration);
|
||||
|
||||
p.dwPID = GetPlayerID();
|
||||
p.elem.dwType = pkAff->dwType;
|
||||
@ -390,7 +390,7 @@ EVENTFUNC(load_affect_login_event)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "load_affect_login_event_info> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("load_affect_login_event_info> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -426,14 +426,14 @@ EVENTFUNC(load_affect_login_event)
|
||||
}
|
||||
else if (d->IsPhase(PHASE_GAME))
|
||||
{
|
||||
sys_log(1, "Affect Load by Event");
|
||||
SPDLOG_DEBUG("Affect Load by Event");
|
||||
ch->LoadAffect(info->count, (TPacketAffectElement*)info->data);
|
||||
M2_DELETE_ARRAY(info->data);
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err("input_db.cpp:quest_login_event INVALID PHASE pid %d", ch->GetPlayerID());
|
||||
SPDLOG_ERROR("input_db.cpp:quest_login_event INVALID PHASE pid {}", ch->GetPlayerID());
|
||||
M2_DELETE_ARRAY(info->data);
|
||||
return 0;
|
||||
}
|
||||
@ -445,8 +445,7 @@ void CHARACTER::LoadAffect(DWORD dwCount, TPacketAffectElement * pElements)
|
||||
|
||||
if (!GetDesc()->IsPhase(PHASE_GAME))
|
||||
{
|
||||
if (test_server)
|
||||
sys_log(0, "LOAD_AFFECT: Creating Event", GetName(), dwCount);
|
||||
SPDLOG_TRACE("LOAD_AFFECT: Creating Event", GetName(), dwCount);
|
||||
|
||||
load_affect_login_event_info* info = AllocEventInfo<load_affect_login_event_info>();
|
||||
|
||||
@ -462,8 +461,7 @@ void CHARACTER::LoadAffect(DWORD dwCount, TPacketAffectElement * pElements)
|
||||
|
||||
ClearAffect(true);
|
||||
|
||||
if (test_server)
|
||||
sys_log(0, "LOAD_AFFECT: %s count %d", GetName(), dwCount);
|
||||
SPDLOG_TRACE("LOAD_AFFECT: {} count {}", GetName(), dwCount);
|
||||
|
||||
TAffectFlag afOld = m_afAffectFlag;
|
||||
|
||||
@ -488,15 +486,12 @@ void CHARACTER::LoadAffect(DWORD dwCount, TPacketAffectElement * pElements)
|
||||
|
||||
if (pElements->bApplyOn >= POINT_MAX_NUM)
|
||||
{
|
||||
sys_err("invalid affect data %s ApplyOn %u ApplyValue %d",
|
||||
SPDLOG_ERROR("invalid affect data {} ApplyOn {} ApplyValue {}",
|
||||
GetName(), pElements->bApplyOn, pElements->lApplyValue);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (test_server)
|
||||
{
|
||||
sys_log(0, "Load Affect : Affect %s %d %d", GetName(), pElements->dwType, pElements->bApplyOn );
|
||||
}
|
||||
SPDLOG_TRACE("Load Affect : Affect {} {} {}", GetName(), pElements->dwType, pElements->bApplyOn );
|
||||
|
||||
CAffect* pkAff = CAffect::Acquire();
|
||||
m_list_pkAffect.push_back(pkAff);
|
||||
@ -544,7 +539,7 @@ bool CHARACTER::AddAffect(DWORD dwType, BYTE bApplyOn, int lApplyValue, DWORD dw
|
||||
|
||||
if (lDuration == 0)
|
||||
{
|
||||
sys_err("Character::AddAffect lDuration == 0 type %d", lDuration, dwType);
|
||||
SPDLOG_ERROR("Character::AddAffect lDuration == 0 type {}", lDuration, dwType);
|
||||
lDuration = 1;
|
||||
}
|
||||
|
||||
@ -587,8 +582,7 @@ bool CHARACTER::AddAffect(DWORD dwType, BYTE bApplyOn, int lApplyValue, DWORD dw
|
||||
|
||||
}
|
||||
|
||||
sys_log(1, "AddAffect %s type %d apply %d %d flag %u duration %d", GetName(), dwType, bApplyOn, lApplyValue, dwFlag, lDuration);
|
||||
sys_log(0, "AddAffect %s type %d apply %d %d flag %u duration %d", GetName(), dwType, bApplyOn, lApplyValue, dwFlag, lDuration);
|
||||
SPDLOG_DEBUG("AddAffect {} type {} apply {} {} flag {} duration {}", GetName(), dwType, bApplyOn, lApplyValue, dwFlag, lDuration);
|
||||
|
||||
pkAff->dwType = dwType;
|
||||
pkAff->bApplyOn = bApplyOn;
|
||||
@ -703,8 +697,7 @@ bool CHARACTER::RemoveAffect(CAffect * pkAff)
|
||||
}
|
||||
CheckMaximumPoints();
|
||||
|
||||
if (test_server)
|
||||
sys_log(0, "AFFECT_REMOVE: %s (flag %u apply: %u)", GetName(), pkAff->dwFlag, pkAff->bApplyOn);
|
||||
SPDLOG_TRACE("AFFECT_REMOVE: {} (flag {} apply: {})", GetName(), pkAff->dwFlag, pkAff->bApplyOn);
|
||||
|
||||
if (IsPC())
|
||||
{
|
||||
@ -801,7 +794,7 @@ bool CHARACTER::IsGoodAffect(BYTE bAffectType) const
|
||||
|
||||
void CHARACTER::RemoveBadAffect()
|
||||
{
|
||||
sys_log(0, "RemoveBadAffect %s", GetName());
|
||||
SPDLOG_DEBUG("RemoveBadAffect {}", GetName());
|
||||
// <20><>
|
||||
RemovePoison();
|
||||
RemoveFire();
|
||||
|
@ -26,7 +26,6 @@
|
||||
#include "exchange.h"
|
||||
#include "shop_manager.h"
|
||||
#include "castle.h"
|
||||
#include "dev_log.h"
|
||||
#include "ani.h"
|
||||
#include "BattleArena.h"
|
||||
#include "packet.h"
|
||||
@ -179,8 +178,7 @@ void CHARACTER::DistributeSP(LPCHARACTER pkKiller, int iMethod)
|
||||
|
||||
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
|
||||
{
|
||||
if (test_server)
|
||||
sys_log(0, "[TEST_SERVER] Attack : %s type %d, MobBattleType %d", GetName(), bType, !GetMobBattleType() ? 0 : GetMobAttackRange());
|
||||
SPDLOG_TRACE("[TEST_SERVER] Attack : {} type {}, MobBattleType {}", GetName(), bType, !GetMobBattleType() ? 0 : GetMobAttackRange());
|
||||
//PROF_UNIT puAttack("Attack");
|
||||
if (!CanMove())
|
||||
return false;
|
||||
@ -238,7 +236,7 @@ bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
|
||||
break;
|
||||
|
||||
default:
|
||||
sys_err("Unhandled battle type %d", GetMobBattleType());
|
||||
SPDLOG_ERROR("Unhandled battle type {}", GetMobBattleType());
|
||||
iRet = BATTLE_NONE;
|
||||
break;
|
||||
}
|
||||
@ -249,18 +247,16 @@ bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
|
||||
{
|
||||
if (dwCurrentTime - m_dwLastSkillTime > 1500)
|
||||
{
|
||||
sys_log(1, "HACK: Too long skill using term. Name(%s) PID(%u) delta(%u)",
|
||||
SPDLOG_DEBUG("HACK: Too long skill using term. Name({}) PID({}) delta({})",
|
||||
GetName(), GetPlayerID(), (dwCurrentTime - m_dwLastSkillTime));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
sys_log(1, "Attack call ComputeSkill %d %s", bType, pkVictim?pkVictim->GetName():"");
|
||||
SPDLOG_DEBUG("Attack call ComputeSkill {} {}", bType, pkVictim?pkVictim->GetName():"");
|
||||
iRet = ComputeSkill(bType, pkVictim);
|
||||
}
|
||||
|
||||
//if (test_server && IsPC())
|
||||
// sys_log(0, "%s Attack %s type %u ret %d", GetName(), pkVictim->GetName(), bType, iRet);
|
||||
if (iRet == BATTLE_DAMAGE || iRet == BATTLE_DEAD)
|
||||
{
|
||||
OnMove(true);
|
||||
@ -278,7 +274,7 @@ bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
|
||||
|
||||
void CHARACTER::DeathPenalty(BYTE bTown)
|
||||
{
|
||||
sys_log(1, "DEATH_PERNALY_CHECK(%s) town(%d)", GetName(), bTown);
|
||||
SPDLOG_DEBUG("DEATH_PERNALY_CHECK({}) town({})", GetName(), bTown);
|
||||
|
||||
Cube_close(this);
|
||||
|
||||
@ -289,14 +285,14 @@ void CHARACTER::DeathPenalty(BYTE bTown)
|
||||
|
||||
if (GetLevel() < 10)
|
||||
{
|
||||
sys_log(0, "NO_DEATH_PENALTY_LESS_LV10(%s)", GetName());
|
||||
SPDLOG_DEBUG("NO_DEATH_PENALTY_LESS_LV10({})", GetName());
|
||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʾҽ<CABE><D2BD>ϴ<EFBFBD>."));
|
||||
return;
|
||||
}
|
||||
|
||||
if (Random::get(0, 2))
|
||||
{
|
||||
sys_log(0, "NO_DEATH_PENALTY_LUCK(%s)", GetName());
|
||||
SPDLOG_DEBUG("NO_DEATH_PENALTY_LUCK({})", GetName());
|
||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʾҽ<CABE><D2BD>ϴ<EFBFBD>."));
|
||||
return;
|
||||
}
|
||||
@ -310,7 +306,7 @@ void CHARACTER::DeathPenalty(BYTE bTown)
|
||||
{
|
||||
if (FindAffect(AFFECT_NO_DEATH_PENALTY))
|
||||
{
|
||||
sys_log(0, "NO_DEATH_PENALTY_AFFECT(%s)", GetName());
|
||||
SPDLOG_DEBUG("NO_DEATH_PENALTY_AFFECT({})", GetName());
|
||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʾҽ<CABE><D2BD>ϴ<EFBFBD>."));
|
||||
RemoveAffect(AFFECT_NO_DEATH_PENALTY);
|
||||
return;
|
||||
@ -320,7 +316,7 @@ void CHARACTER::DeathPenalty(BYTE bTown)
|
||||
{
|
||||
if (FindAffect(AFFECT_NO_DEATH_PENALTY))
|
||||
{
|
||||
sys_log(0, "NO_DEATH_PENALTY_AFFECT(%s)", GetName());
|
||||
SPDLOG_DEBUG("NO_DEATH_PENALTY_AFFECT({})", GetName());
|
||||
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ<EFBFBD><C8A3> <20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʾҽ<CABE><D2BD>ϴ<EFBFBD>."));
|
||||
RemoveAffect(AFFECT_NO_DEATH_PENALTY);
|
||||
return;
|
||||
@ -361,7 +357,7 @@ void CHARACTER::DeathPenalty(BYTE bTown)
|
||||
if (IsEquipUniqueItem(UNIQUE_ITEM_TEARDROP_OF_GODNESS))
|
||||
iLoss /= 2;
|
||||
|
||||
sys_log(0, "DEATH_PENALTY(%s) EXP_LOSS: %d percent %d%%", GetName(), iLoss, aiExpLossPercents[std::min(gPlayerMaxLevel, GetLevel())]);
|
||||
SPDLOG_DEBUG("DEATH_PENALTY({}) EXP_LOSS: {} percent {}%", GetName(), iLoss, aiExpLossPercents[std::min(gPlayerMaxLevel, GetLevel())]);
|
||||
|
||||
PointChange(POINT_EXP, -iLoss, true);
|
||||
}
|
||||
@ -381,7 +377,7 @@ EVENTFUNC(StunEvent)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "StunEvent> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("StunEvent> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -408,7 +404,7 @@ void CHARACTER::Stun()
|
||||
m_pkParty->SendMessage(this, PM_ATTACKED_BY, 0, 0);
|
||||
}
|
||||
|
||||
sys_log(1, "%s: Stun %p", GetName(), this);
|
||||
SPDLOG_DEBUG("{}: Stun {}", GetName(), (void*) this);
|
||||
|
||||
PointChange(POINT_HP_RECOVERY, -GetPoint(POINT_HP_RECOVERY));
|
||||
PointChange(POINT_SP_RECOVERY, -GetPoint(POINT_SP_RECOVERY));
|
||||
@ -452,7 +448,7 @@ EVENTFUNC(dead_event)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "dead_event> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("dead_event> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -469,7 +465,7 @@ EVENTFUNC(dead_event)
|
||||
|
||||
if (NULL == ch)
|
||||
{
|
||||
sys_err("DEAD_EVENT: cannot find char pointer with %s id(%d)", info->isPC ? "PC" : "MOB", info->dwID );
|
||||
SPDLOG_ERROR("DEAD_EVENT: cannot find char pointer with {} id({})", info->isPC ? "PC" : "MOB", info->dwID );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -487,7 +483,7 @@ EVENTFUNC(dead_event)
|
||||
ch->WarpSet(pos.x, pos.y);
|
||||
else
|
||||
{
|
||||
sys_err("cannot find spawn position (name %s)", ch->GetName());
|
||||
SPDLOG_ERROR("cannot find spawn position (name {})", ch->GetName());
|
||||
ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire()));
|
||||
}
|
||||
|
||||
@ -619,8 +615,7 @@ void CHARACTER::RewardGold(LPCHARACTER pkAttacker)
|
||||
for (int i = 0; i < iSplitCount; ++i)
|
||||
{
|
||||
int iGold = Random::get(GetMobTable().dwGoldMin, GetMobTable().dwGoldMax) / iSplitCount;
|
||||
if (test_server)
|
||||
sys_log(0, "iGold %d", iGold);
|
||||
SPDLOG_TRACE("iGold {}", iGold);
|
||||
iGold = iGold * CHARACTER_MANAGER::instance().GetMobGoldAmountRate(pkAttacker) / 100;
|
||||
iGold *= iGoldMultipler;
|
||||
|
||||
@ -629,11 +624,8 @@ void CHARACTER::RewardGold(LPCHARACTER pkAttacker)
|
||||
continue ;
|
||||
}
|
||||
|
||||
if (test_server)
|
||||
{
|
||||
sys_log(0, "Drop Moeny MobGoldAmountRate %d %d", CHARACTER_MANAGER::instance().GetMobGoldAmountRate(pkAttacker), iGoldMultipler);
|
||||
sys_log(0, "Drop Money gold %d GoldMin %d GoldMax %d", iGold, GetMobTable().dwGoldMax, GetMobTable().dwGoldMax);
|
||||
}
|
||||
SPDLOG_TRACE("Drop Moeny MobGoldAmountRate {} {}", CHARACTER_MANAGER::instance().GetMobGoldAmountRate(pkAttacker), iGoldMultipler);
|
||||
SPDLOG_TRACE("Drop Money gold {} GoldMin {} GoldMax {}", iGold, GetMobTable().dwGoldMax, GetMobTable().dwGoldMax);
|
||||
|
||||
// NOTE: <20><> <20><>ź<EFBFBD><C5BA> <20><> 3<><33> <20><> ó<><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
if ((item = ITEM_MANAGER::instance().CreateItem(1, iGold)))
|
||||
@ -741,7 +733,7 @@ void CHARACTER::Reward(bool bItemDrop)
|
||||
iGold *= GetGoldMultipler();
|
||||
int iSplitCount = Random::get(25, 35);
|
||||
|
||||
sys_log(0, "WAEGU Dead gold %d split %d", iGold, iSplitCount);
|
||||
SPDLOG_TRACE("WAEGU Dead gold {} split {}", iGold, iSplitCount);
|
||||
|
||||
for (int i = 1; i <= iSplitCount; ++i)
|
||||
{
|
||||
@ -818,8 +810,7 @@ void CHARACTER::Reward(bool bItemDrop)
|
||||
// <20><> <20><><EFBFBD><EFBFBD>
|
||||
//
|
||||
//PROF_UNIT pu2("r2");
|
||||
if (test_server)
|
||||
sys_log(0, "Drop money : Attacker %s", pkAttacker->GetName());
|
||||
SPDLOG_TRACE("Drop money : Attacker {}", pkAttacker->GetName());
|
||||
RewardGold(pkAttacker);
|
||||
//pu2.Pop();
|
||||
|
||||
@ -852,7 +843,7 @@ void CHARACTER::Reward(bool bItemDrop)
|
||||
pos.x += GetX();
|
||||
pos.y += GetY();
|
||||
|
||||
sys_log(0, "DROP_ITEM: %s %d %d from %s", item->GetName(), pos.x, pos.y, GetName());
|
||||
SPDLOG_DEBUG("DROP_ITEM: {} {} {} from {}", item->GetName(), pos.x, pos.y, GetName());
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -894,7 +885,7 @@ void CHARACTER::Reward(bool bItemDrop)
|
||||
|
||||
if (!item)
|
||||
{
|
||||
sys_err("item null in vector idx %d", iItemIdx + 1);
|
||||
SPDLOG_ERROR("item null in vector idx {}", iItemIdx + 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -908,7 +899,7 @@ void CHARACTER::Reward(bool bItemDrop)
|
||||
pos.x += GetX();
|
||||
pos.y += GetY();
|
||||
|
||||
sys_log(0, "DROP_ITEM: %s %d %d by %s", item->GetName(), pos.x, pos.y, GetName());
|
||||
SPDLOG_DEBUG("DROP_ITEM: {} {} {} by {}", item->GetName(), pos.x, pos.y, GetName());
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -922,7 +913,7 @@ void CHARACTER::Reward(bool bItemDrop)
|
||||
|
||||
if (!item)
|
||||
{
|
||||
sys_err("item null in vector idx %d", iItemIdx + 1);
|
||||
SPDLOG_ERROR("item null in vector idx {}", iItemIdx + 1);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -950,7 +941,7 @@ void CHARACTER::Reward(bool bItemDrop)
|
||||
pos.x += GetX();
|
||||
pos.y += GetY();
|
||||
|
||||
sys_log(0, "DROP_ITEM: %s %d %d by %s", item->GetName(), pos.x, pos.y, GetName());
|
||||
SPDLOG_DEBUG("DROP_ITEM: {} {} {} by {}", item->GetName(), pos.x, pos.y, GetName());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1029,7 +1020,7 @@ void CHARACTER::ItemDropPenalty(LPCHARACTER pkKiller)
|
||||
bool isDropAllEquipments = false;
|
||||
|
||||
TItemDropPenalty & r = table[iAlignIndex];
|
||||
sys_log(0, "%s align %d inven_pct %d equip_pct %d", GetName(), iAlignIndex, r.iInventoryPct, r.iEquipmentPct);
|
||||
SPDLOG_DEBUG("{} align {} inven_pct {} equip_pct {}", GetName(), iAlignIndex, r.iInventoryPct, r.iEquipmentPct);
|
||||
|
||||
bool bDropInventory = r.iInventoryPct >= Random::get(1, 1000);
|
||||
bool bDropEquipment = r.iEquipmentPct >= Random::get(1, 100);
|
||||
@ -1144,7 +1135,7 @@ void CHARACTER::ItemDropPenalty(LPCHARACTER pkKiller)
|
||||
item->AddToGround(GetMapIndex(), pos);
|
||||
item->StartDestroyEvent();
|
||||
|
||||
sys_log(0, "DROP_ITEM_PK: %s %d %d from %s", item->GetName(), pos.x, pos.y, GetName());
|
||||
SPDLOG_DEBUG("DROP_ITEM_PK: {} {} {} from {}", item->GetName(), pos.x, pos.y, GetName());
|
||||
LogManager::instance().ItemLog(this, item, "DEAD_DROP", (window == INVENTORY) ? "INVENTORY" : ((window == EQUIPMENT) ? "EQUIPMENT" : ""));
|
||||
|
||||
pos.x = GetX() + Random::get(-7, 7) * 20;
|
||||
@ -1294,14 +1285,14 @@ void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)
|
||||
{
|
||||
if (!isForked)
|
||||
{
|
||||
sys_log(1, "DEAD: %s %p WITH PENALTY", GetName(), this);
|
||||
SPDLOG_DEBUG("DEAD: {} {} WITH PENALTY", GetName(), (void*) this);
|
||||
SET_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_DEATH_PENALTY);
|
||||
LogManager::instance().CharLog(this, pkKiller->GetRaceNum(), "DEAD_BY_NPC", pkKiller->GetName());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_log(1, "DEAD_BY_PC: %s %p KILLER %s %p", GetName(), this, pkKiller->GetName(), get_pointer(pkKiller));
|
||||
SPDLOG_DEBUG("DEAD_BY_PC: {} {} KILLER {} {}", GetName(), (void*) this, pkKiller->GetName(), (void*) get_pointer(pkKiller));
|
||||
REMOVE_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_DEATH_PENALTY);
|
||||
|
||||
if (GetEmpire() != pkKiller->GetEmpire())
|
||||
@ -1351,7 +1342,7 @@ void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)
|
||||
pkKiller->UpdateAlignment(-20000);
|
||||
else
|
||||
{
|
||||
sys_log(0, "ALIGNMENT PARTY count %d amount %d", f.m_iCount, f.m_iAmount);
|
||||
SPDLOG_DEBUG("ALIGNMENT PARTY count {} amount {}", f.m_iCount, f.m_iAmount);
|
||||
|
||||
f.m_iStep = 1;
|
||||
pkKiller->GetParty()->ForEachOnlineMember(f);
|
||||
@ -1374,13 +1365,12 @@ void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_log(1, "DEAD: %s %p", GetName(), this);
|
||||
SPDLOG_DEBUG("DEAD: {} {}", GetName(), (void*) this);
|
||||
REMOVE_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_DEATH_PENALTY);
|
||||
}
|
||||
|
||||
ClearSync();
|
||||
|
||||
//sys_log(1, "stun cancel %s[%d]", GetName(), (DWORD)GetVID());
|
||||
event_cancel(&m_pkStunEvent); // <20><><EFBFBD><EFBFBD> <20>̺<EFBFBD>Ʈ<EFBFBD><C6AE> <20><><EFBFBD>δ<EFBFBD>.
|
||||
|
||||
if (IsPC())
|
||||
@ -1469,7 +1459,7 @@ void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)
|
||||
{
|
||||
if (m_pkDeadEvent)
|
||||
{
|
||||
sys_log(1, "DEAD_EVENT_CANCEL: %s %p %p", GetName(), this, get_pointer(m_pkDeadEvent));
|
||||
SPDLOG_DEBUG("DEAD_EVENT_CANCEL: {} {} {}", GetName(), (void*) this, (void*) get_pointer(m_pkDeadEvent));
|
||||
event_cancel(&m_pkDeadEvent);
|
||||
}
|
||||
|
||||
@ -1505,7 +1495,7 @@ void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)
|
||||
}
|
||||
}
|
||||
|
||||
sys_log(1, "DEAD_EVENT_CREATE: %s %p %p", GetName(), this, get_pointer(m_pkDeadEvent));
|
||||
SPDLOG_DEBUG("DEAD_EVENT_CREATE: {} {} {}", GetName(), (void*) this, (void*) get_pointer(m_pkDeadEvent));
|
||||
}
|
||||
|
||||
if (m_pkExchange != NULL)
|
||||
@ -1530,7 +1520,7 @@ void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead)
|
||||
}
|
||||
else
|
||||
{
|
||||
sys_err("DragonLair: Dragon killed by nobody");
|
||||
SPDLOG_ERROR("DragonLair: Dragon killed by nobody");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1641,7 +1631,7 @@ bool CHARACTER::Damage(LPCHARACTER pAttacker, int dam, EDamageType type) // retu
|
||||
DWORD dwGold = 1000;
|
||||
int iSplitCount = Random::get(10, 13);
|
||||
|
||||
sys_log(0, "WAEGU DropGoldOnHit %d times", GetMaxSP());
|
||||
SPDLOG_TRACE("WAEGU DropGoldOnHit {} times", GetMaxSP());
|
||||
|
||||
for (int i = 1; i <= iSplitCount; ++i)
|
||||
{
|
||||
@ -2471,14 +2461,12 @@ static void GiveExp(LPCHARACTER from, LPCHARACTER to, int iExp)
|
||||
|
||||
}
|
||||
*/
|
||||
if (test_server)
|
||||
{
|
||||
sys_log(0, "Bonus Exp : Ramadan Candy: %d MallExp: %d PointExp: %d",
|
||||
to->GetPoint(POINT_RAMADAN_CANDY_BONUS_EXP),
|
||||
to->GetPoint(POINT_MALL_EXPBONUS),
|
||||
to->GetPoint(POINT_EXP)
|
||||
);
|
||||
}
|
||||
|
||||
SPDLOG_TRACE("Bonus Exp : Ramadan Candy: {} MallExp: {} PointExp: {}",
|
||||
to->GetPoint(POINT_RAMADAN_CANDY_BONUS_EXP),
|
||||
to->GetPoint(POINT_MALL_EXPBONUS),
|
||||
to->GetPoint(POINT_EXP)
|
||||
);
|
||||
|
||||
// <20><>ȹ<EFBFBD><C8B9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2005.04.21 <20><><EFBFBD><EFBFBD> 85%
|
||||
iExp = iExp * CHARACTER_MANAGER::instance().GetMobExpRate(to) / 100;
|
||||
@ -2581,7 +2569,7 @@ namespace NPartyExpDistribute
|
||||
break;
|
||||
|
||||
default:
|
||||
sys_err("Unknown party exp distribution mode %d", m_iMode);
|
||||
SPDLOG_ERROR("Unknown party exp distribution mode {}", m_iMode);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -2705,8 +2693,6 @@ LPCHARACTER CHARACTER::DistributeExp()
|
||||
di.pAttacker = pAttacker;
|
||||
di.pParty = NULL;
|
||||
|
||||
//sys_log(0, "__ pq_damage %s %d", pAttacker->GetName(), iDam);
|
||||
//pq_damage.push(di);
|
||||
damage_info_table.push_back(di);
|
||||
}
|
||||
}
|
||||
@ -2714,7 +2700,6 @@ LPCHARACTER CHARACTER::DistributeExp()
|
||||
for (std::map<LPPARTY, TDamageInfo>::iterator it = map_party_damage.begin(); it != map_party_damage.end(); ++it)
|
||||
{
|
||||
damage_info_table.push_back(it->second);
|
||||
//sys_log(0, "__ pq_damage_party [%u] %d", it->second.pParty->GetLeaderPID(), it->second.iDam);
|
||||
}
|
||||
|
||||
SetExp(0);
|
||||
@ -2725,16 +2710,13 @@ LPCHARACTER CHARACTER::DistributeExp()
|
||||
|
||||
if (m_pkChrStone) // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>ġ<EFBFBD><C4A1> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ѱ<EFBFBD><D1B1><EFBFBD>.
|
||||
{
|
||||
//sys_log(0, "__ Give half to Stone : %d", iExpToDistribute>>1);
|
||||
int iExp = iExpToDistribute >> 1;
|
||||
m_pkChrStone->SetExp(m_pkChrStone->GetExp() + iExp);
|
||||
iExpToDistribute -= iExp;
|
||||
}
|
||||
|
||||
sys_log(1, "%s total exp: %d, damage_info_table.size() == %d, TotalDam %d",
|
||||
SPDLOG_DEBUG("{} total exp: {}, damage_info_table.size() == {}, TotalDam {}",
|
||||
GetName(), iExpToDistribute, damage_info_table.size(), iTotalDam);
|
||||
//sys_log(1, "%s total exp: %d, pq_damage.size() == %d, TotalDam %d",
|
||||
//GetName(), iExpToDistribute, pq_damage.size(), iTotalDam);
|
||||
|
||||
if (damage_info_table.empty())
|
||||
return NULL;
|
||||
@ -2762,14 +2744,12 @@ LPCHARACTER CHARACTER::DistributeExp()
|
||||
|
||||
if (fPercent > 1.0f)
|
||||
{
|
||||
sys_err("DistributeExp percent over 1.0 (fPercent %f name %s)", fPercent, di->pAttacker->GetName());
|
||||
SPDLOG_ERROR("DistributeExp percent over 1.0 (fPercent {} name {})", fPercent, di->pAttacker->GetName());
|
||||
fPercent = 1.0f;
|
||||
}
|
||||
|
||||
iExp += (int) (iExpToDistribute * fPercent);
|
||||
|
||||
//sys_log(0, "%s given exp percent %.1f + 20 dam %d", GetName(), fPercent * 100.0f, di.iDam);
|
||||
|
||||
di->Distribute(this, iExp);
|
||||
|
||||
// 100% <20><> <20>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
@ -2791,11 +2771,10 @@ LPCHARACTER CHARACTER::DistributeExp()
|
||||
|
||||
if (fPercent > 1.0f)
|
||||
{
|
||||
sys_err("DistributeExp percent over 1.0 (fPercent %f name %s)", fPercent, di.pAttacker->GetName());
|
||||
SPDLOG_ERROR("DistributeExp percent over 1.0 (fPercent {} name {})", fPercent, di.pAttacker->GetName());
|
||||
fPercent = 1.0f;
|
||||
}
|
||||
|
||||
//sys_log(0, "%s given exp percent %.1f dam %d", GetName(), fPercent * 100.0f, di.iDam);
|
||||
di.Distribute(this, (int) (iExpToDistribute * fPercent));
|
||||
}
|
||||
}
|
||||
@ -2840,7 +2819,7 @@ void CHARACTER::UseArrow(LPITEM pkArrow, DWORD dwArrowCount)
|
||||
{
|
||||
LPITEM pkNewArrow = FindSpecifyItem(dwVnum);
|
||||
|
||||
sys_log(0, "UseArrow : FindSpecifyItem %u %p", dwVnum, get_pointer(pkNewArrow));
|
||||
SPDLOG_DEBUG("UseArrow : FindSpecifyItem {} {}", dwVnum, (void*) get_pointer(pkNewArrow));
|
||||
|
||||
if (pkNewArrow)
|
||||
EquipItem(pkNewArrow);
|
||||
@ -2926,8 +2905,6 @@ class CFuncShoot
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
iDam = iDam * (100 - pkVictim->GetPoint(POINT_RESIST_BOW)) / 100;
|
||||
|
||||
//sys_log(0, "%s arrow %s dam %d", m_me->GetName(), pkVictim->GetName(), iDam);
|
||||
|
||||
m_me->OnMove(true);
|
||||
pkVictim->OnMove();
|
||||
|
||||
@ -2953,8 +2930,6 @@ class CFuncShoot
|
||||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
iDam = iDam * (100 - pkVictim->GetPoint(POINT_RESIST_MAGIC)) / 100;
|
||||
|
||||
//sys_log(0, "%s arrow %s dam %d", m_me->GetName(), pkVictim->GetName(), iDam);
|
||||
|
||||
m_me->OnMove(true);
|
||||
pkVictim->OnMove();
|
||||
|
||||
@ -3007,7 +2982,7 @@ class CFuncShoot
|
||||
if (pkVictim->CanBeginFight())
|
||||
pkVictim->BeginFight(m_me);
|
||||
|
||||
sys_log(0, "%s kwankeyok %s", m_me->GetName(), pkVictim->GetName());
|
||||
SPDLOG_DEBUG("{} kwankeyok {}", m_me->GetName(), pkVictim->GetName());
|
||||
m_me->ComputeSkill(m_bType, pkVictim);
|
||||
m_me->UseArrow(pkArrow, iUseArrow);
|
||||
}
|
||||
@ -3025,7 +3000,7 @@ class CFuncShoot
|
||||
if (pkVictim->CanBeginFight())
|
||||
pkVictim->BeginFight(m_me);
|
||||
|
||||
sys_log(0, "%s gigung %s", m_me->GetName(), pkVictim->GetName());
|
||||
SPDLOG_DEBUG("{} gigung {}", m_me->GetName(), pkVictim->GetName());
|
||||
m_me->ComputeSkill(m_bType, pkVictim);
|
||||
m_me->UseArrow(pkArrow, iUseArrow);
|
||||
}
|
||||
@ -3043,7 +3018,7 @@ class CFuncShoot
|
||||
if (pkVictim->CanBeginFight())
|
||||
pkVictim->BeginFight(m_me);
|
||||
|
||||
sys_log(0, "%s hwajo %s", m_me->GetName(), pkVictim->GetName());
|
||||
SPDLOG_DEBUG("{} hwajo {}", m_me->GetName(), pkVictim->GetName());
|
||||
m_me->ComputeSkill(m_bType, pkVictim);
|
||||
m_me->UseArrow(pkArrow, iUseArrow);
|
||||
}
|
||||
@ -3062,7 +3037,7 @@ class CFuncShoot
|
||||
if (pkVictim->CanBeginFight())
|
||||
pkVictim->BeginFight(m_me);
|
||||
|
||||
sys_log(0, "%s horse_wildattack %s", m_me->GetName(), pkVictim->GetName());
|
||||
SPDLOG_DEBUG("{} horse_wildattack {}", m_me->GetName(), pkVictim->GetName());
|
||||
m_me->ComputeSkill(m_bType, pkVictim);
|
||||
m_me->UseArrow(pkArrow, iUseArrow);
|
||||
}
|
||||
@ -3087,7 +3062,7 @@ class CFuncShoot
|
||||
if (pkVictim->CanBeginFight())
|
||||
pkVictim->BeginFight(m_me);
|
||||
|
||||
sys_log(0, "%s - Skill %d -> %s", m_me->GetName(), m_bType, pkVictim->GetName());
|
||||
SPDLOG_DEBUG("{} - Skill {} -> {}", m_me->GetName(), m_bType, pkVictim->GetName());
|
||||
m_me->ComputeSkill(m_bType, pkVictim);
|
||||
}
|
||||
break;
|
||||
@ -3100,7 +3075,7 @@ class CFuncShoot
|
||||
if (pkVictim->CanBeginFight())
|
||||
pkVictim->BeginFight(m_me);
|
||||
|
||||
sys_log(0, "%s - Skill %d -> %s", m_me->GetName(), m_bType, pkVictim->GetName());
|
||||
SPDLOG_DEBUG("{} - Skill {} -> {}", m_me->GetName(), m_bType, pkVictim->GetName());
|
||||
m_me->ComputeSkill(m_bType, pkVictim);
|
||||
|
||||
// TODO <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><> <20>ϱ<EFBFBD>
|
||||
@ -3128,7 +3103,7 @@ class CFuncShoot
|
||||
break;*/
|
||||
|
||||
default:
|
||||
sys_err("CFuncShoot: I don't know this type [%d] of range attack.", (int) m_bType);
|
||||
SPDLOG_ERROR("CFuncShoot: I don't know this type [{}] of range attack.", (int) m_bType);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -3138,7 +3113,7 @@ class CFuncShoot
|
||||
|
||||
bool CHARACTER::Shoot(BYTE bType)
|
||||
{
|
||||
sys_log(1, "Shoot %s type %u flyTargets.size %zu", GetName(), bType, m_vec_dwFlyTargets.size());
|
||||
SPDLOG_DEBUG("Shoot {} type {} flyTargets.size {}", GetName(), bType, m_vec_dwFlyTargets.size());
|
||||
|
||||
if (!CanMove())
|
||||
{
|
||||
@ -3186,7 +3161,7 @@ void CHARACTER::FlyTarget(DWORD dwTargetVID, int x, int y, BYTE bHeader)
|
||||
pack.y = y;
|
||||
}
|
||||
|
||||
sys_log(1, "FlyTarget %s vid %d x %d y %d", GetName(), pack.dwTargetVID, pack.x, pack.y);
|
||||
SPDLOG_DEBUG("FlyTarget {} vid {} x {} y {}", GetName(), pack.dwTargetVID, pack.x, pack.y);
|
||||
PacketAround(&pack, sizeof(pack), this);
|
||||
}
|
||||
|
||||
@ -3326,7 +3301,7 @@ void CHARACTER::SetKillerMode(bool isOn)
|
||||
|
||||
m_iKillerModePulse = thecore_pulse();
|
||||
UpdatePacket();
|
||||
sys_log(0, "SetKillerMode Update %s[%d]", GetName(), GetPlayerID());
|
||||
SPDLOG_DEBUG("SetKillerMode Update {}[{}]", GetName(), GetPlayerID());
|
||||
}
|
||||
|
||||
bool CHARACTER::IsKillerMode() const
|
||||
@ -3359,7 +3334,7 @@ void CHARACTER::SetPKMode(BYTE bPKMode)
|
||||
m_bPKMode = bPKMode;
|
||||
UpdatePacket();
|
||||
|
||||
sys_log(0, "PK_MODE: %s %d", GetName(), m_bPKMode);
|
||||
SPDLOG_DEBUG("PK_MODE: {} {}", GetName(), m_bPKMode);
|
||||
}
|
||||
|
||||
BYTE CHARACTER::GetPKMode() const
|
||||
@ -3562,7 +3537,6 @@ void CHARACTER::UpdateAggrPointEx(LPCHARACTER pAttacker, EDamageType type, int d
|
||||
if (info.iAggro < 0)
|
||||
info.iAggro = 0;
|
||||
|
||||
//sys_log(0, "UpdateAggrPointEx for %s by %s dam %d total %d", GetName(), pAttacker->GetName(), dam, total);
|
||||
if (GetParty() && dam > 0 && type != DAMAGE_TYPE_SPECIAL)
|
||||
{
|
||||
LPPARTY pParty = GetParty();
|
||||
|
@ -125,7 +125,7 @@ bool CHARACTER::DragonSoul_RefineWindow_Open(LPENTITY pEntity)
|
||||
|
||||
if (NULL == d)
|
||||
{
|
||||
sys_err ("User(%s)'s DESC is NULL POINT.", GetName());
|
||||
SPDLOG_ERROR("User({})'s DESC is NULL POINT.", GetName());
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -62,8 +62,7 @@ bool CHARACTER::StartRiding()
|
||||
|
||||
MountVnum(dwMountVnum);
|
||||
|
||||
if(test_server)
|
||||
sys_log(0, "Ride Horse : %s ", GetName());
|
||||
SPDLOG_TRACE("Ride Horse : {} ", GetName());
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -106,7 +105,7 @@ EVENTFUNC(horse_dead_event)
|
||||
|
||||
if ( info == NULL )
|
||||
{
|
||||
sys_err( "horse_dead_event> <Factor> Null pointer" );
|
||||
SPDLOG_ERROR("horse_dead_event> <Factor> Null pointer" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -151,7 +150,7 @@ void CHARACTER::HorseSummon(bool bSummon, bool bFromFar, DWORD dwVnum, const cha
|
||||
if (IsRiding())
|
||||
return;
|
||||
|
||||
sys_log(0, "HorseSummon : %s lv:%d bSummon:%d fromFar:%d", GetName(), GetLevel(), bSummon, bFromFar);
|
||||
SPDLOG_DEBUG("HorseSummon : {} lv:{} bSummon:{} fromFar:{}", GetName(), GetLevel(), bSummon, bFromFar);
|
||||
|
||||
int x = GetX();
|
||||
int y = GetY();
|
||||
@ -210,7 +209,7 @@ void CHARACTER::HorseSummon(bool bSummon, bool bFromFar, DWORD dwVnum, const cha
|
||||
if (!m_chHorse->Show(GetMapIndex(), x, y, GetZ()))
|
||||
{
|
||||
M2_DESTROY_CHARACTER(m_chHorse);
|
||||
sys_err("cannot show monster");
|
||||
SPDLOG_ERROR("cannot show monster");
|
||||
m_chHorse = NULL;
|
||||
return;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user