diff --git a/.github/README.md b/.github/README.md index 948a86f9a..3bb68ad88 100644 --- a/.github/README.md +++ b/.github/README.md @@ -1,7 +1,6 @@ # ![logo](https://raw.githubusercontent.com/azerothcore/azerothcore.github.io/master/images/logo-github.png) AzerothCore [![CodeFactor](https://www.codefactor.io/repository/github/azerothcore/azerothcore-wotlk/badge)](https://www.codefactor.io/repository/github/azerothcore/azerothcore-wotlk) -[![Bountysource](https://www.bountysource.com/badge/tracker?tracker_id=40032087)](https://www.bountysource.com/teams/azerothcore/bounties "Put money on issues or get paid for fixing them") [![StackOverflow](http://img.shields.io/badge/stackoverflow-azerothcore-blue.svg?logo=stackoverflow)](https://stackoverflow.com/questions/tagged/azerothcore?sort=newest "Ask / browse questions here") [![Discord](https://img.shields.io/discord/217589275766685707?logo=discord&logoColor=white)](https://discord.gg/gkt4y2x "Our community hub on Discord") diff --git a/.github/workflows/build_dbimport.yml b/.github/workflows/build_dbimport.yml index 34b8f4988..ecc4068d1 100644 --- a/.github/workflows/build_dbimport.yml +++ b/.github/workflows/build_dbimport.yml @@ -23,7 +23,7 @@ jobs: COMPILER: ${{ matrix.compiler }} if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Cache uses: actions/cache@v3 env: diff --git a/.github/workflows/check_pending_sql.yml b/.github/workflows/check_pending_sql.yml index f75913bb0..52ea18acb 100644 --- a/.github/workflows/check_pending_sql.yml +++ b/.github/workflows/check_pending_sql.yml @@ -5,7 +5,8 @@ on: jobs: check-pending-sql: runs-on: ubuntu-latest + if: github.repository == 'azerothcore/azerothcore-wotlk' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check pending SQL run: source ./apps/ci/ci-pending.sh diff --git a/.github/workflows/codestyle.yml b/.github/workflows/codestyle.yml index 910cd6e49..acce90c0d 100644 --- a/.github/workflows/codestyle.yml +++ b/.github/workflows/codestyle.yml @@ -9,8 +9,9 @@ jobs: matrix: os: [ubuntu-20.04] runs-on: ${{ matrix.os }} + if: github.repository == 'azerothcore/azerothcore-wotlk' name: check codestyle steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Check core codestyle run: source ./apps/ci/ci-codestyle.sh diff --git a/.github/workflows/core_build.yml b/.github/workflows/core_build.yml index b068a80ba..c64f7178d 100644 --- a/.github/workflows/core_build.yml +++ b/.github/workflows/core_build.yml @@ -23,7 +23,7 @@ jobs: COMPILER: ${{ matrix.compiler }} if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Cache uses: actions/cache@v3 with: diff --git a/.github/workflows/core_matrix_build.yml b/.github/workflows/core_matrix_build.yml index 9dc0595af..76ae747e3 100644 --- a/.github/workflows/core_matrix_build.yml +++ b/.github/workflows/core_matrix_build.yml @@ -40,7 +40,7 @@ jobs: || github.event.label.name == 'run-build') ) steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Cache uses: actions/cache@v3 with: diff --git a/.github/workflows/core_modules_build.yml b/.github/workflows/core_modules_build.yml index 0997b0b53..586edcfa4 100644 --- a/.github/workflows/core_modules_build.yml +++ b/.github/workflows/core_modules_build.yml @@ -34,7 +34,7 @@ jobs: || github.event.label.name == 'run-build') ) steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Checkout modules run: ./apps/ci/ci-install-modules.sh if: matrix.modules == 'with' diff --git a/.github/workflows/cpp-check.yml b/.github/workflows/cpp-check.yml index b29cb4816..ea1f7adbb 100644 --- a/.github/workflows/cpp-check.yml +++ b/.github/workflows/cpp-check.yml @@ -18,19 +18,17 @@ jobs: strategy: fail-fast: false runs-on: ubuntu-22.04 + if: github.repository == 'azerothcore/azerothcore-wotlk' name: cpp check steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: cpp check run: | sudo apt update -y sudo apt install -y cppcheck - cppcheck --force --inline-suppr \ - -i src/server/game/Achievements/AchievementMgr.cpp \ - -i src/server/game/AuctionHouse/AuctionHouseMgr.cpp \ - -i src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp \ - -i src/server/game/DungeonFinding/LFGMgr.cpp \ - -i src/server/game/Entities/GameObject/GameObject.cpp \ - -i src/server/game/Entities/Pet/Pet.cpp \ - -i src/server/game/Entities/Player/Player.cpp \ - src/ + cppcheck --force --inline-suppr --suppressions-list=./.suppress.cppcheck src/ --output-file=report.txt + + if [ -s report.txt ]; then # if file is not empty + cat report.txt + exit 1 # let github action fails + fi diff --git a/.github/workflows/docker_build.yml b/.github/workflows/docker_build.yml index 70e658685..2dfc535eb 100644 --- a/.github/workflows/docker_build.yml +++ b/.github/workflows/docker_build.yml @@ -40,7 +40,7 @@ jobs: docker --version docker compose version - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # we need the entire history for the ac-dev-server # with: # fetch-depth: 2 @@ -108,7 +108,7 @@ jobs: docker --version docker compose version - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # we need the entire history for the ac-dev-server # with: # fetch-depth: 2 diff --git a/.github/workflows/import_pending.yml b/.github/workflows/import_pending.yml index 80f3d7c5e..fd5bdf077 100644 --- a/.github/workflows/import_pending.yml +++ b/.github/workflows/import_pending.yml @@ -9,26 +9,41 @@ jobs: strategy: fail-fast: false runs-on: ubuntu-20.04 + permissions: write-all if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: persist-credentials: false - - name: Extract branch name - run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})" - id: extract_branch + # If we're fetching all the history in a later step it makes sense to + # pre-load it now + fetch-depth: 0 + ref: ${{ github.ref_name }} + + - uses: denoland/setup-deno@v1 + with: + # Specifies latest 1.x + deno-version: "~1.0" + - name: Import and commit pending sql run: | - git config user.email "azerothcorebot@gmail.com" && git config user.name "AzerothCoreBot" + git config --local user.email "github-actions[bot]@users.noreply.github.com" + git config --local user.name "github-actions[bot]" + # Get the latest changes from git + git pull --rebase origin "${{ github.ref_name }}" bash bin/acore-db-pendings - bash bin/acore-import-changelogs - git fetch --unshallow origin ${BRANCH} + deno run --allow-all --unstable apps/ci/ci-pending-changelogs.ts git add -A . git commit -am "chore(DB): import pending files" -m "Referenced commit(s): ${GITHUB_SHA}" || true env: - BRANCH: ${{ steps.extract_branch.outputs.branch }} + # Noting that the branch name can only be master, as per the event + # triggering this action + BRANCH: ${{ github.ref_name }} + - name: Push changes - uses: ad-m/github-push-action@fe38f0a751bf9149f0270cc1fe20bf9156854365 + uses: ad-m/github-push-action@master with: github_token: ${{ secrets.AC_GITHUB_TOKEN }} - branch: ${{ steps.extract_branch.outputs.branch }} + # Noting that the branch name can only be master, as per the event + # triggering this action + branch: ${{ github.ref_name }} diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 63ac5f983..46e3a9618 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -25,7 +25,7 @@ jobs: && !github.event.pull_request.draft && (github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build') steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Cache uses: actions/cache@v3 with: diff --git a/.github/workflows/pr_labeler.yml b/.github/workflows/pr_labeler.yml index 0c76a2520..4e231bb0b 100644 --- a/.github/workflows/pr_labeler.yml +++ b/.github/workflows/pr_labeler.yml @@ -5,9 +5,14 @@ on: jobs: triage: runs-on: ubuntu-20.04 + permissions: write-all + if: github.repository == 'azerothcore/azerothcore-wotlk' steps: - - uses: actions/labeler@v3 + - uses: actions/checkout@v4 with: - repo-token: ${{ secrets.AC_GITHUB_TOKEN }} + persist-credentials: true + - uses: actions/labeler@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} configuration-path: .github/labeler.yml sync-labels: true diff --git a/.github/workflows/tools_build.yml b/.github/workflows/tools_build.yml index 944e2a38e..6044cc036 100644 --- a/.github/workflows/tools_build.yml +++ b/.github/workflows/tools_build.yml @@ -23,7 +23,7 @@ jobs: COMPILER: ${{ matrix.compiler }} if: github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Cache uses: actions/cache@v3 env: diff --git a/.github/workflows/windows_build.yml b/.github/workflows/windows_build.yml index 22f09f5c3..76d78e7e0 100644 --- a/.github/workflows/windows_build.yml +++ b/.github/workflows/windows_build.yml @@ -19,13 +19,13 @@ jobs: runs-on: ${{ matrix.os }} name: ${{ matrix.os }} env: - BOOST_ROOT: C:\local\boost_1_79_0 + BOOST_ROOT: C:\local\boost_1_82_0 if: | github.repository == 'azerothcore/azerothcore-wotlk' && !github.event.pull_request.draft && (github.ref == 'refs/heads/master' || contains(github.event.pull_request.labels.*.name, 'run-build') || github.event.label.name == 'run-build') steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ccache uses: hendrikmuhs/ccache-action@v1.2.9 - name: Configure OS diff --git a/.suppress.cppcheck b/.suppress.cppcheck new file mode 100644 index 000000000..a29d5a589 --- /dev/null +++ b/.suppress.cppcheck @@ -0,0 +1 @@ +cppcheckError diff --git a/apps/bash_shared/deno.sh b/apps/bash_shared/deno.sh deleted file mode 100644 index 1caaf6f80..000000000 --- a/apps/bash_shared/deno.sh +++ /dev/null @@ -1,23 +0,0 @@ -DENO_MIN_VERSION="1.26.0" - -function denoInstall() { - - { # try - echo "Deno version check:" && denoCmd upgrade --version $DENO_MIN_VERSION - } || - { # catch - echo "Installing Deno..." - # just one line of command that works on all OSes - # (temporary cd into AC_PATH_DEPS) - curl -fsSL https://deno.land/x/install/install.sh | DENO_INSTALL="$AC_PATH_DEPS/deno" sh - } -} - -function denoCmd() { - [[ "$OSTYPE" = "msys" ]] && DENOEXEC="./deps/deno/bin/deno.exe" || DENOEXEC="./deps/deno/bin/deno" - (cd "$AC_PATH_ROOT" ; $DENOEXEC "$@") -} - -function denoRunFile() { - denoCmd run --allow-all --unstable "$@" -} diff --git a/apps/bash_shared/includes.sh b/apps/bash_shared/includes.sh index 22a4d91b7..63593e4c5 100644 --- a/apps/bash_shared/includes.sh +++ b/apps/bash_shared/includes.sh @@ -13,9 +13,4 @@ source "$AC_PATH_DEPS/acore/bash-lib/src/event/hooks.sh" source "$AC_PATH_SHARED/common.sh" -source "$AC_PATH_SHARED/deno.sh" - -denoInstall - [[ "$OSTYPE" = "msys" ]] && AC_BINPATH_FULL="$BINPATH" || AC_BINPATH_FULL="$BINPATH/bin" - diff --git a/apps/compiler/includes/functions.sh b/apps/compiler/includes/functions.sh index 5929816f9..2e7299905 100644 --- a/apps/compiler/includes/functions.sh +++ b/apps/compiler/includes/functions.sh @@ -73,7 +73,7 @@ function comp_configure() { echo "Platform: $OSTYPE" case "$OSTYPE" in darwin*) - OSOPTIONS=" -DMYSQL_ADD_INCLUDE_PATH=/usr/local/include -DMYSQL_LIBRARY=/usr/local/lib/libmysqlclient.dylib -DREADLINE_INCLUDE_DIR=/usr/local/opt/readline/include -DREADLINE_LIBRARY=/usr/local/opt/readline/lib/libreadline.dylib -DOPENSSL_INCLUDE_DIR=/usr/local/opt/openssl@1.1/include -DOPENSSL_SSL_LIBRARIES=/usr/local/opt/openssl@1.1/lib/libssl.dylib -DOPENSSL_CRYPTO_LIBRARIES=/usr/local/opt/openssl@1.1/lib/libcrypto.dylib " + OSOPTIONS=" -DMYSQL_ADD_INCLUDE_PATH=/usr/local/include -DMYSQL_LIBRARY=/usr/local/lib/libmysqlclient.dylib -DREADLINE_INCLUDE_DIR=/usr/local/opt/readline/include -DREADLINE_LIBRARY=/usr/local/opt/readline/lib/libreadline.dylib -DOPENSSL_INCLUDE_DIR=/usr/local/opt/openssl@3/include -DOPENSSL_SSL_LIBRARIES=/usr/local/opt/openssl@3/lib/libssl.dylib -DOPENSSL_CRYPTO_LIBRARIES=/usr/local/opt/openssl@3/lib/libcrypto.dylib " ;; msys*) OSOPTIONS=" -DMYSQL_INCLUDE_DIR=C:\tools\mysql\current\include -DMYSQL_LIBRARY=C:\tools\mysql\current\lib\mysqlclient.lib " diff --git a/apps/docker/docker-cmd.sh b/apps/docker/docker-cmd.sh new file mode 100644 index 000000000..89e41e14a --- /dev/null +++ b/apps/docker/docker-cmd.sh @@ -0,0 +1,184 @@ +#!/bin/bash + +# TODO(michaeldelago) decide if we need a wrapper like this around docker +# commands. +# +# Running the docker commands should be simple and familiar. +# Introducting extra steps through the dashboard can cause issues with people +# getting started, especially if they already know docker. +# +# If a new user knows docker, they will feel (pretty close) to right at home. +# If a new user doesn't know docker, it's easy to learn and the knowledge +# applies to much more than azerothcore + +set -euo pipefail + +COMPOSE_DOCKER_CLI_BUILD="1" +DOCKER_BUILDKIT="1" +# BUILDKIT_INLINE_CACHE="1" + +function usage () { + cat < start:app # Start the development worldserver and authserver +> start:app:d # Start the development worldserver and authserver in detached mode +> build # build the development worldserver and authserver +> pull # pull the development worldserver and authserver +> build:nocache # build the development worldserver and authserver without cache +> clean:build # clean build artifacts from the dev server +> client-data # download client data in the dev server +> dev:up start # the dev server +> dev:build # compile azerothcore using the dev server +> dev:dash # execute the dashboard in the dev server container +> dev:shell [ ARGS... ] # open a bash shell in the dev server +> prod:build # Build the service containers used by acore-docker +> prod:pull # Pull the containers used by acore-docker +> prod:up # Start the services used by acore-docker +> prod:up:d # start the services used by acore-docker in the background +> attach SERVICE # attach to a service currently running in docker compose +EOF +} + +# If no args, just spit usage and exit +[[ $# -eq 0 ]] && usage && exit + +# loop through commands passed +while [[ $# -gt 0 ]]; do + case "$1" in + start:app) + set -x + docker compose --profile app up + set +x + # pop the head off of the queue of args + # After this, the value of $1 is the value of $2 + shift + ;; + + start:app:d) + set -x + docker compose --profile app up -d + set +x + shift + ;; + + build) + set -x + docker compose --profile local --profile dev --profile dev-build build + docker compose --profile dev-build run --rm --no-deps ac-dev-build /bin/bash /azerothcore/apps/docker/docker-build-dev.sh + set +x + shift + ;; + + pull) + set -x + docker compose --profile local --profile dev --profile dev-build pull + docker image prune -f + set +x + shift + ;; + + build:nocache) + set -x + docker compose --profile local --profile dev --profile dev-build build --no-cache + docker image prune -f + docker compose run --rm --no-deps ac-dev-build /bin/bash /azerothcore/apps/docker/docker-build-dev.sh + set +x + shift + ;; + + clean:build) + set -x + docker image prune -f + docker compose run --rm --no-deps ac-dev-server bash acore.sh compiler clean + docker compose run --rm --no-deps ac-dev-server bash acore.sh compiler ccacheClean + set +x + shift + ;; + + client-data) + set -x + docker compose run --rm --no-deps ac-dev-server bash acore.sh client-data + set +x + shift + ;; + + dev:up) + set -x + docker compose up -d ac-dev-server + set +x + shift + ;; + + dev:build) + set -x + docker compose run --rm ac-dev-server bash acore.sh compiler build + set +x + shift + ;; + + dev:dash) + set -x + docker compose run --rm ac-dev-server bash /azerothcore/acore.sh ${@:2} + set +x + shift + ;; + + dev:shell) + set -x + docker compose up -d ac-dev-server + docker compose exec ac-dev-server bash ${@:2} + set +x + shift + ;; + + build:prod|prod:build) + set -x + docker compose --profile prod build + docker image prune -f + set +x + shift + ;; + + pull:prod|prod:pull) + set -x + docker compose --profile prod pull + set +x + shift + ;; + + prod:up|start:prod) + set -x + docker compose --profile prod-app up + set +x + shift + ;; + + prod:up:d|start:prod:d) + set -x + docker compose --profile prod-app up -d + set +x + shift + ;; + + attach) + SERVICE="$2" + set -x + docker compose attach "$SERVICE" + set +x + shift + shift # Second to pass the argument + ;; + + *) + echo "Unknown or empty arg" + usage + exit 1 + esac +done diff --git a/apps/docker/docker-cmd.ts b/apps/docker/docker-cmd.ts deleted file mode 100644 index e6a20b66e..000000000 --- a/apps/docker/docker-cmd.ts +++ /dev/null @@ -1,330 +0,0 @@ -import { Command } from "https://cdn.deno.land/cmd/versions/v1.2.0/raw/mod.ts"; -import * as ink from "https://deno.land/x/ink/mod.ts"; -import { - Input, - Select, -} from "https://deno.land/x/cliffy@v0.25.2/prompt/mod.ts"; -import * as semver from "https://deno.land/std@0.159.0/semver/mod.ts"; - -const program = new Command(); - -const env = { - COMPOSE_DOCKER_CLI_BUILD: "1", - DOCKER_BUILDKIT: "1", - // BUILDKIT_INLINE_CACHE: "1", -}; - -const MIN_COMPOSE_VERSION = "2.0.0"; - -program - .name("acore.sh docker") - .description("Shell scripts for docker") - .version("1.0.0"); - -shellCommandFactory( - "start:app", - "Startup the authserver and worldserver apps", - ["docker compose --profile app up"], - env -); - -shellCommandFactory( - "start:app:d", - "Startup the authserver and worldserver apps in detached mode", - ["docker compose --profile app up -d"], - env -); - -shellCommandFactory( - "build", - "Build the authserver and worldserver", - [ - "docker compose --profile local --profile dev --profile dev-build build --parallel", - "docker image prune -f", - "docker compose run --rm --no-deps ac-dev-build bash apps/docker/docker-build-dev.sh", - ], - env -); - -shellCommandFactory( - "pull", - "Pull build and local images", - [ - "docker compose --profile local --profile dev --profile dev-build pull --parallel", - "docker image prune -f", - ], - env -); - -shellCommandFactory( - "build:nocache", - "Build the authserver and worldserver without docker cache", - [ - "docker compose --profile local --profile dev --profile dev-build build --no-cache --parallel", - "docker image prune -f", - "docker compose run --rm --no-deps ac-dev-build bash apps/docker/docker-build-dev.sh", - ], - env -); - -shellCommandFactory( - "clean:build", - "Clean build files", - [ - "docker image prune -f", - `docker compose run --rm --no-deps ac-dev-server bash acore.sh compiler clean`, - `docker compose run --rm --no-deps ac-dev-server bash acore.sh compiler ccacheClean`, - ], - env -); - -shellCommandFactory( - "client-data", - "Download client data inside the ac-data volume", - ["docker compose run --rm --no-deps ac-dev-server bash acore.sh client-data"], - env -); - -shellCommandFactory( - "dev:up", - "Start the dev server container in background", - ["docker compose up -d ac-dev-server"], - env -); - -shellCommandFactory( - "dev:build", - "Build using the dev server", - ["docker compose run --rm ac-dev-server bash acore.sh compiler build"], - env -); - -shellCommandFactory( - "dev:dash [args...]", - "Execute acore dashboard within a running ac-dev-server", - ["docker compose run --rm ac-dev-server bash acore.sh"], - env -); - -shellCommandFactory( - "dev:shell [args...]", - "Open an interactive shell within the dev server", - [ - "docker compose up -d ac-dev-server", - "docker compose exec ac-dev-server bash", - ], - env -); - -shellCommandFactory( - "prod:build", - "[TEST ONLY] Build producion services", - ["docker compose --profile prod build --parallel", "docker image prune -f"], - env -); - -shellCommandFactory( - "prod:pull", - "[TEST ONLY] Pull production services from the remote registry", - ["docker compose --profile prod pull"], - env -); - -shellCommandFactory( - "prod:up", - "[TEST ONLY] Start production services (foreground)", - ["docker compose --profile prod-app up"], - env -); - -shellCommandFactory( - "prod:up:d", - "[TEST ONLY] Start production services (background)", - ["docker compose --profile prod-app up -d"], - env -); - -program - .command("attach [service]") - .description("attach to a service") - .action(async (service: string | undefined) => { - const { run } = Deno; - - let command = `docker compose ps`; - - if (service) { - command = `${command} ${service}`; - } - - console.log(ink.colorize(`>>>>> Running: ${command}`)); - - let cmd = command.split(" "); - const res = Deno.run({ - cmd, - cwd: process.cwd(), - stdout: "piped", - stderr: "piped", - }); - - const output = await res.output(); // "piped" must be set - - let services = new TextDecoder().decode(output).split("\n"); - - if (!services) { - console.error("No services available!"); - return; - } - - services.pop(); - services = services.slice(1); - - res.close(); // Don't forget to close it - - let selService: string; - if (services.length > 1) { - selService = await Select.prompt({ - message: `Select a service`, - options: services, - }); - } else { - selService = services[0]; - } - - if (!selService) { - console.log(`Service ${service} is not available`); - return; - } - - command = `docker attach ${selService.split(" ")[0]}`; - - console.log(ink.colorize(`>>>>> Running: ${command}`)); - - console.log( - ink.colorize( - "NOTE: you can detach from a container and leave it running using the CTRL-p CTRL-q key sequence." - ) - ); - - cmd = command.split(" "); - - const shellCmd = run({ - cmd, - cwd: process.cwd(), - }); - - await shellCmd.status(); - - shellCmd.close(); - }); - -program - .command("quit") - .description("Close docker command") - .action(() => { - process.exit(0); - }); - -/** - * - * @param name - * @param description - * @param commands you can pass one or more commands, they will be executed sequentially - * @returns - */ -function shellCommandFactory( - name: string, - description: string, - commands: string[], - env?: { [key: string]: string } -): Command { - return program - .command(name) - .description( - `${description}. Command: \n"${ink.colorize( - `${commands.join(" && ")}` - )}"\n` - ) - .action(async (args: string[] | undefined) => { - const { run } = Deno; - - for (const command of commands) { - console.log(ink.colorize(`>>>>> Running: ${command}`)); - - const cmd = command.split(" "); - - if (Array.isArray(args)) { - cmd.push(...args); - } - - const shellCmd = run({ - cmd, - cwd: process.cwd(), - env: { ...process.env, ...env }, - }); - - const status = await shellCmd.status(); - - if (!status.success) { - throw new Error(`Failed with error: ${status.code}, however, - it's not related to this Deno script directly. An error occurred within - the script called by the command itself`); - } - - shellCmd.close(); - } - }); -} - -async function checkDockerVersion() { - const { run } = Deno; - const dockerVerCmd = run({ - cmd: ["docker", "compose", "version"], - cwd: process.cwd(), - env: { ...process.env, ...env }, - stdout: "piped", - }); - - const output = await dockerVerCmd.output(); - const status = await dockerVerCmd.status(); - const outStr = new TextDecoder().decode(output); - - if (!status.success) { - return 'not installed?' - } - - const version = outStr.split(" ").pop()?.trim(); - - if (!version) return version; - - if (!semver.gte(version, MIN_COMPOSE_VERSION)) { - return version; - } - - return true; -} - -async function main() { - while (true) { - const version = await checkDockerVersion(); - if (version !== true) { - console.error( - ink.colorize(`ERROR: Your docker compose version (${version}) must be higher or equal to ${MIN_COMPOSE_VERSION}. Please install the new version of docker compose and try again`) - ); - return false - } - - if (Deno.args.length === 0) { - program.outputHelp(); - const command = await Input.prompt({ - message: "Enter the command:", - }); - console.log(command); - await program.parseAsync(command.split(" ")); - } else { - await program.parseAsync(Deno.args); - process.exit(0); - } - } -} - -main(); diff --git a/apps/installer/includes/os_configs/osx.sh b/apps/installer/includes/os_configs/osx.sh index d3f762f57..51d868f27 100644 --- a/apps/installer/includes/os_configs/osx.sh +++ b/apps/installer/includes/os_configs/osx.sh @@ -26,4 +26,4 @@ if ! command -v cmake &>/dev/null ; then fi ########################################## -brew install openssl@3 readline boost bash-completion curl unzip mysql ccache +brew install openssl@3 readline boost@1.82 bash-completion curl unzip mysql@8.1 ccache diff --git a/apps/installer/includes/os_configs/windows.sh b/apps/installer/includes/os_configs/windows.sh index 227a0258d..7687739d7 100644 --- a/apps/installer/includes/os_configs/windows.sh +++ b/apps/installer/includes/os_configs/windows.sh @@ -23,7 +23,8 @@ else fi choco install -y --skip-checksums $INSTALL_ARGS cmake.install -y --installargs 'ADD_CMAKE_TO_PATH=System' -choco install -y --skip-checksums $INSTALL_ARGS visualstudio2022-workload-nativedesktop openssl -choco install -y --skip-checksums $INSTALL_ARGS boost-msvc-14.3 --version=1.79.0 -choco install -y --skip-checksums $INSTALL_ARGS mysql --version 8.0.31 +choco install -y --skip-checksums $INSTALL_ARGS visualstudio2022-workload-nativedesktop +choco install -y --skip-checksums $INSTALL_ARGS openssl --version=3.1.1 +choco install -y --skip-checksums $INSTALL_ARGS boost-msvc-14.3 --version=1.82.0 +choco install -y --skip-checksums $INSTALL_ARGS mysql --version=8.0.31 diff --git a/apps/installer/main.sh b/apps/installer/main.sh index 91d6cb1dc..eb0eb4f89 100644 --- a/apps/installer/main.sh +++ b/apps/installer/main.sh @@ -64,11 +64,12 @@ function _switch() { inst_simple_restarter authserver ;; ""|"dr"|"docker"|"13") - DOCKER=1 denoRunFile "$AC_PATH_APPS/docker/docker-cmd.ts" "${@:2}" + DOCKER=1 bash "$AC_PATH_ROOT/apps/docker/docker-cmd.sh" "${@:2}" exit ;; ""|"v"|"version"|"14") - denoRunFile "$AC_PATH_APPS/installer/main.ts" "version" + # denoRunFile "$AC_PATH_APPS/installer/main.ts" "version" + printf "AzerothCore Rev. %s\n" "$ACORE_VERSION" exit ;; ""|"quit"|"15") diff --git a/apps/installer/main.ts b/apps/installer/main.ts deleted file mode 100644 index 135ccc645..000000000 --- a/apps/installer/main.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Command } from "https://cdn.deno.land/cmd/versions/v1.2.0/raw/mod.ts"; -import { getAcoreReleaseVersion } from "./utils.ts"; -import { Input } from "https://deno.land/x/cliffy@v0.25.2/prompt/mod.ts"; - -const program = new Command(); - -program - .name("acore.sh") - .description("Shell scripts for docker") - .version("1.0.0"); - -// program -// .command("quit") -// .description("Close docker command") -// .action(() => { -// process.exit(0); -// }); - -program - .command("version") - .description("Get the version of the current AzerothCore revision") - .action(async () => { - console.log(await getAcoreReleaseVersion()); - }); - -async function main() { - let exit = false; - do { - if (Deno.args.length === 0) { - program.outputHelp(); - const command = await Input.prompt({ - message: "Enter the command:", - }); - console.log(command); - await program.parseAsync(command.split(" ")); - } else { - exit = true; - await program.parseAsync(Deno.args); - process.exit(0); - } - } while (!exit); -} -main(); diff --git a/apps/installer/utils.ts b/apps/installer/utils.ts deleted file mode 100644 index 90d70ec6a..000000000 --- a/apps/installer/utils.ts +++ /dev/null @@ -1,17 +0,0 @@ -import * as path from "https://deno.land/std/path/mod.ts"; -import makeloc from "https://deno.land/x/dirname@1.1.2/mod.ts"; - -const { __dirname } = makeloc(import.meta); - -// specify the needed paths here -const ACORE_JSON = path.resolve(__dirname + "/../../acore.json"); - -export async function getAcoreReleaseVersion() { - // read the acore.json file to work with the versioning - const decoder = new TextDecoder("utf-8"); - //console.debug(`Open ${ACORE_JSON}`) - const data = await Deno.readFile(ACORE_JSON); - const acoreInfo = JSON.parse(decoder.decode(data)); - - return `AzerothCore Rev. ${acoreInfo.version}`; -} diff --git a/data/sql/updates/db_characters/2023_09_16_00.sql b/data/sql/updates/db_characters/2023_09_16_00.sql new file mode 100644 index 000000000..fbaccf15e --- /dev/null +++ b/data/sql/updates/db_characters/2023_09_16_00.sql @@ -0,0 +1,7 @@ +-- DB update 2023_05_23_00 -> 2023_09_16_00 +-- +ALTER TABLE `profanity_name` + CHANGE COLUMN `name` `name` VARCHAR(12) NOT NULL COLLATE 'utf8mb4_bin' FIRST; + +ALTER TABLE `reserved_name` + CHANGE COLUMN `name` `name` VARCHAR(12) NOT NULL COLLATE 'utf8mb4_bin' FIRST; diff --git a/data/sql/updates/db_world/2023_09_10_00.sql b/data/sql/updates/db_world/2023_09_10_00.sql new file mode 100644 index 000000000..306cb2183 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_10_00.sql @@ -0,0 +1,1856 @@ +-- DB update 2023_09_05_00 -> 2023_09_10_00 +-- Update IS_BEHIND_TARGET to new system +UPDATE `smart_scripts` SET `event_param1`=1300, `event_param2`=7300, `event_param3`=1300, `event_param4`=7300, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=95 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=3900, `event_param2`=6900, `event_param3`=3900, `event_param4`=6900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=732 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=7000, `event_param2`=7000, `event_param3`=7000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=1707 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=9000, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2644 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=7000, `event_param2`=7000, `event_param3`=7000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3530 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=6000, `event_param2`=8000, `event_param3`=6000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=4850 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=3000, `event_param2`=6000, `event_param3`=3000, `event_param4`=6000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=4971 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=5000, `event_param3`=5000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=6035 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=5000, `event_param3`=5000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=6207 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=6000, `event_param2`=8000, `event_param3`=6000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7175 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=6000, `event_param2`=6000, `event_param3`=6000, `event_param4`=6000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7605 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=9000, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=8218 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=6000, `event_param2`=8000, `event_param3`=6000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11456 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=5000, `event_param3`=5000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11791 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=3000, `event_param2`=8000, `event_param3`=3000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13022 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=3000, `event_param2`=10000, `event_param3`=3000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14605 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=4500, `event_param2`=6500, `event_param3`=4500, `event_param4`=6500, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17695 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=5000, `event_param3`=5000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17835 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=5000, `event_param3`=5000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17835 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=6000, `event_param2`=6000, `event_param3`=6000, `event_param4`=6000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17860 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=1150, `event_param2`=13350, `event_param3`=1150, `event_param4`=13350, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19843 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=5000, `event_param3`=5000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20906 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=7000, `event_param2`=7000, `event_param3`=7000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28734 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=5000, `event_param3`=5000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29214 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=3000, `event_param2`=3000, `event_param3`=3000, `event_param4`=3000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=33824 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=1000, `event_param2`=3000, `event_param3`=1000, `event_param4`=3000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=36774 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=1000, `event_param2`=3000, `event_param3`=1000, `event_param4`=3000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=36776 AND `source_type`=0 AND `id`=2 AND `link`=0; +-- Update Power Drain spells to use new castFlag +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=672 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=819 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=1794 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=3715 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=3774 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=3803 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=4151 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=4291 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=4515 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=4799 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=4848 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=6010 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=6268 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=7664 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=7728 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=7767 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=8336 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=8675 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=8718 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=8876 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=9240 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=10261 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=10426 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=10471 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=10472 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=10498 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=10499 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=10500 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=11338 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=11480 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=14398 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=15246 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=15247 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=16020 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=16020 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=16304 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=16310 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=16492 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=16950 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=17401 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=17540 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18130 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18131 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18285 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18331 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18331 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18864 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18867 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18880 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=18883 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=19306 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=19852 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=19875 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=20039 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=20196 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=20713 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=25363 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=25483 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=26281 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=26728 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=26737 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=26737 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`|256 WHERE `entryorguid`=32163 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `action_param2`=`action_param2`&~256 WHERE `entryorguid` IN (-63697, -63695, -63694, -63693, -63691, -63690, -56029, -56028) AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param3`=1 WHERE `entryorguid`=7664 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param3`=1 WHERE `entryorguid`=7728 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param3`=1 WHERE `entryorguid`=9240 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param3`=1 WHERE `entryorguid`=16304 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param3`=1 WHERE `entryorguid`=16310 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param3`=1 WHERE `entryorguid`=18880 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param3`=1 WHERE `entryorguid`=25363 AND `source_type`=0 AND `id`=2 AND `link`=0; +-- Port Range to new system +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=9000, `event_param3`=25000, `event_param4`=35000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=2319 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=500, `event_param2`=1000, `event_param3`=3000, `event_param4`=4000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=7734 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=8700, `event_param2`=14700, `event_param3`=8700, `event_param4`=14700, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=17400 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=15000, `event_param2`=21000, `event_param3`=15000, `event_param4`=21000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=19851 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=11000, `event_param3`=5000, `event_param4`=11000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=20757 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=3000, `event_param2`=3000, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27615 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=5000, `event_param2`=8000, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28105 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=3000, `event_param2`=5000, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=29851 AND `source_type`=0 AND `id`=9 AND `link`=0; + +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=2 WHERE `entryorguid`=-209158 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=2 WHERE `entryorguid`=-209157 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=2 WHERE `entryorguid`=-209156 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=2 WHERE `entryorguid`=-209155 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=2 WHERE `entryorguid`=-209154 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=2 WHERE `entryorguid`=-209153 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=6000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=-127203 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=12500, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=-117205 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=12500, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=-117197 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-114115 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-114112 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-114111 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-114110 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-114109 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-114101 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-114098 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=-54069 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-53928 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=-53927 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=5000, `event_param5`=10, `event_param6`=35 WHERE `entryorguid`=-44268 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=500, `event_param4`=1000, `event_param5`=6, `event_param6`=15 WHERE `entryorguid`=157 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=500, `event_param4`=1000, `event_param5`=6, `event_param6`=15 WHERE `entryorguid`=454 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=2000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=622 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=30000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=877 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=35000, `event_param4`=40000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=1657 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=2000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=1725 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1200, `event_param4`=1200, `event_param5`=2, `event_param6`=20 WHERE `entryorguid`=1908 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1200, `event_param4`=1200, `event_param5`=0, `event_param6`=2 WHERE `entryorguid`=1908 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=17000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2172 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=2175 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=20000, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=2186 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2215 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2215 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1800, `event_param4`=9800, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2240 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1800, `event_param4`=9800, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2241 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1800, `event_param4`=9800, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2242 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2260 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2264 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2264 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=30000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2265 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2266 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=45000, `event_param4`=45000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2267 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2268 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2269 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2304 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=60000, `event_param4`=60000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2305 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2344 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2368 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=30000, `event_param4`=30000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2372 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2374 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=2428 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2641 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=21000, `event_param4`=26000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=2645 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2647 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2651 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2653 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=19000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2657 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=2693 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=30000, `event_param4`=35000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=2694 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=2762 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=2762 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2762 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3300, `event_param4`=6600, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=2762 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=24000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2927 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=2928 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=3100 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=1000, `event_param5`=35, `event_param6`=40 WHERE `entryorguid`=3251 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=3691 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=3691 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=3691 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=3696 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=26600, `event_param4`=39800, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3711 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=45000, `event_param4`=45000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3712 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20900, `event_param4`=33500, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=3715 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3734 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12300, `event_param4`=18600, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3739 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12600, `event_param4`=24800, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3749 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3752 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14500, `event_param4`=23900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3758 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3759 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14500, `event_param4`=23900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3759 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14500, `event_param4`=23900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3762 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14500, `event_param4`=23900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3763 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=32100, `event_param4`=34100, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3767 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13900, `event_param4`=21500, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3772 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=21700, `event_param4`=39500, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=3774 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17300, `event_param4`=36200, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=3781 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3800, `event_param4`=13100, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=3783 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=45800, `event_param4`=60500, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=3783 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20200, `event_param4`=28900, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=3791 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=22600, `event_param4`=39600, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=3803 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3804 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8600, `event_param4`=21700, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=3819 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3600, `event_param4`=9900, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=3820 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3821 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=30500, `event_param4`=80000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3834 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=33700, `event_param4`=77100, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3919 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=23900, `event_param4`=38400, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3921 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10300, `event_param4`=20900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=3943 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=4016 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=11000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=4021 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17000, `event_param4`=25000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=4030 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=4062 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=2000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=4417 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=4465 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=29000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=4468 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=2500, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=4638 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=2500, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=4647 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1200, `event_param4`=1200, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=5237 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1200, `event_param4`=1200, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=5237 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1200, `event_param4`=1200, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=5237 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=5237 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=5828 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=20 WHERE `entryorguid`=5992 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8400, `event_param4`=15500, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=6115 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=24500, `event_param4`=24500, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=6210 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17000, `event_param4`=23000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=6221 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=6000, `event_param5`=6, `event_param6`=15 WHERE `entryorguid`=6501 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7016 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13300, `event_param4`=24100, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7038 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=36300, `event_param4`=50000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=7038 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=21000, `event_param4`=25000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7068 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7069 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=21000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7069 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=18000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=7071 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7072 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=12000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=7155 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7360 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=6 WHERE `entryorguid`=7527 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=14000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=7767 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17000, `event_param4`=23000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7843 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=7885 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7915 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=45000, `event_param4`=45000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=7977 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=7995 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=6 WHERE `entryorguid`=8035 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=5000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=8075 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=8210 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=25000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=8210 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=25000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=8211 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=24000, `event_param4`=29000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=8217 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13800, `event_param4`=13800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=8298 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=30000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=8400 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=8561 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=8564 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=11000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=8564 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=18000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=8890 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=21000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=8896 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=8921 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=9034 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=9043 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=9043 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=180000, `event_param4`=180000, `event_param5`=9, `event_param6`=10 WHERE `entryorguid`=9082 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=9241 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=18000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=9258 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=9445 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=9450 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=9451 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=9537 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2100, `event_param4`=4700, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10318 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=10418 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10601 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=25000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10644 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=16000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=10647 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=10681 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=21000, `event_param4`=25000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=10802 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10817 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10822 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=17000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10822 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=10823 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=10823 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10824 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10824 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10826 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=10996 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=5000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=11199 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11291 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=2000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=11350 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=2000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=11351 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11454 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=11501 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=11680 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11681 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11682 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20500, `event_param4`=35300, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=11697 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16000, `event_param4`=19000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11728 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=24000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11730 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11732 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=11000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=11739 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=11740 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11803 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=11804 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=11881 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=17000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11882 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=17000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11885 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=11886 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=4000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=11896 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=12248 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12250 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12261 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12322 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12322 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12369 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12474 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12737 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15400, `event_param4`=21800, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12759 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7100, `event_param4`=15300, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12856 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=35900, `event_param4`=52300, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=12856 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=20000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12858 AND `source_type`=0 AND `id`=14 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=35900, `event_param4`=52300, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=12864 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20500, `event_param4`=30800, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12897 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11200, `event_param4`=19500, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=12940 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13082 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13096 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13096 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13096 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13096 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13099 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13099 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13099 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13099 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=13118 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13236 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13236 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13236 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13236 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13256 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13256 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13256 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13256 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6100, `event_param4`=15700, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=13276 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=0, `event_param6`=80 WHERE `entryorguid`=13358 AND `source_type`=0 AND `id`=3 AND `link`=4; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=0, `event_param6`=80 WHERE `entryorguid`=13359 AND `source_type`=0 AND `id`=3 AND `link`=4; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13540 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13540 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13540 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13540 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13541 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13541 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13541 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13541 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13542 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13542 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13542 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13542 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13546 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13546 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13546 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13546 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13547 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13547 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13547 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13547 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=13548 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=13548 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=13548 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=13548 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14101 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=14308 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=14321 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=14323 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=14326 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=14390 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=14390 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14390 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=14390 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=25000, `event_param5`=2, `event_param6`=5 WHERE `entryorguid`=14430 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=11000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=14472 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=22000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14472 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=27000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14473 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=18000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=14474 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=22000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14475 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17000, `event_param4`=21000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14476 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=14479 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=23800, `event_param4`=28200, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14492 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=15000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=14636 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=14715 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14715 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=14715 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=4800, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=14715 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6100, `event_param4`=15900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14715 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=14733 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=14733 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14733 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=14733 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=14753 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=14753 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=14753 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=14753 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=14753 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=15202 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15229 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=5, `event_param6`=25 WHERE `entryorguid`=15229 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9700, `event_param4`=16000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15236 AND `source_type`=0 AND `id`=0 AND `link`=1; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15240 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15800, `event_param4`=15800, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=15250 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=15281 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15281 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15281 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15281 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=18200, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=15320 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=16000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15325 AND `source_type`=0 AND `id`=0 AND `link`=1; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=45 WHERE `entryorguid`=15335 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=21000, `event_param4`=24000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=15335 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15336 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15343 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=15401 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15401 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15401 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15401 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=15405 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15405 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15405 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15405 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=15416 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15416 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15416 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=3000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15416 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=15417 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15417 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15417 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15417 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=15418 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15418 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15418 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15418 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15505 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=15537 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15538 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15621 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=15641 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15641 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15641 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=15641 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=15970 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15970 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15970 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15970 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=15971 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=15971 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=15971 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=15971 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=7000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=16059 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=16096 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16096 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16096 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2200, `event_param4`=3800, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16096 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=16184 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16204 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16204 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16204 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16204 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16245 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16246 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16247 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16249 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16249 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16249 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16249 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16250 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=6000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16292 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16294 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16294 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16294 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4700, `event_param4`=5200, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16294 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16300 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=11000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=16302 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16303 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16305 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16307 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16307 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16307 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16307 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16308 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16308 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16308 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16308 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=16310 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16311 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16311 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16311 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16311 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16313 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=120000, `event_param4`=120000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=16319 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=28000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16327 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16330 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=16332 AND `source_type`=0 AND `id`=5 AND `link`=6; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16332 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16332 AND `source_type`=0 AND `id`=7 AND `link`=8; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16332 AND `source_type`=0 AND `id`=3 AND `link`=4; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16332 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=45000, `event_param4`=45000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16335 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16339 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16340 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=16344 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16344 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16344 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16344 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16349 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16350 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16351 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16352 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16357 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16357 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16358 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16358 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16358 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16358 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=16358 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16362 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16362 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16362 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16362 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=20, `event_param6`=45 WHERE `entryorguid`=16378 AND `source_type`=0 AND `id`=5 AND `link`=6; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16378 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16397 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16397 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16397 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16397 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=16403 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16403 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16403 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16403 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16000, `event_param4`=28000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16403 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=20000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=16409 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=16469 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=22000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16472 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16522 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16522 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16522 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16522 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=21000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16593 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16704 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16704 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16704 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=14000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16704 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16769 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16769 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16769 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16769 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16810 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16810 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16810 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16810 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=16844 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=16857 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16873 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16873 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16873 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16873 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=16912 AND `source_type`=0 AND `id`=7 AND `link`=8; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16912 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16912 AND `source_type`=0 AND `id`=9 AND `link`=10; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=16912 AND `source_type`=0 AND `id`=5 AND `link`=6; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16944 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=16948 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16948 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16948 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=6000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=16948 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16949 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=16968 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=16977 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=16977 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=16977 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=16977 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=24000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=17136 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=17150 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=17150 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17150 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=17150 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=17160 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=17191 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=17191 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17191 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=17191 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=17192 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=17192 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17192 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17192 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17193 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17194 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=21000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17199 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=40000, `event_param4`=40000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17199 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=25 WHERE `entryorguid`=17206 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17298 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12100, `event_param4`=24400, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17300 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15700, `event_param4`=32500, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=17300 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17304 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17321 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17427 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17427 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17427 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17432 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=17439 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=17439 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17439 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17439 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17448 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17462 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17495 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17591 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17591 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1200, `event_param4`=1200, `event_param5`=4, `event_param6`=30 WHERE `entryorguid`=17609 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1200, `event_param4`=1200, `event_param5`=0, `event_param6`=4 WHERE `entryorguid`=17609 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=17612 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=17612 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17612 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=5000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=17612 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=17612 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16000, `event_param4`=20000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=17612 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17670 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17670 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17670 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=8000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=17695 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17702 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=17716 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=17765 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=17766 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17820 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=17820 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=17870 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=17870 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=17870 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=5500, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=17870 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=8000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=18069 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=18000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=18069 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=15000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=18092 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=18113 AND `source_type`=0 AND `id`=7 AND `link`=8; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18113 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18113 AND `source_type`=0 AND `id`=9 AND `link`=10; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=18113 AND `source_type`=0 AND `id`=5 AND `link`=6; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18114 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18114 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18114 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18114 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=18155 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=18213 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18213 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18213 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=18213 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18286 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18286 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=18286 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=18286 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=24000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18286 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=2000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=18351 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=2000, `event_param5`=5, `event_param6`=40 WHERE `entryorguid`=18351 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18402 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=23000, `event_param4`=25000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=18402 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18450 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18450 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18450 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18450 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18451 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=18452 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18452 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18452 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=18452 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=18457 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18457 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18457 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=18457 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18465 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18540 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18541 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18541 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18541 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18541 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18583 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18583 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18583 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18583 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=15000, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=18584 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18658 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18658 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18658 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18658 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=1, `event_param6`=50 WHERE `entryorguid`=18678 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=10, `event_param6`=40 WHERE `entryorguid`=18680 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=18680 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18681 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18682 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14300, `event_param4`=28200, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=18683 AND `source_type`=0 AND `id`=21 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18685 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18686 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18690 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18855 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18855 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18855 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18855 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=18864 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16000, `event_param4`=20000, `event_param5`=0, `event_param6`=25 WHERE `entryorguid`=18867 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=23 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=29 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=35 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=41 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=47 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=53 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=24 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=30 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=36 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=42 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=48 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=54 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=25 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=31 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=37 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=43 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=49 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=55 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=20 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=26 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=32 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=38 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=44 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=18870 AND `source_type`=0 AND `id`=50 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18872 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=18873 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=17000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=18875 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=18000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=18877 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=15 WHERE `entryorguid`=18880 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=18880 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=15000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=18880 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=18883 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=15000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=18934 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=15000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=18934 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=18977 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=6000, `event_param2`=7000, `event_param3`=10000, `event_param4`=10000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=18995 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=18995 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19136 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19136 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19136 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19136 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12600, `event_param4`=13500, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=19312 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19413 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19413 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19413 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19413 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19422 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19422 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19422 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19422 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=19429 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=19429 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19434 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19434 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19434 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19434 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19529 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19529 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3600, `event_param4`=3600, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=19541 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=19593 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19593 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19593 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4500, `event_param4`=6000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=19593 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19635 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19642 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=19643 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19643 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19643 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4500, `event_param4`=6000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=19643 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=19643 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19657 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19657 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19657 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19657 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19701 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19701 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19701 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19701 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=19705 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19705 AND `source_type`=0 AND `id`=13 AND `link`=14; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19705 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=19705 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=50 WHERE `entryorguid`=19705 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16000, `event_param4`=21000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19705 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19706 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=19707 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19707 AND `source_type`=0 AND `id`=13 AND `link`=14; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19707 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=19707 AND `source_type`=0 AND `id`=16 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=19707 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=10, `event_param6`=40 WHERE `entryorguid`=19707 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=19707 AND `source_type`=0 AND `id`=15 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19729 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19730 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19732 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19732 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19732 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19732 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19738 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=18000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=19738 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11500, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=19765 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19779 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19826 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19826 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19826 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19826 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19830 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19830 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19830 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19830 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19851 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19853 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=19881 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=19881 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=19881 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=19881 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=19926 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=35000, `event_param4`=45000, `event_param5`=0, `event_param6`=15 WHERE `entryorguid`=19926 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12500, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20034 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=19000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=20037 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=5, `event_param6`=40 WHERE `entryorguid`=20039 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=20134 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=20134 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20134 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=20134 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=20135 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=20135 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20135 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4500, `event_param4`=6000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=20135 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=35000, `event_param4`=40000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20136 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=20139 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=20139 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20139 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=20139 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20140 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=20163 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=20163 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20163 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=20163 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20199 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=20202 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=20207 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=20207 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20207 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=20207 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=10, `event_param6`=40 WHERE `entryorguid`=20207 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=20207 AND `source_type`=0 AND `id`=17 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20221 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=17000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20221 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=20248 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=0, `event_param6`=15 WHERE `entryorguid`=20284 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20285 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16000, `event_param4`=20000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20326 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20332 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=24000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=20332 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20556 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=20607 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20859 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=20872 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=20872 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20872 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=20872 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=21000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=20881 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=12000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=20883 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=20887 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=20887 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=20887 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=20887 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=20987 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=6000, `event_param2`=7000, `event_param3`=12000, `event_param4`=18000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=21139 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=6000, `event_param2`=7000, `event_param3`=12000, `event_param4`=18000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=21139 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=21181 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21200 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21200 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21200 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21200 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=21227 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21242 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21242 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21242 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21242 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=2000, `event_param5`=5, `event_param6`=10 WHERE `entryorguid`=21296 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21370 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21370 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21370 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21370 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=21380 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21385 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21385 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21385 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21385 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21387 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21387 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21387 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21405 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21405 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21405 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21405 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21506 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21649 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21649 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21649 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21649 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=21650 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21650 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21650 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=21650 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21660 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21660 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21660 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21660 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=6000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21686 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21686 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21687 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21687 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=23000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21687 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21718 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21718 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21718 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21718 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=21719 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21719 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21719 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2200, `event_param4`=3800, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=21719 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21728 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21728 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21728 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=45 WHERE `entryorguid`=21728 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21730 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21730 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21730 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=45 WHERE `entryorguid`=21730 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=21809 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14300, `event_param4`=28200, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=21827 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=21849 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=21904 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=21904 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=21911 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=21911 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=21911 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=21911 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=22017 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=22017 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=22017 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=22017 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=22038 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=18000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=22081 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=17000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=22084 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=22243 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=22243 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=22243 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=22243 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=22254 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=22254 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=22254 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=22254 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=22281 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=22281 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=45, `event_param6`=80 WHERE `entryorguid`=22331 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=22331 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=22331 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=80 WHERE `entryorguid`=22331 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=19000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=22337 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=22466 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=1 WHERE `entryorguid`=22474 AND `source_type`=0 AND `id`=0 AND `link`=1; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=22482 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=20000, `event_param5`=10, `event_param6`=40 WHERE `entryorguid`=22844 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=20000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=22844 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=22847 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23018 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=23022 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=23022 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23022 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=23022 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=8000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=23196 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=23223 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=5, `event_param6`=45 WHERE `entryorguid`=23236 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=23247 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=23247 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23247 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=23247 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=4, `event_param6`=50 WHERE `entryorguid`=23285 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23353 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=23353 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=23354 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=10, `event_param6`=60 WHERE `entryorguid`=23354 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23354 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23355 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=5000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=23671 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=23689 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23689 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=23689 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=23956 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=23956 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23956 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=23956 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=23956 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23967 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=19000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=23967 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24016 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=24082 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=24082 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24082 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=24082 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=5000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=24082 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24161 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24162 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=24229 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24277 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24277 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=21000, `event_param4`=31000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24277 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24458 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=2000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=24474 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=10000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=24474 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=6000, `event_param5`=10, `event_param6`=60 WHERE `entryorguid`=24683 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=6000, `event_param5`=10, `event_param6`=60 WHERE `entryorguid`=24683 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24713 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=24738 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=24738 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24738 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2600, `event_param4`=3500, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=24738 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=24762 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=24762 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24762 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=24762 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24770 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=15000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=24770 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24790 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24818 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=24849 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=24849 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=24849 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=17000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=24849 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=17000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=24849 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=3000, `event_param5`=20, `event_param6`=150 WHERE `entryorguid`=24911 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=25073 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=25073 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25073 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=5400, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=25073 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=4000, `event_param5`=1, `event_param6`=25 WHERE `entryorguid`=25087 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=25145 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12300, `event_param4`=19800, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25216 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2500, `event_param4`=4000, `event_param5`=0, `event_param6`=3000 WHERE `entryorguid`=25226 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=25226 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25359 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=5000, `event_param5`=10, `event_param6`=35 WHERE `entryorguid`=25484 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25598 AND `source_type`=0 AND `id`=2 AND `link`=3; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=900, `event_param4`=9900, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25611 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=990, `event_param4`=3000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25625 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=100 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=44 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=100 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=63 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=100 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=92 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=100 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=103 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=100 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=112 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=43 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=62 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=91 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=102 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=111 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=2000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=40 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=41 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25708 AND `source_type`=0 AND `id`=42 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=25715 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=4 WHERE `entryorguid`=25744 AND `source_type`=0 AND `id`=5 AND `link`=6; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25793 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=30, `event_param6`=100 WHERE `entryorguid`=25801 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=25801 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=25801 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25801 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3500, `event_param4`=4100, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=25801 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=25803 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9200, `event_param4`=12400, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=25804 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25851 AND `source_type`=0 AND `id`=6 AND `link`=8; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=25851 AND `source_type`=0 AND `id`=7 AND `link`=8; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26196 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=26198 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26276 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=26281 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=5, `event_param6`=35 WHERE `entryorguid`=26291 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26291 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26295 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26295 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26295 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=0, `event_param6`=35 WHERE `entryorguid`=26295 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26316 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=26319 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26319 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26319 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26319 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=18000, `event_param5`=0, `event_param6`=15 WHERE `entryorguid`=26322 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26336 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26336 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26336 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=26336 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=18000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=26343 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26344 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26356 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26356 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26356 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26356 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26356 AND `source_type`=0 AND `id`=14 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=16000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=26356 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26359 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26360 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26389 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26389 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26389 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26389 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26389 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=9, `event_param6`=14 WHERE `entryorguid`=26402 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=26413 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26413 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26413 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26413 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26414 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26414 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26414 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=6000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26414 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26428 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26428 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26428 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=7000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=26428 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26434 AND `source_type`=0 AND `id`=7 AND `link`=8; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26434 AND `source_type`=0 AND `id`=9 AND `link`=10; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=26434 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26434 AND `source_type`=0 AND `id`=3 AND `link`=4; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26434 AND `source_type`=0 AND `id`=14 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26446 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26448 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26448 AND `source_type`=0 AND `id`=13 AND `link`=14; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26448 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26448 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=8, `event_param6`=100 WHERE `entryorguid`=26448 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=26456 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=15, `event_param6`=80 WHERE `entryorguid`=26493 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=10 WHERE `entryorguid`=26493 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26493 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=26493 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=26496 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=26577 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26607 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26607 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26607 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=26607 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26615 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26637 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26644 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=26655 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26655 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26655 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26655 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26670 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26670 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26670 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26670 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26670 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26679 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26679 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26679 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26679 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=26679 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=26681 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26681 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26681 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26681 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=26705 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26705 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26705 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=5000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26705 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=4000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26762 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26769 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26769 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26769 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=26769 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=26769 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26770 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26770 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26770 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=26770 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=16000, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=26771 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=26779 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26779 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26779 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=26779 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=26780 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26780 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26780 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26780 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=26795 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26795 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26795 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26795 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26806 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=4000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26815 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=18000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=26815 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26836 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26839 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26891 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17000, `event_param4`=23000, `event_param5`=5, `event_param6`=45 WHERE `entryorguid`=26919 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=26942 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=26942 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=26942 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=26942 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=8000, `event_param5`=5, `event_param6`=45 WHERE `entryorguid`=27002 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27004 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27005 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=19000, `event_param5`=5, `event_param6`=45 WHERE `entryorguid`=27007 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=45 WHERE `entryorguid`=27009 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27024 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=30000, `event_param4`=35000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27064 AND `source_type`=0 AND `id`=0 AND `link`=1; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27117 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27117 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27117 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27117 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27117 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27118 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=25000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=27118 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27126 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27177 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27177 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27177 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=27177 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27178 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27178 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27178 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=35 WHERE `entryorguid`=27178 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27211 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27224 AND `source_type`=0 AND `id`=7 AND `link`=8; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27224 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27224 AND `source_type`=0 AND `id`=9 AND `link`=10; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27225 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27225 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27225 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27238 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27244 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27246 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27246 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27246 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27246 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27259 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27259 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27259 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27259 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27260 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27260 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27283 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27283 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27283 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27283 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27287 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27289 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27289 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27289 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27289 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=2000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=27328 AND `source_type`=0 AND `id`=37 AND `link`=38; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2500, `event_param4`=3000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=27328 AND `source_type`=0 AND `id`=56 AND `link`=57; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27355 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27355 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27355 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27355 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27356 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27357 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27357 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27357 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=8500, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27357 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27358 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27358 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27358 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27358 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=45, `event_param6`=80 WHERE `entryorguid`=27377 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27377 AND `source_type`=0 AND `id`=13 AND `link`=14; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27377 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=0, `event_param6`=50 WHERE `entryorguid`=27377 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=20000, `event_param5`=10, `event_param6`=70 WHERE `entryorguid`=27377 AND `source_type`=0 AND `id`=16 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27383 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27383 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27383 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27383 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27401 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27424 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=25000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=27424 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27456 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27470 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=25000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=27470 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27493 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=25000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=27493 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27508 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27508 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27508 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3800, `event_param4`=4500, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27508 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=18000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27542 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=30, `event_param6`=80 WHERE `entryorguid`=27560 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27560 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27560 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=35 WHERE `entryorguid`=27560 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=27560 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27564 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27564 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27564 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27564 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27564 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27567 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27576 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27576 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27576 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27576 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27603 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27603 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27603 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27603 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=1000, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27615 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=1000, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27615 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=1000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27615 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27633 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27633 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27633 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27633 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27633 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27635 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27635 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27635 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27636 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27636 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27636 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=6000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27636 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=6000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27636 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27639 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27639 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27639 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=19000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27639 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=19000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27639 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=2500, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=27642 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27676 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27678 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27678 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27678 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=8000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=27678 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27680 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27680 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27680 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27680 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27687 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27687 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27687 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27687 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17000, `event_param4`=20000, `event_param5`=5, `event_param6`=45 WHERE `entryorguid`=27708 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27713 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27713 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27713 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27713 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=27713 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27715 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17000, `event_param4`=24000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=27715 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=22000, `event_param4`=30000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27717 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=21000, `event_param4`=29000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=27718 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27727 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=27731 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=27731 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=19000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=27731 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=19000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=27731 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27732 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27732 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27732 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27732 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27732 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27745 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27747 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27747 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27747 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27747 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27748 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27749 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27749 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27749 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27749 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27749 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=45 WHERE `entryorguid`=27759 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27762 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27762 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27762 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27762 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27783 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=27797 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27799 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27800 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27805 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27805 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27805 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27805 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=18000, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=27808 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=27824 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27826 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27826 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27826 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27826 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27844 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27844 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27844 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27844 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=25, `event_param6`=80 WHERE `entryorguid`=27857 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27857 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27857 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=27857 AND `source_type`=0 AND `id`=4 AND `link`=5; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=100 WHERE `entryorguid`=27898 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=10, `event_param6`=15 WHERE `entryorguid`=27898 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27898 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4700, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27898 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27953 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=27953 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=45000, `event_param4`=45000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27961 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27963 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27963 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27963 AND `source_type`=0 AND `id`=11 AND `link`=12; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27963 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27963 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=80 WHERE `entryorguid`=27965 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=15 WHERE `entryorguid`=27965 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=27965 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27965 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=27965 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28029 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3500, `event_param5`=1, `event_param6`=50 WHERE `entryorguid`=28083 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=10, `event_param6`=30 WHERE `entryorguid`=28096 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=28097 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=17000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=28132 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=17000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=28132 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=20000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=28132 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=20000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=28132 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28340 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=12000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=28358 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4800, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=28495 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16500, `event_param4`=18000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=28495 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16500, `event_param4`=18000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=28495 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28519 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28547 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28580 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=28583 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=28583 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28609 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2300, `event_param4`=3900, `event_param5`=2, `event_param6`=30 WHERE `entryorguid`=28611 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28611 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28835 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=28835 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=21000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=28838 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=21000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=28838 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=2 WHERE `entryorguid`=28854 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=28902 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=0, `event_param6`=80 WHERE `entryorguid`=28952 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=5000, `event_param5`=0, `event_param6`=25 WHERE `entryorguid`=28988 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=25, `event_param6`=35 WHERE `entryorguid`=28988 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29000 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=6000, `event_param5`=0, `event_param6`=70 WHERE `entryorguid`=29079 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=29146 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=29376 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=29411 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=17000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=29412 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=30000, `event_param5`=5, `event_param6`=35 WHERE `entryorguid`=29469 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=250, `event_param4`=250, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=29475 AND `source_type`=0 AND `id`=0 AND `link`=1; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=1000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=29483 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=8, `event_param6`=25000 WHERE `entryorguid`=29489 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=28000, `event_param5`=5, `event_param6`=35 WHERE `entryorguid`=29553 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29693 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=11000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=29696 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29769 AND `source_type`=0 AND `id`=20 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=8000, `event_param5`=5, `event_param6`=40 WHERE `entryorguid`=29838 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=8000, `event_param5`=5, `event_param6`=40 WHERE `entryorguid`=29838 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29840 AND `source_type`=0 AND `id`=20 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29851 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29851 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29859 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29860 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=16000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=29910 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=6000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=29920 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=8000, `event_param5`=5, `event_param6`=40 WHERE `entryorguid`=29931 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=8000, `event_param5`=5, `event_param6`=40 WHERE `entryorguid`=29931 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=29942 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11000, `event_param4`=16000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=29960 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=12000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=29981 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=28000, `event_param5`=5, `event_param6`=35 WHERE `entryorguid`=30006 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30012 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=11000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30014 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30014 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=16000, `event_param5`=0, `event_param6`=10 WHERE `entryorguid`=30017 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=10, `event_param6`=60 WHERE `entryorguid`=30020 AND `source_type`=0 AND `id`=15 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30022 AND `source_type`=0 AND `id`=9 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=17000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30023 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=21000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=30023 AND `source_type`=0 AND `id`=11 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30025 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=7000, `event_param5`=10, `event_param6`=70 WHERE `entryorguid`=30042 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=7000, `event_param5`=10, `event_param6`=70 WHERE `entryorguid`=30043 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=7000, `event_param5`=10, `event_param6`=70 WHERE `entryorguid`=30044 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=7000, `event_param5`=10, `event_param6`=70 WHERE `entryorguid`=30045 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=18000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30060 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=30, `event_param6`=100 WHERE `entryorguid`=30086 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=30086 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30086 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30086 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3500, `event_param4`=4100, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30086 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30113 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30167 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=28000, `event_param5`=5, `event_param6`=35 WHERE `entryorguid`=30167 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=12500, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=30174 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=100 WHERE `entryorguid`=30180 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=10, `event_param6`=15 WHERE `entryorguid`=30180 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=30180 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3400, `event_param4`=4700, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=30180 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30233 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30233 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30238 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30238 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=5000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30250 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30263 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30263 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=13000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30265 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30265 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=19000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=30276 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=19000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=30276 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=30, `event_param6`=60 WHERE `entryorguid`=30340 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=30340 AND `source_type`=0 AND `id`=15 AND `link`=16; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30448 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=8, `event_param6`=30 WHERE `entryorguid`=30450 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=20000, `event_param5`=6, `event_param6`=30 WHERE `entryorguid`=30483 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=30665 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=30665 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=30665 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2400, `event_param4`=3800, `event_param5`=0, `event_param6`=0 WHERE `entryorguid`=30665 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3500, `event_param4`=4100, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=30696 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30725 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=10000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=30737 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=30737 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30865 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=12000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30892 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=21000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30892 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=21000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30892 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=19000, `event_param5`=0, `event_param6`=45 WHERE `entryorguid`=30893 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=19000, `event_param5`=0, `event_param6`=45 WHERE `entryorguid`=30893 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=19000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=30954 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=10, `event_param6`=40 WHERE `entryorguid`=30956 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=31007 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=31008 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=31008 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=16000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=31009 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13000, `event_param4`=16000, `event_param5`=0, `event_param6`=30 WHERE `entryorguid`=31009 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=31016 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=8, `event_param6`=20 WHERE `entryorguid`=31098 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=17000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=31104 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=8, `event_param6`=40 WHERE `entryorguid`=31140 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=19000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=31160 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=10, `event_param6`=40 WHERE `entryorguid`=31161 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=15000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=31283 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6000, `event_param4`=9000, `event_param5`=0, `event_param6`=4 WHERE `entryorguid`=31775 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=6000, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=32235 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=13000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=32400 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=32438 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=32485 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=8000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=32599 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=32599 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=2000, `event_param4`=3000, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=32767 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=1500, `event_param5`=0, `event_param6`=40 WHERE `entryorguid`=32769 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33285 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33285 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33306 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33306 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33382 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33382 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33383 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33383 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33384 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33384 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33448 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33448 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33558 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33558 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33559 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33559 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33561 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33561 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33562 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33562 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33564 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33564 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=7000, `event_param4`=10000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=33704 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33707 AND `source_type`=0 AND `id`=6 AND `link`=7; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33707 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33738 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33738 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33739 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33739 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33740 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33740 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33743 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33743 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33744 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33744 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33745 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33745 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33746 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33746 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33747 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33747 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33748 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33748 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=3000, `event_param4`=3000, `event_param5`=9, `event_param6`=15 WHERE `entryorguid`=33749 AND `source_type`=0 AND `id`=8 AND `link`=9; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=10000, `event_param5`=5, `event_param6`=5 WHERE `entryorguid`=33749 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=1000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=33785 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1500, `event_param4`=2000, `event_param5`=3, `event_param6`=30 WHERE `entryorguid`=33785 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=9, `event_param6`=25 WHERE `entryorguid`=34127 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=0, `event_param6`=20 WHERE `entryorguid`=34505 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=30, `event_param6`=60 WHERE `entryorguid`=34920 AND `source_type`=0 AND `id`=10 AND `link`=11; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=0, `event_param6`=8 WHERE `entryorguid`=34920 AND `source_type`=0 AND `id`=12 AND `link`=13; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=34947 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=34980 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=35012 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=35070 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=35090 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=35090 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=35098 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=4000, `event_param4`=7000, `event_param5`=0, `event_param6`=5 WHERE `entryorguid`=35102 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=11000, `event_param5`=5, `event_param6`=30 WHERE `entryorguid`=35102 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=8, `event_param6`=25 WHERE `entryorguid`=37501 AND `source_type`=0 AND `id`=0 AND `link`=0; + +-- Friendly HP PCT +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 3939) AND (`source_type` = 0) AND (`id` IN (2, 3, 4)); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 8996) AND (`source_type` = 0) AND (`id` IN (0, 1, 2, 3, 4)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(8996, 0, 0, 0, 0, 0, 100, 0, 2000, 5000, 4000, 6000, 0, 11, 33914, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Voidwalker Minion - In Combat - Cast \'Shadowstrike\''); + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 12922) AND (`source_type` = 0) AND (`id` IN (1, 2, 3)); + +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=-82291 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=-82289 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=48800, `event_param4`=53700, `event_param5`=50, `event_param6`=0 WHERE `entryorguid`=517 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=24100, `event_param4`=25500, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=545 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=31800, `event_param4`=82800, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=548 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=787 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=19900, `event_param4`=28900, `event_param5`=30, `event_param6`=0 WHERE `entryorguid`=940 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=34300, `event_param4`=39100, `event_param5`=30, `event_param6`=0 WHERE `entryorguid`=940 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=1013 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=11500, `event_param4`=24600, `event_param5`=30, `event_param6`=0 WHERE `entryorguid`=1029 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=1065 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=1183 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=17600, `event_param4`=35700, `event_param5`=50, `event_param6`=0 WHERE `entryorguid`=1197 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=26700, `event_param4`=26700, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=1399 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20100, `event_param4`=28100, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=1425 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=14000, `event_param5`=80, `event_param6`=0 WHERE `entryorguid`=1768 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=5000, `event_param5`=80, `event_param6`=0 WHERE `entryorguid`=1773 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=1834 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=30, `event_param6`=0 WHERE `entryorguid`=1983 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=15, `event_param6`=0 WHERE `entryorguid`=2287 AND `source_type`=0 AND `id`=3 AND `link`=4; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=21000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=2346 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=19000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=2373 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=35, `event_param6`=0 WHERE `entryorguid`=2575 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=20, `event_param6`=0 WHERE `entryorguid`=2585 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=2713 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18300, `event_param4`=24100, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=2718 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18800, `event_param4`=36600, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=2742 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=2892 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=3732 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=19500, `event_param4`=35500, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=3924 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25600, `event_param4`=37700, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=3944 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=25000, `event_param5`=25, `event_param6`=0 WHERE `entryorguid`=5236 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=16000, `event_param4`=21000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=6000 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=10, `event_param6`=0 WHERE `entryorguid`=6006 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=17000, `event_param5`=50, `event_param6`=40 WHERE `entryorguid`=6195 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=25000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=7068 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=21000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=7070 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=6000, `event_param5`=35, `event_param6`=0 WHERE `entryorguid`=9045 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=50, `event_param6`=0 WHERE `entryorguid`=9217 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=30000, `event_param4`=30000, `event_param5`=30, `event_param6`=0 WHERE `entryorguid`=9217 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=35000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=9449 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=35000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=9450 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=15000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=10823 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=20, `event_param6`=0 WHERE `entryorguid`=11880 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14000, `event_param4`=18000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=12337 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=1000, `event_param4`=1000, `event_param5`=1, `event_param6`=0 WHERE `entryorguid`=12339 AND `source_type`=0 AND `id`=40 AND `link`=41; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=20000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=12352 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=25000, `event_param4`=30000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=12476 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=30000, `event_param4`=35000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=12476 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=25000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=16331 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=20000, `event_param4`=30000, `event_param5`=10, `event_param6`=0 WHERE `entryorguid`=16343 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=120000, `event_param4`=120000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=16501 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=120000, `event_param4`=120000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=16502 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=14500, `event_param4`=15000, `event_param5`=50, `event_param6`=30 WHERE `entryorguid`=17256 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=40, `event_param6`=40 WHERE `entryorguid`=17803 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=9000, `event_param4`=14000, `event_param5`=40, `event_param6`=40 WHERE `entryorguid`=17803 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=15000, `event_param5`=25, `event_param6`=0 WHERE `entryorguid`=17969 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=50, `event_param6`=25 WHERE `entryorguid`=17993 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13300, `event_param4`=35100, `event_param5`=60, `event_param6`=40 WHERE `entryorguid`=18422 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15700, `event_param4`=27700, `event_param5`=60, `event_param6`=40 WHERE `entryorguid`=18633 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15700, `event_param4`=27700, `event_param5`=60, `event_param6`=40 WHERE `entryorguid`=18633 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13200, `event_param4`=19300, `event_param5`=50, `event_param6`=40 WHERE `entryorguid`=18633 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13200, `event_param4`=19300, `event_param5`=50, `event_param6`=40 WHERE `entryorguid`=18633 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15700, `event_param4`=26500, `event_param5`=70, `event_param6`=15 WHERE `entryorguid`=18702 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=6100, `event_param4`=8400, `event_param5`=70, `event_param6`=15 WHERE `entryorguid`=18702 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15700, `event_param4`=27700, `event_param5`=60, `event_param6`=40 WHERE `entryorguid`=19208 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15700, `event_param4`=27700, `event_param5`=60, `event_param6`=40 WHERE `entryorguid`=19208 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13200, `event_param4`=19300, `event_param5`=50, `event_param6`=40 WHERE `entryorguid`=19208 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=13200, `event_param4`=19300, `event_param5`=50, `event_param6`=40 WHERE `entryorguid`=19208 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=75, `event_param6`=40 WHERE `entryorguid`=19633 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=8000, `event_param4`=12000, `event_param5`=25, `event_param6`=5 WHERE `entryorguid`=19733 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=40000, `event_param4`=40000, `event_param5`=50, `event_param6`=0 WHERE `entryorguid`=20049 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=10000, `event_param5`=75, `event_param6`=40 WHERE `entryorguid`=20083 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=16000, `event_param5`=75, `event_param6`=15 WHERE `entryorguid`=20990 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=16000, `event_param5`=65, `event_param6`=40 WHERE `entryorguid`=21126 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=11000, `event_param5`=40, `event_param6`=40 WHERE `entryorguid`=21338 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=10000, `event_param4`=11000, `event_param5`=40, `event_param6`=40 WHERE `entryorguid`=21338 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=10000, `event_param5`=40, `event_param6`=40 WHERE `entryorguid`=21702 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=20000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=24684 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=15000, `event_param4`=20000, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=24684 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=18000, `event_param4`=21000, `event_param5`=30, `event_param6`=0 WHERE `entryorguid`=26554 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=25, `event_param6`=0 WHERE `entryorguid`=26694 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=12000, `event_param4`=15000, `event_param5`=20, `event_param6`=0 WHERE `entryorguid`=26694 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=28582 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=0, `event_param4`=0, `event_param5`=40, `event_param6`=0 WHERE `entryorguid`=28582 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=10000, `event_param5`=20, `event_param6`=0 WHERE `entryorguid`=29174 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=10000, `event_param5`=20, `event_param6`=0 WHERE `entryorguid`=29177 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=10000, `event_param5`=20, `event_param6`=0 WHERE `entryorguid`=29181 AND `source_type`=0 AND `id`=2 AND `link`=3; +UPDATE `smart_scripts` SET `event_param1`=0, `event_param2`=0, `event_param3`=5000, `event_param4`=10000, `event_param5`=20, `event_param6`=0 WHERE `entryorguid`=29182 AND `source_type`=0 AND `id`=1 AND `link`=0; +-- Hostile Random Aura +UPDATE `smart_scripts` SET `target_param4`=3429 WHERE `entryorguid`=570 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3436 WHERE `entryorguid`=604 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8806 WHERE `entryorguid`=979 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=10651 WHERE `entryorguid`=1160 AND `source_type`=0 AND `id`=1 AND `link`=2; +UPDATE `smart_scripts` SET `target_param4`=3360 WHERE `entryorguid`=1160 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3427 WHERE `entryorguid`=1815 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3427 WHERE `entryorguid`=1816 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3256 WHERE `entryorguid`=1940 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7124 WHERE `entryorguid`=2529 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=118 WHERE `entryorguid`=2543 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7646 WHERE `entryorguid`=2557 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7992 WHERE `entryorguid`=2601 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=4974 WHERE `entryorguid`=2605 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3150 WHERE `entryorguid`=2730 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=9482 WHERE `entryorguid`=2740 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8806 WHERE `entryorguid`=3258 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8040 WHERE `entryorguid`=3669 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8040 WHERE `entryorguid`=3670 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8040 WHERE `entryorguid`=3671 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8040 WHERE `entryorguid`=3673 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=6222 WHERE `entryorguid`=3725 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=6205 WHERE `entryorguid`=3762 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8040 WHERE `entryorguid`=3840 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8140 WHERE `entryorguid`=3855 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7057 WHERE `entryorguid`=3875 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=113 WHERE `entryorguid`=4418 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3584 WHERE `entryorguid`=4475 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3429 WHERE `entryorguid`=4681 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=246 WHERE `entryorguid`=4831 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3247 WHERE `entryorguid`=5828 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7992 WHERE `entryorguid`=5838 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=11963 WHERE `entryorguid`=5979 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=5416 WHERE `entryorguid`=5988 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=13338 WHERE `entryorguid`=7028 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=20787 WHERE `entryorguid`=7372 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3150 WHERE `entryorguid`=7446 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=15042 WHERE `entryorguid`=8299 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=16555 WHERE `entryorguid`=8521 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=20825 WHERE `entryorguid`=8526 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=16498 WHERE `entryorguid`=8565 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=16449 WHERE `entryorguid`=8603 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=16449 WHERE `entryorguid`=8605 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7279 WHERE `entryorguid`=8607 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=11980 WHERE `entryorguid`=8915 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=13298 WHERE `entryorguid`=8925 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=15128 WHERE `entryorguid`=9261 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=16071 WHERE `entryorguid`=9261 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=15128 WHERE `entryorguid`=9262 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=15802 WHERE `entryorguid`=9269 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=14875 WHERE `entryorguid`=9439 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7992 WHERE `entryorguid`=10041 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=16429 WHERE `entryorguid`=10398 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=15732 WHERE `entryorguid`=10425 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=17146 WHERE `entryorguid`=10426 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=11443 WHERE `entryorguid`=10471 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=18376 WHERE `entryorguid`=10505 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=17230 WHERE `entryorguid`=10982 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=18266 WHERE `entryorguid`=11322 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8994 WHERE `entryorguid`=11448 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=13338 WHERE `entryorguid`=11448 AND `source_type`=0 AND `id`=8 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=12493 WHERE `entryorguid`=11453 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=22371 WHERE `entryorguid`=11453 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=13323 WHERE `entryorguid`=11470 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=22744 WHERE `entryorguid`=11471 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=21048 WHERE `entryorguid`=11688 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=18270 WHERE `entryorguid`=12248 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=22206 WHERE `entryorguid`=13442 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=22371 WHERE `entryorguid`=14861 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=25809 WHERE `entryorguid`=15240 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=25810 WHERE `entryorguid`=15240 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=25772 WHERE `entryorguid`=15552 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=3396 WHERE `entryorguid`=16246 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=6951 WHERE `entryorguid`=16300 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8282 WHERE `entryorguid`=16302 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8016 WHERE `entryorguid`=16322 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=30900 WHERE `entryorguid`=16323 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7289 WHERE `entryorguid`=16358 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=7901 WHERE `entryorguid`=16403 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=31394 WHERE `entryorguid`=16469 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=29679 WHERE `entryorguid`=16473 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=8050 WHERE `entryorguid`=17206 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=32197 WHERE `entryorguid`=17371 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=13338 WHERE `entryorguid`=17371 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=6726 WHERE `entryorguid`=17414 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=31405 WHERE `entryorguid`=17771 AND `source_type`=0 AND `id`=12 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=37113 WHERE `entryorguid`=17771 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=34880 WHERE `entryorguid`=17771 AND `source_type`=0 AND `id`=14 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=32863 WHERE `entryorguid`=18640 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=34435 WHERE `entryorguid`=18829 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=34439 WHERE `entryorguid`=18829 AND `source_type`=0 AND `id`=4 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=34441 WHERE `entryorguid`=18829 AND `source_type`=0 AND `id`=5 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=36659 WHERE `entryorguid`=18880 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=34073 WHERE `entryorguid`=19422 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=11980 WHERE `entryorguid`=19493 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=34261 WHERE `entryorguid`=19738 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=38772 WHERE `entryorguid`=20216 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=25809 WHERE `entryorguid`=20682 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=36840 WHERE `entryorguid`=20897 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=36831 WHERE `entryorguid`=20902 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=39262 WHERE `entryorguid`=21164 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=39262 WHERE `entryorguid`=21168 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=39262 WHERE `entryorguid`=21171 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=38254 WHERE `entryorguid`=21324 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=15654 WHERE `entryorguid`=21702 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=34941 WHERE `entryorguid`=21702 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=38859 WHERE `entryorguid`=21719 AND `source_type`=0 AND `id`=13 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=38864 WHERE `entryorguid`=22062 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=38859 WHERE `entryorguid`=22331 AND `source_type`=0 AND `id`=15 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=36541 WHERE `entryorguid`=22381 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=37579 WHERE `entryorguid`=22393 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=9791 WHERE `entryorguid`=24069 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=59599 WHERE `entryorguid`=24069 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=32063 WHERE `entryorguid`=26413 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=48876 WHERE `entryorguid`=26669 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=59237 WHERE `entryorguid`=26669 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=51804 WHERE `entryorguid`=26828 AND `source_type`=0 AND `id`=2 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=23380 WHERE `entryorguid`=27571 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=51899 WHERE `entryorguid`=27680 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=39621 WHERE `entryorguid`=27731 AND `source_type`=0 AND `id`=6 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=58811 WHERE `entryorguid`=27731 AND `source_type`=0 AND `id`=7 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=51340 WHERE `entryorguid`=27805 AND `source_type`=0 AND `id`=10 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=32019 WHERE `entryorguid`=28009 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=32019 WHERE `entryorguid`=28297 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=53317 WHERE `entryorguid`=29096 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=59343 WHERE `entryorguid`=29096 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=53330 WHERE `entryorguid`=29097 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=59348 WHERE `entryorguid`=29097 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=53317 WHERE `entryorguid`=29117 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=59343 WHERE `entryorguid`=29117 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=53330 WHERE `entryorguid`=29118 AND `source_type`=0 AND `id`=0 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=59348 WHERE `entryorguid`=29118 AND `source_type`=0 AND `id`=1 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=59466 WHERE `entryorguid`=32237 AND `source_type`=0 AND `id`=3 AND `link`=0; +UPDATE `smart_scripts` SET `target_param4`=58667 WHERE `entryorguid`=33422 AND `source_type`=0 AND `id`=1 AND `link`=0; diff --git a/data/sql/updates/db_world/2023_09_10_01.sql b/data/sql/updates/db_world/2023_09_10_01.sql new file mode 100644 index 000000000..c6ffffa88 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_10_01.sql @@ -0,0 +1,51 @@ +-- DB update 2023_09_10_00 -> 2023_09_10_01 +-- +ALTER TABLE `creature` + ADD COLUMN `CreateObject` TINYINT UNSIGNED NOT NULL DEFAULT '0' AFTER `VerifiedBuild`; + +-- Haggle +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` = 53788 AND `id1` = 14041; + +-- The Underbog +SET @CGUID := 138300; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+218; + +-- The Steamvault +SET @CGUID := 142000; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID AND @CGUID+174; + +-- The Shattered Halls +SET @CGUID := 151000; +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+4; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+5 AND @CGUID+18; +UPDATE `creature` SET `CreateObject` = 3 WHERE `guid` BETWEEN @CGUID+19 AND @CGUID+34; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+35 AND @CGUID+84; +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` BETWEEN @CGUID+85 AND @CGUID+88; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+89 AND @CGUID+282; + +-- Sethekk Halls +SET @CGUID := 138600; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+187; + +-- The Shadow Labyrinth +SET @CGUID := 146000; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+224; +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` BETWEEN @CGUID+225 AND @CGUID+229; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+230 AND @CGUID+235; + +-- The Mechanar +SET @CGUID := 138800; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+93; +UPDATE `creature` SET `CreateObject` = 3 WHERE `guid` IN (138893, 138892, 138891, 138890, 138879, 138878, 138877, 138876, 138869, 138864, 138863, 138831, 138820, 138819, 138818, 138817); + +-- The Botanica +SET @CGUID := 147000; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+187; + +-- The Arcatraz +SET @CGUID := 138900; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+97; + +-- The Deathforge +SET @CGUID := 83028; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` BETWEEN @CGUID+0 AND @CGUID+84; diff --git a/data/sql/updates/db_world/2023_09_11_00.sql b/data/sql/updates/db_world/2023_09_11_00.sql new file mode 100644 index 000000000..53ddde2c7 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_11_00.sql @@ -0,0 +1,2 @@ +-- DB update 2023_09_10_01 -> 2023_09_11_00 +UPDATE `creature_template_spell` SET `VerifiedBuild` = 0 WHERE `CreatureID` IN (17211, 17469, 21160, 21664, 21682, 21683, 21684, 21726, 21747, 21748, 21750, 21752); diff --git a/data/sql/updates/db_world/2023_09_13_00.sql b/data/sql/updates/db_world/2023_09_13_00.sql new file mode 100644 index 000000000..a4d496154 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_13_00.sql @@ -0,0 +1,18 @@ +-- DB update 2023_09_11_00 -> 2023_09_13_00 +-- +DELETE FROM `creature` WHERE `guid` IN (135921, 135922, 135923, 135924, 135925, 135926, 135927, 135928, 135929, 135930, 135931, 135932, 135933, 135934); +INSERT INTO `creature` (`guid`, `id1`, `id2`, `id3`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `VerifiedBuild`) VALUES +(135923, 17644, 0, 0, 532, 3457, 3457, 1, 1, -11001.4, -1991.33, 275.119, 4.97419, 7200, 49890), +(135924, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10984.4, -2016.32, 275.166, 3.1765, 7200, 49890), +(135925, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10976.4, -1961.86, 275.128, 5.39307, 7200, 49890), +(135926, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10975.6, -1984.06, 275.297, 2.9147, 7200, 49890), +(135927, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10962.1, -2014.65, 275.512, 0.628319, 7200, 49890), +(135928, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10953.4, -1983.33, 275.446, 5.00909, 7200, 49890), +(135929, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10951.9, -1957.37, 275.31, 5.89921, 7200, 49890), +(135930, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10931.5, -1983.72, 275.614, 3.22886, 7200, 49890), +(135931, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10942.5, -2014.21, 275.737, 5.91667, 7200, 49890), +(135932, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10929.6, -1958.1, 275.468, 4.71239, 7200, 49890), +(135933, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10911, -1987.62, 275.881, 1.01229, 7200, 49890), +(135934, 17644, 0, 0, 532, 3457, 3457, 1, 1, -10924.4, -2005.02, 275.794, 6.05629, 7200, 49890), +(135921, 17645, 0, 0, 532, 3457, 3457, 1, 1, -10893.5107421875, -2081.342041015625, 342.29364013671875, 5.183627605438232421, 7200, 49890), +(135922, 17645, 0, 0, 532, 3457, 3457, 1, 1, -10833.099609375, -2151.580810546875, 380.8603515625, 4.625122547149658203, 7200, 49890); diff --git a/data/sql/updates/db_world/2023_09_14_00.sql b/data/sql/updates/db_world/2023_09_14_00.sql new file mode 100644 index 000000000..ce3792ce6 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_14_00.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_13_00 -> 2023_09_14_00 +-- +UPDATE `creature_template` SET `npcflag` = `npcflag` |1 WHERE `entry` IN (17469,17211,21748,21664,21750,21683,21747,21682,21726,21160,21752,21684); diff --git a/data/sql/updates/db_world/2023_09_14_01.sql b/data/sql/updates/db_world/2023_09_14_01.sql new file mode 100644 index 000000000..6731bc981 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_14_01.sql @@ -0,0 +1,32 @@ +-- DB update 2023_09_14_00 -> 2023_09_14_01 +-- ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK +DELETE FROM `achievement_criteria_data` WHERE `criteria_id` IN (707, 708, 709, 710, 711, 712, 713, 714, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740); +INSERT INTO `achievement_criteria_data` (`criteria_id`, `type`, `value1`, `value2`, `ScriptName`) VALUES +(707, 23, 14, 0, ''), +(708, 23, 13, 0, ''), +(709, 23, 12, 0, ''), +(710, 23, 11, 0, ''), +(711, 23, 10, 0, ''), +(712, 23, 9, 0, ''), +(713, 23, 8, 0, ''), +(714, 23, 7, 0, ''), +(721, 23, 6, 0, ''), +(722, 23, 5, 0, ''), +(723, 23, 4, 0, ''), +(724, 23, 3, 0, ''), +(725, 23, 2, 0, ''), +(726, 23, 1, 0, ''), +(727, 23, 28, 0, ''), +(728, 23, 27, 0, ''), +(729, 23, 26, 0, ''), +(730, 23, 25, 0, ''), +(731, 23, 24, 0, ''), +(732, 23, 23, 0, ''), +(733, 23, 22, 0, ''), +(734, 23, 21, 0, ''), +(735, 23, 20, 0, ''), +(736, 23, 19, 0, ''), +(737, 23, 18, 0, ''), +(738, 23, 17, 0, ''), +(739, 23, 16, 0, ''), +(740, 23, 15, 0, ''); diff --git a/data/sql/updates/db_world/2023_09_15_00.sql b/data/sql/updates/db_world/2023_09_15_00.sql new file mode 100644 index 000000000..ce1549883 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_15_00.sql @@ -0,0 +1,22 @@ +-- DB update 2023_09_14_01 -> 2023_09_15_00 +-- +ALTER TABLE `creature` + ADD COLUMN `Comment` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci' AFTER `CreateObject`; + +ALTER TABLE `gameobject` + ADD COLUMN `Comment` TEXT NULL DEFAULT NULL COLLATE 'utf8mb4_unicode_ci' AFTER `VerifiedBuild`; + +UPDATE `creature` SET `Comment` = 'Original Orientation: 3.141592741012573242' WHERE `id1` = 18634 AND `guid` = 146209; + +UPDATE `creature` SET `Comment` = 'Mechanar Bridge Event Stage 1 Wave 1' WHERE `guid` IN (138817, 138818, 138890, 138831); +UPDATE `creature` SET `Comment` = 'Mechanar Bridge Event Stage 1 Wave 2' WHERE `guid` IN (138863); +UPDATE `creature` SET `Comment` = 'Mechanar Bridge Event Stage 1 Wave 3' WHERE `guid` IN (138891, 138876, 138877); + +UPDATE `creature` SET `Comment` = 'Mechanar Bridge Event Stage 2 Wave 1' WHERE `guid` IN (138819, 138892, 138878); +UPDATE `creature` SET `Comment` = 'Mechanar Bridge Event Stage 2 Wave 2' WHERE `guid` IN (138864); +UPDATE `creature` SET `Comment` = 'Mechanar Bridge Event Stage 2 Wave 3' WHERE `guid` IN (138820, 138869, 138893, 138879); + +SET @CGUID := 151000; +UPDATE `creature` SET `Comment` = 'Shattered Halls Legionnaire Gauntlet Group 1' WHERE `guid` BETWEEN @CGUID+19 AND @CGUID+23; +UPDATE `creature` SET `Comment` = 'Shattered Halls Legionnaire Gauntlet Group 2' WHERE `guid` BETWEEN @CGUID+24 AND @CGUID+28; +UPDATE `creature` SET `Comment` = 'Shattered Halls Legionnaire Gauntlet Group 3' WHERE `guid` BETWEEN @CGUID+29 AND @CGUID+34; diff --git a/data/sql/updates/db_world/2023_09_15_01.sql b/data/sql/updates/db_world/2023_09_15_01.sql new file mode 100644 index 000000000..e1177cc23 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_15_01.sql @@ -0,0 +1,10 @@ +-- DB update 2023_09_15_00 -> 2023_09_15_01 +ALTER TABLE `player_class_stats` + ADD COLUMN `BaseHP` int unsigned NOT NULL DEFAULT '1' AFTER `Level`, + ADD COLUMN `BaseMana` int unsigned NOT NULL DEFAULT '1' AFTER `BaseHP`; + +UPDATE player_class_stats AS noo +JOIN player_classlevelstats AS ole ON noo.Class = ole.class AND noo.Level = ole.level +SET noo.BaseHP = ole.basehp, noo.BaseMana = ole.basemana; + +DROP TABLE IF EXISTS `player_classlevelstats`; diff --git a/data/sql/updates/db_world/2023_09_15_02.sql b/data/sql/updates/db_world/2023_09_15_02.sql new file mode 100644 index 000000000..12cbb4cb5 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_15_02.sql @@ -0,0 +1,5 @@ +-- DB update 2023_09_15_01 -> 2023_09_15_02 +-- +DELETE FROM `creature_template_spell` WHERE `CreatureID` = 21750 AND `Index` = 2; +INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES +(21750, 2, 37469, 0); diff --git a/data/sql/updates/db_world/2023_09_17_00.sql b/data/sql/updates/db_world/2023_09_17_00.sql new file mode 100644 index 000000000..823847a35 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_00.sql @@ -0,0 +1,37 @@ +-- DB update 2023_09_15_02 -> 2023_09_17_00 +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/9912 + +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` IN (46438, 46449, 46459, 46461, 46462, 46573, 46586, 46714, 46715, 46912, 46913, 46915, 46916, 46917, 46918, 46919, 46920, 46921, 46922, 46923, 46924, 46925, 46926, 46927, 46928, 46929, 46930, 46931, 46932, 46933, 46934, 46935, 46936, 46937, 46938, 46939, 46940, 46941, 46942, 46943, 46944, 46945, 46946, 46947, 46948, 46949, 46950, 46951, 46952, 46953, 46954, 46955, 46957, 46958, 46971, 46972, 46974, 46981, 46997, 46998, 46999, 47000, 47001, 47002, 47003, 47004, 47006, 47008, 47009, 47010, 47012, 47016, 47017, 47029, 47030, 47031, 47037, 47038, 47039, 47052, 47053, 47054, 47055, 47056, 47057, 47060, 47061, 47062, 47208, 47249, 47262, 47263, 47267, 47268, 47269, 47270, 47271, 47280, 47281, 47282, 47283, 47284, 47285, 47286, 47287, 47288, 47290, 47310, 47312, 47314, 47315, 47316, 47317, 47319, 47320, 47321, 47322, 47324, 47325, 47327, 47328, 47329, 47330, 47331, 47332, 47333, 47334, 47335, 47336, 47337, 47338, 47340, 47341, 47342, 47343, 47344, 47345, 47346, 47350, 47660, 47752, 47863, 47876, 47880, 47883, 47900, 47905, 47907, 47911, 47915, 47921, 47922, 47925, 47926, 47928, 49560, 49561, 49562, 49563, 49564, 49565, 49566, 49567, 49568, 49569, 49570, 49571, 49572, 49610, 49611, 49612, 49613, 49614, 49615, 49616, 49617, 49620, 49621, 49622, 49623, 49626, 49627, 49628, 49629, 49630, 49631, 49632, 49633, 49634, 49635, 49636, 49637, 49638, 49639, 49640, 49641, 49642, 49643, 49644, 49645, 49646, 49648); + +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` IN (47326, 47339, 47289); + +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/9943 + +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` IN (46439, 47917, 47916, 47931, 47913); +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` IN (46394, 49845, 49855); + +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/10052 +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` IN (49818, 49850, 49819); + +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/10282 +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` IN (46446, 46452, 46463, 47372, 47373, 47374, 47375, 47376, 47378, 47519, 47520, 47521, 47522, 47523, 47524, 47525, 47531, 47936, 49882, 49883, 49884, 49889, 49897, 49898, 49899); + +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/10285 +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` IN (47527, 46431, 46464, 47352, 47355, 47356, 47361, 47363, 47377, 47379, 47380, 47381, 47382, 47383, 47505, 47516, 47517, 47518, 47633, 47647, 47663, 47857, 47919, 47933, 47937, 49860, 49861, 49862, 49865, 49880, 49881, 49900); + +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/12702 +SET @GUID :=88354; +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` BETWEEN @GUID+0 AND @GUID+96; + +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/12751 +SET @GUID :=94862; +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` BETWEEN @GUID+0 AND @GUID+72; + +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/12765 +SET @GUID :=72707; +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` BETWEEN @GUID+0 AND @GUID+45; + +-- modernize https://github.com/azerothcore/azerothcore-wotlk/pull/12854 +SET @GUID :=132314; +UPDATE `creature` SET `CreateObject` = 2 WHERE `guid` BETWEEN @GUID+0 AND @GUID+83; +UPDATE `creature` SET `CreateObject` = 1 WHERE `guid` IN (@GUID+25, @GUID+38, @GUID+83); diff --git a/data/sql/updates/db_world/2023_09_17_01.sql b/data/sql/updates/db_world/2023_09_17_01.sql new file mode 100644 index 000000000..f2e339e64 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_01.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_17_00 -> 2023_09_17_01 +-- +UPDATE `creature_template` SET `flags_extra` = `flags_extra`|256 WHERE (`entry` = 15689); diff --git a/data/sql/updates/db_world/2023_09_17_02.sql b/data/sql/updates/db_world/2023_09_17_02.sql new file mode 100644 index 000000000..42fd4eae7 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_02.sql @@ -0,0 +1,10 @@ +-- DB update 2023_09_17_01 -> 2023_09_17_02 +-- +DELETE FROM `waypoint_data` WHERE `id` = 1354890; +INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`, `orientation`, `delay`, `move_type`, `action`, `action_chance`, `wpguid`) VALUES +(1354890, 1, -11169.11, -1908.5563, 165.76112, NULL, 0, 0, 0, 100, 0), +(1354890, 2, -11184.444, -1887.7946, 158.35687, NULL, 0, 0, 0, 100, 0), +(1354890, 3, -11194.229, -1875.3362, 153.53537, NULL, 0, 0, 0, 100, 0), +(1354890, 4, -11184.444, -1887.7946, 158.35687, NULL, 0, 0, 0, 100, 0), +(1354890, 5, -11169.11, -1908.5563, 165.76112, NULL, 0, 0, 0, 100, 0), +(1354890, 6, -11104.563, -1856.9681, 165.76112, NULL, 0, 0, 0, 100, 0); diff --git a/data/sql/updates/db_world/2023_09_17_03.sql b/data/sql/updates/db_world/2023_09_17_03.sql new file mode 100644 index 000000000..d887c86d0 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_03.sql @@ -0,0 +1,11 @@ +-- DB update 2023_09_17_02 -> 2023_09_17_03 +-- +DELETE FROM `spell_script_names` WHERE `spell_id` = 30629 AND `ScriptName` = 'spell_magtheridon_debris_target_selector'; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(30629, 'spell_magtheridon_debris_target_selector'); + +UPDATE `creature_template` SET `unit_flags` = `unit_flags`|33554432, `AIName` = '', `ScriptName` = 'npc_target_trigger' WHERE `entry` = 17516; + +DELETE FROM `creature_template_movement` WHERE (`CreatureId` = 17516); +INSERT INTO `creature_template_movement` (`CreatureId`, `Ground`, `Swim`, `Flight`, `Rooted`, `Chase`, `Random`, `InteractionPauseTimer`) VALUES +(17516, 0, 0, 0, 1, 0, 0, 0); diff --git a/data/sql/updates/db_world/2023_09_17_04.sql b/data/sql/updates/db_world/2023_09_17_04.sql new file mode 100644 index 000000000..f117ffd69 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_04.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_17_03 -> 2023_09_17_04 +-- +UPDATE `creature_template` SET `flags_extra` = `flags_extra`|256 WHERE (`entry` = 17521); diff --git a/data/sql/updates/db_world/2023_09_17_05.sql b/data/sql/updates/db_world/2023_09_17_05.sql new file mode 100644 index 000000000..03a940058 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_05.sql @@ -0,0 +1,56 @@ +-- DB update 2023_09_17_04 -> 2023_09_17_05 +-- +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 21205); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(21205, 0, 0, 0, 0, 0, 100, 0, 0, 5000, 20000, 35000, 0, 0, 11, 38363, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Ravenous Flayer Matriarch - In Combat - Cast \'Gushing Wound\''), +(21205, 0, 1, 0, 0, 0, 100, 0, 0, 3000, 15000, 30000, 0, 0, 11, 36464, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Ravenous Flayer Matriarch - In Combat - Cast \'The Den Mother`s Mark\''), +(21205, 0, 2, 0, 11, 0, 100, 0, 0, 0, 0, 0, 0, 0, 53, 0, 2120500, 1, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ravenous Flayer Matriarch - On Respawn - Start Patrol Path 2120500'), +(21205, 0, 3, 0, 1, 0, 100, 0, 60000, 180000, 60000, 180000, 0, 0, 80, 2120500, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ravenous Flayer Matriarch - Out of Combat - Run Script'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 2120500); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(2120500, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 54, 30000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ravenous Flayer Matriarch - Actionlist - Pause Waypoint'), +(2120500, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 36691, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ravenous Flayer Matriarch - Actionlist - Cast \'Serverside - Lay Ravenous Flayer Egg\''), +(2120500, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 89, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ravenous Flayer Matriarch - Actionlist - Start Random Movement'), +(2120500, 9, 3, 0, 0, 0, 100, 0, 20000, 30000, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Ravenous Flayer Matriarch - Actionlist - Resume Waypoint'); + +DELETE FROM `creature` WHERE `id1` = 21205 AND `guid` = 85392; +INSERT INTO `creature` (`guid`, `id1`, `map`, `zoneId`, `areaId`, `position_x`, `position_y`, `position_z`, `orientation`, `spawntimesecs`, `VerifiedBuild`, `CreateObject`, `Comment`) VALUES +(85392, 21205, 530, 3520, 3520, -2730.536376953125, 1150.532958984375, 63.02117919921875, 3.796946525573730468, 300, 48069, 2, 'Scripted Pathing'); + +DELETE FROM `creature_addon` WHERE `guid` = 85392; +DELETE FROM `waypoint_data` WHERE `id` = 853920; + +DELETE FROM `waypoints` WHERE `entry` = 2120500; +INSERT INTO `waypoints` (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES +(2120500, 1 , -2746.24, 1138.448, 54.15343, 'Ravenous Flayer Matriarch'), +(2120500, 2 , -2762.292, 1128.408, 46.53087, 'Ravenous Flayer Matriarch'), +(2120500, 3 , -2729.597, 1104.097, 49.9248, 'Ravenous Flayer Matriarch'), +(2120500, 4 , -2727.395, 1087.502, 48.17071, 'Ravenous Flayer Matriarch'), +(2120500, 5 , -2728.122, 1075.56, 45.84283, 'Ravenous Flayer Matriarch'), +(2120500, 6 , -2710.212, 1072.808, 47.86968, 'Ravenous Flayer Matriarch'), +(2120500, 7 , -2692.166, 1095.084, 51.25895, 'Ravenous Flayer Matriarch'), +(2120500, 8 , -2676.87, 1087.67, 48.08696, 'Ravenous Flayer Matriarch'), +(2120500, 9 , -2651.984, 1074.549, 49.94732, 'Ravenous Flayer Matriarch'), +(2120500, 10, -2634.343, 1060.091, 50.21058, 'Ravenous Flayer Matriarch'), +(2120500, 11, -2619.968, 1053.699, 37.64632, 'Ravenous Flayer Matriarch'), +(2120500, 12, -2598.035, 1047.925, 43.43085, 'Ravenous Flayer Matriarch'), +(2120500, 13, -2571.256, 1035.177, 43.26862, 'Ravenous Flayer Matriarch'), +(2120500, 14, -2563.9033, 1032.3075, 37.875877, 'Ravenous Flayer Matriarch - Decomposed'), +(2120500, 15, -2561.1533, 1031.0575, 33.125877, 'Ravenous Flayer Matriarch - Decomposed'), +(2120500, 16, -2552.076, 1026.859, 37.60755, 'Ravenous Flayer Matriarch'), +(2120500, 17, -2521.413, 1022.475, 42.70882, 'Ravenous Flayer Matriarch'), +(2120500, 18, -2516.2585, 1031.3173, 39.342514, 'Ravenous Flayer Matriarch - Decomposed'), +(2120500, 19, -2508.908, 1042.702, 49.50398, 'Ravenous Flayer Matriarch'), +(2120500, 20, -2502.511, 1057.798, 53.36262, 'Ravenous Flayer Matriarch'), +(2120500, 21, -2518.216, 1084.736, 63.13983, 'Ravenous Flayer Matriarch'), +(2120500, 22, -2519.813, 1103.396, 66.57159, 'Ravenous Flayer Matriarch'), +(2120500, 23, -2526.526, 1123.956, 72.65863, 'Ravenous Flayer Matriarch'), +(2120500, 24, -2555.379, 1145.952, 76.91769, 'Ravenous Flayer Matriarch'), +(2120500, 25, -2574.61, 1140.253, 74.28946, 'Ravenous Flayer Matriarch'), +(2120500, 26, -2581.985, 1117.115, 68.20245, 'Ravenous Flayer Matriarch'), +(2120500, 27, -2606.013, 1116.443, 66.19119, 'Ravenous Flayer Matriarch'), +(2120500, 28, -2631.04, 1119.793, 64.49197, 'Ravenous Flayer Matriarch'), +(2120500, 29, -2661.714, 1119.632, 64.44809, 'Ravenous Flayer Matriarch'), +(2120500, 30, -2698.282, 1122.563, 58.28287, 'Ravenous Flayer Matriarch'), +(2120500, 31, -2731.417, 1141.435, 59.53944, 'Ravenous Flayer Matriarch'); diff --git a/data/sql/updates/db_world/2023_09_17_06.sql b/data/sql/updates/db_world/2023_09_17_06.sql new file mode 100644 index 000000000..31eec4635 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_06.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_17_05 -> 2023_09_17_06 +-- +UPDATE `creature_addon` SET `auras` = '' WHERE `guid` = 39059; diff --git a/data/sql/updates/db_world/2023_09_17_07.sql b/data/sql/updates/db_world/2023_09_17_07.sql new file mode 100644 index 000000000..ac2d924da --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_07.sql @@ -0,0 +1,166 @@ +-- DB update 2023_09_17_06 -> 2023_09_17_07 +-- https://github.com/TrinityCore/TrinityCore/commit/dbcbfaa6c7834507b0eba291b45b3927d73ac6d0 +DELETE FROM `creature_text` WHERE `CreatureID` IN (18318,18319,18320,18321,18322,18323,18325,18326,18327,18328) AND `GroupID` = 0; +INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES +(18318,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18318,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18318,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18318,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18318,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18319,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18319,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18319,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18319,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18319,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18320,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18320,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18320,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18320,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18320,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18321,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18321,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18321,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18321,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18321,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18322,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18322,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18322,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18322,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18322,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18323,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18323,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18323,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18323,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18323,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18325,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18325,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18325,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18325,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18325,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18326,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18326,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18326,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18326,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18326,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18327,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18327,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18327,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18327,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18327,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'), + +(18328,0,0,'In Terokk\'s name!',12,0,100,0,0,0,16716,0,'Sethekk Halls Trash'), +(18328,0,1,'Protect the Veil!',12,0,100,0,0,0,16717,0,'Sethekk Halls Trash'), +(18328,0,2,'Darkfire -- avenge us!',12,0,100,0,0,0,16718,0,'Sethekk Halls Trash'), +(18328,0,3,'Ssssekk-sara Rith-nealaak!',12,0,100,0,0,0,16719,0,'Sethekk Halls Trash'), +(18328,0,4,'Arak-ha!',12,0,100,0,0,0,16720,0,'Sethekk Halls Trash'); + +DELETE FROM `smart_scripts` WHERE `entryorguid` IN (18318,18319,18320,18321,18322,18323,18325,18326,18327,18328,18701,18703,19203,19204,19205,19206,19428,19429,21891,21904) AND `source_type` = 0; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(18318, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Initiate - On Aggro - Say Line 0'), +(18318, 0, 1, 0, 0, 0, 100, 0, 5300, 7100, 10800, 18100, 0, 0, 11, 16145, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Initiate - In Combat - Cast \'Sunder Armor\''), +(18318, 0, 2, 0, 0, 0, 100, 0, 7400, 15700, 27300, 47100, 0, 0, 11, 33961, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Initiate - In Combat - Cast \'Spell Reflection\''), + +(18319, 0, 0, 0, 1, 0, 100, 0, 1000, 1000, 30000, 30000, 0, 0, 11, 32689, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - Out of Combat - Cast \'Arcane Destruction\''), +(18319, 0, 1, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - On Aggro - Say Line 0'), +(18319, 0, 2, 0, 0, 0, 100, 0, 3100, 5300, 3100, 5300, 0, 0, 11, 32689, 32, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - In Combat - Cast \'Arcane Destruction\''), +(18319, 0, 3, 0, 0, 0, 100, 2, 7800, 13300, 10400, 17700, 0, 0, 11, 22272, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - In Combat - Cast \'Arcane Missiles\' (Normal Dungeon)'), +(18319, 0, 4, 0, 0, 0, 100, 4, 7800, 13300, 10400, 17700, 0, 0, 11, 33988, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - In Combat - Cast \'Arcane Missiles\' (Heroic Dungeon)'), +(18319, 0, 5, 0, 74, 0, 100, 2, 9600, 15700, 9600, 15700, 75, 40, 11, 17843, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - On Friendly Between 0-75% Health - Cast \'Flash Heal\' (Normal Dungeon)'), +(18319, 0, 6, 0, 74, 0, 100, 4, 9600, 15700, 9600, 15700, 75, 40, 11, 17138, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - On Friendly Between 0-75% Health - Cast \'Flash Heal\' (Heroic Dungeon)'), +(18319, 0, 7, 0, 74, 0, 100, 2, 13200, 21700, 13200, 21700, 40, 40, 11, 12160, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - On Friendly Between 0-40% Health - Cast \'Rejuvenation\' (Normal Dungeon)'), +(18319, 0, 8, 0, 74, 0, 100, 4, 13200, 21700, 13200, 21700, 40, 40, 11, 15981, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Scryer - On Friendly Between 0-40% Health - Cast \'Rejuvenation\' (Heroic Dungeon)'), + +(18320, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Shadowmage - On Aggro - Say Line 0'), +(18320, 0, 1, 0, 0, 0, 100, 2, 6600, 18600, 9300, 21800, 0, 0, 11, 32675, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Shadowmage - In Combat - Cast \'Shadow Missiles\' (Normal Dungeon)'), +(18320, 0, 2, 0, 0, 0, 100, 4, 6600, 18600, 9300, 21800, 0, 0, 11, 38148, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Shadowmage - In Combat - Cast \'Shadow Missiles\' (Heroic Dungeon)'), +(18320, 0, 3, 0, 0, 0, 100, 2, 4800, 9600, 21700, 33800, 0, 0, 11, 32682, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Shadowmage - In Combat - Cast \'Curse of the Dark Talon\' (Normal Dungeon)'), +(18320, 0, 4, 0, 0, 0, 100, 4, 4800, 9600, 21700, 33800, 0, 0, 11, 38149, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Shadowmage - In Combat - Cast \'Curse of the Dark Talon\' (Heroic Dungeon)'), + +(18321, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Talon Lord - On Aggro - Say Line 0'), +(18321, 0, 2, 0, 0, 0, 100, 0, 0, 0, 16300, 24300, 0, 0, 11, 32674, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Talon Lord - In Combat - Cast \'Avenger\'s Shield\''), +(18321, 0, 3, 0, 0, 0, 100, 0, 9300, 16700, 14300, 25400, 0, 0, 11, 32654, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Talon Lord - In Combat - Cast \'Talon of Justice\''), + +(18322, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Ravenguard - On Aggro - Say Line 0'), +(18322, 0, 1, 0, 0, 0, 100, 2, 7200, 20500, 10800, 21700, 0, 0, 11, 33964, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Ravenguard - In Combat - Cast \'Bloodthirst\' (Normal Dungeon)'), +(18322, 0, 2, 0, 0, 0, 100, 4, 7200, 20500, 10800, 21700, 0, 0, 11, 40423, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Ravenguard - In Combat - Cast \'Bloodthirst\' (Heroic Dungeon)'), +(18322, 0, 3, 0, 0, 0, 100, 0, 6100, 17400, 16800, 21700, 0, 0, 11, 32651, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Ravenguard - In Combat - Cast \'Howling Screech\''), +(18322, 0, 4, 0, 38, 0, 100, 0, 0, 1, 0, 0, 0, 0, 11, 34970, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Ravenguard - On Data Set 0 1 - Cast \'Frenzy\''), +(18322, 0, 5, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 45, 0, 1, 0, 0, 0, 0, 19, 18322, 30, 0, 0, 0, 0, 0, 0, 'Sethekk Ravenguard - On Death - Set Data 0 1'), + +(18323, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Guard - On Aggro - Say Line 0'), +(18323, 0, 1, 0, 0, 0, 100, 0, 3600, 15700, 10900, 22100, 0, 0, 11, 33967, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Guard - In Combat - Cast \'Thunderclap\''), + +(18325, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Prophet - On Aggro - Say Line 0'), +(18325, 0, 1, 0, 0, 0, 100, 0, 8700, 17700, 13200, 24100, 0, 0, 11, 27641, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Prophet - In Combat - Cast \'Fear\''), +(18325, 0, 2, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 32692, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Prophet - On Death - Cast \'Summon Arakkoa Spirit\''), + +(18326, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Shaman - On Aggro - Say Line 0'), +(18326, 0, 1, 0, 0, 0, 100, 2, 4300, 9100, 7200, 14500, 0, 0, 11, 15501, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Shaman - In Combat - Cast \'Earth Shock\' (Normal Dungeon)'), +(18326, 0, 2, 0, 0, 0, 100, 4, 4300, 9100, 7200, 14500, 0, 0, 11, 22885, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Shaman - In Combat - Cast \'Earth Shock\' (Heroic Dungeon)'), +(18326, 0, 3, 0, 0, 0, 100, 0, 7900, 14500, 90000, 90000, 0, 0, 11, 32663, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Shaman - In Combat - Cast \'Summon Dark Vortex\''), + +(18327, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Controller - On Aggro - Say Line 0'), +(18327, 0, 1, 0, 0, 0, 100, 0, 9100, 24100, 27800, 48300, 0, 0, 11, 32764, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Controller - In Combat - Cast \'Summon Charming Totem\''), +(18327, 0, 2, 0, 0, 0, 100, 0, 8400, 23200, 9700, 32600, 0, 0, 11, 35013, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 'Time-Lost Controller - In Combat - Cast \'Shrink\''), + +(18328, 0, 0, 0, 4, 0, 15, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Oracle - On Aggro - Say Line 0'), +(18328, 0, 1, 0, 0, 0, 100, 2, 6100, 12100, 18500, 27700, 0, 0, 11, 32690, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Oracle - In Combat - Cast \'Arcane Lightning\' (Normal Dungeon)'), +(18328, 0, 2, 0, 0, 0, 100, 4, 1200, 12100, 7200, 13300, 0, 0, 11, 38146, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Oracle - In Combat - Cast \'Arcane Lightning\' (Heroic Dungeon)'), +(18328, 0, 3, 0, 0, 0, 100, 0, 2400, 8700, 8400, 19300, 0, 0, 11, 32129, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Oracle - In Combat - Cast \'Faerie Fire\''), + +(18701, 0, 0, 0, 0, 0, 100, 0, 3600, 7200, 8400, 19300, 0, 0, 11, 12471, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Dark Vortex - In Combat - Cast \'Shadow Bolt\''), + +(18703, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Spirit - On Just Summoned - Set In Combat With Zone'), +(18703, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 17321, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Spirit - On Link - Cast \'Spirit Spawn-in\''), +(18703, 0, 2, 3, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 24051, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Spirit - On Link - Cast \'Spirit Burst\''), +(18703, 0, 3, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 0, 116, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Spirit - On Link - Set Corpse Delay'), +(18703, 0, 4, 0, 60, 0, 100, 1, 10000, 10000, 0, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Sethekk Spirit - On Update - Kill Self (No Repeat)'), + +(19203, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 33610, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Fire Elemental - On Just Summoned - Cast \'Syth A Dummy\''), +(19203, 0, 1, 0, 0, 0, 100, 2, 1600, 7600, 8400, 18100, 0, 0, 11, 33526, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Fire Elemental - In Combat - Cast \'Flame Buffet\' (Normal Dungeon)'), +(19203, 0, 2, 0, 0, 0, 100, 4, 1200, 3600, 6000, 7200, 0, 0, 11, 38141, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Fire Elemental - In Combat - Cast \'Flame Buffet\' (Heroic Dungeon)'), +(19203, 0, 3, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 33621, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Fire Elemental - On Death - Cast \'Syth Dummy\''), + +(19204, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 33611, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Frost Elemental - On Just Summoned - Cast \'Syth B Dummy\''), +(19204, 0, 1, 0, 0, 0, 100, 2, 1600, 7600, 8400, 18100, 0, 0, 11, 33528, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Frost Elemental - In Combat - Cast \'Frost Buffet\' (Normal Dungeon)'), +(19204, 0, 2, 0, 0, 0, 100, 4, 1200, 3600, 6000, 7200, 0, 0, 11, 38142, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Frost Elemental - In Combat - Cast \'Frost Buffet\' (Heroic Dungeon)'), +(19204, 0, 3, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 33621, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Frost Elemental - On Death - Cast \'Syth Dummy\''), + +(19205, 0, 0, 0, 0, 0, 100, 2, 1600, 7600, 8400, 18100, 0, 0, 11, 33527, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Arcane Elemental - In Combat - Cast \'Arcane Buffet\' (Normal Dungeon)'), +(19205, 0, 1, 0, 0, 0, 100, 4, 1200, 3600, 6000, 7200, 0, 0, 11, 38138, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Arcane Elemental - In Combat - Cast \'Arcane Buffet\' (Heroic Dungeon)'), +(19205, 0, 2, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 33621, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Arcane Elemental - On Death - Cast \'Syth Dummy\''), + +(19206, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 33612, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Shadow Elemental - On Just Summoned - Cast \'Syth C Dummy\''), +(19206, 0, 1, 0, 0, 0, 100, 2, 1600, 7600, 8400, 18100, 0, 0, 11, 33529, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Shadow Elemental - In Combat - Cast \'Shadow Buffet\' (Normal Dungeon)'), +(19206, 0, 2, 0, 0, 0, 100, 4, 1200, 3600, 6000, 7200, 0, 0, 11, 38143, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Shadow Elemental - In Combat - Cast \'Shadow Buffet\' (Heroic Dungeon)'), +(19206, 0, 3, 0, 6, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 33621, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Syth Shadow Elemental - On Death - Cast \'Syth Dummy\''), + +(19428, 0, 0, 0, 0, 0, 100, 2, 4800, 14500, 13300, 22900, 0, 0, 11, 17503, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cobalt Serpent - In Combat - Cast \'Frostbolt\' (Normal Dungeon)'), +(19428, 0, 1, 0, 0, 0, 100, 4, 4800, 14500, 13300, 22900, 0, 0, 11, 38238, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cobalt Serpent - In Combat - Cast \'Frostbolt\' (Heroic Dungeon)'), +(19428, 0, 2, 0, 0, 0, 100, 2, 5600, 22100, 8400, 25400, 0, 0, 11, 38193, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cobalt Serpent - In Combat - Cast \'Lightning Breath\' (Normal Dungeon)'), +(19428, 0, 3, 0, 0, 0, 100, 4, 3600, 22100, 7200, 14400, 0, 0, 11, 38133, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Cobalt Serpent - In Combat - Cast \'Lightning Breath\' (Heroic Dungeon)'), +(19428, 0, 4, 0, 0, 0, 100, 0, 6200, 21700, 12100, 22800, 0, 0, 11, 38110, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Cobalt Serpent - In Combat - Cast \'Wing Buffet\''), + +(19429, 0, 0, 0, 9, 0, 100, 3, 0, 0, 0, 0, 8, 25, 11, 38059, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Darkhawk - Within 8-25 Range - Cast \'Sonic Charge\' (Normal Dungeon) (No Repeat)'), +(19429, 0, 1, 0, 9, 0, 100, 5, 0, 0, 0, 0, 8, 25, 11, 39197, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Darkhawk - Within 8-25 Range - Cast \'Sonic Charge\' (Heroic Dungeon) (No Repeat)'), +(19429, 0, 2, 0, 0, 0, 100, 2, 4800, 13600, 10900, 24100, 0, 0, 11, 32901, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Darkhawk - In Combat - Cast \'Carnivorous Bite\' (Normal Dungeon)'), +(19429, 0, 3, 0, 0, 0, 100, 4, 4800, 13600, 10900, 24100, 0, 0, 11, 39198, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Darkhawk - In Combat - Cast \'Carnivorous Bite\' (Heroic Dungeon)'), + +(21891, 0, 0, 0, 0, 0, 100, 0, 4300, 12100, 15600, 19300, 0, 0, 11, 38056, 32, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Ripper - In Combat - Cast \'Flesh Rip\''), + +(21904, 0, 0, 0, 9, 0, 100, 3, 0, 0, 0, 0, 8, 25, 11, 38059, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Warhawk - Within 8-25 Range - Cast \'Sonic Charge\' (Normal Dungeon) (No Repeat)'), +(21904, 0, 1, 0, 9, 0, 100, 5, 0, 0, 0, 0, 8, 25, 11, 39197, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Warhawk - Within 8-25 Range - Cast \'Sonic Charge\' (Heroic Dungeon) (No Repeat)'), +(21904, 0, 2, 0, 0, 0, 100, 2, 3800, 11100, 10900, 21700, 0, 0, 11, 32901, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Warhawk - In Combat - Cast \'Carnivorous Bite\' (Normal Dungeon)'), +(21904, 0, 3, 0, 0, 0, 100, 4, 3800, 11100, 10900, 21700, 0, 0, 11, 39198, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Warhawk - In Combat - Cast \'Carnivorous Bite\' (Heroic Dungeon)'), +(21904, 0, 4, 0, 0, 0, 100, 0, 6200, 25500, 12100, 24100, 0, 0, 11, 18144, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Avian Warhawk - In Combat - Cast \'Swoop\''); + +-- Ravenguard ImmuneMask +UPDATE `creature_template` SET `mechanic_immune_mask` = 71698 WHERE (`entry` IN (18322, 20696)); diff --git a/data/sql/updates/db_world/2023_09_17_08.sql b/data/sql/updates/db_world/2023_09_17_08.sql new file mode 100644 index 000000000..fba22485e --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_08.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_17_07 -> 2023_09_17_08 +-- +UPDATE `creature_template` SET `unit_flags2` = 0 WHERE (`entry` = 15691); diff --git a/data/sql/updates/db_world/2023_09_17_09.sql b/data/sql/updates/db_world/2023_09_17_09.sql new file mode 100644 index 000000000..ec7b40263 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_09.sql @@ -0,0 +1,5 @@ +-- DB update 2023_09_17_08 -> 2023_09_17_09 +-- +DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_q10190_battery_recharging_blaster'; +INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES +(34219, 'spell_q10190_battery_recharging_blaster'); diff --git a/data/sql/updates/db_world/2023_09_17_10.sql b/data/sql/updates/db_world/2023_09_17_10.sql new file mode 100644 index 000000000..a2b8bfc16 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_10.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_17_09 -> 2023_09_17_10 +DELETE FROM `game_event_creature` WHERE `guid` IN (245648,245645,245649); +DELETE FROM `creature` WHERE `guid` IN (245648,245645,245649); diff --git a/data/sql/updates/db_world/2023_09_17_11.sql b/data/sql/updates/db_world/2023_09_17_11.sql new file mode 100644 index 000000000..ec10522ab --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_11.sql @@ -0,0 +1,5 @@ +-- DB update 2023_09_17_10 -> 2023_09_17_11 +-- +DELETE FROM `spell_script_names` WHERE `ScriptName` = 'spell_malchezaar_enfeeble' AND `spell_id` = 30843; +INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES +(30843, 'spell_malchezaar_enfeeble'); diff --git a/data/sql/updates/db_world/2023_09_17_12.sql b/data/sql/updates/db_world/2023_09_17_12.sql new file mode 100644 index 000000000..7d82cc772 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_12.sql @@ -0,0 +1,184 @@ +-- DB update 2023_09_17_11 -> 2023_09_17_12 +-- ---------------------creature_template ------------------- +-- fairbanks Use gossip_menu_id 7283 +-- add gossip menu flag Prevent red errors when the server starts +UPDATE `creature_template` SET `gossip_menu_id` = 7283, `npcflag` = 1 +WHERE (`entry` = 4542); + +-- ----gossip_menu----- +-- cmangos and vmangos gossip_menuID-- +DELETE +FROM `gossip_menu` +WHERE `MenuID` BETWEEN 7268 AND 7284; +INSERT INTO `gossip_menu` (`MenuID`, `TextID`) VALUES +(7268, 8610), +(7269, 8609), +(7270, 8608), +(7271, 8607), +(7272, 8606), +(7273, 8605), +(7274, 8604), +(7275, 8603), +(7276, 8602), +(7277, 8601), +(7278, 8600), +(7279, 8599), +(7280, 8598), +(7281, 8597), +(7282, 8596), +(7283, 8595), +(7284, 8612); + +-- -----gossip_menu_option----- +-- Using the MenuID in vmangos and cmangos +DELETE +FROM `gossip_menu_option` +WHERE `MenuID` BETWEEN 7268 AND 7283; +INSERT INTO `gossip_menu_option` (`MenuID`, `OptionID`, `OptionIcon`, `OptionText`, `OptionBroadcastTextID`, `OptionType`, `OptionNpcFlag`, `ActionMenuID`, `ActionPoiID`, `BoxCoded`, `BoxMoney`, `BoxText`, `BoxBroadcastTextID`, `VerifiedBuild`) VALUES +(7268, 0, 0, 'But his son is dead.', 12511, 1, 1, 7284, 0, 0, 0, '', 0, 0), +(7269, 0, 0, 'You tell an incredible tale, Fairbanks. What of the blade? Is it beyond redemption?', 12509, 1, 1, 7268, 0, 0, 0, '', 0, 0), +(7270, 0, 0, 'And you did...', 12507, 1, 1, 7269, 0, 0, 0, '', 0, 0), +(7271, 0, 0, 'You were right, Fairbanks. That is tragic.', 12505, 1, 1, 7270, 0, 0, 0, '', 0, 0), +(7272, 0, 0, 'You mean...', 12503, 1, 1, 7271, 0, 0, 0, '', 0, 0), +(7273, 0, 0, 'Continue please, Fairbanks.', 12501, 1, 1, 7272, 0, 0, 0, '', 0, 0), +(7274, 0, 0, 'And did he?', 12499, 1, 1, 7273, 0, 0, 0, '', 0, 0), +(7275, 0, 0, 'Yet? Yet what??', 12497, 1, 1, 7274, 0, 0, 0, '', 0, 0), +(7276, 0, 0, 'A thousand? For one man?', 12495, 1, 1, 7275, 0, 0, 0, '', 0, 0), +(7277, 0, 0, 'How do you know all of this?', 12493, 1, 1, 7276, 0, 0, 0, '', 0, 0), +(7278, 0, 0, 'You mean...', 12491, 1, 1, 7277, 0, 0, 0, '', 0, 0), +(7279, 0, 0, 'Incredible story. So how did he die?', 12489, 1, 1, 7278, 0, 0, 0, '', 0, 0), +(7280, 0, 0, 'I still do not fully understand.', 12487, 1, 1, 7279, 0, 0, 0, '', 0, 0), +(7281, 0, 0, 'What do you mean?', 12485, 1, 1, 7280, 0, 0, 0, '', 0, 0), +(7282, 0, 0, 'Mograine?', 12483, 1, 1, 7281, 0, 0, 0, '', 0, 0), +(7283, 0, 0, 'Curse? What\'s going ON here, Fairbanks?', 12481, 1, 1, 7282, 0, 0, 0, '', 0, 0); + +-- ---------npc_text----------- +-- cmangos npc_text_broa*dcast_text +DELETE FROM `npc_text` WHERE `ID` BETWEEN 8595 AND 8610; +INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `Probability0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `Probability1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `Probability2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `Probability3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `Probability4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `Probability5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `Probability6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `Probability7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`) VALUES +(8595, '\r\nAT LAST, the curse IS lifted. Thank you, hero.', NULL, 12480, 0, 1, 0, 1, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8596, 'You mean, you don\'t know? The sword that you carry on your back - it is known as Ashbringer; named after its original owner.', NULL, 12482, 0, 1, 0, 6, 0, 1, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), + +-- Emoji 273 Holding a weapon in your hand is different from the Blizzard plan +(8597, 'Aye, the Highlord Mograine: A founder of the original order of the Scarlet Crusade. A knight of unwavering faith and purity; Mograine would be betrayed by his own son and slain by Kel\'Thuzad\'s forces inside Stratholme. It is how I ended up here...', NULL, 12484, 0, 1, 0, 273, 0, 1, 0, 1, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), + +(8598, 'It was High General Abbendis, High Inquisitor Isillien, and Highlord Mograine that formed the Crusade. In its infancy, the Crusade was a noble order. The madness and insane zealotry that you see now did not exist. It was not until the one known as the Grand Crusader appeared that the wheels of corruption were set in motion.', NULL, 12486, 0, 1, 0, 1, 0, 1, 0, 1, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), + +-- Emoji 273 Holding a weapon in your hand is different from the Blizzard plan +(8599, 'The Highlord was the lynchpin of the Crusade. Aye, Mograine was called the Ashbringer because of his exploits versus the armies of the Lich King. With only blade and faith, Mograine would walk into whole battalions of undead and emerge unscathed - the ashes of his foes being the only indication that he had been there at all. Do you not understand? The very face of death feared him! It trembled in his presence!', NULL, 12488, 0, 1, 0, 1, 0, 273, 0, 5, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), + +(8600, 'The only way a hero can die, $r: Through tragedy. The Grand Crusader struck a deal with Kel\'Thuzad himself! An ambush would be staged that would result in the death of Mograine. The TYPE of betrayal that could only be a result of the actions of one\'s most trusted and loved companions.', NULL, 12490, 0, 1, 0, 1, 0, 1, 0, 1, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +-- Emoji 273 Holding a weapon in your hand is different from the Blizzard plan +(8601, '$B$BAye, the lesser Mograine, the one known as the Scarlet Commander, through - what I suspect - the dealings of the Grand Crusader. He led his father to the ambush like a lamb to the slaughter.', NULL, 12492, 0, 1, 0, 273, 0, 1, 0, 1, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8602, '$B$BBecause I was there... I was the Highlord\'s most trusted advisor. I should have known... I felt that something was amiss yet I allowed it TO happen. Would you believe that there were a thousand OR more Scourge?', NULL, 12494, 0, 1, 0, 1, 0, 1, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8603, 'This was the Ashbringer, fool! AS the Scourge began TO materialize around us, Mograine\'s blade began to glow... to hum... the younger Mograine would take that as a sign to make his escape. They descended upon us with a hunger the likes of which I had never seen. Yet...', NULL, 12496, 0, 1, 0, 5, 0, 1, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8604, 'It was not enough.$B$B$B$BA thousand came and a thousand died. By the Light! By the might of Mograine! He would smite them down as fast as they could come. Through the chaos, I noticed that the lesser Mograine was still there, off in the distance. I called to him, " HELP us, Renault! HELP your father, boy!"', NULL, 12498, 0, 1, 0, 1, 0, 22, 0, 22, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +-- Emoji 274 Holding a weapon in your hand is different from the Blizzard plan +(8605, '$B$BNo... He stood in the background, watching as the legion of undead descended upon us. Soon after, my powers were exhausted. I was the first to fall... Surely they would tear me limb from limb as I lay there unconscious; but they ignored me completely, focusing all of their attention on the Highlord. ', NULL, 12500, 0, 1, 0, 274, 0, 1, 0, 1, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8606, 'It was all I could do to feign death as the corpses of the Scourge piled upon me. There was darkness and only the muffled sounds of the battle above me. The clashing of iron, the gnashing and grinding... gruesome, terrible sounds. And then there was silence. He called to me! "Fairbanks! Fairbanks\r\nWHERE are you? Talk TO me Fairbanks!" And then came the sound of incredulousness. The bite of betrayal, $r...', NULL, 12502, 0, 1, 0, 1, 0, 1, 0, 1, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8607, 'The boy had picked up the Ashbringer and driven it through his father\'s heart AS his back was turned. His LAST words will haunt me forever: "What have you done, Renault? Why would you do this?"', NULL, 12504, 0, 1, 0, 1, 0, 1, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8608, 'The blade AND Mograine were a singular entity. DO you understand? This act corrupted the blade AND LEAD TO Mograine\'s own corruption as a death knight of Kel\'Thuzad. I swore that if I lived, I would expose the perpetrators of this heinous crime. FOR two days I remained under the rot AND contagion of Scourge - gathering AS much strength AS possible TO ESCAPE the razed city.\n', NULL, 12506, 0, 1, 0, 1, 0, 1, 0, 1, NULL, NULL, 0, 0, 100, 1, 1, 1, 0, 0, 0, NULL, NULL, 0, 0, 100, 1, 1, 1, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8609, 'Aye, I did. Much TO the dismay of the lesser Mograine, I made my way back TO the Scarlet Monastery. I shouted AND screamed. I told the tale TO ANY that would listen. AND I would be murdered in cold blood FOR my actions, dragged TO this chamber - the dark secret of the order. But SOME did listen... SOME heard my words. Thus was born the Argent Dawn...', NULL, 12508, 0, 1, 0, 1, 0, 1, 0, 1, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(8610, 'I\'m afraid that the blade which you hold in your hands is beyond saving. The hatred runs too deep. But do not lose hope, $c. Where one chapter has ended, a new one begins.$B$BFind his son - a more devout and pious man you may never meet. It is rumored that he is able to build the Ashbringer anew, without requiring the old, tainted blade.', NULL, 12510, 0, 1, 0, 1, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL); + +-- Emoji 274 and 397 Holding a weapon in your hand is different from the Blizzard plan +DELETE FROM `npc_text` WHERE `ID`=8612; +INSERT INTO `npc_text` (`ID`, `text0_0`, `text0_1`, `BroadcastTextID0`, `lang0`, `Probability0`, `em0_0`, `em0_1`, `em0_2`, `em0_3`, `em0_4`, `em0_5`, `text1_0`, `text1_1`, `BroadcastTextID1`, `lang1`, `Probability1`, `em1_0`, `em1_1`, `em1_2`, `em1_3`, `em1_4`, `em1_5`, `text2_0`, `text2_1`, `BroadcastTextID2`, `lang2`, `Probability2`, `em2_0`, `em2_1`, `em2_2`, `em2_3`, `em2_4`, `em2_5`, `text3_0`, `text3_1`, `BroadcastTextID3`, `lang3`, `Probability3`, `em3_0`, `em3_1`, `em3_2`, `em3_3`, `em3_4`, `em3_5`, `text4_0`, `text4_1`, `BroadcastTextID4`, `lang4`, `Probability4`, `em4_0`, `em4_1`, `em4_2`, `em4_3`, `em4_4`, `em4_5`, `text5_0`, `text5_1`, `BroadcastTextID5`, `lang5`, `Probability5`, `em5_0`, `em5_1`, `em5_2`, `em5_3`, `em5_4`, `em5_5`, `text6_0`, `text6_1`, `BroadcastTextID6`, `lang6`, `Probability6`, `em6_0`, `em6_1`, `em6_2`, `em6_3`, `em6_4`, `em6_5`, `text7_0`, `text7_1`, `BroadcastTextID7`, `lang7`, `Probability7`, `em7_0`, `em7_1`, `em7_2`, `em7_3`, `em7_4`, `em7_5`, `VerifiedBuild`) VALUES +(8612, '$B$BNo, $r; only one of his sons is dead. The other lives...$B$B$B$BThe Outland... Find him there... ', NULL, 12512, 0, 1, 0, 271, 0, 1, 0, 397, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL); + +-- ---------npc_text----------- +-- Get ready to trigger emoticons with SmartAI +-- use smart_ai emto 8597 8599 8601 8605 8612 +UPDATE `npc_text` SET `em0_1`=0,`em0_3`=0, `em0_5`=0 +WHERE `ID`=8597; +UPDATE `npc_text` SET `em0_1`=0,`em0_3`=0, `em0_5`=0 +WHERE `ID`=8599; +UPDATE `npc_text` SET `em0_1`=0,`em0_3`=0, `em0_5`=0 +WHERE `ID`=8601; +UPDATE `npc_text` SET `em0_1`=0,`em0_3`=0, `em0_5`=0 +WHERE `ID`=8605; +UPDATE `npc_text` SET `em0_1`=0,`em0_3`=0, `em0_5`=0 +WHERE `ID`=8612; + +-- -------------------SMARTSCRIPT START--------------- +-- --------------------------------------------------- +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 4542; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 4542); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(4542, 0, 0, 0, 0, 0, 100, 0, 7000, 11000, 30000, 40000, 0, 11, 8282, 0, 0, 0, 0, 0, 5, 20, 0, 0, 0, 0, 0, 0, 0, 'High Inquisitor Fairbanks - In Combat - Cast Curse of Blood'), +(4542, 0, 1, 0, 0, 0, 100, 0, 6000, 11000, 15000, 20000, 0, 11, 15090, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'High Inquisitor Fairbanks - In Combat - Cast Dispel Magic'), +(4542, 0, 2, 0, 0, 0, 100, 0, 0, 3000, 20000, 20000, 0, 11, 11647, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'High Inquisitor Fairbanks - In Combat - Cast Power Word: Shield'), +(4542, 0, 3, 0, 0, 0, 100, 0, 10000, 15000, 20000, 20000, 0, 11, 12039, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'High Inquisitor Fairbanks - In Combat - Cast Heal'), +(4542, 0, 4, 5, 37, 0, 100, 1, 0, 0, 0, 0, 0, 83, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'fairbanks - initializes -Remove UNIT_NPC_FLAG_GOSSIP'), +(4542, 0, 5, 0, 61, 0, 100, 0, 0, 0, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'fairbanks - initializes - set_sheath ‘SHEATH_STATE_MELEE’'), + +-- Do not hold a weapon in your hand when making expressions +(4542, 0, 6, 0, 62, 0, 100, 0, 7282, 0, 0, 0, 0, 80, 454200, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'fairbanks- Gossip_Select 7282 - emto (273 ,1,1)'), +(4542, 0, 7, 0, 62, 0, 100, 0, 7280, 0, 0, 0, 0, 80, 454201, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'fairbanks - Gossip_Select 7280 -emto (1,273,5)'), +(4542, 0, 8, 0, 62, 0, 100, 0, 7278, 0, 0, 0, 0, 80, 454202, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'fairbanks - Gossip_Select 7278 - emto (273,1,1)'), +(4542, 0, 9, 0, 62, 0, 100, 0, 7274, 0, 0, 0, 0, 80, 454203, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'fairbanks - Gossip_Select 7274 - emto (274,1,1)'), +(4542, 0, 10, 0, 62, 0, 100, 0, 7268, 0, 0, 0, 0, 80, 454204, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'fairbanks - Gossip_Select 7268 - emto (274,1,397)'); + +-- -------- TIMED_ACTIONLIST EMOTE +-- fairbanks - Menuid - 7282 emto(273, 1, 1) +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 454200); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(454200, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_UNARMED’'), +(454200, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 5, 273, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Fairbanks - On Script - Play Emote 273'), +(454200, 9, 3, 0, 0, 0, 100, 0, 2200, 2200, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_MELEE’'), +(454200, 9, 4, 0, 0, 0, 100, 0, 700, 700, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Fairbanks - On Script - Play Emote 1'), +(454200, 9, 6, 0, 0, 0, 100, 0, 2400, 2400, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Fairbanks - On Script - Play Emote 1'); + +-- fairbanks - Menuid - 7280 emto(1, 273, 5) +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 454201); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(454201, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 1'), +(454201, 9, 1, 0, 0, 0, 100, 0, 2500, 2500, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_UNARMED’'), +(454201, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 5, 273, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 273'), +(454201, 9, 3, 0, 0, 0, 100, 0, 2400, 2400, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_MELEE’'), +(454201, 9, 5, 0, 0, 0, 100, 0, 700, 700, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_UNARMED’'), +(454201, 9, 6, 0, 0, 0, 100, 0, 200, 200, 0, 0, 0, 5, 5, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Fairbanks - On Script - Play Emote 5'), +(454201, 9, 7, 0, 0, 0, 100, 0, 2200, 2200, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_MELEE’'); + +-- fairbanks - Menuid - 7278 emto(273, 1, 1) +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 454202); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(454202, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath‘SHEATH_STATE_UNARMED’'), +(454202, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 5, 273, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 273'), +(454202, 9, 2, 0, 0, 0, 100, 0, 2400, 2400, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_MELEE’'), +(454202, 9, 3, 0, 0, 0, 100, 0, 700, 700, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 1'), +(454202, 9, 4, 0, 0, 0, 100, 0, 2400, 2400, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 1'); + +-- fairbanks - Menuid - 7274 emto(274, 1, 1) +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 454203); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(454203, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_UNARMED’'), +(454203, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 5, 274, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Fairbanks - On Script - Play Emote 274'), +(454203, 9, 2, 0, 0, 0, 100, 0, 3500, 3500, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_MELEE’'), +(454203, 9, 3, 0, 0, 0, 100, 0, 700, 700, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 1'), +(454203, 9, 4, 0, 0, 0, 100, 0, 2400, 2400, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 1'); + +-- fairbanks - Menuid - 7268(END) emto(274, 1, 397) +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 454204); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(454204, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_UNARMED’'), +(454204, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 5, 274, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 274'), +(454204, 9, 2, 0, 0, 0, 100, 0, 3500, 3500, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_MELEE’'), +(454204, 9, 3, 0, 0, 0, 100, 0, 700, 700, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 1'), +(454204, 9, 4, 0, 0, 0, 100, 0, 2500, 2500, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_UNARMED’'), +(454204, 9, 5, 0, 0, 0, 100, 0, 200, 200, 0, 0, 0, 5, 397, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Play Emote 397'), +(454204, 9, 6, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 40, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ' Fairbanks - On Script - Set Sheath ‘SHEATH_STATE_MELEE’'); + + +-- ----------conditions------------ +-- cmangos and vmangos conditions +DELETE +FROM `conditions` +WHERE (`SourceTypeOrReferenceId` = 15) AND (`SourceGroup` = 7283) AND (`SourceEntry` = 0) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 2) AND (`ConditionTarget` = 0) AND (`ConditionValue1` = 22691) AND (`ConditionValue2` = 1) AND (`ConditionValue3` = 0); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(15, 7283, 0, 0, 0, 2, 0, 22691, 1, 0, 0, 0, 0, '', 'the gossip menu is only displayed if the player inventory "ASHBRINGER"--ASHBRINGER'); + +-- Clean up 100100 - 100116 data +DELETE +FROM `npc_text` +WHERE `ID` BETWEEN 100100 AND 100116; \ No newline at end of file diff --git a/data/sql/updates/db_world/2023_09_17_13.sql b/data/sql/updates/db_world/2023_09_17_13.sql new file mode 100644 index 000000000..e7398b6d9 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_17_13.sql @@ -0,0 +1,20 @@ +-- DB update 2023_09_17_12 -> 2023_09_17_13 +SET @ENTRY := 17433; +UPDATE `creature_template` SET `AIName`='SmartAI' WHERE `entry`=@ENTRY; +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY,0,0,1,20,0,100,0,9567,0,0,0,80,@ENTRY*100,2,0,0,0,0,1,0,0,0,0,0,0,0,'Vindicator Aalesia - On Quest \'Know Thine Enemy\' Finished - Run Script'), +(@ENTRY,0,1,0,61,0,100,0,0,0,0,0,64,1,0,0,0,0,0,7,0,0,0,0,0,0,0,'Vindicator Aalesia - On Quest \'Know Thine Enemy\' Finished - Store Targetlist'); + +-- Actionlist SAI +DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY*100 AND `source_type`=9; +INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES +(@ENTRY*100,9,0,0,0,0,100,0,0,0,0,0,83,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vindicator Aalesia - On Script - Remove Npc Flag Questgiver'), +(@ENTRY*100,9,1,0,0,0,100,0,0,0,0,0,17,69,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vindicator Aalesia - On Script - Set Emote State 69'), +(@ENTRY*100,9,2,0,0,0,100,0,4000,4000,0,0,17,26,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vindicator Aalesia - On Script - Set Emote State 26'), +(@ENTRY*100,9,3,0,0,0,100,0,0,0,0,0,1,0,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Vindicator Aalesia - On Script - Say Line 0'), +(@ENTRY*100,9,4,0,0,0,100,0,4000,4000,0,0,1,1,4000,0,0,0,0,1,0,0,0,0,0,0,0,'Vindicator Aalesia - On Script - Say Line 1'), +(@ENTRY*100,9,5,0,0,0,100,0,4000,4000,0,0,1,2,2000,0,0,0,0,12,1,0,0,0,0,0,0,'Vindicator Aalesia - On Script - Say Line 2'), +(@ENTRY*100,9,6,0,0,0,100,0,2000,2000,0,0,82,2,0,0,0,0,0,1,0,0,0,0,0,0,0,'Vindicator Aalesia - On Script - Add Npc Flag Questgiver'); + +UPDATE `creature_text` SET `Text`='No, this can\'t be... It says this creature willingly became a servant of the Legion. He transforms into a satyr and receives the Legion\'s "blessing."' WHERE `CreatureID`=@ENTRY AND `GroupID` = 2; diff --git a/data/sql/updates/db_world/2023_09_18_00.sql b/data/sql/updates/db_world/2023_09_18_00.sql new file mode 100644 index 000000000..b3a1a99ba --- /dev/null +++ b/data/sql/updates/db_world/2023_09_18_00.sql @@ -0,0 +1,51 @@ +-- DB update 2023_09_17_13 -> 2023_09_18_00 +-- Hearts of the Pure Rp ------------- + +-- The orientation of the initial NPC This is roughly towards the coordinates that need to be sniffed +-- UPDATE `creature` SET `orientation`=4.41048 WHERE `guid`=41833; + +-- Use SmatAI +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 5693; + +-- Update emoticons +UPDATE `creature_text` SET `Emote`=25 WHERE `CreatureID`=5693 AND `GroupID`=0 AND `ID`=0;-- EMOTE_ONESHOT_POINT +UPDATE `creature_text` SET `Emote`=1 WHERE `CreatureID`=5693 AND `GroupID`=1 AND `ID`=0;-- EMOTE_ONESHOT_TALK +UPDATE `creature_text` SET `Emote`=25 WHERE `CreatureID`=5693 AND `GroupID`=2 AND `ID`=0;-- EMOTE_ONESHOT_POINT +UPDATE `creature_text` SET `Emote`=1 WHERE `CreatureID`=5693 AND `GroupID`=3 AND `ID`=0;-- EMOTE_ONESHOT_TALK +UPDATE `creature_text` SET `Emote`=11 WHERE `CreatureID`=5693 AND `GroupID`=4 AND `ID`=0;-- EMOTE_ONESHOT_LAUGH + +-- Update unit_flags Make summoned NPCs unattackable and unselectable +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 5692; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 5692); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(5692, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 18, 256|512|33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Comar Villard Projection - Just_Summoned - set_unit_flag'); + +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 5691; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 5691); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(5691, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 0, 18, 256|512|33554432, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Comar Villard Projection - Just_Summoned - set_unit_flag'); + +-- SmatAI Start------------------------------------- +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 5693; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 5693); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(5693, 0, 0, 0, 19, 0, 100, 0, 1476, 0, 0, 0, 0, 80, 569300, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Godrick Farsan - On Quest \'Hearts of the Pure\' Taken - Run Script'), +(5693, 0, 1, 0, 20, 0, 100, 0, 1472, 0, 0, 0, 0, 5, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Godrick Farsan - reward quest emote'); + +-- Timed events +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 569300); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(569300, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 48, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Set Active'), +(569300, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 83, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Remove Quest Giver npc flags from self.'), +(569300, 9, 2, 0, 0, 0, 100, 0, 2000, 2000, 0, 0, 0, 12, 5691, 3, 28000, 0, 0, 0, 8, 0, 0, 0, 0, 1781.16, 61.13, -61.4065, 4.869, 'Hearts of the Pure - Godrick Farsan - Spawn NPC'), +(569300, 9, 3, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 12, 5692, 3, 28000, 0, 0, 0, 8, 0, 0, 0, 0, 1785.77, 60.27, -61.4065, 3.961, 'Hearts of the Pure - Godrick Farsan - Spawn NPC'), +(569300, 9, 4, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 19, 5691, 10, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Face NPC'), +(569300, 9, 5, 0, 0, 0, 100, 0, 1500, 1500, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Talk'), +(569300, 9, 6, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Talk'), +(569300, 9, 7, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 19, 5692, 5, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Face NPC'), +(569300, 9, 8, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Talk'), +(569300, 9, 9, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Talk'), +(569300, 9, 10, 0, 0, 0, 100, 0, 5000, 5000, 0, 0, 0, 66, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Face Player'), +(569300, 9, 11, 0, 0, 0, 100, 0, 1000, 1000, 0, 0, 0, 1, 4, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Talk'), +(569300, 9, 12, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Remove Active'), +(569300, 9, 13, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 82, 2, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Hearts of the Pure - Godrick Farsan - Add NPC Flags'); diff --git a/data/sql/updates/db_world/2023_09_18_01.sql b/data/sql/updates/db_world/2023_09_18_01.sql new file mode 100644 index 000000000..3de84f595 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_18_01.sql @@ -0,0 +1,22 @@ +-- DB update 2023_09_18_00 -> 2023_09_18_01 +-- +-- Pathing for Kalecgos Entry: 24844 'TDB FORMAT' +SET @NPC := 24844; +SET @PATH := @NPC * 10; +DELETE FROM `waypoint_data` WHERE `id`=@PATH; +INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`orientation`,`delay`,`move_type`,`action`,`action_chance`,`wpguid`) VALUES +(@PATH,1,163.9735,-398.0906,2.083333,0,0,0,0,100,0), -- 16:16:43 +(@PATH,2,164.3802,-397.1771,2.083333,0,0,0,0,100,0), -- 16:16:43 +(@PATH,3,162.7923,-386.1964,15.67094,0,0,0,0,100,0), -- 16:16:43 +(@PATH,4,151.5555,-345.349,5.92646,0,0,0,0,100,0), -- 16:16:43 +(@PATH,5,162.2416,-299.8032,-5.436685,0,0,0,0,100,0), -- 16:16:43 +(@PATH,6,199.7482,-272.3315,-7.186677,0,0,0,0,100,0), -- 16:16:43 +(@PATH,7,199.7482,-272.3315,-7.186677,0,0,0,0,100,0), -- 16:16:43 +(@PATH,8,199.7482,-272.3315,-7.186677,0.06981317,0,0,0,100,0); -- 16:16:54 +-- 0x1C2F2C4920184300001F1D000038BF6E .go 163.9735 -398.0906 2.083333 + +DELETE FROM `event_scripts` WHERE `id` = 16547; +DELETE FROM `smart_scripts` WHERE `entryorguid` = 24844; + +UPDATE `creature_template` SET `AIName` = '', `ScriptName` = 'npc_kalecgos' WHERE `entry` = 24844; +UPDATE `creature_template` SET `AIName` = '' WHERE `entry` = 24848; diff --git a/data/sql/updates/db_world/2023_09_18_02.sql b/data/sql/updates/db_world/2023_09_18_02.sql new file mode 100644 index 000000000..e3a85dcbe --- /dev/null +++ b/data/sql/updates/db_world/2023_09_18_02.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_18_01 -> 2023_09_18_02 +-- +UPDATE `smart_scripts` SET `event_param5` = 1, `action_param3` = 1 WHERE `source_type` = 0 AND `entryorguid` IN (28994,29523,28989,28721,28725,28726); diff --git a/data/sql/updates/db_world/2023_09_18_03.sql b/data/sql/updates/db_world/2023_09_18_03.sql new file mode 100644 index 000000000..f2e780a13 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_18_03.sql @@ -0,0 +1,5 @@ +-- DB update 2023_09_18_02 -> 2023_09_18_03 +-- +DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` = 29967); +INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES +(13, 1, 29967, 0, 0, 31, 0, 3, 17176, 0, 0, 0, 0, '', 'Shade of Aran Blink (29967) can only target Shade of Aran Teleport Center (17176)'); diff --git a/data/sql/updates/db_world/2023_09_18_04.sql b/data/sql/updates/db_world/2023_09_18_04.sql new file mode 100644 index 000000000..eed902135 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_18_04.sql @@ -0,0 +1,15 @@ +-- DB update 2023_09_18_03 -> 2023_09_18_04 +-- +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 17265; + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 17265) AND (`source_type` = 0) AND (`id` IN (0)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17265, 0, 0, 0, 60, 0, 100, 0, 2400, 8000, 2400, 8000, 0, 11, 30184, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Fiendish Portal - On Update - Cast \'Summon Fiendish Imp\''); + +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 17267; + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 17267) AND (`source_type` = 0) AND (`id` IN (0)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17267, 0, 0, 0, 0, 0, 100, 0, 2000, 2000, 2000, 2200, 0, 11, 30050, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Fiendish Imp - In Combat - Cast \'Firebolt\''); + +UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask`|1 WHERE `entry` = 17229; diff --git a/data/sql/updates/db_world/2023_09_19_00.sql b/data/sql/updates/db_world/2023_09_19_00.sql new file mode 100644 index 000000000..b7f6347c4 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_19_00.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_18_04 -> 2023_09_19_00 +-- +UPDATE `creature_template` SET `flags_extra` = `flags_extra`|128 WHERE `entry` IN (17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17260, 17459); diff --git a/data/sql/updates/db_world/2023_09_19_01.sql b/data/sql/updates/db_world/2023_09_19_01.sql new file mode 100644 index 000000000..35de258e1 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_19_01.sql @@ -0,0 +1,3 @@ +-- DB update 2023_09_19_00 -> 2023_09_19_01 +-- +UPDATE `creature_template` SET `mechanic_immune_mask` = `mechanic_immune_mask`|16 WHERE `entry` = 17543; diff --git a/data/sql/updates/db_world/2023_09_20_00.sql b/data/sql/updates/db_world/2023_09_20_00.sql new file mode 100644 index 000000000..4c4d27924 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_20_00.sql @@ -0,0 +1,7 @@ +-- DB update 2023_09_19_01 -> 2023_09_20_00 +-- +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = 17167; + +DELETE FROM `smart_scripts` WHERE (`entryorguid` = 17167) AND (`source_type` = 0) AND (`id` IN (0)); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(17167, 0, 0, 0, 0, 0, 100, 0, 2000, 2000, 2000, 2000, 2000, 11, 31012, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Conjured Elemental - In Combat - Cast \'Water Bolt\''); diff --git a/data/sql/updates/db_world/2023_09_20_01.sql b/data/sql/updates/db_world/2023_09_20_01.sql new file mode 100644 index 000000000..a805c570f --- /dev/null +++ b/data/sql/updates/db_world/2023_09_20_01.sql @@ -0,0 +1,46 @@ +-- DB update 2023_09_20_00 -> 2023_09_20_01 +UPDATE `quest_poi` SET `WorldMapAreaId` = 24 WHERE (`QuestID` = 7321) AND (`id` IN (0,1,2,3)); +UPDATE `quest_poi` SET `id` = 4, `ObjectiveIndex` = -1 WHERE (`QuestID` = 7321) AND (`id` = 0); +UPDATE `quest_poi` SET `id` = 5, `Flags` = 3 WHERE (`QuestID` = 7321) AND (`id` = 1); +UPDATE `quest_poi` SET `id` = 6, `Flags` = 3 WHERE (`QuestID` = 7321) AND (`id` = 2); +UPDATE `quest_poi` SET `id` = 7, `ObjectiveIndex` = 4, `Flags` = 3 WHERE (`QuestID` = 7321) AND (`id` = 3); +UPDATE `quest_poi_points` SET `Idx1` = 4, `Idx2` = 0, `X` = -852, `Y` = -594 WHERE (`QuestID` = 7321) AND (`Idx1` = 0) AND (`Idx2` = 0); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 0, `X` = -662, `Y` = -755 WHERE (`QuestID` = 7321) AND (`Idx1` = 0) AND (`Idx2` = 1); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 1, `X` = -646, `Y` = -742 WHERE (`QuestID` = 7321) AND (`Idx1` = 0) AND (`Idx2` = 2); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 2, `X` = -657, `Y` = -731 WHERE (`QuestID` = 7321) AND (`Idx1` = 0) AND (`Idx2` = 3); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 3, `X` = -672, `Y` = -723 WHERE (`QuestID` = 7321) AND (`Idx1` = 0) AND (`Idx2` = 4); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 4, `X` = -688, `Y` = -718 WHERE (`QuestID` = 7321) AND (`Idx1` = 0) AND (`Idx2` = 5); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 5, `X` = -714, `Y` = -710 WHERE (`QuestID` = 7321) AND (`Idx1` = 1) AND (`Idx2` = 0); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 6, `X` = -901, `Y` = -658 WHERE (`QuestID` = 7321) AND (`Idx1` = 1) AND (`Idx2` = 1); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 7, `X` = -919, `Y` = -668 WHERE (`QuestID` = 7321) AND (`Idx1` = 1) AND (`Idx2` = 2); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 8, `X` = -917, `Y` = -676 WHERE (`QuestID` = 7321) AND (`Idx1` = 2) AND (`Idx2` = 0); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 9, `X` = -904, `Y` = -689 WHERE (`QuestID` = 7321) AND (`Idx1` = 2) AND (`Idx2` = 1); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 10, `X` = -875, `Y` = -716 WHERE (`QuestID` = 7321) AND (`Idx1` = 2) AND (`Idx2` = 2); +UPDATE `quest_poi_points` SET `Idx1` = 5, `Idx2` = 11, `X` = -854, `Y` = -726 WHERE (`QuestID` = 7321) AND (`Idx1` = 2) AND (`Idx2` = 3); +UPDATE `quest_poi_points` SET `Idx1` = 6, `Idx2` = 0, `X` = -480, `Y` = -989 WHERE (`QuestID` = 7321) AND (`Idx1` = 2) AND (`Idx2` = 4); +UPDATE `quest_poi_points` SET `Idx1` = 6, `Idx2` = 1, `X` = -475, `Y` = -963 WHERE (`QuestID` = 7321) AND (`Idx1` = 2) AND (`Idx2` = 5); +UPDATE `quest_poi_points` SET `Idx1` = 6, `Idx2` = 2, `X` = -480, `Y` = -936 WHERE (`QuestID` = 7321) AND (`Idx1` = 2) AND (`Idx2` = 6); +UPDATE `quest_poi_points` SET `Idx1` = 6, `Idx2` = 3, `X` = -543, `Y` = -781 WHERE (`QuestID` = 7321) AND (`Idx1` = 2) AND (`Idx2` = 7); +UPDATE `quest_poi_points` SET `Idx1` = 6, `Idx2` = 4, `X` = -557, `Y` = -763 WHERE (`QuestID` = 7321) AND (`Idx1` = 3) AND (`Idx2` = 0); +DELETE FROM `quest_poi_points` WHERE `QuestID` = 7321 AND `Idx1` = 6 AND `Idx2` IN (5,6,7,8,9,10,11); +DELETE FROM `quest_poi_points` WHERE `QuestID` = 7321 AND `Idx1` = 7 AND `Idx2` IN (0,1,2,3,4,5,6,7,8,9,10,11); +INSERT INTO `quest_poi_points` (`QuestID`, `Idx1`, `Idx2`, `X`, `Y`, `VerifiedBuild`) VALUES +(7321, 6, 5, -575, -742, 0), +(7321, 6, 6, -596, -747, 0), +(7321, 6, 7, -614, -784, 0), +(7321, 6, 8, -609, -797, 0), +(7321, 6, 9, -549, -926, 0), +(7321, 6, 10, -528, -965, 0), +(7321, 6, 11, -512, -984, 0), +(7321, 7, 0, -238, -1121, 0), +(7321, 7, 1, -254, -1107, 0), +(7321, 7, 2, -380, -1010, 0), +(7321, 7, 3, -415, -986, 0), +(7321, 7, 4, -428, -981, 0), +(7321, 7, 5, -438, -1021, 0), +(7321, 7, 6, -423, -1042, 0), +(7321, 7, 7, -373, -1084, 0), +(7321, 7, 8, -349, -1099, 0), +(7321, 7, 9, -296, -1128, 0), +(7321, 7, 10, -286, -1131, 0), +(7321, 7, 11, -249, -1142, 0); diff --git a/data/sql/updates/db_world/2023_09_20_02.sql b/data/sql/updates/db_world/2023_09_20_02.sql new file mode 100644 index 000000000..5c6ad932a --- /dev/null +++ b/data/sql/updates/db_world/2023_09_20_02.sql @@ -0,0 +1,68 @@ +-- DB update 2023_09_20_01 -> 2023_09_20_02 + + -- Sir Wendell's Grave smart ai +SET @ENTRY := 194537; +DELETE FROM `smart_scripts` WHERE `source_type` = 1 AND `entryOrGuid` = @ENTRY; +UPDATE `gameobject_template` SET `AIName` = 'SmartGameObjectAI' WHERE `entry` = @ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 1, 0, 0, 71, 0, 100, 0, 21077, 0, 0, 0, 12, 33439, 3, 19000, 0, 0, 0, 8, 0, 0, 0, 8461.727, 468.7472, 596.2335, 4.729842, 'Sir Wendell\'s Grave - On Event 21077 Inform - Summon Creature \'Sir Wendell Balfour\''); + + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 194537 AND `SourceId` = 1; + + -- Sir Wendell Balfour smart ai +SET @ENTRY := 33439; +DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY; +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 11, 51195, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Sir Wendell Balfour - On Just Summoned - Cast \'Cosmetic - Low Poly Fire\''), +(@ENTRY, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 75, 29266, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Sir Wendell Balfour - On Just Summoned - Add Aura \'Permanent Feign Death\''), +(@ENTRY, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 67, 1, 200, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 'Sir Wendell Balfour - On Just Summoned - Create Timed Event'), +(@ENTRY, 0, 3, 0, 59, 0, 100, 0, 1, 0, 0, 0, 11, 10389, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Sir Wendell Balfour - On Timed Event 1 Triggered - Cast \'Spawn Smoke\''); + + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 33439 AND `SourceId` = 0; + + -- Lorien's Grave smart ai +SET @ENTRY := 194539; +DELETE FROM `smart_scripts` WHERE `source_type` = 1 AND `entryOrGuid` = @ENTRY; +UPDATE `gameobject_template` SET `AIName` = 'SmartGameObjectAI' WHERE `entry` = @ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 1, 0, 0, 71, 0, 100, 0, 21075, 0, 0, 0, 12, 33455, 3, 19000, 0, 0, 0, 8, 0, 0, 0, 8441.864, 452.88184, 596.1657, 1.850049, 'Lorien\'s Grave - On Event 21075 Inform - Summon Creature \'Lorien Sunblaze\''); + + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 194539 AND `SourceId` = 1; + + -- Lorien Sunblaze smart ai +SET @ENTRY := 33455; +DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY; +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 0, 0, 1, 54, 0, 100, 0, 0, 0, 0, 0, 11, 41290, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Lorien Sunblaze - On Just Summoned - Cast \'Disease Cloud\''), +(@ENTRY, 0, 1, 2, 61, 0, 100, 0, 0, 0, 0, 0, 11, 29266, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Lorien Sunblaze - On Just Summoned - Cast \'Permanent Feign Death\''), +(@ENTRY, 0, 2, 0, 61, 0, 100, 0, 0, 0, 0, 0, 11, 61894, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Lorien Sunblaze - On Just Summoned - Cast \'Spirit Particles (green - Base)\''); + + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 33455 AND `SourceId` = 0; + + -- Connall's Grave smart ai +SET @ENTRY := 194538; +DELETE FROM `smart_scripts` WHERE `source_type` = 1 AND `entryOrGuid` = @ENTRY; +UPDATE `gameobject_template` SET `AIName` = 'SmartGameObjectAI' WHERE `entry` = @ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 1, 0, 0, 71, 0, 100, 0, 21076, 0, 0, 0, 12, 33457, 3, 19000, 0, 0, 0, 8, 0, 0, 0, 8471.436, 452.21744, 596.1551, 4.7822022, 'Connall\'s Grave - On Event 21076 Inform - Summon Creature \'Conall Irongrip\''); + + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 194538 AND `SourceId` = 1; + + -- Conall Irongrip smart ai +SET @ENTRY := 33457; +DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY; +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 0, 0, 0, 54, 0, 100, 0, 0, 0, 0, 0, 11, 29266, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 'Conall Irongrip - On Just Summoned - Cast \'Permanent Feign Death\''); + + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 33457 AND `SourceId` = 0; + + diff --git a/data/sql/updates/db_world/2023_09_20_03.sql b/data/sql/updates/db_world/2023_09_20_03.sql new file mode 100644 index 000000000..7c673d65c --- /dev/null +++ b/data/sql/updates/db_world/2023_09_20_03.sql @@ -0,0 +1,2 @@ +-- DB update 2023_09_20_02 -> 2023_09_20_03 +UPDATE `quest_offer_reward` SET `RewardText` = 'You brought the picks. Great! I\'ll get these to my mining students. I\'m sure they\'re eager to use them on the ore deposits of Loch Modan.$B$BThank you for your help, $N. I am in your debt, but I hope this money will at least cover your travel costs.' WHERE (`ID` = 6392); diff --git a/data/sql/updates/db_world/2023_09_20_04.sql b/data/sql/updates/db_world/2023_09_20_04.sql new file mode 100644 index 000000000..608fa777d --- /dev/null +++ b/data/sql/updates/db_world/2023_09_20_04.sql @@ -0,0 +1,14 @@ +-- DB update 2023_09_20_03 -> 2023_09_20_04 + +DELETE FROM `creature_text` WHERE `CreatureID` = 16833; +INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES +(16833, 0, 0, 'No! Not... Sedai! The orcs must pay!', 12, 0, 100, 0, 0, 0, 13997, 0, 'Makuru // Makuru'); + + -- Anchorite Obadei smart ai +SET @ENTRY := 16834; +DELETE FROM `smart_scripts` WHERE `source_type` = 0 AND `entryOrGuid` = @ENTRY; +UPDATE `creature_template` SET `AIName` = 'SmartAI', `ScriptName` = '' WHERE `entry` = @ENTRY; +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(@ENTRY, 0, 0, 0, 20, 0, 100, 0, 9423, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 10, 57906, 16833, 0, 0, 0, 0, 0, 'Anchorite Obadei - On Quest \'Return to Obadei\' Finished - Say Line 0'); + +DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId` = 22 AND `SourceEntry` = 16834 AND `SourceId` = 0; diff --git a/data/sql/updates/db_world/2023_09_20_05.sql b/data/sql/updates/db_world/2023_09_20_05.sql new file mode 100644 index 000000000..234af3e23 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_20_05.sql @@ -0,0 +1,7 @@ +-- DB update 2023_09_20_04 -> 2023_09_20_05 +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 21246; + +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 21246); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(21246, 0, 0, 0, 0, 0, 100, 0, 4850, 19400, 10900, 14500, 0, 0, 11, 38461, 0, 0, 0, 0, 0, 5, 25, 0, 0, 0, 0, 0, 0, 0, 'Serpentshrine Sporebat - In Combat - Cast Sonic Charge'), +(21246, 0, 1, 0, 0, 0, 100, 0, 0, 0, 24000, 36800, 0, 0, 11, 38471, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Serpentshrine Sporebat - In Combat - Cast \'Spore Burst\''); diff --git a/data/sql/updates/db_world/2023_09_20_06.sql b/data/sql/updates/db_world/2023_09_20_06.sql new file mode 100644 index 000000000..da7ec5487 --- /dev/null +++ b/data/sql/updates/db_world/2023_09_20_06.sql @@ -0,0 +1,33 @@ +-- DB update 2023_09_20_05 -> 2023_09_20_06 +-- Summoned Succubus +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 5677; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 5677); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(5677, 0, 0, 0, 54, 0, 100, 513, 0, 0, 0, 0, 0, 0, 80, 567700, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Succubus - On Just Summoned - Run Script (No Repeat)'), +(5677, 0, 1, 0, 0, 0, 100, 0, 3000, 5000, 7000, 11000, 0, 0, 11, 16583, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Succubus - In Combat - Cast \'Shadow Shock\''), +(5677, 0, 2, 0, 21, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Succubus - On Reached Home - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 567700); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(567700, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Succubus - Actionlist - Set Faction 35'), +(567700, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 7741, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Succubus - Actionlist - Cast \'Summoned Demon\''), +(567700, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Succubus - Actionlist - Say Line 0'), +(567700, 9, 3, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Succubus - Actionlist - Set Faction 14'), +(567700, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Succubus - Actionlist - Start Attacking'); + +-- Summoned Voidwalker +UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 5676; +DELETE FROM `smart_scripts` WHERE (`source_type` = 0 AND `entryorguid` = 5676); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(5676, 0, 0, 0, 54, 0, 100, 1, 0, 0, 0, 0, 0, 0, 80, 567600, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - On Just Summoned - Run Script (No Repeat)'), +(5676, 0, 1, 0, 2, 0, 100, 1, 0, 30, 0, 0, 0, 0, 11, 7750, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - Between 0-30% Health - Cast \'Consuming Rage\' (No Repeat)'), +(5676, 0, 2, 0, 4, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - On Aggro - Say Line 1'), +(5676, 0, 3, 0, 21, 0, 100, 0, 0, 0, 0, 0, 0, 0, 41, 1000, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - On Reached Home - Despawn In 1000 ms'); + +DELETE FROM `smart_scripts` WHERE (`source_type` = 9 AND `entryorguid` = 567600); +INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES +(567600, 9, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 2, 35, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - Actionlist - Set Faction 35'), +(567600, 9, 1, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 11, 7741, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - Actionlist - Cast \'Summoned Demon\''), +(567600, 9, 2, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - Actionlist - Say Line 0'), +(567600, 9, 3, 0, 0, 0, 100, 0, 3000, 3000, 0, 0, 0, 0, 2, 14, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - Actionlist - Set Faction 14'), +(567600, 9, 4, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 'Summoned Voidwalker - Actionlist - Start Attacking'); diff --git a/data/sql/updates/db_world/2023_09_20_07.sql b/data/sql/updates/db_world/2023_09_20_07.sql new file mode 100644 index 000000000..b2a6df41e --- /dev/null +++ b/data/sql/updates/db_world/2023_09_20_07.sql @@ -0,0 +1,72 @@ +-- DB update 2023_09_20_06 -> 2023_09_20_07 +SET @Agility := 3; +SET @Strength := 4; +SET @Intellect := 5; +SET @Spirit := 6; +SET @Stamina := 7; +SET @Crit := 32; +SET @Resilience := 35; +SET @AttackPower := 38; +SET @MP5 := 43; +Set @SpellPower := 45; + +-- General's Ornamented Bracers 32983 113 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 22, `stat_type2` = @Intellect, `stat_value2` = 12, `stat_type3` = @SpellPower, `stat_value3` = 20, `stat_type4` = @Crit, `stat_value4` = 14, `stat_type5` = @Resilience, `stat_value5` = 13, `armor` = 624, `AllowableClass` = 3 WHERE `entry` = 32983; +-- Marshal's Ornamented Bracers 32986 113 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 22, `stat_type2` = @Intellect, `stat_value2` = 12, `stat_type3` = @SpellPower, `stat_value3` = 20, `stat_type4` = @Crit, `stat_value4` = 14, `stat_type5` = @Resilience, `stat_value5` = 13, `armor` = 624, `AllowableClass` = 3 WHERE `entry` = 32986; +-- General's Ringmail Bracers 32991 113 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 22, `stat_type2` = @Intellect, `stat_value2` = 12, `stat_type3` = @SpellPower, `stat_value3` = 20, `stat_type4` = @Crit, `stat_value4` = 14, `stat_type5` = @Resilience, `stat_value5` = 13, `armor` = 349, `AllowableClass` = 68 WHERE `entry` = 32991; +-- Marshal's Ringmail Bracers 32994 113 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 22, `stat_type2` = @Intellect, `stat_value2` = 12, `stat_type3` = @SpellPower, `stat_value3` = 20, `stat_type4` = @Crit, `stat_value4` = 14, `stat_type5` = @Resilience, `stat_value5` = 13, `armor` = 349, `AllowableClass` = 68 WHERE `entry` = 32994; +-- General's Mooncloth Cuffs 32973 113 +UPDATE `item_template` SET `StatsCount` = 4, `stat_type1` = @Stamina, `stat_value1` = 25, `stat_type2` = @Intellect, `stat_value2` = 14, `stat_type3` = @SpellPower, `stat_value3` = 22, `stat_type4` = @Resilience, `stat_value4` = 14, `armor` = 84, `AllowableClass` = 400 WHERE `entry` = 32973; +-- Marshal's Mooncloth Cuffs 32977 113 +UPDATE `item_template` SET `StatsCount` = 4, `stat_type1` = @Stamina, `stat_value1` = 25, `stat_type2` = @Intellect, `stat_value2` = 14, `stat_type3` = @SpellPower, `stat_value3` = 22, `stat_type4` = @Resilience, `stat_value4` = 14, `armor` = 84, `AllowableClass` = 400 WHERE `entry` = 32977; +-- General's Plate Greaves Tier 2 30491 123 +UPDATE `item_template` SET `StatsCount` = 4, `stat_type1` = @Strength, `stat_value1` = 27, `stat_type2` = @Stamina, `stat_value2` = 40, `stat_type3` = @Crit, `stat_value3` = 27, `stat_type4` = @Resilience, `stat_value4` = 27, `armor` = 1063, `AllowableClass` = 3 WHERE `entry` = 30491; +-- General's Ornamented Belt 32982 123 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 34, `stat_type2` = @Intellect, `stat_value2` = 23, `stat_type3` = @SpellPower, `stat_value3` = 28, `stat_type4` = @Crit, `stat_value4` = 23, `stat_type5` = @Resilience, `stat_value5` = 24, `armor` = 870, `AllowableClass` = 3 WHERE `entry` = 32982; +-- General's Ornamented Greaves 32984 123 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 34, `stat_type2` = @Intellect, `stat_value2` = 23, `stat_type3` = @SpellPower, `stat_value3` = 28, `stat_type4` = @Crit, `stat_value4` = 23, `stat_type5` = @Resilience, `stat_value5` = 24, `armor` = 1063, `AllowableClass` = 3 WHERE `entry` = 32984; +-- Marshal's Ornamented Belt 32985 123 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 34, `stat_type2` = @Intellect, `stat_value2` = 23, `stat_type3` = @SpellPower, `stat_value3` = 28, `stat_type4` = @Crit, `stat_value4` = 23, `stat_type5` = @Resilience, `stat_value5` = 24, `armor` = 870, `AllowableClass` = 3 WHERE `entry` = 32985; +-- Marshal's Ornamented Greaves 32987 123 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 34, `stat_type2` = @Intellect, `stat_value2` = 23, `stat_type3` = @SpellPower, `stat_value3` = 28, `stat_type4` = @Crit, `stat_value4` = 23, `stat_type5` = @Resilience, `stat_value5` = 24, `armor` = 1063, `AllowableClass` = 3 WHERE `entry` = 32987; +-- General's Ringmail Girdle 32992 123 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 34, `stat_type2` = @Intellect, `stat_value2` = 23, `stat_type3` = @SpellPower, `stat_value3` = 28, `stat_type4` = @Crit, `stat_value4` = 24, `stat_type5` = @Resilience, `stat_value5` = 23, `armor` = 487, `AllowableClass` = 68 WHERE `entry` = 32992; +-- General's Ringmail Sabatons 32993 123 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 34, `stat_type2` = @Intellect, `stat_value2` = 23, `stat_type3` = @SpellPower, `stat_value3` = 28, `stat_type4` = @Crit, `stat_value4` = 24, `stat_type5` = @Resilience, `stat_value5` = 23, `armor` = 595, `AllowableClass` = 68 WHERE `entry` = 32993; +-- Marshal's Ringmail Girdle 32995 123 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 34, `stat_type2` = @Intellect, `stat_value2` = 23, `stat_type3` = @SpellPower, `stat_value3` = 28, `stat_type4` = @Crit, `stat_value4` = 24, `stat_type5` = @Resilience, `stat_value5` = 23, `armor` = 487, `AllowableClass` = 68 WHERE `entry` = 32995; +-- Marshal's Ringmail Sabatons 32996 123 +UPDATE `item_template` SET `StatsCount` = 5, `stat_type1` = @Stamina, `stat_value1` = 34, `stat_type2` = @Intellect, `stat_value2` = 23, `stat_type3` = @SpellPower, `stat_value3` = 28, `stat_type4` = @Crit, `stat_value4` = 24, `stat_type5` = @Resilience, `stat_value5` = 23, `armor` = 595, `AllowableClass` = 68 WHERE `entry` = 32996; +-- General's Mooncloth Belt 32974 123 +UPDATE `item_template` SET `StatsCount` = 4, `stat_type1` = @Stamina, `stat_value1` = 39, `stat_type2` = @Intellect, `stat_value2` = 27, `stat_type3` = @SpellPower, `stat_value3` = 32, `stat_type4` = @Resilience, `stat_value4` = 27, `armor` = 117, `AllowableClass` = 400 WHERE `entry` = 32974; +-- General's Mooncloth Slippers 32975 123 +UPDATE `item_template` SET `StatsCount` = 4, `stat_type1` = @Stamina, `stat_value1` = 40, `stat_type2` = @Intellect, `stat_value2` = 27, `stat_type3` = @SpellPower, `stat_value3` = 32, `stat_type4` = @Resilience, `stat_value4` = 27, `armor` = 142, `AllowableClass` = 400 WHERE `entry` = 32975; +-- Marshal's Mooncloth Belt 32976 123 +UPDATE `item_template` SET `StatsCount` = 4, `stat_type1` = @Stamina, `stat_value1` = 39, `stat_type2` = @Intellect, `stat_value2` = 27, `stat_type3` = @SpellPower, `stat_value3` = 32, `stat_type4` = @Resilience, `stat_value4` = 27, `armor` = 117, `AllowableClass` = 400 WHERE `entry` = 32976; +-- Marshal's Mooncloth Slippers 32978 123 +UPDATE `item_template` SET `StatsCount` = 4, `stat_type1` = @Stamina, `stat_value1` = 40, `stat_type2` = @Intellect, `stat_value2` = 27, `stat_type3` = @SpellPower, `stat_value3` = 32, `stat_type4` = @Resilience, `stat_value4` = 27, `armor` = 142, `AllowableClass` = 400 WHERE `entry` = 32978; + +UPDATE `item_template` SET `Flags` = `Flags`|32768, `FlagsExtra` = `FlagsExtra`&~8192, `BuyPrice` = 0, `SellPrice` = 0, `AllowableRace` = 32767, `VerifiedBuild` = 0 WHERE `entry` IN ( +32983, -- General's Ornamented Bracers +32986, -- Marshal's Ornamented Bracers +32991, -- General's Ringmail Bracers +32994, -- Marshal's Ringmail Bracers +32973, -- General's Mooncloth Cuffs +32977, -- Marshal's Mooncloth Cuffs +30491, -- General's Plate Greaves Tier 2 +32982, -- General's Ornamented Belt +32984, -- General's Ornamented Greaves +32985, -- Marshal's Ornamented Belt +32987, -- Marshal's Ornamented Greaves +32992, -- General's Ringmail Girdle +32993, -- General's Ringmail Sabatons +32995, -- Marshal's Ringmail Girdle +32996, -- Marshal's Ringmail Sabatons +32974, -- General's Mooncloth Belt +32975, -- General's Mooncloth Slippers +32976, -- Marshal's Mooncloth Belt +32978 -- Marshal's Mooncloth Slippers +); diff --git a/deps/deno/bin/.gitignore b/deps/deno/bin/.gitignore deleted file mode 100644 index 6f4f877a9..000000000 --- a/deps/deno/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -deno* diff --git a/deps/deno/bin/README.md b/deps/deno/bin/README.md deleted file mode 100644 index 563b3e2b8..000000000 --- a/deps/deno/bin/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# DENO - -This folder is empty and needed to host the deno binaries automatically downloaded by the ./acore.sh dahsboard \ No newline at end of file diff --git a/src/cmake/macros/FindOpenSSL.cmake b/src/cmake/macros/FindOpenSSL.cmake index f40a591f9..fb1651e6d 100644 --- a/src/cmake/macros/FindOpenSSL.cmake +++ b/src/cmake/macros/FindOpenSSL.cmake @@ -575,7 +575,7 @@ if(OPENSSL_FOUND) include(EnsureVersion) ENSURE_VERSION("${OPENSSL_EXPECTED_VERSION}" "${OPENSSL_VERSION}" OPENSSL_VERSION_OK) if(NOT OPENSSL_VERSION_OK) - message(FATAL_ERROR "TrinityCore needs OpenSSL version ${OPENSSL_EXPECTED_VERSION} but found too new version ${OPENSSL_VERSION}. TrinityCore needs OpenSSL 1.0.x or 1.1.x to work properly. If you still have problems please install OpenSSL 1.0.x if you still have problems search on forum for TCE00022") + message(FATAL_ERROR "AzerothCore needs OpenSSL version ${OPENSSL_EXPECTED_VERSION} but found too new version ${OPENSSL_VERSION}. AzerothCore needs OpenSSL 1.0.x or 1.1.x to work properly. If you still have problems please install OpenSSL 1.0.x if you still have problems search on forum for TCE00022") endif() if(NOT TARGET OpenSSL::Crypto AND diff --git a/src/common/Collision/Maps/MapDefines.h b/src/common/Collision/Maps/MapDefines.h index 94f926c8c..6772a20c7 100644 --- a/src/common/Collision/Maps/MapDefines.h +++ b/src/common/Collision/Maps/MapDefines.h @@ -1,6 +1,18 @@ /* - * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 - * Copyright (C) 2008+ TrinityCore + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . */ #ifndef _MAPDEFINES_H diff --git a/src/common/Common.h b/src/common/Common.h index 1811d65e6..5f1267199 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -41,13 +41,6 @@ #include #endif -#if AC_COMPILER == AC_COMPILER_MICROSOFT -#define atoll _atoi64 -#define llabs _abs64 -#else -#define stricmp strcasecmp -#endif - #define STRINGIZE(a) #a #define MAX_NETCLIENT_PACKET_SIZE (32767 - 1) // Client hardcap: int16 with trailing zero space otherwise crash on memory free diff --git a/src/common/Configuration/Config.cpp b/src/common/Configuration/Config.cpp index 5e4c3ea41..742777b18 100644 --- a/src/common/Configuration/Config.cpp +++ b/src/common/Configuration/Config.cpp @@ -32,6 +32,7 @@ namespace std::vector _additonalFiles; std::vector _args; std::unordered_map _configOptions; + std::unordered_map _envVarCache; std::mutex _configLock; // Check system configs like *server.conf* @@ -39,8 +40,9 @@ namespace { size_t foundAuth = fileName.find("authserver.conf"); size_t foundWorld = fileName.find("worldserver.conf"); + size_t foundImport = fileName.find("dbimport.conf"); - return foundAuth != std::string_view::npos || foundWorld != std::string_view::npos; + return foundAuth != std::string_view::npos || foundWorld != std::string_view::npos || foundImport != std::string_view::npos; } // Check logging system configs like Appender.* and Logger.* @@ -119,7 +121,7 @@ namespace auto const& itr = fileConfigs.find(confOption); if (itr != fileConfigs.end()) { - PrintError(file, "> Config::LoadFile: Dublicate key name '{}' in config file '{}'", confOption, file); + PrintError(file, "> Config::LoadFile: Duplicate key name '{}' in config file '{}'", confOption, file); return true; } @@ -282,9 +284,14 @@ namespace return result; } + std::string GetEnvVarName(std::string const& configName) + { + return "AC_" + IniKeyToEnvVarKey(configName); + } + Optional EnvVarForIniKey(std::string const& key) { - std::string envKey = "AC_" + IniKeyToEnvVarKey(key); + std::string envKey = GetEnvVarName(key); char* val = std::getenv(envKey.c_str()); if (!val) return std::nullopt; @@ -329,6 +336,29 @@ bool ConfigMgr::Reload() return true; } +// Check the _envVarCache if the env var is there +// if not, check the env for the value +Optional GetEnvFromCache(std::string const& configName, std::string const& envVarName) +{ + auto foundInCache = _envVarCache.find(envVarName); + Optional foundInEnv; + // If it's not in the cache + if (foundInCache == _envVarCache.end()) + { + // Check the env itself + foundInEnv = EnvVarForIniKey(configName); + if (foundInEnv) + { + // If it's found in the env, put it in the cache + _envVarCache.emplace(envVarName, *foundInEnv); + } + // Return the result of checking env + return foundInEnv; + } + + return foundInCache->second; +} + std::vector ConfigMgr::OverrideWithEnvVariablesIfAny() { std::lock_guard lock(_configLock); @@ -356,29 +386,31 @@ template T ConfigMgr::GetValueDefault(std::string const& name, T const& def, bool showLogs /*= true*/) const { std::string strValue; + auto const& itr = _configOptions.find(name); - if (itr == _configOptions.end()) + bool notFound = itr == _configOptions.end(); + auto envVarName = GetEnvVarName(name); + Optional envVar = GetEnvFromCache(name, envVarName); + if (envVar) { - Optional envVar = EnvVarForIniKey(name); - if (!envVar) + // If showLogs and this key/value pair wasn't found in the currently saved config + if (showLogs && (notFound || itr->second != envVar->c_str())) { - if (showLogs) - { - LOG_ERROR("server.loading", "> Config: Missing property {} in config file {}, add \"{} = {}\" to this file.", - name, _filename, name, Acore::ToString(def)); - } - - return def; - } - - if (showLogs) - { - LOG_WARN("server.loading", "Missing property {} in config file {}, recovered with environment '{}' value.", - name, _filename, envVar->c_str()); + LOG_INFO("server.loading", "> Config: Found config value '{}' from environment variable '{}'.", name, envVarName ); + AddKey(name, envVar->c_str(), "ENVIRONMENT", false, false); } strValue = *envVar; } + else if (notFound) + { + if (showLogs) + { + LOG_ERROR("server.loading", "> Config: Missing property {} in config file {}, add \"{} = {}\" to this file or define '{}' as an environment variable.", + name, _filename, name, Acore::ToString(def), envVarName); + } + return def; + } else { strValue = itr->second; @@ -403,24 +435,26 @@ template<> std::string ConfigMgr::GetValueDefault(std::string const& name, std::string const& def, bool showLogs /*= true*/) const { auto const& itr = _configOptions.find(name); - if (itr == _configOptions.end()) + bool notFound = itr == _configOptions.end(); + auto envVarName = GetEnvVarName(name); + Optional envVar = GetEnvFromCache(name, envVarName); + if (envVar) { - Optional envVar = EnvVarForIniKey(name); - if (envVar) + // If showLogs and this key/value pair wasn't found in the currently saved config + if (showLogs && (notFound || itr->second != envVar->c_str())) { - if (showLogs) - { - LOG_WARN("server.loading", "Missing property {} in config file {}, recovered with environment '{}' value.", - name, _filename, envVar->c_str()); - } - - return *envVar; + LOG_INFO("server.loading", "> Config: Found config value '{}' from environment variable '{}'.", name, envVarName); + AddKey(name, *envVar, "ENVIRONMENT", false, false); } + return *envVar; + } + else if (notFound) + { if (showLogs) { - LOG_ERROR("server.loading", "> Config: Missing property {} in config file {}, add \"{} = {}\" to this file.", - name, _filename, name, def); + LOG_ERROR("server.loading", "> Config: Missing property {} in config file {}, add \"{} = {}\" to this file or define '{}' as an environment variable.", + name, _filename, name, def, envVarName); } return def; diff --git a/src/common/GitRevision.cpp b/src/common/GitRevision.cpp index 9510a0f0d..4bfdffe7c 100644 --- a/src/common/GitRevision.cpp +++ b/src/common/GitRevision.cpp @@ -1,7 +1,19 @@ /* -* Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. -* Copyright (C) 2008-2016 TrinityCore -*/ + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ #include "GitRevision.h" #include "revision.h" diff --git a/src/common/GitRevision.h b/src/common/GitRevision.h index ececc723a..34d0d9922 100644 --- a/src/common/GitRevision.h +++ b/src/common/GitRevision.h @@ -1,7 +1,19 @@ /* -* Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. -* Copyright (C) 2008-2018 TrinityCore -*/ + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ #ifndef __GITREVISION_H__ #define __GITREVISION_H__ diff --git a/src/common/Logging/Log.cpp b/src/common/Logging/Log.cpp index 38a8ccbbd..6fd65216c 100644 --- a/src/common/Logging/Log.cpp +++ b/src/common/Logging/Log.cpp @@ -398,6 +398,4 @@ void Log::LoadFromConfig() ReadAppendersFromConfig(); ReadLoggersFromConfig(); - - _debugLogMask = DebugLogFilters(sConfigMgr->GetOption("DebugLogMask", LOG_FILTER_NONE, false)); } diff --git a/src/common/Logging/Log.h b/src/common/Logging/Log.h index bf349227b..e2ec45cd5 100644 --- a/src/common/Logging/Log.h +++ b/src/common/Logging/Log.h @@ -121,8 +121,6 @@ private: Acore::Asio::IoContext* _ioContext; Acore::Asio::Strand* _strand; - // Deprecated debug filter logs - DebugLogFilters _debugLogMask; }; #define sLog Log::instance() diff --git a/src/common/Logging/LogCommon.h b/src/common/Logging/LogCommon.h index 56b6dc58c..ba53ba6df 100644 --- a/src/common/Logging/LogCommon.h +++ b/src/common/Logging/LogCommon.h @@ -46,6 +46,7 @@ enum AppenderType : uint8 APPENDER_INVALID = 0xFF // SKIP }; +// EnumUtils: DESCRIBE THIS enum AppenderFlags : uint8 { APPENDER_FLAGS_NONE = 0x00, @@ -56,37 +57,4 @@ enum AppenderFlags : uint8 APPENDER_FLAGS_MAKE_FILE_BACKUP = 0x10 }; -// Dprecated debug log filters need delte later -enum DebugLogFilters -{ - LOG_FILTER_NONE = 0x00000000, - LOG_FILTER_UNITS = 0x00000001, // Anything related to units that doesn't fit in other categories. ie. creature formations - LOG_FILTER_PETS = 0x00000002, - LOG_FILTER_VEHICLES = 0x00000004, - LOG_FILTER_TSCR = 0x00000008, // C++ AI, instance scripts, etc. - LOG_FILTER_DATABASE_AI = 0x00000010, // SmartAI, EventAI, CreatureAI - LOG_FILTER_MAPSCRIPTS = 0x00000020, - LOG_FILTER_NETWORKIO = 0x00000040, // Anything packet/netcode related - LOG_FILTER_SPELLS_AURAS = 0x00000080, - LOG_FILTER_ACHIEVEMENTSYS = 0x00000100, - LOG_FILTER_CONDITIONSYS = 0x00000200, - LOG_FILTER_POOLSYS = 0x00000400, - LOG_FILTER_AUCTIONHOUSE = 0x00000800, - LOG_FILTER_BATTLEGROUND = 0x00001000, // Anything related to arena's and battlegrounds - LOG_FILTER_OUTDOORPVP = 0x00002000, - LOG_FILTER_CHATSYS = 0x00004000, - LOG_FILTER_LFG = 0x00008000, - LOG_FILTER_MAPS = 0x00010000, // Maps, instances, grids, cells, visibility - LOG_FILTER_PLAYER_LOADING = 0x00020000, // Debug output from Player::_Load functions - LOG_FILTER_PLAYER_ITEMS = 0x00040000, // Anything item related - LOG_FILTER_PLAYER_SKILLS = 0x00080000, // Skills related - LOG_FILTER_LOOT = 0x00100000, // Loot related - LOG_FILTER_GUILD = 0x00200000, // Guild related - LOG_FILTER_TRANSPORTS = 0x00400000, // Transport related - LOG_FILTER_WARDEN = 0x00800000, // Warden related - LOG_FILTER_BATTLEFIELD = 0x01000000, // Battlefield related - LOG_FILTER_MODULES = 0x02000000, // Modules debug - LOG_FILTER_CLOSE_SOCKET = 0x04000000, // Whenever KickPlayer() or CloseSocket() are called -}; - #endif // LogCommon_h__ diff --git a/src/common/Logging/enuminfo_LogCommon.cpp b/src/common/Logging/enuminfo_LogCommon.cpp index da8cbc449..2e4265563 100644 --- a/src/common/Logging/enuminfo_LogCommon.cpp +++ b/src/common/Logging/enuminfo_LogCommon.cpp @@ -121,4 +121,55 @@ AC_API_EXPORT size_t EnumUtils::ToIndex(AppenderType value) default: throw std::out_of_range("value"); } } + +/*****************************************************************\ +|* data for enum 'AppenderFlags' in 'LogCommon.h' auto-generated *| +\*****************************************************************/ +template <> +AC_API_EXPORT EnumText EnumUtils::ToString(AppenderFlags value) +{ + switch (value) + { + case APPENDER_FLAGS_NONE: return { "APPENDER_FLAGS_NONE", "APPENDER_FLAGS_NONE", "" }; + case APPENDER_FLAGS_PREFIX_TIMESTAMP: return { "APPENDER_FLAGS_PREFIX_TIMESTAMP", "APPENDER_FLAGS_PREFIX_TIMESTAMP", "" }; + case APPENDER_FLAGS_PREFIX_LOGLEVEL: return { "APPENDER_FLAGS_PREFIX_LOGLEVEL", "APPENDER_FLAGS_PREFIX_LOGLEVEL", "" }; + case APPENDER_FLAGS_PREFIX_LOGFILTERTYPE: return { "APPENDER_FLAGS_PREFIX_LOGFILTERTYPE", "APPENDER_FLAGS_PREFIX_LOGFILTERTYPE", "" }; + case APPENDER_FLAGS_USE_TIMESTAMP: return { "APPENDER_FLAGS_USE_TIMESTAMP", "APPENDER_FLAGS_USE_TIMESTAMP", "" }; + case APPENDER_FLAGS_MAKE_FILE_BACKUP: return { "APPENDER_FLAGS_MAKE_FILE_BACKUP", "APPENDER_FLAGS_MAKE_FILE_BACKUP", "" }; + default: throw std::out_of_range("value"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::Count() { return 6; } + +template <> +AC_API_EXPORT AppenderFlags EnumUtils::FromIndex(size_t index) +{ + switch (index) + { + case 0: return APPENDER_FLAGS_NONE; + case 1: return APPENDER_FLAGS_PREFIX_TIMESTAMP; + case 2: return APPENDER_FLAGS_PREFIX_LOGLEVEL; + case 3: return APPENDER_FLAGS_PREFIX_LOGFILTERTYPE; + case 4: return APPENDER_FLAGS_USE_TIMESTAMP; + case 5: return APPENDER_FLAGS_MAKE_FILE_BACKUP; + default: throw std::out_of_range("index"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::ToIndex(AppenderFlags value) +{ + switch (value) + { + case APPENDER_FLAGS_NONE: return 0; + case APPENDER_FLAGS_PREFIX_TIMESTAMP: return 1; + case APPENDER_FLAGS_PREFIX_LOGLEVEL: return 2; + case APPENDER_FLAGS_PREFIX_LOGFILTERTYPE: return 3; + case APPENDER_FLAGS_USE_TIMESTAMP: return 4; + case APPENDER_FLAGS_MAKE_FILE_BACKUP: return 5; + default: throw std::out_of_range("value"); + } +} } diff --git a/src/common/Utilities/EnumFlag.h b/src/common/Utilities/EnumFlag.h index b9fc9168e..d02232cfc 100644 --- a/src/common/Utilities/EnumFlag.h +++ b/src/common/Utilities/EnumFlag.h @@ -1,6 +1,18 @@ /* - * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. - * Copyright (C) 2008-2021 TrinityCore + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . */ #ifndef EnumFlag_h__ diff --git a/src/common/Utilities/SmartEnum.h b/src/common/Utilities/SmartEnum.h index 880f72c51..e6e0be257 100644 --- a/src/common/Utilities/SmartEnum.h +++ b/src/common/Utilities/SmartEnum.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITY_SMARTENUM_H -#define TRINITY_SMARTENUM_H +#ifndef AC_SMARTENUM_H +#define AC_SMARTENUM_H #include "IteratorPair.h" #include @@ -130,4 +130,4 @@ public: static char const* ToDescription(Enum value) { return ToString(value).Description; } }; -#endif +#endif // AC_SMART_ENUM_H diff --git a/src/common/Utilities/StartProcess.cpp b/src/common/Utilities/StartProcess.cpp index 7fbe053a8..a8b35578b 100644 --- a/src/common/Utilities/StartProcess.cpp +++ b/src/common/Utilities/StartProcess.cpp @@ -72,8 +72,22 @@ namespace Acore std::string const& logger, std::string const& input, bool secure) { +#if AC_COMPILER == AC_COMPILER_MICROSOFT +#pragma warning(push) +#pragma warning(disable:4297) +/* + Silence warning with boost 1.83 + boost/process/pipe.hpp(132,5): warning C4297: 'boost::process::basic_pipebuf>::~basic_pipebuf': function assumed not to throw an exception but does + boost/process/pipe.hpp(132,5): message : destructor or deallocator has a (possibly implicit) non-throwing exception specification + boost/process/pipe.hpp(124,6): message : while compiling class template member function 'boost::process::basic_pipebuf>::~basic_pipebuf(void)' + boost/process/pipe.hpp(304,42): message : see reference to class template instantiation 'boost::process::basic_pipebuf>' being compiled +*/ +#endif ipstream outStream; ipstream errStream; +#if AC_COMPILER == AC_COMPILER_MICROSOFT +#pragma warning(pop) +#endif if (!secure) { diff --git a/src/common/Utilities/TaskScheduler.cpp b/src/common/Utilities/TaskScheduler.cpp index b1c1cbd41..1d0bf89e6 100644 --- a/src/common/Utilities/TaskScheduler.cpp +++ b/src/common/Utilities/TaskScheduler.cpp @@ -1,6 +1,18 @@ /* - * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 - * Copyright (C) 2008+ TrinityCore + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . */ #include "TaskScheduler.h" diff --git a/src/common/Utilities/TaskScheduler.h b/src/common/Utilities/TaskScheduler.h index c8b7b584d..a256be680 100644 --- a/src/common/Utilities/TaskScheduler.h +++ b/src/common/Utilities/TaskScheduler.h @@ -1,6 +1,18 @@ /* - * Copyright (C) 2016+ AzerothCore , released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3 - * Copyright (C) 2008+ TrinityCore + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . */ #ifndef _TASK_SCHEDULER_H_ @@ -432,11 +444,11 @@ public: : _task(right._task), _owner(right._owner), _consumed(right._consumed) { } // Move construct - TaskContext(TaskContext&& right) + TaskContext(TaskContext&& right) noexcept : _task(std::move(right._task)), _owner(std::move(right._owner)), _consumed(std::move(right._consumed)) { } // Copy assign - TaskContext& operator= (TaskContext const& right) + TaskContext& operator= (TaskContext const& right) noexcept { _task = right._task; _owner = right._owner; @@ -445,7 +457,7 @@ public: } // Move assign - TaskContext& operator= (TaskContext&& right) + TaskContext& operator= (TaskContext&& right) noexcept { _task = std::move(right._task); _owner = std::move(right._owner); diff --git a/src/server/apps/authserver/Main.cpp b/src/server/apps/authserver/Main.cpp index bc40f2f10..4c110db7a 100644 --- a/src/server/apps/authserver/Main.cpp +++ b/src/server/apps/authserver/Main.cpp @@ -85,8 +85,6 @@ int main(int argc, char** argv) if (!sConfigMgr->LoadAppConfigs()) return 1; - std::vector overriddenKeys = sConfigMgr->OverrideWithEnvVariablesIfAny(); - // Init logging sLog->RegisterAppender(); sLog->Initialize(nullptr); @@ -103,9 +101,6 @@ int main(int argc, char** argv) LOG_INFO("server.authserver", "> Using Boost version: {}.{}.{}", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100); }); - for (std::string const& key : overriddenKeys) - LOG_INFO("server.authserver", "Configuration field {} was overridden with environment variable.", key); - OpenSSLCrypto::threadsSetup(); std::shared_ptr opensslHandle(nullptr, [](void*) { OpenSSLCrypto::threadsCleanup(); }); diff --git a/src/server/apps/authserver/Server/AuthSession.h b/src/server/apps/authserver/Server/AuthSession.h index 4a333c816..fe19cf809 100644 --- a/src/server/apps/authserver/Server/AuthSession.h +++ b/src/server/apps/authserver/Server/AuthSession.h @@ -45,6 +45,7 @@ enum AuthStatus STATUS_CLOSED }; +// cppcheck-suppress ctuOneDefinitionRuleViolation struct AccountInfo { void LoadResult(Field* fields); diff --git a/src/server/apps/worldserver/Main.cpp b/src/server/apps/worldserver/Main.cpp index 6511a2280..e2a7f9a97 100644 --- a/src/server/apps/worldserver/Main.cpp +++ b/src/server/apps/worldserver/Main.cpp @@ -184,8 +184,6 @@ int main(int argc, char** argv) if (!sConfigMgr->LoadAppConfigs()) return 1; - std::vector overriddenKeys = sConfigMgr->OverrideWithEnvVariablesIfAny(); - std::shared_ptr ioContext = std::make_shared(); // Init all logs @@ -205,9 +203,6 @@ int main(int argc, char** argv) LOG_INFO("server.worldserver", "> Using Boost version: {}.{}.{}", BOOST_VERSION / 100000, BOOST_VERSION / 100 % 1000, BOOST_VERSION % 100); }); - for (std::string const& key : overriddenKeys) - LOG_INFO("server.worldserver", "Configuration field {} was overridden with environment variable.", key); - OpenSSLCrypto::threadsSetup(); std::shared_ptr opensslHandle(nullptr, [](void*) { OpenSSLCrypto::threadsCleanup(); }); diff --git a/src/server/apps/worldserver/worldserver.conf.dist b/src/server/apps/worldserver/worldserver.conf.dist index 7df85b510..fd9ae704c 100644 --- a/src/server/apps/worldserver/worldserver.conf.dist +++ b/src/server/apps/worldserver/worldserver.conf.dist @@ -6,54 +6,78 @@ ################################################################################################### # SECTION INDEX # -# EXAMPLE CONFIG -# CONNECTIONS AND DIRECTORIES -# PERFORMANCE SETTINGS -# SERVER LOGGING -# SERVER SETTINGS +# SERVER SYSTEM SETTINGS +# DATABASE & CONNECTIONS +# DIRECTORIES +# CONSOLE +# AUTOUPDATER +# NETWORK +# REMOTE ACCESS # CRYPTOGRAPHY -# WARDEN SETTINGS -# PLAYER INTERACTION -# CREATURE SETTINGS -# CHAT SETTINGS -# GAME MASTER SETTINGS -# VISIBILITY AND DISTANCES -# SERVER RATES -# STATS LIMITS -# AUTO BROADCAST -# BATTLEGROUND CONFIG -# BATTLEFIELD CONFIG -# ARENA CONFIG -# NETWORK CONFIG -# CONSOLE AND REMOTE ACCESS -# CHARACTER DELETE OPTIONS -# ITEM DELETE OPTIONS -# CUSTOM SERVER OPTIONS -# UPDATE SETTINGS -# LOGGING SYSTEM SETTINGS +# PERFORMANCE +# LOGGING +# METRIC +# SERVER # PACKET SPOOF PROTECTION SETTINGS +# WARDEN +# AUTO BROADCAST +# VISIBILITY AND DISTANCES +# MAPS +# WEATHER +# TICKETS +# COMMAND +# +# GAME SETTINGS +# GAME MASTER +# CHEAT +# CHARACTER DATABASE +# CHARACTER DELETE +# CHARACTER CREATION +# CHARACTER +# SKILL +# STATS +# REPUTATION +# EXPERIENCE +# CURRENCY +# DURABILITY +# DEATH +# PET +# ITEM DELETE +# ITEM +# QUEST +# CREATURE +# VENDOR +# GROUP +# INSTANCE +# DUNGEON AND BATTLEGROUND FINDER +# CHARTER +# GUILD +# FFAPVP +# WINTERGRASP +# BATTLEGROUND +# ARENA +# MAIL +# TRANSPORT +# CHAT CHANNEL +# FACTION INTERACTION +# RECRUIT A FRIEND +# CALENDAR +# GAME EVENT +# AUCTION HOUSE +# PLAYER DUMP +# CUSTOM # DEBUG -# METRIC SETTINGS # ################################################################################################### ################################################################################################### -# EXAMPLE CONFIG -# -# Variable -# Description: Brief description what the variable is doing. -# Important: Annotation for important things about this variable. -# Example: "Example, i.e. if the value is a string" -# Default: 10 - (Enabled|Comment|Variable name in case of grouped config options) -# 0 - (Disabled|Comment|Variable name in case of grouped config options) -# -# Note to developers: -# - Copy this example to keep the formatting. -# - Line breaks should be at column 100. +# # +# SERVER SYSTEM SETTINGS BEGIN # +# # ################################################################################################### ################################################################################################### -# CONNECTIONS AND DIRECTORIES +# DATABASE & CONNECTIONS # # RealmID # Description: ID of the Realm using this config. @@ -63,33 +87,18 @@ RealmID = 1 # -# DataDir -# Description: Data directory setting. -# Important: DataDir needs to be quoted, as the string might contain space characters. -# Example: "@prefix@\home\youruser\azerothcore\data" -# Default: "." +# WorldServerPort +# Description: TCP port to reach the world server. +# Default: 8085 -DataDir = "." +WorldServerPort = 8085 # -# LogsDir -# Description: Logs directory setting. -# Important: LogsDir needs to be quoted, as the string might contain space characters. -# Logs directory must exists, or log file creation will be disabled. -# Example: "/home/youruser/azerothcore/logs" -# Default: "" - (Log files will be stored in the current path) +# BindIP +# Description: Bind world server to IP/hostname +# Default: "0.0.0.0" - (Bind to all IPs on the system) -LogsDir = "" - -# -# TempDir -# Description: Temp directory setting. -# Important: TempDir needs to be quoted, as the string might contain space characters. -# TempDir directory must exists, or the server can't work properly -# Example: "/home/youruser/azerothcore/temp" -# Default: "" - (Temp files will be stored in the current path) - -TempDir = "" +BindIP = "0.0.0.0" # # LoginDatabaseInfo @@ -110,18 +119,6 @@ LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth" WorldDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_world" CharacterDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_characters" -# -# Database.Reconnect.Seconds -# Database.Reconnect.Attempts -# -# Description: How many seconds between every reconnection attempt -# and how many attempts will be performed in total -# Default: 20 attempts every 15 seconds -# - -Database.Reconnect.Seconds = 15 -Database.Reconnect.Attempts = 20 - # # LoginDatabase.WorkerThreads # WorldDatabase.WorkerThreads @@ -158,18 +155,50 @@ CharacterDatabase.SynchThreads = 2 MaxPingTime = 30 # -# WorldServerPort -# Description: TCP port to reach the world server. -# Default: 8085 +# Database.Reconnect.Seconds +# Database.Reconnect.Attempts +# +# Description: How many seconds between every reconnection attempt +# and how many attempts will be performed in total +# Default: 20 attempts every 15 seconds +# -WorldServerPort = 8085 +Database.Reconnect.Seconds = 15 +Database.Reconnect.Attempts = 20 # -# BindIP -# Description: Bind world server to IP/hostname -# Default: "0.0.0.0" - (Bind to all IPs on the system) +################################################################################################### -BindIP = "0.0.0.0" +################################################################################################### +# DIRECTORIES +# +# DataDir +# Description: Data directory setting. +# Important: DataDir needs to be quoted, as the string might contain space characters. +# Example: "@prefix@\home\youruser\azerothcore\data" +# Default: "." + +DataDir = "." + +# +# LogsDir +# Description: Logs directory setting. +# Important: LogsDir needs to be quoted, as the string might contain space characters. +# Logs directory must exists, or log file creation will be disabled. +# Example: "/home/youruser/azerothcore/logs" +# Default: "" - (Log files will be stored in the current path) + +LogsDir = "" + +# +# TempDir +# Description: Temp directory setting. +# Important: TempDir needs to be quoted, as the string might contain space characters. +# TempDir directory must exists, or the server can't work properly +# Example: "/home/youruser/azerothcore/temp" +# Default: "" - (Temp files will be stored in the current path) + +TempDir = "" # # CMakeCommand @@ -194,7 +223,7 @@ BuildDirectory = "" # SourceDirectory # Description: The path to your AzerothCore source directory. # If the path is left empty, the built-in CMAKE_SOURCE_DIR is used. -# Example: "../AzerothCore" +# Example: "../azerothcore-wotlk" # Default: "" SourceDirectory = "" @@ -210,350 +239,6 @@ SourceDirectory = "" MySQLExecutable = "" -# -# ThreadPool -# Description: Number of threads to be used for the global thread pool -# The thread pool is currently used for: -# - Signal handling -# - Remote access -# - Database keep-alive ping -# - Core freeze check -# - World socket networking -# Default: 2 - -ThreadPool = 2 - -# -# IPLocationFile -# Description: The path to your IP2Location database CSV file. -# Example: "C:/acore/IP2LOCATION-LITE-DB1.CSV" -# "/home/acore/IP2LOCATION-LITE-DB1.CSV" -# Default: "" - (Disabled) -# - -IPLocationFile = "" - -# -# AllowLoggingIPAddressesInDatabase -# Description: Specifies if IP addresses can be logged to the database -# Default: 1 - (Enabled) -# 0 - (Disabled) -# - -AllowLoggingIPAddressesInDatabase = 1 - -# -################################################################################################### - -################################################################################################### -# PERFORMANCE SETTINGS -# -# UseProcessors -# Description: Processors mask for Windows and Linux based multi-processor systems. -# Example: For a computer with 3 CPUs: -# 1 - 1st CPU only -# 2 - 2nd CPU only -# 4 - 3rd CPU only -# 6 - 2nd + 3rd CPUs, because "2 | 4" -> 6 -# Default: 0 - (Selected by OS) -# 1+ - (Bit mask value of selected processors) - -UseProcessors = 0 - -# -# ProcessPriority -# Description: Process priority setting for Windows based systems. -# Default: 1 - (High) -# 0 - (Normal) - -ProcessPriority = 1 - -# -# Compression -# Description: Compression level for client update packages -# Range: 1-9 -# Default: 1 - (Speed) -# 9 - (Best compression) - -Compression = 1 - -# -# PlayerLimit -# Description: Maximum number of players in the world. Excluding Mods, GMs and Admins. -# Important: If you want to block players and only allow Mods, GMs or Admins to join the -# server, use the DB field "auth.realmlist.allowedSecurityLevel". -# Default: 1000 - (Enabled) -# 1+ - (Enabled) -# 0 - (Disabled, No limit) - -PlayerLimit = 1000 - -# -# SaveRespawnTimeImmediately -# Description: Save respawn time for creatures at death and gameobjects at use/open. -# Default: 1 - (Enabled, Save respawn time immediately) -# 0 - (Disabled, Save respawn time at grid unloading) - -SaveRespawnTimeImmediately = 1 - -# -# MaxOverspeedPings -# Description: Maximum overspeed ping count before character is disconnected. -# Default: 2 - (Enabled, Minimum value) -# 3+ - (Enabled, More checks before kick) -# 0 - (Disabled) - -MaxOverspeedPings = 2 - -# -# CloseIdleConnections -# Description: Automatically close idle connections. -# SocketTimeOutTime and SocketTimeOutTimeActive determine when a connection is considered as idle. -# Default: 1 - (enable, Automatically close idle connections) -# 0 - (disable, Do not close idle connections) - -CloseIdleConnections = 1 - -# -# SocketTimeOutTime -# Description: Time (in milliseconds) after which a connection being idle on the character -# selection screen is disconnected. -# Default: 900000 - (15 minutes) - -SocketTimeOutTime = 900000 - -# -# SocketTimeOutTimeActive -# Description: Time (in milliseconds) after which an idle connection is dropped while -# logged into the world. -# The client sends keepalive packets every 30 seconds. Values <= 30s are not recommended. -# Default: 60000 - (1 minute) - -SocketTimeOutTimeActive = 60000 - -# -# SessionAddDelay -# Description: Time (in microseconds) that a network thread will sleep after authentication -# protocol handling before adding a connection to the world session map. -# Default: 10000 - (10 milliseconds, 0.01 second) - -SessionAddDelay = 10000 - -# -# MinWorldUpdateTime -# Description: Minimum time (milliseconds) between world update ticks (for mostly idle servers). -# Default: 1 - (0.001 second) - -MinWorldUpdateTime = 1 - -# -# MapUpdateInterval -# Description: Time (milliseconds) for map update interval. -# Default: 10 - (0.01 second) - -MapUpdateInterval = 10 - -# -# ChangeWeatherInterval -# Description: Time (in milliseconds) for weather update interval. -# Default: 600000 - (10 min) - -ChangeWeatherInterval = 600000 - -# -# PlayerSaveInterval -# Description: Time (in milliseconds) for player save interval. -# Default: 900000 - (15 min) - -PlayerSaveInterval = 900000 - -# -# PlayerSave.Stats.MinLevel -# Description: Minimum level for saving character stats in the database for external usage. -# Default: 0 - (Disabled, Do not save character stats) -# 1+ - (Enabled, Level beyond which character stats are saved) - -PlayerSave.Stats.MinLevel = 0 - -# -# PlayerSave.Stats.SaveOnlyOnLogout -# Description: Save player stats only on logout. -# Default: 1 - (Enabled, Only save on logout) -# 0 - (Disabled, Save on every player save) - -PlayerSave.Stats.SaveOnlyOnLogout = 1 - -# -# vmap.enableLOS -# vmap.enableHeight -# Description: VMmap support for line of sight and height calculation. -# Default: 1 - (Enabled, vmap.enableLOS) -# 1 - (Enabled, vmap.enableHeight) -# 0 - (Disabled) - -vmap.enableLOS = 1 -vmap.enableHeight = 1 - -# -# vmap.petLOS -# Description: Check line of sight for pets, to avoid them attacking through walls. -# Default: 1 - (Enabled, each pet attack will be checked for line of sight) -# 0 - (Disabled, somewhat less CPU usage) - -vmap.petLOS = 1 - -# vmap.BlizzlikePvPLOS -# Description: Check line of sight for battleground and arena gameobjects and other doodads (such as WSG treestumps). -# Default: 1 - (Enabled, players will be able to fire spells through treestumps and other objects). -# 0 - (Disabled, players will NOT be able to fire spells through treestumps and other objects). - -vmap.BlizzlikePvPLOS = 1 - -# -# vmap.enableIndoorCheck -# Description: VMap based indoor check to remove outdoor-only auras (mounts etc.). -# Default: 1 - (Enabled) -# 0 - (Disabled, somewhat less CPU usage) - -vmap.enableIndoorCheck = 1 - -# -# DetectPosCollision -# Description: Check final move position, summon position, etc for visible collision with -# other objects or walls (walls only if vmaps are enabled). -# Default: 1 - (Enabled) -# 0 - (Disabled, Less position precision but less CPU usage) - -DetectPosCollision = 1 - -# -# CheckGameObjectLoS -# Description: Include dynamic game objects (doors, chests etc.) in line of sight checks. -# This increases CPU usage somewhat. -# Default: 1 - (Enabled) -# 0 - (Disabled, may break some boss encounters) - -CheckGameObjectLoS = 1 - -# -# TargetPosRecalculateRange -# Description: Max distance from movement target point (+moving unit size) and targeted -# object (+size) after that new target movement point calculated. -# Range: 0.5-5.0 -# Default: 1.5 -# 0.5 - (Minimum, Contact Range, More sensitive reaction to target movement) -# 5.0 - (Maximum, Melee attack range, Less CPU usage) - -TargetPosRecalculateRange = 1.5 - -# -# UpdateUptimeInterval -# Description: Update realm uptime period (in minutes). -# Default: 10 - (10 minutes) -# 1+ - -UpdateUptimeInterval = 1 - -# -# LogDB.Opt.ClearInterval -# Description: Time (in minutes) for the WUPDATE_CLEANDB timer that clears the `logs` table -# of old entries. -# Default: 10 - (10 minutes) -# 1+ - -LogDB.Opt.ClearInterval = 10 - -# -# LogDB.Opt.ClearTime -# Description: Time (in seconds) for keeping old `logs` table entries. -# Default: 1209600 - (Enabled, 14 days) -# 0 - (Disabled, Do not clear entries) - -LogDB.Opt.ClearTime = 1209600 - -# -# MaxCoreStuckTime -# Description: Time (in seconds) before the server is forced to crash if it is frozen. -# FreezeDetector -# Default: 0 - (Disabled) -# 10+ - (Enabled, Recommended 30+) -# Note: If enabled and the setting is too low, it can cause unexpected crash. - -MaxCoreStuckTime = 0 - -# -# AddonChannel -# Description: Configure the use of the addon channel through the server (some client side -# addons will not work correctly with disabled addon channel) -# Default: 1 - (Enabled) -# 0 - (Disabled) - -AddonChannel = 1 - -# -# MapUpdate.Threads -# Description: Number of threads to update maps. -# Default: 1 - -MapUpdate.Threads = 1 - -# -# CleanCharacterDB -# Description: Clean out deprecated achievements, skills, spells and talents from the db. -# Default: 0 - (Disabled) -# 1 - (Enable) - -CleanCharacterDB = 0 - -# -# PersistentCharacterCleanFlags -# Description: Determines the character clean flags that remain set after cleanups. -# This is a bitmask value, you can use one of the following values: -# -# CLEANING_FLAG_ACHIEVEMENT_PROGRESS = 0x1 -# CLEANING_FLAG_SKILLS = 0x2 -# CLEANING_FLAG_SPELLS = 0x4 -# CLEANING_FLAG_TALENTS = 0x8 -# CLEANING_FLAG_QUESTSTATUS = 0x10 -# -# Before use this feature, make a backup of your database. -# -# Example: 14 - (CLEANING_FLAG_SKILLS + CLEANING_FLAG_SPELLS + CLEANING_FLAG_TALENTS -# 2+4+8 => 14. This will clean up skills, talents and spells will -# remain enabled after the next cleanup) -# Default: 0 - (All cleanup methods will be disabled after the next cleanup) - -PersistentCharacterCleanFlags = 0 - -# -# PreloadAllNonInstancedMapGrids -# Description: Preload all grids on all non-instanced maps. This will take a great amount -# of additional RAM (ca. 9 GB) and causes the server to take longer to start, -# but can increase performance if used on a server with a high amount of players. -# It will also activate all creatures which are set active (e.g. the Fel Reavers -# in Hellfire Peninsula) on server start. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -PreloadAllNonInstancedMapGrids = 0 - -# -# SetAllCreaturesWithWaypointMovementActive -# Description: Set all creatures with waypoint movement active. This means that they will start -# movement once they are loaded (which happens on grid load) and keep moving even -# when no player is near. This will increase CPU usage significantly and can be -# used with enabled "PreloadAllNonInstancedMapGrids" to start waypoint movement on -# server startup. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -SetAllCreaturesWithWaypointMovementActive = 0 - -# -################################################################################################### - -################################################################################################### -# SERVER LOGGING # # PidFile # Description: World daemon PID file. @@ -562,700 +247,18 @@ SetAllCreaturesWithWaypointMovementActive = 0 PidFile = "" -# -# PacketLogFile -# Description: Binary packet logging file for the world server. -# Filename extension must be .pkt to be parsable with WowPacketParser. -# Example: "World.pkt" - (Enabled) -# Default: "" - (Disabled) - -PacketLogFile = "" - -# Extended Logging system configuration moved to end of file (on purpose) # ################################################################################################### ################################################################################################### -# SERVER SETTINGS +# CONSOLE # -# GameType -# Description: Server realm type. -# Default: 0 - (NORMAL) -# 1 - (PVP) -# 4 - (NORMAL) -# 6 - (RP) -# 8 - (RPPVP) -# 16 - (FFA_PVP, Free for all PvP mode like arena PvP in all zones except rest -# activated places and sanctuaries) - -GameType = 0 - -# -# RealmZone -# Description: Server realm zone. Set allowed alphabet in character, etc. names. -# Default 1 - (Development - any language) -# 2 - (United States - extended-Latin) -# 3 - (Oceanic - extended-Latin) -# 4 - (Latin America - extended-Latin) -# 5 - (Tournament - basic-Latin at create, any at login) -# 6 - (Korea - East-Asian) -# 7 - (Tournament - basic-Latin at create, any at login) -# 8 - (English - extended-Latin) -# 9 - (German - extended-Latin) -# 10 - (French - extended-Latin) -# 11 - (Spanish - extended-Latin) -# 12 - (Russian - Cyrillic) -# 13 - (Tournament - basic-Latin at create, any at login) -# 14 - (Taiwan - East-Asian) -# 15 - (Tournament - basic-Latin at create, any at login) -# 16 - (China - East-Asian) -# 17 - (CN1 - basic-Latin at create, any at login) -# 18 - (CN2 - basic-Latin at create, any at login) -# 19 - (CN3 - basic-Latin at create, any at login) -# 20 - (CN4 - basic-Latin at create, any at login) -# 21 - (CN5 - basic-Latin at create, any at login) -# 22 - (CN6 - basic-Latin at create, any at login) -# 23 - (CN7 - basic-Latin at create, any at login) -# 24 - (CN8 - basic-Latin at create, any at login) -# 25 - (Tournament - basic-Latin at create, any at login) -# 26 - (Test Server - any language) -# 27 - (Tournament - basic-Latin at create, any at login) -# 28 - (QA Server - any language) -# 29 - (CN9 - basic-Latin at create, any at login) - -RealmZone = 1 - -# -# World.RealmAvailability -# Description: If enabled, players will enter the realm normally. -# Character creation will still be possible even when realm is disabled. +# Console.Enable +# Description: Enable console. # Default: 1 - (Enabled) # 0 - (Disabled) -World.RealmAvailability = 1 - -# -# StrictNames.Reserved -# Description: Use the Reserved Filter from DBC. -# Prevents Player, Pet & Charter names from containing reserved names. -# Default: 1 - Enabled -# 0 - Disabled - -StrictNames.Reserved = 1 - -# -# StrictNames.Profanity -# Description: Use the Profanity Filter from DBC. -# Prevents Player, Pet & Charter names from containing profanity. -# Default: 1 - Enabled -# 0 - Disabled - -StrictNames.Profanity = 1 - -# -# StrictPlayerNames -# Description: Limit player name to language specific symbol set. Prevents character -# creation and forces rename request if not allowed symbols are used -# Default: 0 - (Disable, Limited server timezone dependent client check) -# 1 - (Enabled, Strictly basic Latin characters) -# 2 - (Enabled, Strictly realm zone specific, See RealmZone setting, -# Note: Client needs to have the appropriate fonts installed which support -# the charset. For non-official localization, custom fonts need to be -# placed in clientdir/Fonts. -# 3 - (Enabled, Basic Latin characters + server timezone specific) - -StrictPlayerNames = 0 - -# -# StrictCharterNames -# Description: Limit guild/arena team charter names to language specific symbol set. -# Prevents charter creation if not allowed symbols are used. -# Default: 0 - (Disable, Limited server timezone dependent client check) -# 1 - (Enabled, Strictly basic Latin characters) -# 2 - (Enabled, Strictly realm zone specific, See RealmZone setting, -# Note: Client needs to have the appropriate fonts installed which support -# the charset. For non-official localization, custom fonts need to be -# placed in clientdir/Fonts. -# 3 - (Enabled, Basic Latin characters + server timezone specific) - -StrictCharterNames = 0 - -# -# StrictPetNames -# Description: Limit pet names to language specific symbol set. -# Prevents pet naming if not allowed symbols are used. -# Default: 0 - (Disable, Limited server timezone dependent client check) -# 1 - (Enabled, Strictly basic Latin characters) -# 2 - (Enabled, Strictly realm zone specific, See RealmZone setting, -# Note: Client needs to have the appropriate fonts installed which support -# the charset. For non-official localization, custom fonts need to be -# placed in clientdir/Fonts. -# 3 - (Enabled, Basic Latin characters + server timezone specific) - -StrictPetNames = 0 - -# -# DBC.Locale -# Description: DBC language settings. -# Default: 255 - (Auto Detect) -# 0 - (English) -# 1 - (Korean) -# 2 - (French) -# 3 - (German) -# 4 - (Chinese) -# 5 - (Taiwanese) -# 6 - (Spanish) -# 7 - (Spanish Mexico) -# 8 - (Russian) - -DBC.Locale = 255 - -# -# DeclinedNames -# Description: Allow Russian clients to set and use declined names. -# Default: 0 - (Disabled, Except when the Russian RealmZone is set) -# 1 - (Enabled) - -DeclinedNames = 0 - -# -# Expansion -# Description: Allow server to use content from expansions. Checks for expansion-related -# map files, client compatibility and class/race character creation. -# Default: 2 - (Expansion 2) -# 1 - (Expansion 1) -# 0 - (Disabled, Ignore and disable expansion content (maps, races, classes) - -Expansion = 2 - -# -# MinPlayerName -# Description: Minimal player name length. -# Range: 1-12 -# Default: 2 - -MinPlayerName = 2 - -# -# MinCharterName -# Description: Minimal charter name length. -# Range: 1-24 -# Default: 2 - -MinCharterName = 2 - -# -# MinPetName -# Description: Minimal pet name length. -# Range: 1-12 -# Default: 2 - -MinPetName = 2 - -# -# Guild.CharterCost -# ArenaTeam.CharterCost.2v2 -# ArenaTeam.CharterCost.3v3 -# ArenaTeam.CharterCost.5v5 -# Description: Amount of money (in Copper) the petitions costs. -# Default: 1000 - (10 Silver) -# 800000 - (80 Gold) -# 1200000 - (120 Gold) -# 2000000 - (200 Gold) - -Guild.CharterCost = 1000 -ArenaTeam.CharterCost.2v2 = 800000 -ArenaTeam.CharterCost.3v3 = 1200000 -ArenaTeam.CharterCost.5v5 = 2000000 - -# -# MaxWhoListReturns -# Description: Set the max number of players returned in the /who list and interface. -# Default: 49 - (stable) - -MaxWhoListReturns = 49 - -# -# CharacterCreating.Disabled -# Description: Disable character creation for players based on faction. -# Default: 0 - (Enabled, All factions are allowed) -# 1 - (Disabled, Alliance) -# 2 - (Disabled, Horde) -# 3 - (Disabled, Both factions) - -CharacterCreating.Disabled = 0 - -# -# CharacterCreating.Disabled.RaceMask -# Description: Mask of races which cannot be created by players. -# Example: 1536 - (1024 + 512, Blood Elf and Draenei races are disabled) -# Default: 0 - (Enabled, All races are allowed) -# 1 - (Disabled, Human) -# 2 - (Disabled, Orc) -# 4 - (Disabled, Dwarf) -# 8 - (Disabled, Night Elf) -# 16 - (Disabled, Undead) -# 32 - (Disabled, Tauren) -# 64 - (Disabled, Gnome) -# 128 - (Disabled, Troll) -# 512 - (Disabled, Blood Elf) -# 1024 - (Disabled, Draenei) - -CharacterCreating.Disabled.RaceMask = 0 - -# -# CharacterCreating.Disabled.ClassMask -# Description: Mask of classes which cannot be created by players. -# Example: 288 - (32 + 256, Death Knight and Warlock classes are disabled) -# Default: 0 - (Enabled, All classes are allowed) -# 1 - (Disabled, Warrior) -# 2 - (Disabled, Paladin) -# 4 - (Disabled, Hunter) -# 8 - (Disabled, Rogue) -# 16 - (Disabled, Priest) -# 32 - (Disabled, Death Knight) -# 64 - (Disabled, Shaman) -# 128 - (Disabled, Mage) -# 256 - (Disabled, Warlock) -# 1024 - (Disabled, Druid) - -CharacterCreating.Disabled.ClassMask = 0 - -# -# CharactersPerAccount -# Description: Limit number of characters per account on all realms on this realmlist. -# Important: Number must be >= CharactersPerRealm -# Default: 50 - -CharactersPerAccount = 50 -# -# CharactersPerRealm -# Description: Limit number of characters per account on this realm. -# Range: 1-10 -# Default: 10 - (Client limitation) - -CharactersPerRealm = 10 - -# -# HeroicCharactersPerRealm -# Description: Limit number of heroic class characters per account on this realm. -# Range: 1-10 -# Default: 1 - -HeroicCharactersPerRealm = 1 - -# -# CharacterCreating.MinLevelForHeroicCharacter -# Description: Limit creating heroic characters only for account with another -# character of specific level (ignored for GM accounts) -# Default: 55 - (Enabled, Requires at least another level 55 character) -# 0 - (Disabled) -# 1 - (Enabled, Requires at least another level 1 character) - -CharacterCreating.MinLevelForHeroicCharacter = 55 - -# -# SkipCinematics -# Description: Disable cinematic intro at first login after character creation. -# Prevents buggy intros in case of custom start location coordinates. -# Default: 0 - (Show intro for each new character) -# 1 - (Show intro only for first character of selected race) -# 2 - (Disable intro for all classes) - -SkipCinematics = 0 - -# -# MaxPlayerLevel -# Description: Maximum level that can be reached by players. -# Important: Levels beyond 100 are not recommended at all. -# Range: 1-255 -# Default: 80 - -MaxPlayerLevel = 80 - -# -# MinDualSpecLevel -# Description: Level requirement for Dual Talent Specialization -# Default: 40 - -MinDualSpecLevel = 40 - -# -# StartPlayerLevel -# Description: Starting level for characters after creation. -# Range: 1-MaxPlayerLevel -# Default: 1 - -StartPlayerLevel = 1 - -# -# StartHeroicPlayerLevel -# Description: Staring level for heroic class characters after creation. -# Range: 1-MaxPlayerLevel -# Default: 55 - -StartHeroicPlayerLevel = 55 - -# -# StartPlayerMoney -# Description: Amount of money (in Copper) that a character has after creation. -# Default: 0 -# 100 - (1 Silver) - -StartPlayerMoney = 0 - -# -# StartHeroicPlayerMoney -# Description: Amount of money (in Copper) that heroic class characters have after creation. -# Default: 2000 -# 2000 - (20 Silver) - -StartHeroicPlayerMoney = 2000 - -# -# MaxHonorPoints -# Description: Maximum honor points a character can have. -# Default: 75000 - -MaxHonorPoints = 75000 - -# -# MaxHonorPointsMoneyPerPoint -# Description: Convert excess honor points into money if players got more points than allowed after changing the honor cap. -# Honor points will be converted into copper according to the value set in this config. -# Default: 0 - Disabled - -MaxHonorPointsMoneyPerPoint = 0 - -# -# StartHonorPoints -# Description: Amount of honor points that characters have after creation. -# Default: 0 - -StartHonorPoints = 0 - -# -# MaxArenaPoints -# Description: Maximum arena points a character can have. -# Default: 10000 - -MaxArenaPoints = 10000 - -# -# StartArenaPoints -# Description: Amount of arena points that characters has after creation. -# Default: 0 - -StartArenaPoints = 0 - -# -# Arena.LegacyArenaPoints -# Description: Use arena point calculation from TBC for season 1 - 5 when rating is less or equal to 1500 -# Default: 1 - (Enabled) -# 0 - (Disabled) - -Arena.LegacyArenaPoints = 0 - -# -# RecruitAFriend.MaxLevel -# Description: Highest level up to which a character can benefit from the Recruit-A-Friend -# experience multiplier. -# Default: 60 - -RecruitAFriend.MaxLevel = 60 - -# -# RecruitAFriend.MaxDifference -# Description: Highest level difference between linked Recruiter and Friend benefit from -# the Recruit-A-Friend experience multiplier. -# Default: 4 - -RecruitAFriend.MaxDifference = 4 - -# -# InstantLogout -# Description: Required security level for instantly logging out everywhere. -# Does not work while in combat, dueling or falling. -# Default: 1 - (Enabled, Mods/GMs/Admins) -# 0 - (Enabled, Everyone) -# 2 - (Enabled, GMs/Admins) -# 3 - (Enabled, Admins) -# 4 - (Disabled) - -InstantLogout = 1 - -# -# PreventAFKLogout -# Description: Prevent players AFK from being logged out -# Default: 0 - (Disabled) -# 1 - (Enabled, prevent players AFK from being logged out in Sanctuary zones) -# 2 - (Enabled, prevent players AFK from being logged out in all zones) - -PreventAFKLogout = 0 - -# -# DisableWaterBreath -# Description: Required security level for water breathing. -# Default: 4 - (Disabled) -# 0 - (Enabled, Everyone) -# 1 - (Enabled, Mods/GMs/Admins) -# 2 - (Enabled, GMs/Admins) -# 3 - (Enabled, Admins) - -DisableWaterBreath = 4 - -# -# AllFlightPaths -# Description: Character knows all flight paths (of both factions) after creation. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllFlightPaths = 0 - -# -# InstantFlightPaths -# Description: Flight paths will take players to their destination instantly instead -# of making them wait while flying. -# Default: 0 - (Disabled) -# 1 - (Enabled) -# 2 - (Enabled, but the player can toggle instant flight off or on at each flight master) - -InstantFlightPaths = 0 - -# -# AlwaysMaxSkillForLevel -# Description: Players will automatically gain max skill level when logging in or leveling -# up. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AlwaysMaxSkillForLevel = 0 - -# -# ActivateWeather -# Description: Activate the weather system. -# Default: 1 - (Enabled) -# 0 - (Disabled) - -ActivateWeather = 1 - -# -# CastUnstuck -# Description: Allow casting the Unstuck spell using .start or unstuck button in client -# help options. -# Default: 1 - (Enabled) -# 0 - (Disabled) - -CastUnstuck = 1 - -# -# Instance.IgnoreLevel -# Description: Ignore level requirement when entering instances. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Instance.IgnoreLevel = 0 - -# -# Instance.IgnoreRaid -# Description: Ignore raid group requirement when entering instances. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Instance.IgnoreRaid = 0 - -# -# Instance.GMSummonPlayer -# Description: Allow GM to summon players or only other GM accounts inside instances. -# Default: 0 - (Disabled, Only GM accounts can be summoned by GM) -# 1 - (Enabled, GM and Player accounts can be summoned by GM) - -Instance.GMSummonPlayer = 0 - -# -# Instance.ResetTimeHour -# Description: Hour of the day when the global instance reset occurs. -# Range: 0-23 -# Default: 4 - (04:00 AM) - -Instance.ResetTimeHour = 4 - -# -# Instance.UnloadDelay -# Description: Time (in milliseconds) before instance maps are unloaded from memory if no -# characters are inside. -# Default: 1800000 - (Enabled, 30 minutes) -# 0 - (Disabled, Instance maps are kept in memory until the instance -# resets) - -Instance.UnloadDelay = 1800000 - -# -# Quests.EnableQuestTracker -# Description: Store data in the database about quest completion and abandonment to help finding bugged quests. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Quests.EnableQuestTracker = 0 - -# -# Quests.LowLevelHideDiff -# Description: Level difference between player and quest level at which quests are -# considered low-level and are not shown via exclamation mark (!) at quest -# givers. -# Default: 4 - (Enabled, Hide quests that have 4 levels less than the character) -# -1 - (Disabled, Show all available quest marks) - -Quests.LowLevelHideDiff = 4 - -# -# Quests.HighLevelHideDiff -# Description: Level difference between player and quest level at which quests are -# considered high-level and are not shown via exclamation mark (!) at quest -# givers. -# Default: 7 - (Enabled, Hide quests that have 7 levels more than the character) -# -1 - (Disabled, Show all available quest marks) - -Quests.HighLevelHideDiff = 7 - -# -# Quests.IgnoreRaid -# Description: Allow non-raid quests to be completed while in a raid group. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Quests.IgnoreRaid = 0 - -# -# Quests.IgnoreAutoAccept -# Description: Ignore auto accept flag. Clients will have to manually accept all quests. -# Default: 0 - (Disabled, DB values determine if quest is marked auto accept or not.) -# 1 - (Enabled, clients will not be told to automatically accept any quest.) - -Quests.IgnoreAutoAccept = 0 - -# -# Quests.IgnoreAutoComplete -# Description: Ignore auto complete flag. Clients will have to manually complete all quests. -# Default: 0 - (Disabled, DB values determine if quest is marked auto complete or not.) -# 1 - (Enabled, clients will not be told to automatically complete any quest.) - -Quests.IgnoreAutoComplete = 0 - -# -# Calendar.DeleteOldEventsHour -# Description: Hour of the day when the daily deletion of old calendar events occurs. -# Range: 0-23 -# Default: 6 - (06:00 AM) - -Calendar.DeleteOldEventsHour = 6 - -# -# Guild.EventLogRecordsCount -# Description: Number of log entries for guild events that are stored per guild. Old entries -# will be overwritten if the number of log entries exceed the configured value. -# High numbers prevent this behavior but may have performance impacts. -# Default: 100 - -Guild.EventLogRecordsCount = 100 - -# -# Guild.ResetHour -# Description: Hour of the day when the daily cap resets occur. -# Range: 0-23 -# Default: 6 - (06:00 AM) - -Guild.ResetHour = 6 - -# -# Guild.BankEventLogRecordsCount -# Description: Number of log entries for guild bank events that are stored per guild. Old -# entries will be overwritten if the number of log entries exceed the -# configured value. High numbers prevent this behavior but may have performance -# impacts. -# Default: 25 - (Minimum) - -Guild.BankEventLogRecordsCount = 25 - -# -# MaxPrimaryTradeSkill -# Description: Maximum number of primary professions a character can learn. -# Range: 0-11 -# Default: 2 - -MaxPrimaryTradeSkill = 2 - -# -# MinPetitionSigns -# Description: Number of required signatures on charters to create a guild. -# Range: 0-9 -# Default: 9 - -MinPetitionSigns = 9 - -# -# MaxGroupXPDistance -# Description: Max distance to creature for group member to get experience at creature -# death. -# Default: 74 - -MaxGroupXPDistance = 74 - -# -# MaxRecruitAFriendBonusDistance -# Description: Max distance between character and and group to gain the Recruit-A-Friend -# XP multiplier. -# Default: 100 - -MaxRecruitAFriendBonusDistance = 100 - -# -# MailDeliveryDelay -# Description: Time (in seconds) mail delivery is delayed when sending items. -# Default: 3600 - (1 hour) - -MailDeliveryDelay = 3600 - -# -# SkillChance.Prospecting -# Description: Allow skill increase from prospecting. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -SkillChance.Prospecting = 0 - -# -# SkillChance.Milling -# Description: Allow skill increase from milling. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -SkillChance.Milling = 0 - -# -# OffhandCheckAtSpellUnlearn -# Description: Unlearning certain spells can change offhand weapon restrictions -# for equip slots. -# Default: 1 - (Recheck offhand slot weapon at unlearning a spell) -# 0 - (Recheck offhand slot weapon only at zone update) - -OffhandCheckAtSpellUnlearn = 1 - -# -# ClientCacheVersion -# Description: Client cache version for client cache data reset. Use any value different -# from DB and not recently been used to trigger client side cache reset. -# Default: 0 - (Use DB value from world DB db_version.cache_id field) - -ClientCacheVersion = 0 - -# -# Event.Announce -# Description: Announce events. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Event.Announce = 0 +Console.Enable = 1 # # BeepAtStart @@ -1273,117 +276,21 @@ BeepAtStart = 1 FlashAtStart = 1 -# -# Server.LoginInfo -# Description: Display core version (.server info) on login. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Server.LoginInfo = 0 - -# -# Command.LookupMaxResults -# Description: Number of results being displayed using a .lookup command. -# Default: 0 - (Unlimited) - -Command.LookupMaxResults = 0 - -# -# AllowTickets -# Description: Allow/disallow sending new tickets. -# Default: 1 - (Enabled) -# 0 - (Disabled) - -AllowTickets = 1 - -# DeletedCharacterTicketTrace -# Description: Keep trace of tickets opened by deleted characters -# gm_ticket.playerGuid will be 0, old GUID and character name -# will be included in gm_ticket.comment -# Default: 0 - (Disabled) -# 1 - (Enabled) - -DeletedCharacterTicketTrace = 0 - -# -# DBC.EnforceItemAttributes -# Disallow overriding item attributes stored in DBC files with values from the database -# Default: 0 - Off, Use DB values -# 1 - On, Enforce DBC Values (default) - -DBC.EnforceItemAttributes = 1 - -# -# AccountInstancesPerHour -# Description: Controls the max amount of different instances player can enter within hour -# Default: 5 - -AccountInstancesPerHour = 5 - -# -# BirthdayTime -# Description: Set to date of project's birth in UNIX time. By default Thu Oct 2, 2008 -# Default: 1222964635 -# -# - -BirthdayTime = 1222964635 - -# -# IsContinentTransport.Enabled -# Description: Controls the continent transport (ships, zeppelins etc..) -# Default: 1 - (Enabled) -# -# - -IsContinentTransport.Enabled = 1 - -# -# IsPreloadedContinentTransport.Enabled -# Description: Should we preload the transport? -# (Not recommended on low-end servers as it consumes 100% more ram) -# and it's not really necessary to be enabled. -# -# Default: 0 - (Disabled) -# -# - -IsPreloadedContinentTransport.Enabled = 0 - # ################################################################################################### ################################################################################################### -# CRYPTOGRAPHY -# -# TOTPMasterSecret -# Description: The key used by authserver to decrypt TOTP secrets from database storage. -# You only need to set this here if you plan to use the in-game 2FA -# management commands (.account 2fa), otherwise this can be left blank. -# -# The server will auto-detect if this does not match your authserver setting, -# in which case any commands reliant on the secret will be disabled. -# -# Default: -# - -TOTPMasterSecret = - -# -################################################################################################### - -################################################################################################### -# UPDATE SETTINGS +# AUTOUPDATER # # Updates.EnableDatabases -# Description: A mask that describes which databases shall be updated. +# Description: A mask that describes which databases should be updated. # # Following flags are available # DATABASE_LOGIN = 1, // Auth database # DATABASE_CHARACTER = 2, // Character database # DATABASE_WORLD = 4, // World database # -# Default: 7 - (All enabled) +# Default: 7 - (All enabled) # 4 - (Enable world only) # 0 - (All disabled) @@ -1438,6 +345,777 @@ Updates.CleanDeadRefMaxCount = 3 # ################################################################################################### +################################################################################################### +# NETWORK +# +# Network.Threads +# Description: Number of threads for network. +# Default: 1 - (Recommended 1 thread per 1000 connections) + +Network.Threads = 1 + +# +# Network.OutKBuff +# Description: Amount of memory (in bytes) used for the output kernel buffer (see SO_SNDBUF +# socket option, TCP manual). +# Default: -1 - (Use system default setting) + +Network.OutKBuff = -1 + +# +# Network.OutUBuff +# Description: Amount of memory (in bytes) reserved in the user space per connection for +# output buffering. +# Default: 65536 + +Network.OutUBuff = 65536 + +# +# Network.TcpNoDelay: +# Description: TCP Nagle algorithm setting. +# Default: 0 - (Enabled, Less traffic, More latency) +# 1 - (Disabled, More traffic, Less latency, TCP_NO_DELAY) + +Network.TcpNodelay = 1 + +# +################################################################################################### + +################################################################################################### +# REMOTE ACCESS +# +# Ra.Enable +# Description: Enable remote console (telnet). +# Default: 0 - (Disabled) +# 1 - (Enabled) + +Ra.Enable = 0 + +# +# Ra.IP +# Description: Bind remote access to IP/hostname. +# Default: "0.0.0.0" - (Bind to all IPs on the system) + +Ra.IP = "0.0.0.0" + +# +# Ra.Port +# Description: TCP port to reach the remote console. +# Default: 3443 + +Ra.Port = 3443 + +# +# Ra.MinLevel +# Description: Required security level to use the remote console. +# Default: 3 + +Ra.MinLevel = 3 + +# +# SOAP.Enable +# Description: Enable soap service +# Default: 0 - (Disabled) +# 1 - (Enabled) + +SOAP.Enabled = 0 + +# +# SOAP.IP +# Description: Bind SOAP service to IP/hostname +# Default: "127.0.0.1" - (Bind to localhost) + +SOAP.IP = "127.0.0.1" + +# +# SOAP.Port +# Description: TCP port to reach the SOAP service. +# Default: 7878 + +SOAP.Port = 7878 + +# +################################################################################################### + +################################################################################################### +# CRYPTOGRAPHY +# +# TOTPMasterSecret +# Description: The key used by authserver to decrypt TOTP secrets from database storage. +# You only need to set this here if you plan to use the in-game 2FA +# management commands (.account 2fa), otherwise this can be left blank. +# +# The server will auto-detect if this does not match your authserver setting, +# in which case any commands reliant on the secret will be disabled. +# +# Default: +# + +TOTPMasterSecret = + +# +################################################################################################### + +################################################################################################### +# PERFORMANCE +# +# ThreadPool +# Description: Number of threads to be used for the global thread pool +# The thread pool is currently used for: +# - Signal handling +# - Remote access +# - Database keep-alive ping +# - Core freeze check +# - World socket networking +# Default: 2 + +ThreadPool = 2 + +# +# UseProcessors +# Description: Processors mask for Windows and Linux based multi-processor systems. +# Example: For a computer with 3 CPUs: +# 1 - 1st CPU only +# 2 - 2nd CPU only +# 4 - 3rd CPU only +# 6 - 2nd + 3rd CPUs, because "2 | 4" -> 6 +# Default: 0 - (Selected by OS) +# 1+ - (Bit mask value of selected processors) + +UseProcessors = 0 + +# +# ProcessPriority +# Description: Process priority setting for Windows based systems. +# Default: 1 - (High) +# 0 - (Normal) + +ProcessPriority = 1 + +# +# Compression +# Description: Compression level for client update packages +# Range: 1-9 +# Default: 1 - (Speed) +# 9 - (Best compression) + +Compression = 1 + +# +################################################################################################### + +################################################################################################### +# LOGGING +# +# PacketLogFile +# Description: Binary packet logging file for the world server. +# Filename extension must be .pkt to be parsable with WowPacketParser. +# Example: "World.pkt" - (Enabled) +# Default: "" - (Disabled) + +PacketLogFile = "" + +# +# LogDB.Opt.ClearInterval +# Description: Time (in minutes) for the WUPDATE_CLEANDB timer that clears the `logs` table +# of old entries. +# Default: 10 - (10 minutes) +# 1+ + +LogDB.Opt.ClearInterval = 10 + +# +# LogDB.Opt.ClearTime +# Description: Time (in seconds) for keeping old `logs` table entries. +# Default: 1209600 - (Enabled, 14 days) +# 0 - (Disabled, Do not clear entries) + +LogDB.Opt.ClearTime = 1209600 + +# +# RecordUpdateTimeDiffInterval +# Description: Time (in milliseconds) update time diff is written to the log file. +# Update diff can be used as a performance indicator. Diff < 300: good +# performance. Diff > 600 bad performance, may be caused by high CPU usage. +# Default: 300000 - (Enabled, 5 minutes) +# 0 - (Disabled) + +RecordUpdateTimeDiffInterval = 300000 + +# +# MinRecordUpdateTimeDiff +# Description: Only record update time diff which is greater than this value. +# Default: 100 + +MinRecordUpdateTimeDiff = 100 + +# +# IPLocationFile +# Description: The path to your IP2Location database CSV file. +# Example: "C:/acore/IP2LOCATION-LITE-DB1.CSV" +# "/home/acore/IP2LOCATION-LITE-DB1.CSV" +# Default: "" - (Disabled) +# + +IPLocationFile = "" + +# +# AllowLoggingIPAddressesInDatabase +# Description: Specifies if IP addresses can be logged to the database +# Default: 1 - (Enabled) +# 0 - (Disabled) +# + +AllowLoggingIPAddressesInDatabase = 1 + +# +# Allow.IP.Based.Action.Logging +# Description: Logs actions, e.g. account login and logout to name a few, based on IP of current session. +# Default: 0 - (Disabled) +# 1 - (Enabled) +# + +Allow.IP.Based.Action.Logging = 0 + +# +# Appender config values: Given an appender "name" +# Appender.name +# Description: Defines 'where to log'. +# Format: Type,LogLevel,Flags,optional1,optional2,optional3 +# +# Type +# 0 - (None) +# 1 - (Console) +# 2 - (File) +# 3 - (DB) +# +# LogLevel +# 0 - (Disabled) +# 1 - (Fatal) +# 2 - (Error) +# 3 - (Warning) +# 4 - (Info) +# 5 - (Debug) +# 6 - (Trace) +# +# Flags: +# 0 - None +# 1 - Prefix Timestamp to the text +# 2 - Prefix Log Level to the text +# 4 - Prefix Log Filter type to the text +# 8 - Append timestamp to the log file name. Format: YYYY-MM-DD_HH-MM-SS +# (Only used with Type = 2) +# 16 - Make a backup of existing file before overwrite +# (Only used with Mode = w) +# +# Colors (read as optional1 if Type = Console) +# Format: "fatal error warn info debug trace" +# 0 - BLACK +# 1 - RED +# 2 - GREEN +# 3 - BROWN +# 4 - BLUE +# 5 - MAGENTA +# 6 - CYAN +# 7 - GREY +# 8 - YELLOW +# 9 - LRED +# 10 - LGREEN +# 11 - LBLUE +# 12 - LMAGENTA +# 13 - LCYAN +# 14 - WHITE +# Example: "1 9 3 6 5 8" +# +# File: Name of the file (read as optional1 if Type = File) +# Allows to use one "%s" to create dynamic files +# +# Mode: Mode to open the file (read as optional2 if Type = File) +# a - (Append) +# w - (Overwrite) +# +# MaxFileSize: Maximum file size of the log file before creating a new log file +# (read as optional3 if Type = File) +# Size is measured in bytes expressed in a 64-bit unsigned integer. +# Maximum value is 4294967295 (4 GB). Leave blank for no limit. +# NOTE: Does not work with dynamic filenames. +# Example: 536870912 (512 MB) +# + +Appender.Console=1,4,0,"1 9 3 6 5 8" +Appender.Server=2,5,0,Server.log,w +# Appender.GM=2,5,15,gm_%s.log +Appender.Errors=2,5,0,Errors.log +# Appender.DB=3,5,0 + +# Logger config values: Given a logger "name" +# Logger.name +# Description: Defines 'What to log' +# Format: LogLevel,AppenderList +# +# LogLevel +# 0 - (Disabled) +# 1 - (Fatal) +# 2 - (Error) +# 3 - (Warning) +# 4 - (Info) +# 5 - (Debug) +# 6 - (Trace) +# +# AppenderList: List of appenders linked to logger +# (Using spaces as separator). +# + +Logger.root=2,Console Server +Logger.commands.gm=4,Console GM +Logger.diff=3,Console Server +Logger.mmaps=4,Server +Logger.scripts.hotswap=4,Console Server +Logger.server=4,Console Server +Logger.sql.sql=2,Console Errors +Logger.sql=4,Console Server +Logger.time.update=4,Console Server +Logger.module=4,Console Server +Logger.spells.scripts=2,Console Errors +#Logger.achievement=4,Console Server +#Logger.addon=4,Console Server +#Logger.ahbot=4,Console Server +#Logger.auctionHouse=4,Console Server +#Logger.autobroadcast=4, Console Server +#Logger.bg.arena=4,Console Server +#Logger.bg.battlefield=4,Console Server +#Logger.bg.battleground=4,Console Server +#Logger.bg.reportpvpafk=4,Console Server +#Logger.calendar=4,Console Server +#Logger.chat.log=4,Console Server +#Logger.chat.log.addon=4,Console Server +#Logger.chat.system=4,Console Server +#Logger.cheat=4,Console Server +#Logger.commands.ra=4,Console Server +#Logger.condition=4,Console Server +#Logger.dbc=4,Console Server +#Logger.disable=4,Console Server +#Logger.entities.dyobject=4,Console Server +#Logger.entities.faction=4,Console Server +#Logger.entities.gameobject=4,Console Server +#Logger.entities.object=4,Console Server +#Logger.entities.pet=4,Console Server +#Logger.entities.player.character=4,Console Server +#Logger.entities.player.dump=4,Console Server +#Logger.entities.player.items=4,Console Server +#Logger.entities.player.loading=4,Console Server +#Logger.entities.player.skills=4,Console Server +#Logger.entities.player=4,Console Server +#Logger.entities.transport=4,Console Server +#Logger.entities.unit.ai=4,Console Server +#Logger.entities.unit=4,Console Server +#Logger.entities.vehicle=4,Console Server +#Logger.gameevent=4,Console Server +#Logger.group=4,Console Server +#Logger.guild=4,Console Server +#Logger.instance.save=4,Console Server +#Logger.instance.script=4,Console Server +#Logger.lfg=4,Console Server +#Logger.loot=4,Console Server +#Logger.mail=4,Console Server +#Logger.maps.script=4,Console Server +#Logger.maps=4,Console Server +#Logger.misc=4,Console Server +#Logger.mmaps.tiles=4,Console Server +#Logger.movement.flightpath=4,Console Server +#Logger.movement.motionmaster=4,Console Server +#Logger.movement.splinechain=4,Console Server +#Logger.movement=4,Console Server +#Logger.network.kick=4,Console Server +#Logger.network.opcode=4,Console Server +#Logger.network.soap=4,Console Server +#Logger.network=4,Console Server +#Logger.outdoorpvp=4,Console Server +#Logger.pool=4,Console Server +#Logger.rbac=4,Console Server +#Logger.reputation=4,Console Server +#Logger.scripts.ai.escortai=4,Console Server +#Logger.scripts.ai.followerai=4,Console Server +#Logger.scripts.ai.petai=4,Console Server +#Logger.scripts.ai.sai=4,Console Server +#Logger.scripts.ai=4,Console Server +#Logger.scripts.cos=4,Console Server +#Logger.scripts=4,Console Server +#Logger.server.authserver=4,Console Server +#Logger.spells.aura.effect.nospell=4,Console Server +#Logger.spells.aura.effect=4,Console Server +#Logger.spells.effect.nospell=4,Console Server +#Logger.spells.effect=4,Console Server +#Logger.spells.scripts=4,Console Server +#Logger.spells=4,Console Server +#Logger.sql.dev=4,Console Server +#Logger.sql.driver=4,Console Server +#Logger.vehicles=4,Console Server +#Logger.warden=4,Console Server +#Logger.weather=4,Console Server + +# +# Log.Async.Enable +# Description: Enables asynchronous message logging. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +Log.Async.Enable = 0 + +# +################################################################################################### + +################################################################################################### +# METRIC +# +# These settings control the statistics sent to the metric database (currently InfluxDB) +# +# Metric.Enable +# Description: Enables statistics sent to the metric database. +# Default: 0 - (Disabled) +# 1 - (Enabled) +# + +Metric.Enable = 0 + +# +# Metric.Interval +# Description: Interval between every batch of data sent in seconds +# Default: 10 seconds +# + +Metric.Interval = 10 + +# +# Metric.ConnectionInfo +# Description: Connection settings for metric database (currently InfluxDB). +# Example: "hostname;port;database" +# Default: "127.0.0.1;8086;worldserver" +# + +Metric.ConnectionInfo = "127.0.0.1;8086;worldserver" + +# +# Metric.OverallStatusInterval +# Description: Interval between every gathering of overall worldserver status data in seconds +# Default: 1 second +# + +Metric.OverallStatusInterval = 1 + +# +# Metric threshold values: Given a metric "name" +# Metric.Threshold.name +# Description: Skips sending statistics with a value lower than the config value. +# If the threshold is commented out, the metric will be ignored. +# Only metrics logged with METRIC_DETAILED_TIMER in the sources are affected. +# Disabled by default. Requires WITH_DETAILED_METRICS CMake flag. +# +# Format: Value as integer +# + +#Metric.Threshold.world_update_sessions_time = 100 +#Metric.Threshold.worldsession_update_opcode_time = 50 + +# +################################################################################################### + +################################################################################################### +# SERVER +# +# BirthdayTime +# Description: Set to date of project's birth in UNIX time. By default Thu Oct 2, 2008 +# Default: 1222964635 + +BirthdayTime = 1222964635 + +# +# PlayerLimit +# Description: Maximum number of players in the world. Excluding Mods, GMs and Admins. +# Important: If you want to block players and only allow Mods, GMs or Admins to join the +# server, use the DB field "auth.realmlist.allowedSecurityLevel". +# Default: 1000 - (Enabled) +# 1+ - (Enabled) +# 0 - (Disabled, No limit) + +PlayerLimit = 1000 + +# +# World.RealmAvailability +# Description: If enabled, players will enter the realm normally. +# Character creation will still be possible even when realm is disabled. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +World.RealmAvailability = 1 + +# +# GameType +# Description: Server realm type. +# Default: 0 - (NORMAL) +# 1 - (PVP) +# 4 - (NORMAL) +# 6 - (RP) +# 8 - (RPPVP) +# 16 - (FFA_PVP, Free for all PvP mode like arena PvP in all zones except rest +# activated places and sanctuaries) + +GameType = 0 + +# +# RealmZone +# Description: Server realm zone. Set allowed alphabet in character, etc. names. +# Default 1 - (Development - any language) +# 2 - (United States - extended-Latin) +# 3 - (Oceanic - extended-Latin) +# 4 - (Latin America - extended-Latin) +# 5 - (Tournament - basic-Latin at create, any at login) +# 6 - (Korea - East-Asian) +# 7 - (Tournament - basic-Latin at create, any at login) +# 8 - (English - extended-Latin) +# 9 - (German - extended-Latin) +# 10 - (French - extended-Latin) +# 11 - (Spanish - extended-Latin) +# 12 - (Russian - Cyrillic) +# 13 - (Tournament - basic-Latin at create, any at login) +# 14 - (Taiwan - East-Asian) +# 15 - (Tournament - basic-Latin at create, any at login) +# 16 - (China - East-Asian) +# 17 - (CN1 - basic-Latin at create, any at login) +# 18 - (CN2 - basic-Latin at create, any at login) +# 19 - (CN3 - basic-Latin at create, any at login) +# 20 - (CN4 - basic-Latin at create, any at login) +# 21 - (CN5 - basic-Latin at create, any at login) +# 22 - (CN6 - basic-Latin at create, any at login) +# 23 - (CN7 - basic-Latin at create, any at login) +# 24 - (CN8 - basic-Latin at create, any at login) +# 25 - (Tournament - basic-Latin at create, any at login) +# 26 - (Test Server - any language) +# 27 - (Tournament - basic-Latin at create, any at login) +# 28 - (QA Server - any language) +# 29 - (CN9 - basic-Latin at create, any at login) + +RealmZone = 1 + +# +# DBC.Locale +# Description: DBC language settings. +# Default: 255 - (Auto Detect) +# 0 - (English) +# 1 - (Korean) +# 2 - (French) +# 3 - (German) +# 4 - (Chinese) +# 5 - (Taiwanese) +# 6 - (Spanish) +# 7 - (Spanish Mexico) +# 8 - (Russian) + +DBC.Locale = 255 + +# +# Expansion +# Description: Allow server to use content from expansions. Checks for expansion-related +# map files, client compatibility and class/race character creation. +# Default: 2 - (Expansion 2) +# 1 - (Expansion 1) +# 0 - (Disabled, Ignore and disable expansion content (maps, races, classes) + +Expansion = 2 + +# +# ClientCacheVersion +# Description: Client cache version for client cache data reset. Use any value different +# from DB and not recently been used to trigger client side cache reset. +# Default: 0 - (Use DB value from world DB db_version.cache_id field) + +ClientCacheVersion = 0 + +# +# SessionAddDelay +# Description: Time (in microseconds) that a network thread will sleep after authentication +# protocol handling before adding a connection to the world session map. +# Default: 10000 - (10 milliseconds, 0.01 second) + +SessionAddDelay = 10000 + +# +# CloseIdleConnections +# Description: Automatically close idle connections. +# SocketTimeOutTime and SocketTimeOutTimeActive determine when a connection is considered as idle. +# Default: 1 - (enable, Automatically close idle connections) +# 0 - (disable, Do not close idle connections) + +CloseIdleConnections = 1 + +# +# SocketTimeOutTime +# Description: Time (in milliseconds) after which a connection being idle on the character +# selection screen is disconnected. +# Default: 900000 - (15 minutes) + +SocketTimeOutTime = 900000 + +# +# SocketTimeOutTimeActive +# Description: Time (in milliseconds) after which an idle connection is dropped while +# logged into the world. +# The client sends keepalive packets every 30 seconds. Values <= 30s are not recommended. +# Default: 60000 - (1 minute) + +SocketTimeOutTimeActive = 60000 + +# +# MaxOverspeedPings +# Description: Maximum overspeed ping count before character is disconnected. +# Default: 2 - (Enabled, Minimum value) +# 3+ - (Enabled, More checks before kick) +# 0 - (Disabled) + +MaxOverspeedPings = 2 + +# +# DisconnectToleranceInterval +# Description: Allows to skip queue after being disconnected for a given number of seconds. +# Default: 0 + +DisconnectToleranceInterval = 0 + +# +# EnableLoginAfterDC +# Description: After not logging out properly (clicking Logout and waiting 20 seconds), +# characters stay in game world for a full minute, even if the client connection was closed. +# Such behaviour prevents for example exploiting boss encounters by alt+f4 +# and skipping crucial boss abilities, or escaping opponents in PvP. +# This setting is used to allow/disallow players to log back into characters that are left in world. +# Default: 1 - (by clicking "Enter World" player will log back into a character that is already in world) +# 0 - (by clicking "Enter World" player will get an error message when trying to log into a character +# that is left in world, and has to wait a minute for the character to be removed from world) + +EnableLoginAfterDC = 1 + +# +# MinWorldUpdateTime +# Description: Minimum time (milliseconds) between world update ticks (for mostly idle servers). +# Default: 1 - (0.001 second) + +MinWorldUpdateTime = 1 + +# +# UpdateUptimeInterval +# Description: Update realm uptime period (in minutes). +# Default: 10 - (10 minutes) +# 1+ + +UpdateUptimeInterval = 1 + +# +# MaxCoreStuckTime +# Description: Time (in seconds) before the server is forced to crash if it is frozen. +# FreezeDetector +# Default: 0 - (Disabled) +# 10+ - (Enabled, Recommended 30+) +# Note: If enabled and the setting is too low, it can cause unexpected crash. + +MaxCoreStuckTime = 0 + +# +# SaveRespawnTimeImmediately +# Description: Save respawn time for creatures at death and gameobjects at use/open. +# Default: 1 - (Enabled, Save respawn time immediately) +# 0 - (Disabled, Save respawn time at grid unloading) + +SaveRespawnTimeImmediately = 1 + +# +# Server.LoginInfo +# Description: Display core version (.server info) on login. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +Server.LoginInfo = 0 + +# +# ShowKickInWorld +# Description: Determines whether a message is broadcast to the entire server when a +# player gets kicked +# Default: 0 - (Disabled) +# 1 - (Enabled) + +ShowKickInWorld = 0 + +# +# ShowMuteInWorld +# Description: Determines whether a message is broadcast to the entire server when a +# player gets muted. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +ShowMuteInWorld = 0 + +# +# ShowBanInWorld +# Description: Determines whether a message is broadcast to the entire server when a +# player gets banned. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +ShowBanInWorld = 0 + +# +# MaxWhoListReturns +# Description: Set the max number of players returned in the /who list and interface. +# Default: 49 - (stable) + +MaxWhoListReturns = 49 + +# +# PreventAFKLogout +# Description: Prevent players AFK from being logged out +# Default: 0 - (Disabled) +# 1 - (Enabled, prevent players AFK from being logged out in Sanctuary zones) +# 2 - (Enabled, prevent players AFK from being logged out in all zones) + +PreventAFKLogout = 0 + +# +################################################################################################### + +################################################################################################### +# PACKET SPOOF PROTECTION SETTINGS +# +# These settings determine which action to take when harmful packet spoofing is detected. +# +# PacketSpoof.Policy +# Description: Determines the course of action when packet spoofing is detected. +# Values: 0 - Log only +# 1 - Log + kick +# 2 - Log + kick + ban + +PacketSpoof.Policy = 1 + +# +# PacketSpoof.BanMode +# Description: If PacketSpoof.Policy equals 2, this will determine the ban mode. +# Values: 0 - Ban Account +# 1 - Ban IP +# Note: Banning by character not supported for logical reasons. +# + +PacketSpoof.BanMode = 0 + +# +# PacketSpoof.BanDuration +# Description: Duration of the ban in seconds. Only valid if PacketSpoof.Policy is set to 2. +# Set to 0 for permanent ban. +# Default: 86400 seconds (1 day) +# + +PacketSpoof.BanDuration = 86400 + +# +################################################################################################### + ################################################################################################### # WARDEN SETTINGS # @@ -1514,125 +1192,1578 @@ Warden.BanDuration = 259200 ################################################################################################### ################################################################################################### -# PLAYER INTERACTION +# AUTO BROADCAST # -# AllowTwoSide.Accounts -# Description: Allow creating characters of both factions on the same account. -# Default: 1 - (Enabled) -# 0 - (Disabled) - -AllowTwoSide.Accounts = 1 - -# -# AllowTwoSide.Interaction.Calendar -# Description: Allow calendar invites between factions. +# AutoBroadcast.On +# Description: Enable auto broadcast. # Default: 0 - (Disabled) # 1 - (Enabled) -AllowTwoSide.Interaction.Calendar = 0 +AutoBroadcast.On = 0 # -# AllowTwoSide.Interaction.Chat -# Description: Allow say chat between factions. -# Default: 0 - (Disabled) -# 1 - (Enabled) +# AutoBroadcast.Center +# Description: Auto broadcasting display method. +# Default: 0 - (Announce) +# 1 - (Notify) +# 2 - (Both) -AllowTwoSide.Interaction.Chat = 0 +AutoBroadcast.Center = 0 # -# AllowTwoSide.Interaction.Emote -# Description: Allow emote messages between factions (e.g. "/e looks into the sky") -# Default: 0 - (Disabled) -# 1 - (Enabled) +# AutoBroadcast.Timer +# Description: Timer (in milliseconds) for auto broadcasts. +# Default: 60000 - (60 seconds) -AllowTwoSide.Interaction.Emote = 0 +AutoBroadcast.Timer = 60000 # -# AllowTwoSide.Interaction.Channel -# Description: Allow channel chat between factions. -# Default: 0 - (Disabled) -# 1 - (Enabled) +# AutoBroadcast.MinDisableLevel +# Description: Minimum level required to disable autobroadcast announcements if EnablePlayerSettings option is enabled. +# Default: 0 - (Not allowed to disable it) -AllowTwoSide.Interaction.Channel = 0 - -# -# AllowTwoSide.Interaction.Group -# Description: Allow group joining between factions. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllowTwoSide.Interaction.Group = 0 - -# -# AllowTwoSide.Interaction.Guild -# Description: Allow guild joining between factions. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllowTwoSide.Interaction.Guild = 0 - -# -# AllowTwoSide.Interaction.Arena -# Description: Allow joining arena teams between factions. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllowTwoSide.Interaction.Arena = 0 - -# -# AllowTwoSide.Interaction.Auction -# Description: Allow auctions between factions. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllowTwoSide.Interaction.Auction = 0 - -# -# AllowTwoSide.Interaction.Mail -# Description: Allow sending mails between factions. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllowTwoSide.Interaction.Mail = 0 - -# -# AllowTwoSide.WhoList -# Description: Show characters from both factions in the /who list. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllowTwoSide.WhoList = 0 - -# -# AllowTwoSide.AddFriend -# Description: Allow adding friends from other faction the friends list. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllowTwoSide.AddFriend = 0 - -# -# AllowTwoSide.Trade -# Description: Allow trading between factions. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AllowTwoSide.Trade = 0 - -# -# TalentsInspecting -# Description: Allow inspecting characters from the opposing faction. -# Doesn't affect characters in gamemaster mode. -# Default: 1 - (Enabled) -# 0 - (Disabled) - -TalentsInspecting = 1 +AutoBroadcast.MinDisableLevel = 0 # ################################################################################################### ################################################################################################### -# CREATURE SETTINGS +# VISIBILITY AND DISTANCES +# +# Visibility.GroupMode +# Description: Group visibility modes. Defines which groups can aways detect invisible +# characters of the same raid, group or faction. +# Default: 1 - (Raid) +# 0 - (Party) +# 2 - (Faction) + +Visibility.GroupMode = 1 + +# +# Visibility.Distance.Continents +# Visibility.Distance.Instances +# Visibility.Distance.BGArenas +# Description: Visibility distance to see other players or gameobjects. +# Visibility on continents on retail ~90 yards. In BG/Arenas ~180. +# For instances default ~120. +# Max limited by active player zone: ~ 333 +# Min limit is max aggro radius (45) * Rate.Creature.Aggro +# Default: 90 - (Visibility.Distance.Continents) +# 120 - (Visibility.Distance.Instances) +# 180 - (Visibility.Distance.BGArenas) + +Visibility.Distance.Continents = 90 +Visibility.Distance.Instances = 120 +Visibility.Distance.BGArenas = 180 + +# +# Visibility.Notify.Period.OnContinents +# Visibility.Notify.Period.InInstances +# Visibility.Notify.Period.InBGArenas +# Description: Time (in milliseconds) for visibility update period. Lower values may have +# performance impact. +# Default: 1000 - (Visibility.Notify.Period.OnContinents) +# 1000 - (Visibility.Notify.Period.InInstances) +# 1000 - (Visibility.Notify.Period.InBGArenas) + +Visibility.Notify.Period.OnContinents = 1000 +Visibility.Notify.Period.InInstances = 1000 +Visibility.Notify.Period.InBGArenas = 1000 + +# +# Visibility.ObjectSparkles +# Description: Whether or not to display sparkles on gameobjects related to active quests. +# Default: 1 - (Show Sparkles) +# 0 - (Hide Sparkles) + +Visibility.ObjectSparkles = 1 + +# +# Visibility.ObjectQuestMarkers +# Description: Show quest icons above game objects in the same way as creature quest givers. +# Default: 1 - (Show quest markers, post patch 2.3 behavior) +# 0 - (Hide quest markers, pre patch 2.3 behavior) + +Visibility.ObjectQuestMarkers = 1 + +# +################################################################################################### + +################################################################################################### +# MAPS +# +# MapUpdateInterval +# Description: Time (milliseconds) for map update interval. +# Default: 10 - (0.01 second) + +MapUpdateInterval = 10 + +# +# MapUpdate.Threads +# Description: Number of threads to update maps. +# Default: 1 + +MapUpdate.Threads = 1 + +# +# MoveMaps.Enable +# Description: Enable/Disable pathfinding using mmaps - recommended. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +MoveMaps.Enable = 1 + +# +# vmap.enableLOS +# vmap.enableHeight +# Description: VMmap support for line of sight and height calculation. +# Default: 1 - (Enabled, vmap.enableLOS) +# 1 - (Enabled, vmap.enableHeight) +# 0 - (Disabled) + +vmap.enableLOS = 1 +vmap.enableHeight = 1 + +# +# vmap.petLOS +# Description: Check line of sight for pets, to avoid them attacking through walls. +# Default: 1 - (Enabled, each pet attack will be checked for line of sight) +# 0 - (Disabled, somewhat less CPU usage) + +vmap.petLOS = 1 + +# vmap.BlizzlikePvPLOS +# Description: Check line of sight for battleground and arena gameobjects and other doodads (such as WSG treestumps). +# Default: 1 - (Enabled, players will be able to fire spells through treestumps and other objects). +# 0 - (Disabled, players will NOT be able to fire spells through treestumps and other objects). + +vmap.BlizzlikePvPLOS = 1 + +# +# vmap.enableIndoorCheck +# Description: VMap based indoor check to remove outdoor-only auras (mounts etc.). +# Default: 1 - (Enabled) +# 0 - (Disabled, somewhat less CPU usage) + +vmap.enableIndoorCheck = 1 + +# +# DetectPosCollision +# Description: Check final move position, summon position, etc for visible collision with +# other objects or walls (walls only if vmaps are enabled). +# Default: 1 - (Enabled) +# 0 - (Disabled, Less position precision but less CPU usage) + +DetectPosCollision = 1 + +# +# CheckGameObjectLoS +# Description: Include dynamic game objects (doors, chests etc.) in line of sight checks. +# This increases CPU usage somewhat. +# Default: 1 - (Enabled) +# 0 - (Disabled, may break some boss encounters) + +CheckGameObjectLoS = 1 + +# +# TargetPosRecalculateRange +# Description: Max distance from movement target point (+moving unit size) and targeted +# object (+size) after that new target movement point calculated. +# Range: 0.5-5.0 +# Default: 1.5 +# 0.5 - (Minimum, Contact Range, More sensitive reaction to target movement) +# 5.0 - (Maximum, Melee attack range, Less CPU usage) + +TargetPosRecalculateRange = 1.5 + +# +# PreloadAllNonInstancedMapGrids +# Description: Preload all grids on all non-instanced maps. This will take a great amount +# of additional RAM (ca. 9 GB) and causes the server to take longer to start, +# but can increase performance if used on a server with a high amount of players. +# It will also activate all creatures which are set active (e.g. the Fel Reavers +# in Hellfire Peninsula) on server start. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +PreloadAllNonInstancedMapGrids = 0 + +# +# SetAllCreaturesWithWaypointMovementActive +# Description: Set all creatures with waypoint movement active. This means that they will start +# movement once they are loaded (which happens on grid load) and keep moving even +# when no player is near. This will increase CPU usage significantly and can be +# used with enabled "PreloadAllNonInstancedMapGrids" to start waypoint movement on +# server startup. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +SetAllCreaturesWithWaypointMovementActive = 0 + +# +# DontCacheRandomMovementPaths +# Description: Random movement paths (calculated using MoveMaps) can be cached to save cpu time, +# but this may use up considerable amount of memory and can be prevented by setting this option to 1. +# Recommended setting for populated servers is having enough RAM and setting this to 0. +# Default: 0 - (cache paths, uses more memory) +# 1 - (don't cache, uses more cpu) + +DontCacheRandomMovementPaths = 0 + +# +################################################################################################### + +################################################################################################### +# WEATHER +# +# ActivateWeather +# Description: Activate the weather system. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +ActivateWeather = 1 + +# +# ChangeWeatherInterval +# Description: Time (in milliseconds) for weather update interval. +# Default: 600000 - (10 min) + +ChangeWeatherInterval = 600000 + +# +################################################################################################### + +################################################################################################### +# TICKETS +# +# AllowTickets +# Description: Allow/disallow sending new tickets. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +AllowTickets = 1 + +# +# LevelReq.Ticket +# Description: Level requirement for characters to be able to write tickets. +# Default: 1 + +LevelReq.Ticket = 1 + +# DeletedCharacterTicketTrace +# Description: Keep trace of tickets opened by deleted characters +# gm_ticket.playerGuid will be 0, old GUID and character name +# will be included in gm_ticket.comment +# Default: 0 - (Disabled) +# 1 - (Enabled) + +DeletedCharacterTicketTrace = 0 + +# +################################################################################################### + +################################################################################################### +# COMMAND +# +# AllowPlayerCommands +# Description: Allow players to use commands. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +AllowPlayerCommands = 1 + +# +# Command.LookupMaxResults +# Description: Number of results being displayed using a .lookup command. +# Default: 0 - (Unlimited) + +Command.LookupMaxResults = 0 + +# +# Die.Command.Mode +# Description: Do not trigger things like loot from .die command. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +Die.Command.Mode = 1 + +# +################################################################################################### + +################################################################################################### +# # +# SERVER SYSTEM SETTINGS END # +# # +################################################################################################### + +################################################################################################### +# # +# GAME SETTINGS BEGIN # +# # +################################################################################################### + +################################################################################################### +# GAME MASTER +# +# GM.LoginState +# Description: GM mode at login. +# Default: 2 - (Last save state) +# 0 - (Disable) +# 1 - (Enable) + +GM.LoginState = 2 + +# +# GM.Visible +# Description: GM visibility at login. +# Default: 2 - (Last save state) +# 0 - (Invisible) +# 1 - (Visible) + +GM.Visible = 2 + +# +# GM.Chat +# Description: GM chat mode at login. +# Default: 2 - (Last save state) +# 0 - (Disable) +# 1 - (Enable) + +GM.Chat = 2 + +# +# GM.WhisperingTo +# Description: Is GM accepting whispers from player by default or not. +# Default: 2 - (Last save state) +# 0 - (Disable) +# 1 - (Enable) + +GM.WhisperingTo = 2 + +# +# GM.InGMList.Level +# Description: Maximum GM level shown in GM list (if enabled) in non-GM state (.gm off). +# Default: 3 - (Anyone) +# 0 - (Only players) +# 1 - (Only moderators) +# 2 - (Only gamemasters) + +GM.InGMList.Level = 3 + +# +# GM.InWhoList.Level +# Description: Max GM level showed in who list (if visible). +# Default: 3 - (Anyone) +# 0 - (Only players) +# 1 - (Only moderators) +# 2 - (Only gamemasters) + +GM.InWhoList.Level = 3 + +# +# GM.StartLevel +# Description: GM character starting level. +# Default: 1 + +GM.StartLevel = 1 + +# +# GM.AllowInvite +# Description: Allow players to invite GM characters. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +GM.AllowInvite = 0 + +# +# GM.AllowFriend +# Description: Allow players to add GM characters to their friends list. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +GM.AllowFriend = 0 + +# +# GM.LowerSecurity +# Description: Allow lower security levels to use commands on higher security level +# characters. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +GM.LowerSecurity = 0 + +# +# GM.TicketSystem.ChanceOfGMSurvey +# Description: Chance of sending a GM survey after ticket completion. +# Default: 50 - (Enabled) +# 0 - (Disabled) + +GM.TicketSystem.ChanceOfGMSurvey = 50 + +# +################################################################################################### + +################################################################################################### +# CHEAT +# +# DisableWaterBreath +# Description: Required security level for water breathing. +# Default: 4 - (Disabled) +# 0 - (Enabled, Everyone) +# 1 - (Enabled, Mods/GMs/Admins) +# 2 - (Enabled, GMs/Admins) +# 3 - (Enabled, Admins) + +DisableWaterBreath = 4 + +# +# AllFlightPaths +# Description: Character knows all flight paths (of both factions) after creation. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllFlightPaths = 0 + +# +# InstantFlightPaths +# Description: Flight paths will take players to their destination instantly instead +# of making them wait while flying. +# Default: 0 - (Disabled) +# 1 - (Enabled) +# 2 - (Enabled, but the player can toggle instant flight off or on at each flight master) + +InstantFlightPaths = 0 + +# +# AlwaysMaxSkillForLevel +# Description: Players will automatically gain max skill level when logging in or leveling +# up. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AlwaysMaxSkillForLevel = 0 + +# +# AlwaysMaxWeaponSkill +# Description: Players will automatically gain max weapon/defense skill when logging in, +# or leveling. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AlwaysMaxWeaponSkill = 0 + +# +# PlayerStart.AllReputation +# Description: Players will start with most of the high level reputations that are needed +# for items, mounts etc. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +PlayerStart.AllReputation = 0 + +# +# PlayerStart.CustomSpells +# Description: If enabled, players will start with custom spells defined in +# playercreateinfo_spell_custom table. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +PlayerStart.CustomSpells = 0 + +# +# PlayerStart.MapsExplored +# Description: Characters start with all maps explored. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +PlayerStart.MapsExplored = 0 + +# +# InstantLogout +# Description: Required security level for instantly logging out everywhere. +# Does not work while in combat, dueling or falling. +# Default: 1 - (Enabled, Mods/GMs/Admins) +# 0 - (Enabled, Everyone) +# 2 - (Enabled, GMs/Admins) +# 3 - (Enabled, Admins) +# 4 - (Disabled) + +InstantLogout = 1 + +# +# CastUnstuck +# Description: Allow casting the Unstuck spell using .start or unstuck button in client +# help options. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +CastUnstuck = 1 + +# +################################################################################################### + +################################################################################################### +# CHARACTER DATABASE +# +# PlayerSaveInterval +# Description: Time (in milliseconds) for player save interval. +# Default: 900000 - (15 min) + +PlayerSaveInterval = 900000 + +# +# PlayerSave.Stats.MinLevel +# Description: Minimum level for saving character stats in the database for external usage. +# Default: 0 - (Disabled, Do not save character stats) +# 1+ - (Enabled, Level beyond which character stats are saved) + +PlayerSave.Stats.MinLevel = 0 + +# +# PlayerSave.Stats.SaveOnlyOnLogout +# Description: Save player stats only on logout. +# Default: 1 - (Enabled, Only save on logout) +# 0 - (Disabled, Save on every player save) + +PlayerSave.Stats.SaveOnlyOnLogout = 1 + +# +# CleanCharacterDB +# Description: Clean out deprecated achievements, skills, spells and talents from the db. +# Default: 0 - (Disabled) +# 1 - (Enable) + +CleanCharacterDB = 0 + +# +# PersistentCharacterCleanFlags +# Description: Determines the character clean flags that remain set after cleanups. +# This is a bitmask value, you can use one of the following values: +# +# CLEANING_FLAG_ACHIEVEMENT_PROGRESS = 0x1 +# CLEANING_FLAG_SKILLS = 0x2 +# CLEANING_FLAG_SPELLS = 0x4 +# CLEANING_FLAG_TALENTS = 0x8 +# CLEANING_FLAG_QUESTSTATUS = 0x10 +# +# Before use this feature, make a backup of your database. +# +# Example: 14 - (CLEANING_FLAG_SKILLS + CLEANING_FLAG_SPELLS + CLEANING_FLAG_TALENTS +# 2+4+8 => 14. This will clean up skills, talents and spells will +# remain enabled after the next cleanup) +# Default: 0 - (All cleanup methods will be disabled after the next cleanup) + +PersistentCharacterCleanFlags = 0 + +# +################################################################################################### + +################################################################################################### +# CHARACTER DELETE +# +# CharDelete.Method +# Description: Character deletion behavior. +# Default: 0 - (Completely remove character from the database) +# 1 - (Unlink the character from account and free up the name, Appears as +# deleted ingame) + +CharDelete.Method = 0 + +# +# CharDelete.MinLevel +# Description: Required level to use the unlinking method if enabled. +# Default: 0 - (Same method for every level) +# 1+ - (Only characters with the specified level will use the unlinking method) + +CharDelete.MinLevel = 0 + +# +# CharDelete.KeepDays +# Description: Time (in days) before unlinked characters will be removed from the database. +# Default: 30 - (Enabled) +# 0 - (Disabled, Don't delete any characters) + +CharDelete.KeepDays = 30 + +# +################################################################################################### + +################################################################################################### +# CHARACTER CREATION +# +# MinPlayerName +# Description: Minimal player name length. +# Range: 1-12 +# Default: 2 + +MinPlayerName = 2 + +# +# MinPetName +# Description: Minimal pet name length. +# Range: 1-12 +# Default: 2 + +MinPetName = 2 + +# +# DeclinedNames +# Description: Allow Russian clients to set and use declined names. +# Default: 0 - (Disabled, Except when the Russian RealmZone is set) +# 1 - (Enabled) + +DeclinedNames = 0 + +# +# StrictNames.Reserved +# Description: Use the Reserved Filter from DBC. +# Prevents Player, Pet & Charter names from containing reserved names. +# Default: 1 - Enabled +# 0 - Disabled + +StrictNames.Reserved = 1 + +# +# StrictNames.Profanity +# Description: Use the Profanity Filter from DBC. +# Prevents Player, Pet & Charter names from containing profanity. +# Default: 1 - Enabled +# 0 - Disabled + +StrictNames.Profanity = 1 + +# +# StrictPlayerNames +# Description: Limit player name to language specific symbol set. Prevents character +# creation and forces rename request if not allowed symbols are used +# Default: 0 - (Disable, Limited server timezone dependent client check) +# 1 - (Enabled, Strictly basic Latin characters) +# 2 - (Enabled, Strictly realm zone specific, See RealmZone setting, +# Note: Client needs to have the appropriate fonts installed which support +# the charset. For non-official localization, custom fonts need to be +# placed in clientdir/Fonts.) +# 3 - (Enabled, Basic Latin characters + server timezone specific) + +StrictPlayerNames = 0 + +# +# StrictPetNames +# Description: Limit pet names to language specific symbol set. +# Prevents pet naming if not allowed symbols are used. +# Default: 0 - (Disable, Limited server timezone dependent client check) +# 1 - (Enabled, Strictly basic Latin characters) +# 2 - (Enabled, Strictly realm zone specific, See RealmZone setting, +# Note: Client needs to have the appropriate fonts installed which support +# the charset. For non-official localization, custom fonts need to be +# placed in clientdir/Fonts.) +# 3 - (Enabled, Basic Latin characters + server timezone specific) + +StrictPetNames = 0 + +# +# CharacterCreating.Disabled +# Description: Disable character creation for players based on faction. +# Default: 0 - (Enabled, All factions are allowed) +# 1 - (Disabled, Alliance) +# 2 - (Disabled, Horde) +# 3 - (Disabled, Both factions) + +CharacterCreating.Disabled = 0 + +# +# CharacterCreating.Disabled.RaceMask +# Description: Mask of races which cannot be created by players. +# Example: 1536 - (1024 + 512, Blood Elf and Draenei races are disabled) +# Default: 0 - (Enabled, All races are allowed) +# 1 - (Disabled, Human) +# 2 - (Disabled, Orc) +# 4 - (Disabled, Dwarf) +# 8 - (Disabled, Night Elf) +# 16 - (Disabled, Undead) +# 32 - (Disabled, Tauren) +# 64 - (Disabled, Gnome) +# 128 - (Disabled, Troll) +# 512 - (Disabled, Blood Elf) +# 1024 - (Disabled, Draenei) + +CharacterCreating.Disabled.RaceMask = 0 + +# +# CharacterCreating.Disabled.ClassMask +# Description: Mask of classes which cannot be created by players. +# Example: 288 - (32 + 256, Death Knight and Warlock classes are disabled) +# Default: 0 - (Enabled, All classes are allowed) +# 1 - (Disabled, Warrior) +# 2 - (Disabled, Paladin) +# 4 - (Disabled, Hunter) +# 8 - (Disabled, Rogue) +# 16 - (Disabled, Priest) +# 32 - (Disabled, Death Knight) +# 64 - (Disabled, Shaman) +# 128 - (Disabled, Mage) +# 256 - (Disabled, Warlock) +# 1024 - (Disabled, Druid) + +CharacterCreating.Disabled.ClassMask = 0 + +# +# CharactersPerAccount +# Description: Limit number of characters per account on all realms on this realmlist. +# Important: Number must be >= CharactersPerRealm +# Default: 50 + +CharactersPerAccount = 50 + +# +# CharactersPerRealm +# Description: Limit number of characters per account on this realm. +# Range: 1-10 +# Default: 10 - (Client limitation) + +CharactersPerRealm = 10 + +# +# HeroicCharactersPerRealm +# Description: Limit number of heroic class characters per account on this realm. +# Range: 1-10 +# Default: 1 + +HeroicCharactersPerRealm = 1 + +# +# CharacterCreating.MinLevelForHeroicCharacter +# Description: Limit creating heroic characters only for account with another +# character of specific level (ignored for GM accounts) +# Default: 55 - (Enabled, Requires at least another level 55 character) +# 0 - (Disabled) +# 1 - (Enabled, Requires at least another level 1 character) + +CharacterCreating.MinLevelForHeroicCharacter = 55 + +# +# StartPlayerLevel +# Description: Starting level for characters after creation. +# Range: 1-MaxPlayerLevel +# Default: 1 + +StartPlayerLevel = 1 + +# +# StartHeroicPlayerLevel +# Description: Staring level for heroic class characters after creation. +# Range: 1-MaxPlayerLevel +# Default: 55 + +StartHeroicPlayerLevel = 55 + +# +# SkipCinematics +# Description: Disable cinematic intro at first login after character creation. +# Prevents buggy intros in case of custom start location coordinates. +# Default: 0 - (Show intro for each new character) +# 1 - (Show intro only for first character of selected race) +# 2 - (Disable intro for all classes) + +SkipCinematics = 0 + +# +# StartPlayerMoney +# Description: Amount of money (in Copper) that a character has after creation. +# Default: 0 +# 100 - (1 Silver) + +StartPlayerMoney = 0 + +# +# StartHeroicPlayerMoney +# Description: Amount of money (in Copper) that heroic class characters have after creation. +# Default: 2000 +# 2000 - (20 Silver) + +StartHeroicPlayerMoney = 2000 + +# +# PlayerStart.String +# Description: String to be displayed at first login of newly created characters. +# Default: "" - (Disabled) + +PlayerStart.String = "" + +# +################################################################################################### + +################################################################################################### +# CHARACTER +# +# EnablePlayerSettings +# Description: Enables the usage of character specific settings. +# Default: 0 - Disabled +# 1 - Enabled + +EnablePlayerSettings = 0 + +# +# MaxPlayerLevel +# Description: Maximum level that can be reached by players. +# Important: Levels beyond 100 are not recommended at all. +# Range: 1-255 +# Default: 80 + +MaxPlayerLevel = 80 + +# +# MinDualSpecLevel +# Description: Level requirement for Dual Talent Specialization +# Default: 40 + +MinDualSpecLevel = 40 + +# +# WaterBreath.Timer +# Description: The timer for player's breath underwater in milliseconds +# Default: 180000 (3 minutes) +# + +WaterBreath.Timer = 180000 + +# +# EnableLowLevelRegenBoost +# Description: Greatly increase Health and Mana regen rates for players under level 15 (Added in patch 3.3) +# Default: 1 - Enabled +# 0 - Disabled +# + +EnableLowLevelRegenBoost = 1 + +# +# Rate.MoveSpeed +# Description: Movement speed rate. +# Default: 1 + +Rate.MoveSpeed = 1 + +# +# Rate.Damage.Fall +# Description: Damage after fall rate. +# Default: 1 + +Rate.Damage.Fall = 1 + +# +# Rate.Talent +# Description: Talent point rate. +# Default: 1 + +Rate.Talent = 1 + +# +# Rate.Health +# Rate.Mana +# Rate.Rage.Income +# Rate.Rage.Loss +# Rate.RunicPower.Income +# Rate.RunicPower.Loss +# Rate.Focus +# Rate.Energy +# Rate.Loyalty +# Description: Multiplier to configure health, mana, incoming rage, loss of rage, focus +# energy and loyalty increase or decrease. +# Default: 1 - (Rate.Health) +# 1 - (Rate.Mana) +# 1 - (Rate.Rage.Income) +# 1 - (Rate.Rage.Loss) +# 1 - (Rate.RunicPower.Income) +# 1 - (Rate.RunicPower.Loss) +# 1 - (Rate.Focus) +# 1 - (Rate.Energy) +# 1 - (Rate.Loyalty) + +Rate.Health = 1 +Rate.Mana = 1 +Rate.Rage.Income = 1 +Rate.Rage.Loss = 1 +Rate.RunicPower.Income = 1 +Rate.RunicPower.Loss = 1 +Rate.Focus = 1 +Rate.Energy = 1 +Rate.Loyalty = 1 + +# +# Rate.Rest.InGame +# Rate.Rest.Offline.InTavernOrCity +# Rate.Rest.Offline.InWilderness +# Description: Resting points grow rates. +# Default: 1 - (Rate.Rest.InGame) +# 1 - (Rate.Rest.Offline.InTavernOrCity) +# 1 - (Rate.Rest.Offline.InWilderness) + +Rate.Rest.InGame = 1 +Rate.Rest.Offline.InTavernOrCity = 1 +Rate.Rest.Offline.InWilderness = 1 + +# +# Rate.MissChanceMultiplier.Creature +# Rate.MissChanceMultiplier.Player +# Rate.MissChanceMultiplier.OnlyAffectsPlayer +# +# Description: When the target is 3 or more level higher than the player, +# the chance to hit is determined by the formula: 94 - (levelDiff - 2) * Rate.MissChanceMultiplier +# The higher the Rate.MissChanceMultiplier constant, the higher is the chance to miss. +# +# Note: this does not affect when the player is less than 3 levels different than the target, +# where this (linear) formula is used instead to calculate the hit chance: 96 - levelDiff. +# You can set Rate.MissChanceMultiplier.OnlyAffectsPlayer to 1 if you only want to affect the MissChance +# for player casters only. This way you won't be affecting creature missing chance. +# +# Example: if you want the chance to keep growing linearly, use 1. +# +# Default: Rate.MissChanceMultiplier.TargetCreature = 11 +# Rate.MissChanceMultiplier.TargetPlayer = 7 +# Rate.MissChanceMultiplier.OnlyAffectsPlayer = 0 +# + +Rate.MissChanceMultiplier.TargetCreature = 11 +Rate.MissChanceMultiplier.TargetPlayer = 7 +Rate.MissChanceMultiplier.OnlyAffectsPlayer = 0 + +# +# LevelReq.Trade +# Description: Level requirement for characters to be able to trade. +# Default: 1 + +LevelReq.Trade = 1 + +# +# NoResetTalentsCost +# Description: Resetting talents doesn't cost anything. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +NoResetTalentsCost = 0 + +# +# ToggleXP.Cost +# Description: Cost of locking/unlocking XP +# Default: 100000 - (10 Gold) +# + +ToggleXP.Cost = 100000 + +# +################################################################################################### + +################################################################################################### +# SKILL +# +# MaxPrimaryTradeSkill +# Description: Maximum number of primary professions a character can learn. +# Range: 0-11 +# Default: 2 + +MaxPrimaryTradeSkill = 2 + +# +# SkillChance.Prospecting +# Description: Allow skill increase from prospecting. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +SkillChance.Prospecting = 0 + +# +# SkillChance.Milling +# Description: Allow skill increase from milling. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +SkillChance.Milling = 0 + +# +# Rate.Skill.Discovery +# Description: Multiplier for skill discovery. +# Default: 1 + +Rate.Skill.Discovery = 1 + +# +# SkillGain.Crafting +# SkillGain.Defense +# SkillGain.Gathering +# SkillGain.Weapon +# Description: Crafting/defense/gathering/weapon skills gain rate. +# Default: 1 - (SkillGain.Crafting) +# 1 - (SkillGain.Defense) +# 1 - (SkillGain.Gathering) +# 1 - (SkillGain.Weapon) + +SkillGain.Crafting = 1 +SkillGain.Defense = 1 +SkillGain.Gathering = 1 +SkillGain.Weapon = 1 + +# +# SkillChance.Orange +# SkillChance.Yellow +# SkillChance.Green +# SkillChance.Grey +# Description: Chance to increase skill based on recipe color. +# Default: 100 - (SkillChance.Orange) +# 75 - (SkillChance.Yellow) +# 25 - (SkillChance.Green) +# 0 - (SkillChance.Grey) + +SkillChance.Orange = 100 +SkillChance.Yellow = 75 +SkillChance.Green = 25 +SkillChance.Grey = 0 + +# +# SkillChance.MiningSteps +# SkillChance.SkinningSteps +# Description: Skinning and Mining chance decreases with skill level. +# Default: 0 - (Disabled) +# 75 - (In 2 times each 75 skill points) + +SkillChance.MiningSteps = 0 +SkillChance.SkinningSteps = 0 + +# +# OffhandCheckAtSpellUnlearn +# Description: Unlearning certain spells can change offhand weapon restrictions +# for equip slots. +# Default: 1 - (Recheck offhand slot weapon at unlearning a spell) +# 0 - (Recheck offhand slot weapon only at zone update) + +OffhandCheckAtSpellUnlearn = 1 + +# +################################################################################################### + +################################################################################################### +# STATS +# +# Stats.Limits.Enable +# Description: Enable or disable stats system limitations +# Default: 0 - Disabled +# 1 - Enabled + +Stats.Limits.Enable = 0 + +# +# Stats.Limit.[STAT] +# Description: Set percentage limit for dodge, parry, block and crit rating +# Default: 95.0 (95%) + +Stats.Limits.Dodge = 95.0 +Stats.Limits.Parry = 95.0 +Stats.Limits.Block = 95.0 +Stats.Limits.Crit = 95.0 + +# +################################################################################################### + +################################################################################################### +# REPUTATION +# +# Rate.Reputation.Gain +# Description: Reputation gain rate. +# Default: 1 + +Rate.Reputation.Gain = 1 + +# +# Rate.Reputation.LowLevel.Kill +# Description: Reputation gain from killing low level (grey) creatures. +# Default: 1 + +Rate.Reputation.LowLevel.Kill = 1 + +# +# Rate.Reputation.LowLevel.Quest +# Description: Reputation gain rate. +# Default: 1 + +Rate.Reputation.LowLevel.Quest = 1 + +# +# Rate.Reputation.RecruitAFriendBonus +# Description: Reputation bonus rate for recruit-a-friend. +# Default: 0.1 + +Rate.Reputation.RecruitAFriendBonus = 0.1 + +# +################################################################################################### + +################################################################################################### +# EXPERIENCE +# +# MaxGroupXPDistance +# Description: Max distance to creature for group member to get experience at creature +# death. +# Default: 74 + +MaxGroupXPDistance = 74 + +# +# Rate.XP.Kill +# Rate.XP.Quest +# Rate.XP.Explore +# Rate.XP.Pet +# Description: Experience rates (outside battleground) +# Default: 1 - (Rate.XP.Kill) +# 1 - (Rate.XP.Quest) +# 1 - (Rate.XP.Quest.DF) - Dungeon Finder/LFG quests only. +# 1 - (Rate.XP.Explore) +# 1 - (Rate.XP.Pet) + +Rate.XP.Kill = 1 +Rate.XP.Quest = 1 +Rate.XP.Quest.DF = 1 +Rate.XP.Explore = 1 +Rate.XP.Pet = 1 + +# +# Rate.XP.BattlegroundKill... +# Description: Experience rate for honorable kills in battlegrounds. Not affected by Rate.XP.Kill. Defined for each battleground. +# Only works if Battleground.GiveXPForKills = 1 +# Default: 1 + +Rate.XP.BattlegroundKillAV = 1 +Rate.XP.BattlegroundKillWSG = 1 +Rate.XP.BattlegroundKillAB = 1 +Rate.XP.BattlegroundKillEOTS = 1 +Rate.XP.BattlegroundKillSOTA = 1 +Rate.XP.BattlegroundKillIC = 1 + +# +# Rate.Pet.LevelXP +# Description: Modifies the amount of experience required to level up a pet. +# The lower the rate the less experience is required. +# Default: 0.05 +# + +Rate.Pet.LevelXP = 0.05 + +# +################################################################################################### + +################################################################################################### +# CURRENCY +# +# MaxHonorPoints +# Description: Maximum honor points a character can have. +# Default: 75000 + +MaxHonorPoints = 75000 + +# +# MaxHonorPointsMoneyPerPoint +# Description: Convert excess honor points into money if players got more points than allowed after changing the honor cap. +# Honor points will be converted into copper according to the value set in this config. +# Default: 0 - Disabled + +MaxHonorPointsMoneyPerPoint = 0 + +# +# StartHonorPoints +# Description: Amount of honor points that characters have after creation. +# Default: 0 + +StartHonorPoints = 0 + +# +# HonorPointsAfterDuel +# Description: Amount of honor points the duel winner will get after a duel. +# Default: 0 - (Disabled) +# 1+ - (Enabled) + +HonorPointsAfterDuel = 0 + +# +# Rate.Honor +# Description: Honor gain rate. +# Default: 1 + +Rate.Honor = 1 + +# +# MaxArenaPoints +# Description: Maximum arena points a character can have. +# Default: 10000 + +MaxArenaPoints = 10000 + +# +# StartArenaPoints +# Description: Amount of arena points that characters has after creation. +# Default: 0 + +StartArenaPoints = 0 + +# +# Arena.LegacyArenaPoints +# Description: Use arena point calculation from TBC for season 1 - 5 when rating is less or equal to 1500 +# Default: 1 - (Enabled) +# 0 - (Disabled) + +Arena.LegacyArenaPoints = 0 + +# +# Rate.ArenaPoints +# Description: Arena points gain rate. +# Default: 1 + +Rate.ArenaPoints = 1 + +# +# PvPToken.Enable +# Description: Character will receive a token after defeating another character that yields +# honor. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +PvPToken.Enable = 0 + +# +# PvPToken.MapAllowType +# Description: Define where characters can receive tokens. +# Default: 4 - (All maps) +# 3 - (Battlegrounds) +# 2 - (FFA areas only like Gurubashi arena) +# 1 - (Battlegrounds and FFA areas) + +PvPToken.MapAllowType = 4 + +# +# PvPToken.ItemID +# Description: Item characters will receive after defeating another character if PvP Token +# system is enabled. +# Default: 29434 - (Badge of justice) + +PvPToken.ItemID = 29434 + +# +# PvPToken.ItemCount +# Description: Number of tokens a character will receive. +# Default: 1 + +PvPToken.ItemCount = 1 + +# +################################################################################################### + +################################################################################################### +# DURABILITY +# +# DurabilityLoss.InPvP +# Description: Durability loss on death during PvP. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +DurabilityLoss.InPvP = 0 + +# +# DurabilityLoss.OnDeath +# Description: Durability loss percentage on death. +# Note: On 3.3.5 client always shows log message "Your items have lost 10% durability" +# Default: 10 + +DurabilityLoss.OnDeath = 10 + +# +# DurabilityLossChance.Damage +# Description: Chance to lose durability on one equipped item from damage. +# Default: 0.5 - (100/0.5 = 200, Each 200 damage one equipped item will use durability) + +DurabilityLossChance.Damage = 0.5 + +# +# DurabilityLossChance.Absorb +# Description: Chance to lose durability on one equipped armor item when absorbing damage. +# Default: 0.5 - (100/0.5 = 200, Each 200 absorbed damage one equipped item will lose +# durability) + +DurabilityLossChance.Absorb = 0.5 + +# +# DurabilityLossChance.Parry +# Description: Chance to lose durability on main weapon when parrying attacks. +# Default: 0.05 - (100/0.05 = 2000, Each 2000 parried damage the main weapon will lose +# durability) + +DurabilityLossChance.Parry = 0.05 + +# +# DurabilityLossChance.Block +# Description: Chance to lose durability on shield when blocking attacks. +# Default: 0.05 - (100/0.05 = 2000, Each 2000 blocked damage the shield will lose +# durability) + +DurabilityLossChance.Block = 0.05 + +# +################################################################################################### + +################################################################################################### +# DEATH +# +# Death.SicknessLevel +# Description: Starting level for resurrection sickness. +# Example: 11 - (Level 1-10 characters will not be affected, +# Level 11-19 characters will be affected for 1 minute, +# Level 20-MaxPlayerLevel characters will be affected for 10 minutes) +# Default: 11 - (Enabled, See Example) +# MaxPlayerLevel+1 - (Disabled) +# -10 - (Enabled, Level 1+ characters have 10 minute duration) + +Death.SicknessLevel = 11 + +# +# Death.CorpseReclaimDelay.PvP +# Death.CorpseReclaimDelay.PvE +# Description: Increase corpse reclaim delay at PvP/PvE deaths. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +Death.CorpseReclaimDelay.PvP = 1 +Death.CorpseReclaimDelay.PvE = 0 + +# +# Death.Bones.World +# Death.Bones.BattlegroundOrArena +# Description: Create bones instead of corpses at resurrection in normal zones, instances, +# battleground or arenas. +# Default: 1 - (Enabled, Death.Bones.World) +# 1 - (Enabled, Death.Bones.BattlegroundOrArena) +# 0 - (Disabled) + +Death.Bones.World = 1 +Death.Bones.BattlegroundOrArena = 1 + +# +################################################################################################### + +################################################################################################### +# PET +# +# Pet.RankMod.Health +# Description: Allows pet health to be modified by rank health rates (set in config) +# Default: 1 - Enabled +# 0 - Disabled + +Pet.RankMod.Health = 1 + +# +################################################################################################### + +################################################################################################### +# ITEM DELETE +# +# ItemDelete.Method +# Description: Item deletion behavior. +# Default: 0 - (Completely remove item from the database) +# 1 - (Save Item to database) + +ItemDelete.Method = 0 + +# +# ItemDelete.Vendor +# Description: Saving items into database when the player sells items to vendor +# Default: 0 (disabled) +# 1 (enabled) +# + +ItemDelete.Vendor = 0 + +# +# ItemDelete.Quality +# Description: Saving items into database that have quality greater or equal to ItemDelete.Quality +# +# ID | Color | Quality +# 0 | Grey | Poor +# 1 | White | Common +# 2 | Green | Uncommon +# 3 | Blue | Rare +# 4 | Purple| Epic +# 5 | Orange| Legendary +# 6 | Red | Artifact +# 7 | Gold | Bind to Account +# +# Default: 3 +# + +ItemDelete.Quality = 3 + +# +# ItemDelete.ItemLevel +# Description: Saving items into database that are Item Levels greater or equal to ItemDelete.ItemLevel +# Default: 80 +# + +ItemDelete.ItemLevel = 80 + +# +################################################################################################### + +################################################################################################### +# ITEM +# +# DBC.EnforceItemAttributes +# Disallow overriding item attributes stored in DBC files with values from the database +# Default: 0 - Off, Use DB values +# 1 - On, Enforce DBC Values (default) + +DBC.EnforceItemAttributes = 1 + +# +# Rate.Drop.Item.Poor +# Rate.Drop.Item.Normal +# Rate.Drop.Item.Uncommon +# Rate.Drop.Item.Rare +# Rate.Drop.Item.Epic +# Rate.Drop.Item.Legendary +# Rate.Drop.Item.Artifact +# Rate.Drop.Item.Referenced +# Rate.Drop.Money +# Description: Drop rates for money and items based on quality. +# Default: 1 - (Rate.Drop.Item.Poor) +# 1 - (Rate.Drop.Item.Normal) +# 1 - (Rate.Drop.Item.Uncommon) +# 1 - (Rate.Drop.Item.Rare) +# 1 - (Rate.Drop.Item.Epic) +# 1 - (Rate.Drop.Item.Legendary) +# 1 - (Rate.Drop.Item.Artifact) +# 1 - (Rate.Drop.Item.Referenced) +# 1 - (Rate.Drop.Money) + +Rate.Drop.Item.Poor = 1 +Rate.Drop.Item.Normal = 1 +Rate.Drop.Item.Uncommon = 1 +Rate.Drop.Item.Rare = 1 +Rate.Drop.Item.Epic = 1 +Rate.Drop.Item.Legendary = 1 +Rate.Drop.Item.Artifact = 1 +Rate.Drop.Item.Referenced = 1 +Rate.Drop.Money = 1 + +# Rate.Drop.Item.ReferencedAmount +# Description: Multiplier for referenced loot amount. Makes many raid bosses (and others) drop additional loot. +# Default: 1 + +Rate.Drop.Item.ReferencedAmount = 1 + +# +# Rate.Drop.Item.GroupAmount +# Description: Multiplier for grouped items. Makes many dungeon bosses (and others) drop additional loot. +# Default: 1 + +Rate.Drop.Item.GroupAmount = 1 + +# +# LootNeedBeforeGreedILvlRestriction +# Description: Specify level restriction for items below player's subclass in Need Before Greed loot mode in DF groups +# Default: 70 +# 0 - Disabled + +LootNeedBeforeGreedILvlRestriction = 70 + +# +# Item.SetItemTradeable +# Description: Enabled/Disabled trading BoP items among raid members. +# Default: 1 - (Set BoP items tradeable timer to 2 hours) +# 0 - (Disable trading BoP items among raid members) + +Item.SetItemTradeable = 1 + +# +################################################################################################### + +################################################################################################### +# QUEST +# +# Quests.EnableQuestTracker +# Description: Store data in the database about quest completion and abandonment to help finding bugged quests. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +Quests.EnableQuestTracker = 0 + +# +# QuestPOI.Enabled +# Description: Show points of interest on the map +# Default: 1 - Enabled +# 0 - Disabled + +QuestPOI.Enabled = 1 + +# +# Quests.LowLevelHideDiff +# Description: Level difference between player and quest level at which quests are +# considered low-level and are not shown via exclamation mark (!) at quest +# givers. +# Default: 4 - (Enabled, Hide quests that have 4 levels less than the character) +# -1 - (Disabled, Show all available quest marks) + +Quests.LowLevelHideDiff = 4 + +# +# Quests.HighLevelHideDiff +# Description: Level difference between player and quest level at which quests are +# considered high-level and are not shown via exclamation mark (!) at quest +# givers. +# Default: 7 - (Enabled, Hide quests that have 7 levels more than the character) +# -1 - (Disabled, Show all available quest marks) + +Quests.HighLevelHideDiff = 7 + +# +# Quests.IgnoreRaid +# Description: Allow non-raid quests to be completed while in a raid group. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +Quests.IgnoreRaid = 0 + +# +# Quests.IgnoreAutoAccept +# Description: Ignore auto accept flag. Clients will have to manually accept all quests. +# Default: 0 - (Disabled, DB values determine if quest is marked auto accept or not.) +# 1 - (Enabled, clients will not be told to automatically accept any quest.) + +Quests.IgnoreAutoAccept = 0 + +# +# Quests.IgnoreAutoComplete +# Description: Ignore auto complete flag. Clients will have to manually complete all quests. +# Default: 0 - (Disabled, DB values determine if quest is marked auto complete or not.) +# 1 - (Enabled, clients will not be told to automatically complete any quest.) + +Quests.IgnoreAutoComplete = 0 + +# +# Rate.RewardBonusMoney +# Description: Allows to further tweak the amount of extra money rewarded by quests when the player +# is at MaxPlayerLevel (this amount is specified in quest_template.RewardBonusMoney). +# NOTE: the final amount will also affected by Rate.Drop.Money +# Default: 1 + +Rate.RewardBonusMoney = 1 + +# +################################################################################################### + +################################################################################################### +# CREATURE +# +# MonsterSight +# Description: The maximum distance in yards that a "monster" creature can see +# regardless of level difference (through CreatureAI::IsVisible). +# Increases CONFIG_SIGHT_MONSTER to 50 yards. Used to be 20 yards. +# Default: 50.000000 + +MonsterSight = 50.000000 + # # ThreatRadius # Description: Distance for creatures to evade after being pulled away from the combat @@ -1859,439 +2990,7 @@ Creatures.CustomIDs = "190010,55005,999991,25462,98888,601014,34567,34568" ################################################################################################### ################################################################################################### -# CHAT SETTINGS -# -# ChatFakeMessagePreventing -# Description: Additional protection from creating fake chat messages using spaces. -# Collapses multiple subsequent whitespaces into a single whitespace. -# Not applied to the addon language, but may break old addons that use -# "normal" chat messages for sending data to other clients. -# Default: 1 - (Enabled, Blizzlike) -# 0 - (Disabled) -# - -ChatFakeMessagePreventing = 1 - -# -# ChatStrictLinkChecking.Severity -# Description: Check chat messages for in-game links to spells, items, quests, etc. -# -1 - (Only verify validity of link data, but permit use of custom colors) -# Default: 0 - (Only verify that link data and color are valid without checking text) -# 1 - (Additionally verifies that the link text matches the provided data) -# -# Note: If this is set to '1', you must additionally provide .dbc files for all -# client locales that are in use on your server. -# If any files are missing, messages with links from clients using those -# locales will likely be blocked by the server. -# - -ChatStrictLinkChecking.Severity = 0 - -# -# ChatStrictLinkChecking.Kick -# Description: Defines what should be done if a message containing invalid control characters -# is received. -# Default: 0 - (Silently ignore message) -# 1 - (Ignore message and kick player) -# - -ChatStrictLinkChecking.Kick = 0 - -# -# ChatFlood.MessageCount -# Description: Chat flood protection, number of messages before player gets muted. -# Default: 10 - (Enabled) -# 0 - (Disabled) - -ChatFlood.MessageCount = 10 - -# -# ChatFlood.MessageDelay -# Description: Time (in seconds) between messages to be counted into ChatFlood.MessageCount. -# Default: 1 - -ChatFlood.MessageDelay = 1 - -# -# ChatFlood.AddonMessageCount -# Description: Chat flood protection, number of addon messages before player gets muted. -# Default: 100 - (Enabled) -# 0 - (Disabled) - -ChatFlood.AddonMessageCount = 100 - -# -# ChatFlood.AddonMessageDelay -# Description: Time (in seconds) between addon messages to be counted into ChatFlood.AddonMessageCount. -# Default: 1 - -ChatFlood.AddonMessageDelay = 1 - -# -# ChatFlood.MuteTime -# Description: Time (in seconds) characters get muted for violating ChatFlood.MessageCount / ChatFlood.AddonMessageCount. -# Default: 10 - -ChatFlood.MuteTime = 10 - -# -# Chat.MuteFirstLogin -# Description: Speaking is allowed after playing for Chat.MuteTimeFirstLogin minutes. You may use party and guild chat. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Chat.MuteFirstLogin = 0 - -# -# Chat.MuteTimeFirstLogin -# Description: The time after which the player will be able to speak. -# Default: 120 - (Minutes) - -Chat.MuteTimeFirstLogin = 120 - -# -# Channel.RestrictedLfg -# Description: Restrict LookupForGroup channel to characters registered in the LFG tool. -# Default: 1 - (Enabled, Allow join to channel only if registered in LFG) -# 0 - (Disabled, Allow join to channel in any time) - -Channel.RestrictedLfg = 1 - -# -# Channel.SilentlyGMJoin -# Description: Silently join GM characters to channels. If set to 1, channel kick and ban -# commands issued by a GM will not be broadcasted. -# Default: 0 - (Disabled, Join with announcement) -# 1 - (Enabled, Join without announcement) - -Channel.SilentlyGMJoin = 0 - -# Channel.ModerationGMLevel -# Min GM account security level required for executing moderator in-game commands in the channels -# This also bypasses password prompts on joining channels which require password -# 0 (in-game channel moderator privileges only) -# Default: 1 (enabled for moderators and above) - -Channel.ModerationGMLevel = 1 - -# -# ChatLevelReq.Channel -# Description: Level requirement for characters to be able to write in chat channels. -# Default: 1 - -ChatLevelReq.Channel = 1 - -# -# ChatLevelReq.Whisper -# Description: Level requirement for characters to be able to whisper other characters. -# Default: 1 - -ChatLevelReq.Whisper = 1 - -# -# ChatLevelReq.Say -# Description: Level requirement for characters to be able to use say/yell/emote. -# Default: 1 - -ChatLevelReq.Say = 1 - -# -# PartyLevelReq -# Description: Minimum level at which players can invite to group, even if they aren't on -# the invite friends list. (Players who are on that friend list can always -# invite despite having lower level) -# Default: 1 - -PartyLevelReq = 1 - -# -# AllowPlayerCommands -# Description: Allow players to use commands. -# Default: 1 - (Enabled) -# 0 - (Disabled) - -AllowPlayerCommands = 1 - -# -# PreserveCustomChannels -# Description: Store custom chat channel settings like password, automatic ownership handout -# or ban list in the database. Needs to be enabled to save custom -# world/trade/etc. channels that have automatic ownership handout disabled. -# (.channel set ownership $channel off) -# Default: 0 - (Disabled, Blizzlike, Channel settings are lost if last person left) -# 1 - (Enabled) - -PreserveCustomChannels = 1 - -# -# PreserveCustomChannelDuration -# Description: Time (in days) that needs to pass before the customs chat channels get -# cleaned up from the database. Only channels with ownership handout enabled -# (default behavior) will be cleaned. -# Default: 14 - (Enabled, Clean channels that haven't been used for 14 days) -# 0 - (Disabled, Infinite channel storage) - -PreserveCustomChannelDuration = 14 - -# -################################################################################################### - -################################################################################################### -# GAME MASTER SETTINGS -# -# GM.LoginState -# Description: GM mode at login. -# Default: 2 - (Last save state) -# 0 - (Disable) -# 1 - (Enable) - -GM.LoginState = 2 - -# -# GM.Visible -# Description: GM visibility at login. -# Default: 2 - (Last save state) -# 0 - (Invisible) -# 1 - (Visible) - -GM.Visible = 2 - -# -# GM.Chat -# Description: GM chat mode at login. -# Default: 2 - (Last save state) -# 0 - (Disable) -# 1 - (Enable) - -GM.Chat = 2 - -# -# GM.WhisperingTo -# Description: Is GM accepting whispers from player by default or not. -# Default: 2 - (Last save state) -# 0 - (Disable) -# 1 - (Enable) - -GM.WhisperingTo = 2 - -# -# GM.InGMList.Level -# Description: Maximum GM level shown in GM list (if enabled) in non-GM state (.gm off). -# Default: 3 - (Anyone) -# 0 - (Only players) -# 1 - (Only moderators) -# 2 - (Only gamemasters) - -GM.InGMList.Level = 3 - -# -# GM.InWhoList.Level -# Description: Max GM level showed in who list (if visible). -# Default: 3 - (Anyone) -# 0 - (Only players) -# 1 - (Only moderators) -# 2 - (Only gamemasters) - -GM.InWhoList.Level = 3 - -# -# GM.StartLevel -# Description: GM character starting level. -# Default: 1 - -GM.StartLevel = 1 - -# -# GM.AllowInvite -# Description: Allow players to invite GM characters. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -GM.AllowInvite = 0 - -# -# GM.AllowFriend -# Description: Allow players to add GM characters to their friends list. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -GM.AllowFriend = 0 - -# -# GM.LowerSecurity -# Description: Allow lower security levels to use commands on higher security level -# characters. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -GM.LowerSecurity = 0 - -# -# GM.TicketSystem.ChanceOfGMSurvey -# Description: Chance of sending a GM survey after ticket completion. -# Default: 50 - (Enabled) -# 0 - (Disabled) - -GM.TicketSystem.ChanceOfGMSurvey = 50 - -# -################################################################################################### - -################################################################################################### -# VISIBILITY AND DISTANCES -# -# Visibility.GroupMode -# Description: Group visibility modes. Defines which groups can aways detect invisible -# characters of the same raid, group or faction. -# Default: 1 - (Raid) -# 0 - (Party) -# 2 - (Faction) - -Visibility.GroupMode = 1 - -# -# Visibility.Distance.Continents -# Visibility.Distance.Instances -# Visibility.Distance.BGArenas -# Description: Visibility distance to see other players or gameobjects. -# Visibility on continents on retail ~90 yards. In BG/Arenas ~180. -# For instances default ~120. -# Max limited by active player zone: ~ 333 -# Min limit is max aggro radius (45) * Rate.Creature.Aggro -# Default: 90 - (Visibility.Distance.Continents) -# 120 - (Visibility.Distance.Instances) -# 180 - (Visibility.Distance.BGArenas) - -Visibility.Distance.Continents = 90 -Visibility.Distance.Instances = 120 -Visibility.Distance.BGArenas = 180 - -# -# Visibility.Notify.Period.OnContinents -# Visibility.Notify.Period.InInstances -# Visibility.Notify.Period.InBGArenas -# Description: Time (in milliseconds) for visibility update period. Lower values may have -# performance impact. -# Default: 1000 - (Visibility.Notify.Period.OnContinents) -# 1000 - (Visibility.Notify.Period.InInstances) -# 1000 - (Visibility.Notify.Period.InBGArenas) - -Visibility.Notify.Period.OnContinents = 1000 -Visibility.Notify.Period.InInstances = 1000 -Visibility.Notify.Period.InBGArenas = 1000 - -# -# Visibility.ObjectSparkles -# Description: Whether or not to display sparkles on gameobjects related to active quests. -# Default: 1 - (Show Sparkles) -# 0 - (Hide Sparkles) - -Visibility.ObjectSparkles = 1 - -# -# Visibility.ObjectQuestMarkers -# Description: Show quest icons above game objects in the same way as creature quest givers. -# Default: 1 - (Show quest markers, post patch 2.3 behavior) -# 0 - (Hide quest markers, pre patch 2.3 behavior) - -Visibility.ObjectQuestMarkers = 1 - -# -################################################################################################### - -################################################################################################### -# SERVER RATES -# -# Rate.Health -# Rate.Mana -# Rate.Rage.Income -# Rate.Rage.Loss -# Rate.RunicPower.Income -# Rate.RunicPower.Loss -# Rate.Focus -# Rate.Energy -# Rate.Loyalty -# Description: Multiplier to configure health, mana, incoming rage, loss of rage, focus -# energy and loyalty increase or decrease. -# Default: 1 - (Rate.Health) -# 1 - (Rate.Mana) -# 1 - (Rate.Rage.Income) -# 1 - (Rate.Rage.Loss) -# 1 - (Rate.RunicPower.Income) -# 1 - (Rate.RunicPower.Loss) -# 1 - (Rate.Focus) -# 1 - (Rate.Energy) -# 1 - (Rate.Loyalty) - -Rate.Health = 1 -Rate.Mana = 1 -Rate.Rage.Income = 1 -Rate.Rage.Loss = 1 -Rate.RunicPower.Income = 1 -Rate.RunicPower.Loss = 1 -Rate.Focus = 1 -Rate.Energy = 1 -Rate.Loyalty = 1 - -# -# Rate.Skill.Discovery -# Description: Multiplier for skill discovery. -# Default: 1 - -Rate.Skill.Discovery = 1 - -# -# Rate.Drop.Item.Poor -# Rate.Drop.Item.Normal -# Rate.Drop.Item.Uncommon -# Rate.Drop.Item.Rare -# Rate.Drop.Item.Epic -# Rate.Drop.Item.Legendary -# Rate.Drop.Item.Artifact -# Rate.Drop.Item.Referenced -# Rate.Drop.Money -# Description: Drop rates for money and items based on quality. -# Default: 1 - (Rate.Drop.Item.Poor) -# 1 - (Rate.Drop.Item.Normal) -# 1 - (Rate.Drop.Item.Uncommon) -# 1 - (Rate.Drop.Item.Rare) -# 1 - (Rate.Drop.Item.Epic) -# 1 - (Rate.Drop.Item.Legendary) -# 1 - (Rate.Drop.Item.Artifact) -# 1 - (Rate.Drop.Item.Referenced) -# 1 - (Rate.Drop.Money) - -Rate.Drop.Item.Poor = 1 -Rate.Drop.Item.Normal = 1 -Rate.Drop.Item.Uncommon = 1 -Rate.Drop.Item.Rare = 1 -Rate.Drop.Item.Epic = 1 -Rate.Drop.Item.Legendary = 1 -Rate.Drop.Item.Artifact = 1 -Rate.Drop.Item.Referenced = 1 -Rate.Drop.Money = 1 - -# Rate.Drop.Item.ReferencedAmount -# Description: Multiplier for referenced loot amount. Makes many raid bosses (and others) drop additional loot. -# Default: 1 - -Rate.Drop.Item.ReferencedAmount = 1 - -# -# Rate.Drop.Item.GroupAmount -# Description: Multiplier for grouped items. Makes many dungeon bosses (and others) drop additional loot. -# Default: 1 - -Rate.Drop.Item.GroupAmount = 1 - -# Rate.RewardBonusMoney -# Description: Allows to further tweak the amount of extra money rewarded by quests when the player -# is at MaxPlayerLevel (this amount is specified in quest_template.RewardBonusMoney). -# NOTE: the final amount will also affected by Rate.Drop.Money -# Default: 1 - -Rate.RewardBonusMoney = 1 - +# VENDOR # # Rate.SellValue.Item.Poor # Rate.SellValue.Item.Normal @@ -2348,37 +3047,6 @@ Rate.BuyValue.Item.Legendary = 1 Rate.BuyValue.Item.Artifact = 1 Rate.BuyValue.Item.Heirloom = 1 -# -# Rate.XP.Kill -# Rate.XP.Quest -# Rate.XP.Explore -# Rate.XP.Pet -# Description: Experience rates (outside battleground) -# Default: 1 - (Rate.XP.Kill) -# 1 - (Rate.XP.Quest) -# 1 - (Rate.XP.Quest.DF) - Dungeon Finder/LFG quests only. -# 1 - (Rate.XP.Explore) -# 1 - (Rate.XP.Pet) - -Rate.XP.Kill = 1 -Rate.XP.Quest = 1 -Rate.XP.Quest.DF = 1 -Rate.XP.Explore = 1 -Rate.XP.Pet = 1 - -# -# Rate.XP.BattlegroundKill... -# Description: Experience rate for honorable kills in battlegrounds. Not affected by Rate.XP.Kill. Defined for each battleground. -# Only works if Battleground.GiveXPForKills = 1 -# Default: 1 - -Rate.XP.BattlegroundKillAV = 1 -Rate.XP.BattlegroundKillWSG = 1 -Rate.XP.BattlegroundKillAB = 1 -Rate.XP.BattlegroundKillEOTS = 1 -Rate.XP.BattlegroundKillSOTA = 1 -Rate.XP.BattlegroundKillIC = 1 - # # Rate.RepairCost # Description: Repair cost rate. @@ -2387,94 +3055,75 @@ Rate.XP.BattlegroundKillIC = 1 Rate.RepairCost = 1 # -# Rate.Rest.InGame -# Rate.Rest.Offline.InTavernOrCity -# Rate.Rest.Offline.InWilderness -# Description: Resting points grow rates. -# Default: 1 - (Rate.Rest.InGame) -# 1 - (Rate.Rest.Offline.InTavernOrCity) -# 1 - (Rate.Rest.Offline.InWilderness) +################################################################################################### -Rate.Rest.InGame = 1 -Rate.Rest.Offline.InTavernOrCity = 1 -Rate.Rest.Offline.InWilderness = 1 +################################################################################################### +# GROUP +# +# LeaveGroupOnLogout.Enabled +# Description: Should the player leave their group when they log out? +# (It does not affect raids or dungeon finder groups) +# +# Default: 1 - (Enabled) + +LeaveGroupOnLogout.Enabled = 1 # -# Rate.Damage.Fall -# Description: Damage after fall rate. -# Default: 1 +# Group.Raid.LevelRestriction +# +# The Group members need to the same, or higher level than the specified value. +# Minimum level is 10. +# Default: 10 +# -Rate.Damage.Fall = 1 +Group.Raid.LevelRestriction = 10 # -# Rate.Auction.Time -# Rate.Auction.Deposit -# Rate.Auction.Cut -# Description: Auction rates (auction time, deposit get at auction start, -# auction cut from price at auction end) -# Default: 1 - (Rate.Auction.Time) -# 1 - (Rate.Auction.Deposit) -# 1 - (Rate.Auction.Cut) +################################################################################################### -Rate.Auction.Time = 1 -Rate.Auction.Deposit = 1 -Rate.Auction.Cut = 1 +################################################################################################### +# INSTANCE +# +# Instance.GMSummonPlayer +# Description: Allow GM to summon players or only other GM accounts inside instances. +# Default: 0 - (Disabled, Only GM accounts can be summoned by GM) +# 1 - (Enabled, GM and Player accounts can be summoned by GM) + +Instance.GMSummonPlayer = 0 # -# Rate.Honor -# Description: Honor gain rate. -# Default: 1 +# Instance.IgnoreLevel +# Description: Ignore level requirement when entering instances. +# Default: 0 - (Disabled) +# 1 - (Enabled) -Rate.Honor = 1 +Instance.IgnoreLevel = 0 # -# Rate.ArenaPoints -# Description: Arena points gain rate. -# Default: 1 +# Instance.IgnoreRaid +# Description: Ignore raid group requirement when entering instances. +# Default: 0 - (Disabled) +# 1 - (Enabled) -Rate.ArenaPoints = 1 +Instance.IgnoreRaid = 0 # -# Rate.Talent -# Description: Talent point rate. -# Default: 1 +# Instance.ResetTimeHour +# Description: Hour of the day when the global instance reset occurs. +# Range: 0-23 +# Default: 4 - (04:00 AM) -Rate.Talent = 1 +Instance.ResetTimeHour = 4 # -# Rate.Reputation.Gain -# Description: Reputation gain rate. -# Default: 1 +# Instance.ResetTimeRelativeTimestamp +# Description: Needed for displaying valid instance reset times in ingame calendar. +# This timestamp should be set to a date in the past (midnight) on which +# both 3-day and 7-day raids were reset. +# Default: 1135814400 - (Thu, 29 Dec 2005 00:00:00 GMT - meaning that 7-day raid reset falls on Thursdays, +# while 3-day reset falls on "Thu 29 Dec 2005", "Sun 01 Jan 2006", "Wed 04 Jan 2006", and so on) -Rate.Reputation.Gain = 1 - -# -# Rate.Reputation.LowLevel.Kill -# Description: Reputation gain from killing low level (grey) creatures. -# Default: 1 - -Rate.Reputation.LowLevel.Kill = 1 - -# -# Rate.Reputation.LowLevel.Quest -# Description: Reputation gain rate. -# Default: 1 - -Rate.Reputation.LowLevel.Quest = 1 - -# -# Rate.Reputation.RecruitAFriendBonus -# Description: Reputation bonus rate for recruit-a-friend. -# Default: 0.1 - -Rate.Reputation.RecruitAFriendBonus = 0.1 - -# -# Rate.MoveSpeed -# Description: Movement speed rate. -# Default: 1 - -Rate.MoveSpeed = 1 +Instance.ResetTimeRelativeTimestamp = 1135814400 # # Rate.InstanceResetTime @@ -2487,250 +3136,302 @@ Rate.MoveSpeed = 1 Rate.InstanceResetTime = 1 # -# Rate.Pet.LevelXP -# Description: Modifies the amount of experience required to level up a pet. -# The lower the rate the less experience is required. -# Default: 0.05 -# +# Instance.UnloadDelay +# Description: Time (in milliseconds) before instance maps are unloaded from memory if no +# characters are inside. +# Default: 1800000 - (Enabled, 30 minutes) +# 0 - (Disabled, Instance maps are kept in memory until the instance +# resets) -Rate.Pet.LevelXP = 0.05 +Instance.UnloadDelay = 1800000 # -# WaterBreath.Timer -# Description: The timer for player's breath underwater in milliseconds -# Default: 180000 (3 minutes) -# +# AccountInstancesPerHour +# Description: Controls the max amount of different instances player can enter within hour +# Default: 5 -WaterBreath.Timer = 180000 +AccountInstancesPerHour = 5 # -# EnableLowLevelRegenBoost -# Description: Greatly increase Health and Mana regen rates for players under level 15 (Added in patch 3.3) -# Default: 1 - Enabled -# 0 - Disabled +# Instance.SharedNormalHeroicId +# Description: Forces ICC and RS Normal and Heroic to share lockouts. ToC is uneffected and Normal and Heroic will be separate. +# Default: 1 - Enable +# 0 - Disable # -EnableLowLevelRegenBoost = 1 +Instance.SharedNormalHeroicId = 1 # -# SkillGain.Crafting -# SkillGain.Defense -# SkillGain.Gathering -# SkillGain.Weapon -# Description: Crafting/defense/gathering/weapon skills gain rate. -# Default: 1 - (SkillGain.Crafting) -# 1 - (SkillGain.Defense) -# 1 - (SkillGain.Gathering) -# 1 - (SkillGain.Weapon) +# DungeonAccessRequirements.PrintMode +# +# Description: Select the preferred format to display information to the player who cannot enter a portal dungeon because when has not met the access requirements: +# Default: 1 - (Display only one requirement at a time (BlizzLike, like in the LFG interface)) +# 0 - (Display no extra information, only "Requirements not met") +# 2 - (Display detailed requirements, all at once, with clickable links) +# -SkillGain.Crafting = 1 -SkillGain.Defense = 1 -SkillGain.Gathering = 1 -SkillGain.Weapon = 1 +DungeonAccessRequirements.PrintMode = 1 # -# SkillChance.Orange -# SkillChance.Yellow -# SkillChance.Green -# SkillChance.Grey -# Description: Chance to increase skill based on recipe color. -# Default: 100 - (SkillChance.Orange) -# 75 - (SkillChance.Yellow) -# 25 - (SkillChance.Green) -# 0 - (SkillChance.Grey) - -SkillChance.Orange = 100 -SkillChance.Yellow = 75 -SkillChance.Green = 25 -SkillChance.Grey = 0 - +# DungeonAccessRequirements.PortalAvgIlevelCheck # -# SkillChance.MiningSteps -# SkillChance.SkinningSteps -# Description: Skinning and Mining chance decreases with skill level. -# Default: 0 - (Disabled) -# 75 - (In 2 times each 75 skill points) - -SkillChance.MiningSteps = 0 -SkillChance.SkinningSteps = 0 - -# -# DurabilityLoss.InPvP -# Description: Durability loss on death during PvP. -# Default: 0 - (Disabled) +# Description: Enable average item level requirement when entering a dungeon/raid's portal (= deny the entry if player has too low average ilevel, like in LFG). +# Default: 0 - (Disabled -> Blizzlike) # 1 - (Enabled) -DurabilityLoss.InPvP = 0 +DungeonAccessRequirements.PortalAvgIlevelCheck = 0 # -# DurabilityLoss.OnDeath -# Description: Durability loss percentage on death. -# Note: On 3.3.5 client always shows log message "Your items have lost 10% durability" -# Default: 10 - -DurabilityLoss.OnDeath = 10 - +# DungeonAccessRequirements.OptionalStringID # -# DurabilityLossChance.Damage -# Description: Chance to lose durability on one equipped item from damage. -# Default: 0.5 - (100/0.5 = 200, Each 200 damage one equipped item will use durability) +# Description: Display an extra message from acore_strings in the chat after printing the dungeon access requirements. +# To enable it set the ID of your desired string from the table acore_strings +# Default: 0 - (Disabled) +# 1+ - (Enabled) -DurabilityLossChance.Damage = 0.5 - -# -# DurabilityLossChance.Absorb -# Description: Chance to lose durability on one equipped armor item when absorbing damage. -# Default: 0.5 - (100/0.5 = 200, Each 200 absorbed damage one equipped item will lose -# durability) - -DurabilityLossChance.Absorb = 0.5 - -# -# DurabilityLossChance.Parry -# Description: Chance to lose durability on main weapon when parrying attacks. -# Default: 0.05 - (100/0.05 = 2000, Each 2000 parried damage the main weapon will lose -# durability) - -DurabilityLossChance.Parry = 0.05 - -# -# DurabilityLossChance.Block -# Description: Chance to lose durability on shield when blocking attacks. -# Default: 0.05 - (100/0.05 = 2000, Each 2000 blocked damage the shield will lose -# durability) - -DurabilityLossChance.Block = 0.05 - -# -# Death.SicknessLevel -# Description: Starting level for resurrection sickness. -# Example: 11 - (Level 1-10 characters will not be affected, -# Level 11-19 characters will be affected for 1 minute, -# Level 20-MaxPlayerLevel characters will be affected for 10 minutes) -# Default: 11 - (Enabled, See Example) -# MaxPlayerLevel+1 - (Disabled) -# -10 - (Enabled, Level 1+ characters have 10 minute duration) - -Death.SicknessLevel = 11 - -# -# Death.CorpseReclaimDelay.PvP -# Death.CorpseReclaimDelay.PvE -# Description: Increase corpse reclaim delay at PvP/PvE deaths. -# Default: 1 - (Enabled) -# 0 - (Disabled) - -Death.CorpseReclaimDelay.PvP = 1 -Death.CorpseReclaimDelay.PvE = 0 - -# -# Death.Bones.World -# Death.Bones.BattlegroundOrArena -# Description: Create bones instead of corpses at resurrection in normal zones, instances, -# battleground or arenas. -# Default: 1 - (Enabled, Death.Bones.World) -# 1 - (Enabled, Death.Bones.BattlegroundOrArena) -# 0 - (Disabled) - -Death.Bones.World = 1 -Death.Bones.BattlegroundOrArena = 1 - -# -# Die.Command.Mode -# Description: Do not trigger things like loot from .die command. -# Default: 1 - (Enabled) -# 0 - (Disabled) - -Die.Command.Mode = 1 - -# Rate.MissChanceMultiplier.Creature -# Rate.MissChanceMultiplier.Player -# Rate.MissChanceMultiplier.OnlyAffectsPlayer -# -# Description: When the target is 3 or more level higher than the player, -# the chance to hit is determined by the formula: 94 - (levelDiff - 2) * Rate.MissChanceMultiplier -# The higher the Rate.MissChanceMultiplier constant, the higher is the chance to miss. -# -# Note: this does not affect when the player is less than 3 levels different than the target, -# where this (linear) formula is used instead to calculate the hit chance: 96 - levelDiff. -# You can set Rate.MissChanceMultiplier.OnlyAffectsPlayer to 1 if you only want to affect the MissChance -# for player casters only. This way you won't be affecting creature missing chance. -# -# Example: if you want the chance to keep growing linearly, use 1. -# -# Default: Rate.MissChanceMultiplier.TargetCreature = 11 -# Rate.MissChanceMultiplier.TargetPlayer = 7 -# Rate.MissChanceMultiplier.OnlyAffectsPlayer = 0 -# - -Rate.MissChanceMultiplier.TargetCreature = 11 -Rate.MissChanceMultiplier.TargetPlayer = 7 -Rate.MissChanceMultiplier.OnlyAffectsPlayer = 0 +DungeonAccessRequirements.OptionalStringID = 0 # ################################################################################################### ################################################################################################### -# STATS LIMITS +# DUNGEON AND BATTLEGROUND FINDER # -# Stats.Limits.Enable -# Description: Enable or disable stats system limitations +# JoinBGAndLFG.Enable +# Description: Allow queueing for BG and LFG at the same time. # Default: 0 - Disabled # 1 - Enabled -Stats.Limits.Enable = 0 +JoinBGAndLFG.Enable = 0 # -# Stats.Limit.[STAT] -# Description: Set percentage limit for dodge, parry, block and crit rating -# Default: 95.0 (95%) +# DungeonFinder.OptionsMask +# Description: Dungeon and raid finder system. +# Value is a bitmask consisting of: +# LFG_OPTION_ENABLE_DUNGEON_FINDER = 1, Enable the dungeon finder browser +# LFG_OPTION_ENABLE_RAID_BROWSER = 2, Enable the raid browser +# LFG_OPTION_ENABLE_SEASONAL_BOSSES = 4, Enable seasonal bosses +# Default: 5 -Stats.Limits.Dodge = 95.0 -Stats.Limits.Parry = 95.0 -Stats.Limits.Block = 95.0 -Stats.Limits.Crit = 95.0 +DungeonFinder.OptionsMask = 5 # -################################################################################################### - -################################################################################################### -# AUTO BROADCAST +# LFG.Location.All # -# AutoBroadcast.On -# Description: Enable auto broadcast. +# Includes satellite to search for work elsewhere LFG +# Default: 0 - Disable +# 1 - Enable +# + +LFG.Location.All = 0 + +# +# LFG.MaxKickCount +# Description: Specify the maximum number of kicks allowed in LFG groups (max 3 kicks) +# Default: 2 +# 0 - Disabled (kicks are never allowed) + +LFG.MaxKickCount = 2 + +# +# LFG.KickPreventionTimer +# Description: Specify for how long players are prevented from being kicked after just joining LFG groups +# Default: 900 secs (15 minutes) +# 0 - Disabled + +LFG.KickPreventionTimer = 900 + +# +# DungeonAccessRequirements.LFGLevelDBCOverride +# +# Description: If enabled, use `min_level` and `max_level` values from table `dungeon_access_requirements` to list or to hide a dungeon from the LFG window. # Default: 0 - (Disabled) # 1 - (Enabled) -AutoBroadcast.On = 0 - -# -# AutoBroadcast.Center -# Description: Auto broadcasting display method. -# Default: 0 - (Announce) -# 1 - (Notify) -# 2 - (Both) - -AutoBroadcast.Center = 0 - -# -# AutoBroadcast.Timer -# Description: Timer (in milliseconds) for auto broadcasts. -# Default: 60000 - (60 seconds) - -AutoBroadcast.Timer = 60000 - -# -# AutoBroadcast.MinDisableLevel -# Description: Minimum level required to disable autobroadcast announcements if EnablePlayerSettings option is enabled. -# Default: 0 - (Not allowed to disable it) - -AutoBroadcast.MinDisableLevel = 0 +DungeonAccessRequirements.LFGLevelDBCOverride = 0 # ################################################################################################### ################################################################################################### -# BATTLEGROUND CONFIG +# CHARTER +# +# MinCharterName +# Description: Minimal charter name length. +# Range: 1-24 +# Default: 2 + +MinCharterName = 2 + +# +# StrictCharterNames +# Description: Limit guild/arena team charter names to language specific symbol set. +# Prevents charter creation if not allowed symbols are used. +# Default: 0 - (Disable, Limited server timezone dependent client check) +# 1 - (Enabled, Strictly basic Latin characters) +# 2 - (Enabled, Strictly realm zone specific, See RealmZone setting, +# Note: Client needs to have the appropriate fonts installed which support +# the charset. For non-official localization, custom fonts need to be +# placed in clientdir/Fonts. +# 3 - (Enabled, Basic Latin characters + server timezone specific) + +StrictCharterNames = 0 + +# +################################################################################################### + +################################################################################################### +# GUILD +# +# Guild.EventLogRecordsCount +# Description: Number of log entries for guild events that are stored per guild. Old entries +# will be overwritten if the number of log entries exceed the configured value. +# High numbers prevent this behavior but may have performance impacts. +# Default: 100 + +Guild.EventLogRecordsCount = 100 + +# +# Guild.ResetHour +# Description: Hour of the day when the daily cap resets occur. +# Range: 0-23 +# Default: 6 - (06:00 AM) + +Guild.ResetHour = 6 + +# +# Guild.BankEventLogRecordsCount +# Description: Number of log entries for guild bank events that are stored per guild. Old +# entries will be overwritten if the number of log entries exceed the +# configured value. High numbers prevent this behavior but may have performance +# impacts. +# Default: 25 - (Minimum) + +Guild.BankEventLogRecordsCount = 25 + +# +# MinPetitionSigns +# Description: Number of required signatures on charters to create a guild. +# Range: 0-9 +# Default: 9 + +MinPetitionSigns = 9 + +# +# Guild.CharterCost +# Description: Amount of money (in Copper) the petitions costs. +# Default: 1000 - (10 Silver) + +Guild.CharterCost = 1000 + +# +# Guild.AllowMultipleGuildMaster +# Description: Allow more than one guild master. Additional Guild Masters must be set using +# the ".guild rank" command. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +Guild.AllowMultipleGuildMaster = 0 + +# +# Guild.BankInitialTabs +# Description: Changes the amounts of available tabs of the guild bank on guild creation +# Default: 0 (no tabs given for free) +# 1-6 (amount of tabs of the guild bank at guild creation) + +Guild.BankInitialTabs = 0 + +# +# Guild.BankTabCost0-5 +# Description: Changes the price of the guild tabs. Note that the client will still show the default values. +# Default: 1000000 - (100 Gold) +# 2500000 - (250 Gold) +# 5000000 - (500 Gold) +# 10000000 - (1000 Gold) +# 25000000 - (2500 Gold) +# 50000000 - (5000 Gold) + +Guild.BankTabCost0 = 1000000 +Guild.BankTabCost1 = 2500000 +Guild.BankTabCost2 = 5000000 +Guild.BankTabCost3 = 10000000 +Guild.BankTabCost4 = 25000000 +Guild.BankTabCost5 = 50000000# + +# +################################################################################################### + +################################################################################################### +# FFAPVP +# +# FFAPvPTimer +# Description: Specify time offset when player unset FFAPvP flag when leaving FFAPvP area. (e.g. Gurubashi Arena) +# Default: 30 sec + +FFAPvPTimer = 30 + +# +################################################################################################### + +################################################################################################### +# WINTERGRASP +# +# Wintergrasp.Enable +# Description: Enable the Wintergrasp battlefield. +# Default: 1 - (Enabled, Experimental as of still being in development) +# 0 - (Battleground disabled, Wintergrasp world processing still occurs) +# 2 - (Disable all Wintergrasp processing) + +Wintergrasp.Enable = 1 + +# +# Wintergrasp.PlayerMax +# Description: Maximum number of players allowed in Wintergrasp. +# Default: 100 + +Wintergrasp.PlayerMax = 120 + +# +# Wintergrasp.PlayerMin +# Description: Minimum number of players required for Wintergrasp. +# Default: 0 + +Wintergrasp.PlayerMin = 0 + +# +# Wintergrasp.PlayerMinLvl +# Description: Required character level for the Wintergrasp battle. +# Default: 77 + +Wintergrasp.PlayerMinLvl = 77 + +# +# Wintergrasp.BattleTimer +# Description: Time (in minutes) for the Wintergrasp battle to last. +# Default: 30 + +Wintergrasp.BattleTimer = 30 + +# +# Wintergrasp.NoBattleTimer +# Description: Time (in minutes) between Wintergrasp battles. +# Default: 150 + +Wintergrasp.NoBattleTimer = 150 + +# +# Wintergrasp.CrashRestartTimer +# Description: Time (in minutes) to delay the restart of Wintergrasp if the world server +# crashed during a running battle. +# Default: 10 + +Wintergrasp.CrashRestartTimer = 10 + +# +################################################################################################### + +################################################################################################### +# BATTLEGROUND # # Battleground.CastDeserter # Description: Cast Deserter spell at players who leave battlegrounds in progress. @@ -2944,64 +3645,7 @@ Battleground.SpeedBuffRespawn = 150 ################################################################################################### ################################################################################################### -# BATTLEFIELD CONFIG -# -# Wintergrasp.Enable -# Description: Enable the Wintergrasp battlefield. -# Default: 1 - (Enabled, Experimental as of still being in development) -# 0 - (Battleground disabled, Wintergrasp world processing still occurs) -# 2 - (Disable all Wintergrasp processing) - -Wintergrasp.Enable = 1 - -# -# Wintergrasp.PlayerMax -# Description: Maximum number of players allowed in Wintergrasp. -# Default: 100 - -Wintergrasp.PlayerMax = 120 - -# -# Wintergrasp.PlayerMin -# Description: Minimum number of players required for Wintergrasp. -# Default: 0 - -Wintergrasp.PlayerMin = 0 - -# -# Wintergrasp.PlayerMinLvl -# Description: Required character level for the Wintergrasp battle. -# Default: 77 - -Wintergrasp.PlayerMinLvl = 77 - -# -# Wintergrasp.BattleTimer -# Description: Time (in minutes) for the Wintergrasp battle to last. -# Default: 30 - -Wintergrasp.BattleTimer = 30 - -# -# Wintergrasp.NoBattleTimer -# Description: Time (in minutes) between Wintergrasp battles. -# Default: 150 - -Wintergrasp.NoBattleTimer = 150 - -# -# Wintergrasp.CrashRestartTimer -# Description: Time (in minutes) to delay the restart of Wintergrasp if the world server -# crashed during a running battle. -# Default: 10 - -Wintergrasp.CrashRestartTimer = 10 - -# -################################################################################################### - -################################################################################################### -# ARENA CONFIG +# ARENA # # Arena.MaxRatingDifference # Description: Maximum rating difference between two teams in rated matches. @@ -3147,387 +3791,38 @@ Arena.ArenaLoseRatingModifier = 24 Arena.ArenaMatchmakerRatingModifier = 24 # -################################################################################################### +# ArenaTeam.CharterCost.2v2 +# ArenaTeam.CharterCost.3v3 +# ArenaTeam.CharterCost.5v5 +# Description: Amount of money (in Copper) the petitions costs. +# Default: 800000 - (80 Gold) +# 1200000 - (120 Gold) +# 2000000 - (200 Gold) -################################################################################################### -# NETWORK CONFIG -# -# Network.Threads -# Description: Number of threads for network. -# Default: 1 - (Recommended 1 thread per 1000 connections) - -Network.Threads = 1 +ArenaTeam.CharterCost.2v2 = 800000 +ArenaTeam.CharterCost.3v3 = 1200000 +ArenaTeam.CharterCost.5v5 = 2000000 # -# Network.OutKBuff -# Description: Amount of memory (in bytes) used for the output kernel buffer (see SO_SNDBUF -# socket option, TCP manual). -# Default: -1 - (Use system default setting) +# MaxAllowedMMRDrop +# Description: Some players continuously lose arena matches to lower their MMR and then fight with weaker opponents. +# This setting prevents lowering MMR too much from max achieved MMR. +# Eg. if max achieved MMR for a character was 2400, with default setting (MaxAllowedMMRDrop = 500) the character can't get below 1900 MMR no matter what. +# Default: 500 -Network.OutKBuff = -1 - -# -# Network.OutUBuff -# Description: Amount of memory (in bytes) reserved in the user space per connection for -# output buffering. -# Default: 65536 - -Network.OutUBuff = 65536 - -# -# Network.TcpNoDelay: -# Description: TCP Nagle algorithm setting. -# Default: 0 - (Enabled, Less traffic, More latency) -# 1 - (Disabled, More traffic, Less latency, TCP_NO_DELAY) - -Network.TcpNodelay = 1 +MaxAllowedMMRDrop = 500 # ################################################################################################### ################################################################################################### -# CONSOLE AND REMOTE ACCESS +# MAIL # -# Console.Enable -# Description: Enable console. -# Default: 1 - (Enabled) -# 0 - (Disabled) +# MailDeliveryDelay +# Description: Time (in seconds) mail delivery is delayed when sending items. +# Default: 3600 - (1 hour) -Console.Enable = 1 - -# -# Ra.Enable -# Description: Enable remote console (telnet). -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Ra.Enable = 0 - -# -# Ra.IP -# Description: Bind remote access to IP/hostname. -# Default: "0.0.0.0" - (Bind to all IPs on the system) - -Ra.IP = "0.0.0.0" - -# -# Ra.Port -# Description: TCP port to reach the remote console. -# Default: 3443 - -Ra.Port = 3443 - -# -# Ra.MinLevel -# Description: Required security level to use the remote console. -# Default: 3 - -Ra.MinLevel = 3 - -# -# SOAP.Enable -# Description: Enable soap service -# Default: 0 - (Disabled) -# 1 - (Enabled) - -SOAP.Enabled = 0 - -# -# SOAP.IP -# Description: Bind SOAP service to IP/hostname -# Default: "127.0.0.1" - (Bind to localhost) - -SOAP.IP = "127.0.0.1" - -# -# SOAP.Port -# Description: TCP port to reach the SOAP service. -# Default: 7878 - -SOAP.Port = 7878 - -# -################################################################################################### - -################################################################################################### -# CHARACTER DELETE OPTIONS -# -# CharDelete.Method -# Description: Character deletion behavior. -# Default: 0 - (Completely remove character from the database) -# 1 - (Unlink the character from account and free up the name, Appears as -# deleted ingame) - -CharDelete.Method = 0 - -# -# CharDelete.MinLevel -# Description: Required level to use the unlinking method if enabled. -# Default: 0 - (Same method for every level) -# 1+ - (Only characters with the specified level will use the unlinking method) - -CharDelete.MinLevel = 0 - -# -# CharDelete.KeepDays -# Description: Time (in days) before unlinked characters will be removed from the database. -# Default: 30 - (Enabled) -# 0 - (Disabled, Don't delete any characters) - -CharDelete.KeepDays = 30 - -# -################################################################################################### - -################################################################################################### -# ITEM DELETE OPTIONS -# -# ItemDelete.Method -# Description: Item deletion behavior. -# Default: 0 - (Completely remove item from the database) -# 1 - (Save Item to database) - -ItemDelete.Method = 0 - -# -# ItemDelete.Vendor -# Description: Saving items into database when the player sells items to vendor -# Default: 0 (disabled) -# 1 (enabled) -# - -ItemDelete.Vendor = 0 - -# -# ItemDelete.Quality -# Description: Saving items into database that have quality greater or equal to ItemDelete.Quality -# -# ID | Color | Quality -# 0 | Grey | Poor -# 1 | White | Common -# 2 | Green | Uncommon -# 3 | Blue | Rare -# 4 | Purple| Epic -# 5 | Orange| Legendary -# 6 | Red | Artifact -# 7 | Gold | Bind to Account -# -# Default: 3 -# - -ItemDelete.Quality = 3 - -# -# ItemDelete.ItemLevel -# Description: Saving items into database that are Item Levels greater or equal to ItemDelete.ItemLevel -# Default: 80 -# - -ItemDelete.ItemLevel = 80 - -# -################################################################################################### - -################################################################################################### -# CUSTOM SERVER OPTIONS -# -# PlayerStart.AllReputation -# Description: Players will start with most of the high level reputations that are needed -# for items, mounts etc. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -PlayerStart.AllReputation = 0 - -# -# PlayerStart.CustomSpells -# Description: If enabled, players will start with custom spells defined in -# playercreateinfo_spell_custom table. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -PlayerStart.CustomSpells = 0 - -# -# PlayerStart.MapsExplored -# Description: Characters start with all maps explored. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -PlayerStart.MapsExplored = 0 - -# -# HonorPointsAfterDuel -# Description: Amount of honor points the duel winner will get after a duel. -# Default: 0 - (Disabled) -# 1+ - (Enabled) - -HonorPointsAfterDuel = 0 - -# -# AlwaysMaxWeaponSkill -# Description: Players will automatically gain max weapon/defense skill when logging in, -# or leveling. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -AlwaysMaxWeaponSkill = 0 - -# -# PvPToken.Enable -# Description: Character will receive a token after defeating another character that yields -# honor. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -PvPToken.Enable = 0 - -# -# PvPToken.MapAllowType -# Description: Define where characters can receive tokens. -# Default: 4 - (All maps) -# 3 - (Battlegrounds) -# 2 - (FFA areas only like Gurubashi arena) -# 1 - (Battlegrounds and FFA areas) - -PvPToken.MapAllowType = 4 - -# -# PvPToken.ItemID -# Description: Item characters will receive after defeating another character if PvP Token -# system is enabled. -# Default: 29434 - (Badge of justice) - -PvPToken.ItemID = 29434 - -# -# PvPToken.ItemCount -# Description: Number of tokens a character will receive. -# Default: 1 - -PvPToken.ItemCount = 1 - -# -# NoResetTalentsCost -# Description: Resetting talents doesn't cost anything. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -NoResetTalentsCost = 0 - -# -# ToggleXP.Cost -# Description: Cost of locking/unlocking XP -# Default: 100000 - (10 Gold) -# - -ToggleXP.Cost = 100000 - -# -# Guild.AllowMultipleGuildMaster -# Description: Allow more than one guild master. Additional Guild Masters must be set using -# the ".guild rank" command. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Guild.AllowMultipleGuildMaster = 0 - -# -# Guild.BankInitialTabs -# Description: Changes the amounts of available tabs of the guild bank on guild creation -# Default: 0 (no tabs given for free) -# 1-6 (amount of tabs of the guild bank at guild creation) - -Guild.BankInitialTabs = 0 - -# -# Guild.BankTabCost0-5 -# Description: Changes the price of the guild tabs. Note that the client will still show the default values. -# Default: 1000000 - (100 Gold) -# 2500000 - (250 Gold) -# 5000000 - (500 Gold) -# 10000000 - (1000 Gold) -# 25000000 - (2500 Gold) -# 50000000 - (5000 Gold) - -Guild.BankTabCost0 = 1000000 -Guild.BankTabCost1 = 2500000 -Guild.BankTabCost2 = 5000000 -Guild.BankTabCost3 = 10000000 -Guild.BankTabCost4 = 25000000 -Guild.BankTabCost5 = 50000000 - -# -# ShowKickInWorld -# Description: Determines whether a message is broadcast to the entire server when a -# player gets kicked -# Default: 0 - (Disabled) -# 1 - (Enabled) - -ShowKickInWorld = 0 - -# -# ShowMuteInWorld -# Description: Determines whether a message is broadcast to the entire server when a -# player gets muted. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -ShowMuteInWorld = 0 - -# -# ShowBanInWorld -# Description: Determines whether a message is broadcast to the entire server when a -# player gets banned. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -ShowBanInWorld = 0 - -# -# RecordUpdateTimeDiffInterval -# Description: Time (in milliseconds) update time diff is written to the log file. -# Update diff can be used as a performance indicator. Diff < 300: good -# performance. Diff > 600 bad performance, may be caused by high CPU usage. -# Default: 300000 - (Enabled, 5 minutes) -# 0 - (Disabled) - -RecordUpdateTimeDiffInterval = 300000 - -# -# MinRecordUpdateTimeDiff -# Description: Only record update time diff which is greater than this value. -# Default: 100 - -MinRecordUpdateTimeDiff = 100 - -# -# PlayerStart.String -# Description: String to be displayed at first login of newly created characters. -# Default: "" - (Disabled) - -PlayerStart.String = "" - -# -# LevelReq.Trade -# Description: Level requirement for characters to be able to trade. -# Default: 1 - -LevelReq.Trade = 1 - -# -# LevelReq.Ticket -# Description: Level requirement for characters to be able to write tickets. -# Default: 1 - -LevelReq.Ticket = 1 - -# -# LevelReq.Auction -# Description: Level requirement for characters to be able to use the auction house. -# Default: 1 - -LevelReq.Auction = 1 +MailDeliveryDelay = 3600 # # LevelReq.Mail @@ -3537,35 +3832,36 @@ LevelReq.Auction = 1 LevelReq.Mail = 1 # -# PlayerDump.DisallowPaths -# Description: Disallow using paths in PlayerDump output files -# Default: 1 +################################################################################################### -PlayerDump.DisallowPaths = 1 +################################################################################################### +# TRANSPORT +# +# IsContinentTransport.Enabled +# Description: Controls the continent transport (ships, zeppelins etc..) +# Default: 1 - (Enabled) +# +# + +IsContinentTransport.Enabled = 1 # -# PlayerDump.DisallowOverwrite -# Description: Disallow overwriting existing files with PlayerDump -# Default: 1 +# IsPreloadedContinentTransport.Enabled +# Description: Should we preload the transport? +# (Not recommended on low-end servers as it consumes 100% more ram) +# and it's not really necessary to be enabled. +# +# Default: 0 - (Disabled) +# +# -PlayerDump.DisallowOverwrite = 1 +IsPreloadedContinentTransport.Enabled = 0 # -# DisconnectToleranceInterval -# Description: Allows to skip queue after being disconnected for a given number of seconds. -# Default: 0 - -DisconnectToleranceInterval = 0 - -# -# MonsterSight -# Description: The maximum distance in yards that a "monster" creature can see -# regardless of level difference (through CreatureAI::IsVisible). -# Increases CONFIG_SIGHT_MONSTER to 50 yards. Used to be 20 yards. -# Default: 50.000000 - -MonsterSight = 50.000000 +################################################################################################### +################################################################################################### +# CHAT CHANNEL # # StrictChannelNames # Description: Limit channel names to language specific symbol set. @@ -3581,182 +3877,418 @@ MonsterSight = 50.000000 StrictChannelNames = 0 # -# Instance.SharedNormalHeroicId -# Description: Forces ICC and RS Normal and Heroic to share lockouts. ToC is uneffected and Normal and Heroic will be separate. -# Default: 1 - Enable -# 0 - Disable -# +# AddonChannel +# Description: Configure the use of the addon channel through the server (some client side +# addons will not work correctly with disabled addon channel) +# Default: 1 - (Enabled) +# 0 - (Disabled) -Instance.SharedNormalHeroicId = 1 +AddonChannel = 1 # -# Instance.ResetTimeRelativeTimestamp -# Description: Needed for displaying valid instance reset times in ingame calendar. -# This timestamp should be set to a date in the past (midnight) on which -# both 3-day and 7-day raids were reset. -# Default: 1135814400 - (Thu, 29 Dec 2005 00:00:00 GMT - meaning that 7-day raid reset falls on Thursdays, -# while 3-day reset falls on "Thu 29 Dec 2005", "Sun 01 Jan 2006", "Wed 04 Jan 2006", and so on) - -Instance.ResetTimeRelativeTimestamp = 1135814400 - -# -# TeleportTimeoutNear -# Description: No description -# Default: 25 +# ChatFakeMessagePreventing +# Description: Additional protection from creating fake chat messages using spaces. +# Collapses multiple subsequent whitespaces into a single whitespace. +# Not applied to the addon language, but may break old addons that use +# "normal" chat messages for sending data to other clients. +# Default: 1 - (Enabled, Blizzlike) +# 0 - (Disabled) # -TeleportTimeoutNear = 25 +ChatFakeMessagePreventing = 1 # -# TeleportTimeoutFar -# Description: No description -# Default: 45 +# ChatStrictLinkChecking.Severity +# Description: Check chat messages for in-game links to spells, items, quests, etc. +# -1 - (Only verify validity of link data, but permit use of custom colors) +# Default: 0 - (Only verify that link data and color are valid without checking text) +# 1 - (Additionally verifies that the link text matches the provided data) +# +# Note: If this is set to '1', you must additionally provide .dbc files for all +# client locales that are in use on your server. +# If any files are missing, messages with links from clients using those +# locales will likely be blocked by the server. # -TeleportTimeoutFar = 45 +ChatStrictLinkChecking.Severity = 0 # -# MaxAllowedMMRDrop -# Description: Some players continuously lose arena matches to lower their MMR and then fight with weaker opponents. -# This setting prevents lowering MMR too much from max achieved MMR. -# Eg. if max achieved MMR for a character was 2400, with default setting (MaxAllowedMMRDrop = 500) the character can't get below 1900 MMR no matter what. -# Default: 500 +# ChatStrictLinkChecking.Kick +# Description: Defines what should be done if a message containing invalid control characters +# is received. +# Default: 0 - (Silently ignore message) +# 1 - (Ignore message and kick player) +# -MaxAllowedMMRDrop = 500 +ChatStrictLinkChecking.Kick = 0 # -# EnableLoginAfterDC -# Description: After not logging out properly (clicking Logout and waiting 20 seconds), -# characters stay in game world for a full minute, even if the client connection was closed. -# Such behaviour prevents for example exploiting boss encounters by alt+f4 -# and skipping crucial boss abilities, or escaping opponents in PvP. -# This setting is used to allow/disallow players to log back into characters that are left in world. -# Default: 1 - (by clicking "Enter World" player will log back into a character that is already in world) -# 0 - (by clicking "Enter World" player will get an error message when trying to log into a character -# that is left in world, and has to wait a minute for the character to be removed from world) +# ChatFlood.MessageCount +# Description: Chat flood protection, number of messages before player gets muted. +# Default: 10 - (Enabled) +# 0 - (Disabled) -EnableLoginAfterDC = 1 +ChatFlood.MessageCount = 10 # -# DontCacheRandomMovementPaths -# Description: Random movement paths (calculated using MoveMaps) can be cached to save cpu time, -# but this may use up considerable amount of memory and can be prevented by setting this option to 1. -# Recommended setting for populated servers is having enough RAM and setting this to 0. -# Default: 0 - (cache paths, uses more memory) -# 1 - (don't cache, uses more cpu) - -DontCacheRandomMovementPaths = 0 - -# -# MoveMaps.Enable -# Description: Enable/Disable pathfinding using mmaps - recommended. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -MoveMaps.Enable = 1 - -# -# Minigob.Manabonk.Enable -# Description: Enable/ Disable Minigob Manabonk +# ChatFlood.MessageDelay +# Description: Time (in seconds) between messages to be counted into ChatFlood.MessageCount. # Default: 1 -Minigob.Manabonk.Enable = 1 +ChatFlood.MessageDelay = 1 # -# Allow.IP.Based.Action.Logging -# Description: Logs actions, e.g. account login and logout to name a few, based on IP of current session. -# Default: 0 - (Disabled) -# 1 - (Enabled) -# +# ChatFlood.AddonMessageCount +# Description: Chat flood protection, number of addon messages before player gets muted. +# Default: 100 - (Enabled) +# 0 - (Disabled) -Allow.IP.Based.Action.Logging = 0 +ChatFlood.AddonMessageCount = 100 # -# Calculate.Creature.Zone.Area.Data -# Description: Calculate at loading creature zoneId / areaId and save in creature table (WARNING: SLOW WORLD SERVER STARTUP) -# Default: 0 - (Do not show) -# +# ChatFlood.AddonMessageDelay +# Description: Time (in seconds) between addon messages to be counted into ChatFlood.AddonMessageCount. +# Default: 1 -Calculate.Creature.Zone.Area.Data = 0 +ChatFlood.AddonMessageDelay = 1 # -# Calculate.Gameoject.Zone.Area.Data -# Description: Calculate at loading gameobject zoneId / areaId and save in gameobject table (WARNING: SLOW WORLD SERVER STARTUP) -# Default: 0 - (Do not show) -# +# ChatFlood.MuteTime +# Description: Time (in seconds) characters get muted for violating ChatFlood.MessageCount / ChatFlood.AddonMessageCount. +# Default: 10 -Calculate.Gameoject.Zone.Area.Data = 0 +ChatFlood.MuteTime = 10 # -# Group.Raid.LevelRestriction -# -# The Group members need to the same, or higher level than the specified value. -# Minimum level is 10. -# Default: 10 -# - -Group.Raid.LevelRestriction = 10 - -# -# DungeonFinder.OptionsMask -# Description: Dungeon and raid finder system. -# Value is a bitmask consisting of: -# LFG_OPTION_ENABLE_DUNGEON_FINDER = 1, Enable the dungeon finder browser -# LFG_OPTION_ENABLE_RAID_BROWSER = 2, Enable the raid browser -# LFG_OPTION_ENABLE_SEASONAL_BOSSES = 4, Enable seasonal bosses -# Default: 5 - -DungeonFinder.OptionsMask = 5 - -# -# LFG.Location.All -# -# Includes satellite to search for work elsewhere LFG -# Default: 0 - Disable -# 1 - Enable -# - -LFG.Location.All = 0 - -# -# DungeonAccessRequirements.PrintMode -# -# Description: Select the preferred format to display information to the player who cannot enter a portal dungeon because when has not met the access requirements: -# Default: 1 - (Display only one requirement at a time (BlizzLike, like in the LFG interface)) -# 0 - (Display no extra information, only "Requirements not met") -# 2 - (Display detailed requirements, all at once, with clickable links) -# - -DungeonAccessRequirements.PrintMode = 1 - -# -# DungeonAccessRequirements.PortalAvgIlevelCheck -# -# Description: Enable average item level requirement when entering a dungeon/raid's portal (= deny the entry if player has too low average ilevel, like in LFG). -# Default: 0 - (Disabled -> Blizzlike) -# 1 - (Enabled) - -DungeonAccessRequirements.PortalAvgIlevelCheck = 0 - -# -# DungeonAccessRequirements.LFGLevelDBCOverride -# -# Description: If enabled, use `min_level` and `max_level` values from table `dungeon_access_requirements` to list or to hide a dungeon from the LFG window. +# Chat.MuteFirstLogin +# Description: Speaking is allowed after playing for Chat.MuteTimeFirstLogin minutes. You may use party and guild chat. # Default: 0 - (Disabled) # 1 - (Enabled) -DungeonAccessRequirements.LFGLevelDBCOverride = 0 +Chat.MuteFirstLogin = 0 # -# DungeonAccessRequirements.OptionalStringID +# Chat.MuteTimeFirstLogin +# Description: The time after which the player will be able to speak. +# Default: 120 - (Minutes) + +Chat.MuteTimeFirstLogin = 120 + # -# Description: Display an extra message from acore_strings in the chat after printing the dungeon access requirements. -# To enable it set the ID of your desired string from the table acore_strings +# Channel.RestrictedLfg +# Description: Restrict LookupForGroup channel to characters registered in the LFG tool. +# Default: 1 - (Enabled, Allow join to channel only if registered in LFG) +# 0 - (Disabled, Allow join to channel in any time) + +Channel.RestrictedLfg = 1 + +# +# Channel.SilentlyGMJoin +# Description: Silently join GM characters to channels. If set to 1, channel kick and ban +# commands issued by a GM will not be broadcasted. +# Default: 0 - (Disabled, Join with announcement) +# 1 - (Enabled, Join without announcement) + +Channel.SilentlyGMJoin = 0 + +# Channel.ModerationGMLevel +# Min GM account security level required for executing moderator in-game commands in the channels +# This also bypasses password prompts on joining channels which require password +# 0 (in-game channel moderator privileges only) +# Default: 1 (enabled for moderators and above) + +Channel.ModerationGMLevel = 1 + +# +# ChatLevelReq.Channel +# Description: Level requirement for characters to be able to write in chat channels. +# Default: 1 + +ChatLevelReq.Channel = 1 + +# +# ChatLevelReq.Whisper +# Description: Level requirement for characters to be able to whisper other characters. +# Default: 1 + +ChatLevelReq.Whisper = 1 + +# +# ChatLevelReq.Say +# Description: Level requirement for characters to be able to use say/yell/emote. +# Default: 1 + +ChatLevelReq.Say = 1 + +# +# PartyLevelReq +# Description: Minimum level at which players can invite to group, even if they aren't on +# the invite friends list. (Players who are on that friend list can always +# invite despite having lower level) +# Default: 1 + +PartyLevelReq = 1 + +# +# PreserveCustomChannels +# Description: Store custom chat channel settings like password, automatic ownership handout +# or ban list in the database. Needs to be enabled to save custom +# world/trade/etc. channels that have automatic ownership handout disabled. +# (.channel set ownership $channel off) +# Default: 0 - (Disabled, Blizzlike, Channel settings are lost if last person left) +# 1 - (Enabled) + +PreserveCustomChannels = 1 + +# +# PreserveCustomChannelDuration +# Description: Time (in days) that needs to pass before the customs chat channels get +# cleaned up from the database. Only channels with ownership handout enabled +# (default behavior) will be cleaned. +# Default: 14 - (Enabled, Clean channels that haven't been used for 14 days) +# 0 - (Disabled, Infinite channel storage) + +PreserveCustomChannelDuration = 14 + +# +################################################################################################### + +################################################################################################### +# FACTION INTERACTION +# +# AllowTwoSide.Accounts +# Description: Allow creating characters of both factions on the same account. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +AllowTwoSide.Accounts = 1 + +# +# AllowTwoSide.Interaction.Calendar +# Description: Allow calendar invites between factions. # Default: 0 - (Disabled) -# 1+ - (Enabled) +# 1 - (Enabled) -DungeonAccessRequirements.OptionalStringID = 0 +AllowTwoSide.Interaction.Calendar = 0 +# +# AllowTwoSide.Interaction.Chat +# Description: Allow say chat between factions. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Interaction.Chat = 0 + +# +# AllowTwoSide.Interaction.Emote +# Description: Allow emote messages between factions (e.g. "/e looks into the sky") +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Interaction.Emote = 0 + +# +# AllowTwoSide.Interaction.Channel +# Description: Allow channel chat between factions. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Interaction.Channel = 0 + +# +# AllowTwoSide.Interaction.Group +# Description: Allow group joining between factions. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Interaction.Group = 0 + +# +# AllowTwoSide.Interaction.Guild +# Description: Allow guild joining between factions. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Interaction.Guild = 0 + +# +# AllowTwoSide.Interaction.Arena +# Description: Allow joining arena teams between factions. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Interaction.Arena = 0 + +# +# AllowTwoSide.Interaction.Auction +# Description: Allow auctions between factions. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Interaction.Auction = 0 + +# +# AllowTwoSide.Interaction.Mail +# Description: Allow sending mails between factions. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Interaction.Mail = 0 + +# +# AllowTwoSide.WhoList +# Description: Show characters from both factions in the /who list. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.WhoList = 0 + +# +# AllowTwoSide.AddFriend +# Description: Allow adding friends from other faction the friends list. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.AddFriend = 0 + +# +# AllowTwoSide.Trade +# Description: Allow trading between factions. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +AllowTwoSide.Trade = 0 + +# +# TalentsInspecting +# Description: Allow inspecting characters from the opposing faction. +# Doesn't affect characters in gamemaster mode. +# Default: 1 - (Enabled) +# 0 - (Disabled) + +TalentsInspecting = 1 + +# +# ChangeFaction.MaxMoney +# Description: Maximum amount of gold allowed on the character to perform a faction change. +# Default: 0 - Disabled +# > 0 - Enabled (money in copper) +# Example: If set to 10000, the maximum amount of money allowed on the character would be 1 gold. + +ChangeFaction.MaxMoney = 0 + +# +################################################################################################### + +################################################################################################### +# RECRUIT A FRIEND +# +# RecruitAFriend.MaxLevel +# Description: Highest level up to which a character can benefit from the Recruit-A-Friend +# experience multiplier. +# Default: 60 + +RecruitAFriend.MaxLevel = 60 + +# +# RecruitAFriend.MaxDifference +# Description: Highest level difference between linked Recruiter and Friend benefit from +# the Recruit-A-Friend experience multiplier. +# Default: 4 + +RecruitAFriend.MaxDifference = 4 + +# +# MaxRecruitAFriendBonusDistance +# Description: Max distance between character and and group to gain the Recruit-A-Friend +# XP multiplier. +# Default: 100 + +MaxRecruitAFriendBonusDistance = 100 + +# +################################################################################################### + +################################################################################################### +# CALENDAR +# +# Calendar.DeleteOldEventsHour +# Description: Hour of the day when the daily deletion of old calendar events occurs. +# Range: 0-23 +# Default: 6 - (06:00 AM) + +Calendar.DeleteOldEventsHour = 6 + +# +################################################################################################### + +################################################################################################### +# GAME EVENT +# +# Event.Announce +# Description: Announce events. +# Default: 0 - (Disabled) +# 1 - (Enabled) + +Event.Announce = 0 + +# +################################################################################################### + +################################################################################################### +# AUCTION HOUSE +# +# AuctionHouse.SearchTimeout +# Description: Time (in milliseconds) after which an auction house search is discarded. +# Default: 1000 - (1 second) + +AuctionHouse.SearchTimeout = 1000 + +# +# LevelReq.Auction +# Description: Level requirement for characters to be able to use the auction house. +# Default: 1 + +LevelReq.Auction = 1 + +# +# Rate.Auction.Time +# Rate.Auction.Deposit +# Rate.Auction.Cut +# Description: Auction rates (auction time, deposit get at auction start, +# auction cut from price at auction end) +# Default: 1 - (Rate.Auction.Time) +# 1 - (Rate.Auction.Deposit) +# 1 - (Rate.Auction.Cut) + +Rate.Auction.Time = 1 +Rate.Auction.Deposit = 1 +Rate.Auction.Cut = 1 + +# +################################################################################################### + +################################################################################################### +# PLAYER DUMP +# +# PlayerDump.DisallowPaths +# Description: Disallow using paths in PlayerDump output files +# Default: 1 + +PlayerDump.DisallowPaths = 1 + +# +# PlayerDump.DisallowOverwrite +# Description: Disallow overwriting existing files with PlayerDump +# Default: 1 + +PlayerDump.DisallowOverwrite = 1 + +# +################################################################################################### + +################################################################################################### +# CUSTOM # # ICC Buff # Description: Specify ICC buff @@ -3782,326 +4314,41 @@ ICC.Buff.Horde = 73822 ICC.Buff.Alliance = 73828 # -# Item.SetItemTradeable -# Description: Enabled/Disabled trading BoP items among raid members. -# Default: 1 - (Set BoP items tradeable timer to 2 hours) -# 0 - (Disable trading BoP items among raid members) +# Minigob.Manabonk.Enable +# Description: Enable/ Disable Minigob Manabonk +# Default: 1 -Item.SetItemTradeable = 1 +Minigob.Manabonk.Enable = 1 # -# FFAPvPTimer -# Description: Specify time offset when player unset FFAPvP flag when leaving FFAPvP area. (e.g. Gurubashi Arena) -# Default: 30 sec - -FFAPvPTimer = 30 - -# -# LootNeedBeforeGreedILvlRestriction -# Description: Specify level restriction for items below player's subclass in Need Before Greed loot mode in DF groups -# Default: 70 -# 0 - Disabled - -LootNeedBeforeGreedILvlRestriction = 70 - -# -# LFG.MaxKickCount -# Description: Specify the maximum number of kicks allowed in LFG groups (max 3 kicks) -# Default: 2 -# 0 - Disabled (kicks are never allowed) - -LFG.MaxKickCount = 2 - -# -# LFG.KickPreventionTimer -# Description: Specify for how long players are prevented from being kicked after just joining LFG groups -# Default: 900 secs (15 minutes) -# 0 - Disabled - -LFG.KickPreventionTimer = 900 - -# -# EnablePlayerSettings -# Description: Enables the usage of character specific settings. -# Default: 0 - Disabled -# 1 - Enabled - -EnablePlayerSettings = 0 - -# -# JoinBGAndLFG.Enable -# Description: Allow queueing for BG and LFG at the same time. -# Default: 0 - Disabled -# 1 - Enabled - -JoinBGAndLFG.Enable = 0 - -# -# LeaveGroupOnLogout.Enabled -# Description: Should the player leave their group when they log out? -# (It does not affect raids or dungeon finder groups) -# -# Default: 1 - (Enabled) - -LeaveGroupOnLogout.Enabled = 1 - -# -# QuestPOI.Enabled -# Description: Show points of interest on the map -# Default: 1 - Enabled -# 0 - Disabled - -QuestPOI.Enabled = 1 - -# -# ChangeFaction.MaxMoney -# Description: Maximum amount of gold allowed on the character to perform a faction change. -# Default: 0 - Disabled -# > 0 - Enabled (money in copper) -# Example: If set to 10000, the maximum amount of money allowed on the character would be 1 gold. - -ChangeFaction.MaxMoney = 0 - -# -# Pet.RankMod.Health -# Description: Allows pet health to be modified by rank health rates (set in config) -# Default: 1 - Enabled -# 0 - Disabled - -Pet.RankMod.Health = 1 - -# -# AuctionHouse.SearchTimeout -# Description: Time (in milliseconds) after which an auction house search is discarded. -# Default: 1000 - (1 second) - -AuctionHouse.SearchTimeout = 1000 - -# -################################################################################################### - -################################################################################################### -# LOGGING SYSTEM SETTINGS -# -# Appender config values: Given an appender "name" -# Appender.name -# Description: Defines 'where to log'. -# Format: Type,LogLevel,Flags,optional1,optional2,optional3 -# -# Type -# 0 - (None) -# 1 - (Console) -# 2 - (File) -# 3 - (DB) -# -# LogLevel -# 0 - (Disabled) -# 1 - (Fatal) -# 2 - (Error) -# 3 - (Warning) -# 4 - (Info) -# 5 - (Debug) -# 6 - (Trace) -# -# Flags: -# 0 - None -# 1 - Prefix Timestamp to the text -# 2 - Prefix Log Level to the text -# 4 - Prefix Log Filter type to the text -# 8 - Append timestamp to the log file name. Format: YYYY-MM-DD_HH-MM-SS -# (Only used with Type = 2) -# 16 - Make a backup of existing file before overwrite -# (Only used with Mode = w) -# -# Colors (read as optional1 if Type = Console) -# Format: "fatal error warn info debug trace" -# 0 - BLACK -# 1 - RED -# 2 - GREEN -# 3 - BROWN -# 4 - BLUE -# 5 - MAGENTA -# 6 - CYAN -# 7 - GREY -# 8 - YELLOW -# 9 - LRED -# 10 - LGREEN -# 11 - LBLUE -# 12 - LMAGENTA -# 13 - LCYAN -# 14 - WHITE -# Example: "1 9 3 6 5 8" -# -# File: Name of the file (read as optional1 if Type = File) -# Allows to use one "%s" to create dynamic files -# -# Mode: Mode to open the file (read as optional2 if Type = File) -# a - (Append) -# w - (Overwrite) -# -# MaxFileSize: Maximum file size of the log file before creating a new log file -# (read as optional3 if Type = File) -# Size is measured in bytes expressed in a 64-bit unsigned integer. -# Maximum value is 4294967295 (4 GB). Leave blank for no limit. -# NOTE: Does not work with dynamic filenames. -# Example: 536870912 (512 MB) +# Calculate.Creature.Zone.Area.Data +# Description: Calculate at loading creature zoneId / areaId and save in creature table (WARNING: SLOW WORLD SERVER STARTUP) +# Default: 0 - (Do not show) # -Appender.Console=1,4,0,"1 9 3 6 5 8" -Appender.Server=2,5,0,Server.log,w -# Appender.GM=2,5,15,gm_%s.log -Appender.Errors=2,5,0,Errors.log -# Appender.DB=3,5,0 - -# Logger config values: Given a logger "name" -# Logger.name -# Description: Defines 'What to log' -# Format: LogLevel,AppenderList -# -# LogLevel -# 0 - (Disabled) -# 1 - (Fatal) -# 2 - (Error) -# 3 - (Warning) -# 4 - (Info) -# 5 - (Debug) -# 6 - (Trace) -# -# AppenderList: List of appenders linked to logger -# (Using spaces as separator). -# - -Logger.root=2,Console Server -Logger.commands.gm=4,Console GM -Logger.diff=3,Console Server -Logger.mmaps=4,Server -Logger.scripts.hotswap=4,Console Server -Logger.server=4,Console Server -Logger.sql.sql=2,Console Errors -Logger.sql=4,Console Server -Logger.time.update=4,Console Server -Logger.module=4,Console Server -Logger.spells.scripts=2,Console Errors - -#Logger.achievement=4,Console Server -#Logger.addon=4,Console Server -#Logger.ahbot=4,Console Server -#Logger.auctionHouse=4,Console Server -#Logger.autobroadcast=4, Console Server -#Logger.bg.arena=4,Console Server -#Logger.bg.battlefield=4,Console Server -#Logger.bg.battleground=4,Console Server -#Logger.bg.reportpvpafk=4,Console Server -#Logger.calendar=4,Console Server -#Logger.chat.log=4,Console Server -#Logger.chat.log.addon=4,Console Server -#Logger.chat.system=4,Console Server -#Logger.cheat=4,Console Server -#Logger.commands.ra=4,Console Server -#Logger.condition=4,Console Server -#Logger.dbc=4,Console Server -#Logger.disable=4,Console Server -#Logger.entities.dyobject=4,Console Server -#Logger.entities.faction=4,Console Server -#Logger.entities.gameobject=4,Console Server -#Logger.entities.object=4,Console Server -#Logger.entities.pet=4,Console Server -#Logger.entities.player.character=4,Console Server -#Logger.entities.player.dump=4,Console Server -#Logger.entities.player.items=4,Console Server -#Logger.entities.player.loading=4,Console Server -#Logger.entities.player.skills=4,Console Server -#Logger.entities.player=4,Console Server -#Logger.entities.transport=4,Console Server -#Logger.entities.unit.ai=4,Console Server -#Logger.entities.unit=4,Console Server -#Logger.entities.vehicle=4,Console Server -#Logger.gameevent=4,Console Server -#Logger.group=4,Console Server -#Logger.guild=4,Console Server -#Logger.instance.save=4,Console Server -#Logger.instance.script=4,Console Server -#Logger.lfg=4,Console Server -#Logger.loot=4,Console Server -#Logger.mail=4,Console Server -#Logger.maps.script=4,Console Server -#Logger.maps=4,Console Server -#Logger.misc=4,Console Server -#Logger.mmaps.tiles=4,Console Server -#Logger.movement.flightpath=4,Console Server -#Logger.movement.motionmaster=4,Console Server -#Logger.movement.splinechain=4,Console Server -#Logger.movement=4,Console Server -#Logger.network.kick=4,Console Server -#Logger.network.opcode=4,Console Server -#Logger.network.soap=4,Console Server -#Logger.network=4,Console Server -#Logger.outdoorpvp=4,Console Server -#Logger.pool=4,Console Server -#Logger.rbac=4,Console Server -#Logger.reputation=4,Console Server -#Logger.scripts.ai.escortai=4,Console Server -#Logger.scripts.ai.followerai=4,Console Server -#Logger.scripts.ai.petai=4,Console Server -#Logger.scripts.ai.sai=4,Console Server -#Logger.scripts.ai=4,Console Server -#Logger.scripts.cos=4,Console Server -#Logger.scripts=4,Console Server -#Logger.server.authserver=4,Console Server -#Logger.spells.aura.effect.nospell=4,Console Server -#Logger.spells.aura.effect=4,Console Server -#Logger.spells.effect.nospell=4,Console Server -#Logger.spells.effect=4,Console Server -#Logger.spells.scripts=4,Console Server -#Logger.spells=4,Console Server -#Logger.sql.dev=4,Console Server -#Logger.sql.driver=4,Console Server -#Logger.vehicles=4,Console Server -#Logger.warden=4,Console Server -#Logger.weather=4,Console Server +Calculate.Creature.Zone.Area.Data = 0 # -# Log.Async.Enable -# Description: Enables asynchronous message logging. -# Default: 0 - (Disabled) -# 1 - (Enabled) - -Log.Async.Enable = 0 - -# -################################################################################################### - -################################################################################################### -# PACKET SPOOF PROTECTION SETTINGS -# -# These settings determine which action to take when harmful packet spoofing is detected. -# -# PacketSpoof.Policy -# Description: Determines the course of action when packet spoofing is detected. -# Values: 0 - Log only -# 1 - Log + kick -# 2 - Log + kick + ban - -PacketSpoof.Policy = 1 - -# -# PacketSpoof.BanMode -# Description: If PacketSpoof.Policy equals 2, this will determine the ban mode. -# Values: 0 - Ban Account -# 1 - Ban IP -# Note: Banning by character not supported for logical reasons. +# Calculate.Gameoject.Zone.Area.Data +# Description: Calculate at loading gameobject zoneId / areaId and save in gameobject table (WARNING: SLOW WORLD SERVER STARTUP) +# Default: 0 - (Do not show) # -PacketSpoof.BanMode = 0 +Calculate.Gameoject.Zone.Area.Data = 0 # -# PacketSpoof.BanDuration -# Description: Duration of the ban in seconds. Only valid if PacketSpoof.Policy is set to 2. -# Set to 0 for permanent ban. -# Default: 86400 seconds (1 day) -# +# TeleportTimeoutNear +# Description: No description +# Default: 25 -PacketSpoof.BanDuration = 86400 +TeleportTimeoutNear = 25 + +# +# TeleportTimeoutFar +# Description: No description +# Default: 45 + +TeleportTimeoutFar = 45 # ################################################################################################### @@ -4128,58 +4375,9 @@ Debug.Arena = 0 ################################################################################################### ################################################################################################### -# METRIC SETTINGS -# -# These settings control the statistics sent to the metric database (currently InfluxDB) -# -# Metric.Enable -# Description: Enables statistics sent to the metric database. -# Default: 0 - (Disabled) -# 1 - (Enabled) -# - -Metric.Enable = 0 - -# -# Metric.Interval -# Description: Interval between every batch of data sent in seconds -# Default: 10 seconds -# - -Metric.Interval = 10 - -# -# Metric.ConnectionInfo -# Description: Connection settings for metric database (currently InfluxDB). -# Example: "hostname;port;database" -# Default: "127.0.0.1;8086;worldserver" -# - -Metric.ConnectionInfo = "127.0.0.1;8086;worldserver" - -# -# Metric.OverallStatusInterval -# Description: Interval between every gathering of overall worldserver status data in seconds -# Default: 1 second -# - -Metric.OverallStatusInterval = 1 - -# -# Metric threshold values: Given a metric "name" -# Metric.Threshold.name -# Description: Skips sending statistics with a value lower than the config value. -# If the threshold is commented out, the metric will be ignored. -# Only metrics logged with METRIC_DETAILED_TIMER in the sources are affected. -# Disabled by default. Requires WITH_DETAILED_METRICS CMake flag. -# -# Format: Value as integer -# - -#Metric.Threshold.world_update_sessions_time = 100 -#Metric.Threshold.worldsession_update_opcode_time = 50 - -# +# # +# GAME SETTINGS END # +# # ################################################################################################### ################################################################################## diff --git a/src/server/database/Database/Implementation/CharacterDatabase.cpp b/src/server/database/Database/Implementation/CharacterDatabase.cpp index 9565cf310..841ac51c5 100644 --- a/src/server/database/Database/Implementation/CharacterDatabase.cpp +++ b/src/server/database/Database/Implementation/CharacterDatabase.cpp @@ -71,7 +71,7 @@ void CharacterDatabaseConnection::DoPrepareStatements() "resettalents_time, trans_x, trans_y, trans_z, trans_o, transguid, extra_flags, stable_slots, at_login, zone, online, death_expire_time, taxi_path, instance_mode_mask, " "arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, " "health, power1, power2, power3, power4, power5, power6, power7, instance_id, talentGroupsCount, activeTalentGroup, exploredZones, equipmentCache, ammoId, " - "knownTitles, actionBars, grantableLevels, innTriggerId, extraBonusTalentCount FROM characters WHERE guid = ?", CONNECTION_ASYNC); + "knownTitles, actionBars, grantableLevels, innTriggerId, extraBonusTalentCount, UNIX_TIMESTAMP(creation_date) FROM characters WHERE guid = ?", CONNECTION_ASYNC); PrepareStatement(CHAR_SEL_CHARACTER_AURAS, "SELECT casterGuid, itemGuid, spell, effectMask, recalculateMask, stackCount, amount0, amount1, amount2, " "base_amount0, base_amount1, base_amount2, maxDuration, remainTime, remainCharges FROM character_aura WHERE guid = ?", CONNECTION_ASYNC); diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index 993da42e2..f21ae8b83 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -82,7 +82,7 @@ protected: Creature* DoSummon(uint32 entry, WorldObject* obj, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN); Creature* DoSummonFlyer(uint32 entry, WorldObject* obj, float flightZ, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN); public: - // EnumUtils: DESCRIBE THIS + // EnumUtils: DESCRIBE THIS (in CreatureAI::) enum EvadeReason { EVADE_REASON_NO_HOSTILES, // the creature's threat list is empty diff --git a/src/server/game/AI/SmartScripts/SmartAI.cpp b/src/server/game/AI/SmartScripts/SmartAI.cpp index 276074ca9..6f98fd9fc 100644 --- a/src/server/game/AI/SmartScripts/SmartAI.cpp +++ b/src/server/game/AI/SmartScripts/SmartAI.cpp @@ -601,7 +601,7 @@ void SmartAI::MovepointReached(uint32 id) if (mLastWP) { me->SetPosition(mLastWP->x, mLastWP->y, mLastWP->z, me->GetOrientation()); - me->SetHomePosition(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), me->GetOrientation()); + me->SetHomePosition(me->GetPosition()); } if (HasEscortState(SMART_ESCORT_PAUSED)) diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 9452c86d6..d9274030b 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -593,9 +593,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u { // may be nullptr if (go) - { go->CastSpell(target->ToUnit(), e.action.cast.spell); - } if (!IsUnit(target)) continue; @@ -604,29 +602,24 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u { caster->CastSpell(target->ToUnit(), e.action.cast.spell, (e.action.cast.castFlags & SMARTCAST_TRIGGERED)); } - else if (me && (!(e.action.cast.castFlags & SMARTCAST_AURA_NOT_PRESENT) || !target->ToUnit()->HasAura(e.action.cast.spell))) + else if (me) { - if (e.action.cast.castFlags & SMARTCAST_INTERRUPT_PREVIOUS) - { - me->InterruptNonMeleeSpells(false); - } + // If target has the aura, skip + if ((e.action.cast.castFlags & SMARTCAST_AURA_NOT_PRESENT) && target->ToUnit()->HasAura(e.action.cast.spell)) + continue; + // If the threatlist is a singleton, cancel if (e.action.cast.castFlags & SMARTCAST_THREATLIST_NOT_SINGLE) if (me->GetThreatMgr().GetThreatListSize() <= 1) break; - TriggerCastFlags triggerFlags = TRIGGERED_NONE; - if (e.action.cast.castFlags & SMARTCAST_TRIGGERED) - { - if (e.action.cast.triggerFlags) - { - triggerFlags = TriggerCastFlags(e.action.cast.triggerFlags); - } - else - { - triggerFlags = TRIGGERED_FULL_MASK; - } - } + // If target does not use mana, skip + if ((e.action.cast.castFlags & SMARTCAST_TARGET_POWER_MANA) && !target->ToUnit()->GetPower(POWER_MANA)) + continue; + + // Interrupts current spellcast + if (e.action.cast.castFlags & SMARTCAST_INTERRUPT_PREVIOUS) + me->InterruptNonMeleeSpells(false); // Flag usable only if caster has max dist set. if ((e.action.cast.castFlags & SMARTCAST_COMBAT_MOVE) && GetCasterMaxDist() > 0.0f && me->GetMaxPower(GetCasterPowerType()) > 0) @@ -647,15 +640,19 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u } } + TriggerCastFlags triggerFlags = TRIGGERED_NONE; + if (e.action.cast.castFlags & SMARTCAST_TRIGGERED) + { + if (e.action.cast.triggerFlags) + triggerFlags = TriggerCastFlags(e.action.cast.triggerFlags); + else + triggerFlags = TRIGGERED_FULL_MASK; + } + me->CastSpell(target->ToUnit(), e.action.cast.spell, triggerFlags); LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction:: SMART_ACTION_CAST: Unit {} casts spell {} on target {} with castflags {}", me->GetGUID().ToString(), e.action.cast.spell, target->GetGUID().ToString(), e.action.cast.castFlags); } - else - { - LOG_DEBUG("scripts.ai", "Spell {} not cast because it has flag SMARTCAST_AURA_NOT_PRESENT and the target {} already has the aura", - e.action.cast.spell, target->GetGUID().ToString()); - } } break; } @@ -2991,6 +2988,47 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u break; } + case SMART_ACTION_SET_ORIENTATION_TARGET: + { + switch (e.action.orientationTarget.type) + { + case 0: // Reset + { + for (WorldObject* target : targets) + target->ToCreature()->SetFacingTo((target->ToCreature()->HasUnitMovementFlag(MOVEMENTFLAG_ONTRANSPORT) && target->ToCreature()->GetTransGUID() ? target->ToCreature()->GetTransportHomePosition() : target->ToCreature()->GetHomePosition()).GetOrientation()); + + break; + } + case 1: // Target target.o + { + for (WorldObject* target : targets) + target->ToCreature()->SetFacingTo(e.target.o); + + break; + } + case 2: // Target source + { + for (WorldObject* target : targets) + target->ToCreature()->SetFacingToObject(me); + + break; + } + case 3: // Target parameters + { + ObjectVector facingTargets; + GetTargets(facingTargets, CreateSmartEvent(SMART_EVENT_UPDATE_IC, 0, 0, 0, 0, 0, 0, 0, SMART_ACTION_NONE, 0, 0, 0, 0, 0, 0, (SMARTAI_TARGETS)e.action.orientationTarget.targetType, e.action.orientationTarget.targetParam1, e.action.orientationTarget.targetParam2, e.action.orientationTarget.targetParam3, e.action.orientationTarget.targetParam4, 0), unit); + + for (WorldObject* facingTarget : facingTargets) + for (WorldObject* target : targets) + target->ToCreature()->SetFacingToObject(facingTarget); + + break; + } + default: + break; + } + break; + } default: LOG_ERROR("sql.sql", "SmartScript::ProcessAction: Entry {} SourceType {}, Event {}, Unhandled Action type {}", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType()); break; @@ -3162,7 +3200,7 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MaxThreat, 1, PowerUsersSelector(me, Powers(e.target.hostileRandom.powerType - 1), (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly))) targets.push_back(u); } - else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MaxThreat, 1, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly)) + else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MaxThreat, 1, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, true, -e.target.hostileRandom.aura)) targets.push_back(u); } break; @@ -3174,7 +3212,7 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MinThreat, 0, PowerUsersSelector(me, Powers(e.target.hostileRandom.powerType - 1), (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly))) targets.push_back(u); } - else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MinThreat, 0, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly)) + else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::MinThreat, 0, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, true, -e.target.hostileRandom.aura)) targets.push_back(u); } break; @@ -3186,7 +3224,7 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 0, PowerUsersSelector(me, Powers(e.target.hostileRandom.powerType - 1), (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly))) targets.push_back(u); } - else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 0, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly)) + else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 0, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, true, -e.target.hostileRandom.aura)) targets.push_back(u); } break; @@ -3198,7 +3236,7 @@ void SmartScript::GetTargets(ObjectVector& targets, SmartScriptHolder const& e, if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 1, PowerUsersSelector(me, Powers(e.target.hostileRandom.powerType - 1), (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly))) targets.push_back(u); } - else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 1, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly)) + else if (Unit* u = me->AI()->SelectTarget(SelectTargetMethod::Random, 1, (float)e.target.hostileRandom.maxDist, e.target.hostileRandom.playerOnly, true, -e.target.hostileRandom.aura)) targets.push_back(u); } break; @@ -3785,16 +3823,8 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui if (!me || !me->IsEngaged() || !me->GetVictim()) return; - if (me->IsInRange(me->GetVictim(), (float)e.event.rangeRepeat.minRange, (float)e.event.rangeRepeat.maxRange)) - { - if (e.event.rangeRepeat.onlyFireOnRepeat == 2) - { - e.event.rangeRepeat.onlyFireOnRepeat = 1; - RecalcTimer(e, e.event.rangeRepeat.repeatMin, e.event.rangeRepeat.repeatMax); - } - else - ProcessTimedAction(e, e.event.rangeRepeat.repeatMin, e.event.rangeRepeat.repeatMax, me->GetVictim()); - } + if (me->IsInRange(me->GetVictim(), (float)e.event.minMaxRepeat.rangeMin, (float)e.event.minMaxRepeat.rangeMax)) + ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, me->GetVictim()); else RecalcTimer(e, 1200, 1200); // make it predictable @@ -3947,9 +3977,11 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui if (Unit* victim = me->GetVictim()) { - if (!victim->HasInArc(static_cast(M_PI), me)) - ProcessTimedAction(e, e.event.behindTarget.cooldownMin, e.event.behindTarget.cooldownMax, victim); + if (e.event.minMaxRepeat.rangeMax && (me->IsInRange(victim, (float)e.event.minMaxRepeat.rangeMin, (float)e.event.minMaxRepeat.rangeMax))) + if (!victim->HasInArc(static_cast(M_PI), me)) + ProcessTimedAction(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax, victim); } + break; } case SMART_EVENT_RECEIVE_EMOTE: @@ -4229,7 +4261,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui if (IsUnit(target) && me->IsFriendlyTo(target->ToUnit()) && target->ToUnit()->IsAlive() && target->ToUnit()->IsInCombat()) { uint32 healthPct = uint32(target->ToUnit()->GetHealthPct()); - if (healthPct > e.event.friendlyHealthPct.maxHpPct || healthPct < e.event.friendlyHealthPct.minHpPct) + if (healthPct > e.event.friendlyHealthPct.hpPct) { continue; } @@ -4243,7 +4275,7 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui } case SMART_TARGET_SELF: case SMART_TARGET_ACTION_INVOKER: - unitTarget = DoSelectLowestHpPercentFriendly((float)e.event.friendlyHealthPct.radius, e.event.friendlyHealthPct.minHpPct, e.event.friendlyHealthPct.maxHpPct); + unitTarget = DoSelectLowestHpPercentFriendly((float)e.event.friendlyHealthPct.radius, 0, e.event.friendlyHealthPct.hpPct); break; default: return; @@ -4435,14 +4467,14 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui { if (Unit* target = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid())) { - if (!target || target->IsPet() || target->IsTotem() || !target->IsNonMeleeSpellCast(false, false, true)) + if (!target || !IsPlayer(target) || !target->IsNonMeleeSpellCast(false, false, true)) continue; - if (e.event.areaCasting.rangeMin && !(me->IsInRange(target, (float)e.event.areaCasting.rangeMin, (float)e.event.areaCasting.rangeMax))) + if (!(me->IsInRange(target, (float)e.event.minMaxRepeat.rangeMin, (float)e.event.minMaxRepeat.rangeMax))) continue; ProcessAction(e, target); - RecalcTimer(e, e.event.areaCasting.repeatMin, e.event.areaCasting.repeatMax); + RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax); return; } @@ -4463,11 +4495,11 @@ void SmartScript::ProcessEvent(SmartScriptHolder& e, Unit* unit, uint32 var0, ui { if (Unit* target = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid())) { - if (!(me->IsInRange(target, (float)e.event.areaRange.rangeMin, (float)e.event.areaRange.rangeMax))) + if (!(me->IsInRange(target, (float)e.event.minMaxRepeat.rangeMin, (float)e.event.minMaxRepeat.rangeMax))) continue; ProcessAction(e, target); - RecalcTimer(e, e.event.areaRange.repeatMin, e.event.areaRange.repeatMax); + RecalcTimer(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax); return; } } @@ -4487,16 +4519,6 @@ void SmartScript::InitTimer(SmartScriptHolder& e) switch (e.GetEventType()) { //set only events which have initial timers - case SMART_EVENT_RANGE: - // If onlyFireOnRepeat is true set to 2 before entering combat. Will be set back to 1 after entering combat to ignore initial firing. - if (e.event.rangeRepeat.onlyFireOnRepeat == 1) - e.event.rangeRepeat.onlyFireOnRepeat = 2; - // make it predictable - RecalcTimer(e, 1200, 1200); - break; - case SMART_EVENT_AREA_RANGE: - RecalcTimer(e, e.event.areaRange.min, e.event.areaRange.max); - break; case SMART_EVENT_NEAR_PLAYERS: case SMART_EVENT_NEAR_PLAYERS_NEGATION: RecalcTimer(e, e.event.nearPlayer.firstTimer, e.event.nearPlayer.firstTimer); @@ -4504,13 +4526,13 @@ void SmartScript::InitTimer(SmartScriptHolder& e) case SMART_EVENT_UPDATE: case SMART_EVENT_UPDATE_IC: case SMART_EVENT_UPDATE_OOC: + case SMART_EVENT_RANGE: + case SMART_EVENT_AREA_RANGE: + case SMART_EVENT_AREA_CASTING: + case SMART_EVENT_IS_BEHIND_TARGET: + case SMART_EVENT_FRIENDLY_HEALTH_PCT: RecalcTimer(e, e.event.minMaxRepeat.min, e.event.minMaxRepeat.max); break; - case SMART_EVENT_OOC_LOS: - case SMART_EVENT_IC_LOS: - // Xinef: cooldown should be processed AFTER action is done, not before... - //RecalcTimer(e, e.event.los.cooldownMin, e.event.los.cooldownMax); - //break; case SMART_EVENT_DISTANCE_CREATURE: case SMART_EVENT_DISTANCE_GAMEOBJECT: RecalcTimer(e, e.event.distance.repeat, e.event.distance.repeat); @@ -4519,9 +4541,6 @@ void SmartScript::InitTimer(SmartScriptHolder& e) case SMART_EVENT_NEAR_UNIT_NEGATION: RecalcTimer(e, e.event.nearUnit.timer, e.event.nearUnit.timer); break; - case SMART_EVENT_AREA_CASTING: - RecalcTimer(e, e.event.areaCasting.min, e.event.areaCasting.max); - break; default: e.active = true; break; @@ -4550,14 +4569,14 @@ void SmartScript::UpdateTimer(SmartScriptHolder& e, uint32 const diff) if (e.timer < diff) { - // delay spell cast event if another spell is being casted + // delay spell cast for another AI tick if another spell is being cast if (e.GetActionType() == SMART_ACTION_CAST) { if (!(e.action.cast.castFlags & SMARTCAST_INTERRUPT_PREVIOUS)) { if (me && me->HasUnitState(UNIT_STATE_CASTING)) { - e.timer = 1; + e.timer = 1200; return; } } @@ -4566,9 +4585,9 @@ void SmartScript::UpdateTimer(SmartScriptHolder& e, uint32 const diff) // Delay flee for assist event if casting if (e.GetActionType() == SMART_ACTION_FLEE_FOR_ASSIST && me && me->HasUnitState(UNIT_STATE_CASTING)) { - e.timer = 1; + e.timer = 1200; return; - } + } // @TODO: Can't these be handled by the action themselves instead? Less expensive e.active = true;//activate events with cooldown switch (e.GetEventType())//process ONLY timed events @@ -4809,10 +4828,10 @@ void SmartScript::OnInitialize(WorldObject* obj, AreaTrigger const* at) InitTimer((*i));//calculate timers for first time use if (i->GetEventType() == SMART_EVENT_RANGE && i->GetActionType() == SMART_ACTION_ALLOW_COMBAT_MOVEMENT) { - if (i->action.combatMove.move == 1 && i->event.rangeRepeat.minRange > minEnableDist) - minEnableDist = i->event.rangeRepeat.minRange; - else if (i->action.combatMove.move == 0 && (i->event.rangeRepeat.maxRange < maxDisableDist || maxDisableDist == 0)) - maxDisableDist = i->event.rangeRepeat.maxRange; + if (i->action.combatMove.move == 1 && i->event.minMaxRepeat.rangeMin > minEnableDist) + minEnableDist = i->event.minMaxRepeat.rangeMin; + else if (i->action.combatMove.move == 0 && (i->event.minMaxRepeat.rangeMax < maxDisableDist || maxDisableDist == 0)) + maxDisableDist = i->event.minMaxRepeat.rangeMax; } // Xinef: if smartcast combat move flag is present diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp index aceadfc11..85422ee25 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.cpp @@ -264,29 +264,14 @@ void SmartAIMgr::LoadSmartAIFromDB() case SMART_EVENT_FRIENDLY_MISSING_BUFF: case SMART_EVENT_HAS_AURA: case SMART_EVENT_TARGET_BUFFED: + case SMART_EVENT_RANGE: + case SMART_EVENT_AREA_RANGE: + case SMART_EVENT_AREA_CASTING: + case SMART_EVENT_IS_BEHIND_TARGET: if (temp.event.minMaxRepeat.repeatMin == 0 && temp.event.minMaxRepeat.repeatMax == 0) temp.event.event_flags |= SMART_EVENT_FLAG_NOT_REPEATABLE; break; - case SMART_EVENT_RANGE: - if (temp.event.rangeRepeat.repeatMin == 0 && temp.event.rangeRepeat.repeatMax == 0) - temp.event.event_flags |= SMART_EVENT_FLAG_NOT_REPEATABLE; - // Will only work properly if value is 0 or 1 - if (temp.event.rangeRepeat.onlyFireOnRepeat > 1) - temp.event.rangeRepeat.onlyFireOnRepeat = 1; - break; - case SMART_EVENT_AREA_RANGE: - if (temp.event.areaRange.repeatMin == 0 && temp.event.areaRange.repeatMax == 0) - temp.event.event_flags |= SMART_EVENT_FLAG_NOT_REPEATABLE; - break; case SMART_EVENT_VICTIM_CASTING: - case SMART_EVENT_IS_BEHIND_TARGET: - if (temp.event.minMaxRepeat.min == 0 && temp.event.minMaxRepeat.max == 0) - temp.event.event_flags |= SMART_EVENT_FLAG_NOT_REPEATABLE; - break; - case SMART_EVENT_AREA_CASTING: - if (temp.event.areaCasting.repeatMin == 0 && temp.event.areaCasting.repeatMax == 0) - temp.event.event_flags |= SMART_EVENT_FLAG_NOT_REPEATABLE; - break; case SMART_EVENT_FRIENDLY_IS_CC: if (temp.event.friendlyCC.repeatMin == 0 && temp.event.friendlyCC.repeatMax == 0) temp.event.event_flags |= SMART_EVENT_FLAG_NOT_REPEATABLE; @@ -506,7 +491,7 @@ bool SmartAIMgr::CheckUnusedEventParams(SmartScriptHolder const& e) case SMART_EVENT_DEATH: return NO_PARAMS; case SMART_EVENT_EVADE: return NO_PARAMS; case SMART_EVENT_SPELLHIT: return sizeof(SmartEvent::spellHit); - case SMART_EVENT_RANGE: return sizeof(SmartEvent::rangeRepeat); + case SMART_EVENT_RANGE: return sizeof(SmartEvent::minMaxRepeat); case SMART_EVENT_OOC_LOS: return sizeof(SmartEvent::los); case SMART_EVENT_RESPAWN: return sizeof(SmartEvent::respawn); case SMART_EVENT_TARGET_HEALTH_PCT: return sizeof(SmartEvent::minMaxRepeat); @@ -564,7 +549,7 @@ bool SmartAIMgr::CheckUnusedEventParams(SmartScriptHolder const& e) case SMART_EVENT_GOSSIP_HELLO: return sizeof(SmartEvent::gossipHello); case SMART_EVENT_FOLLOW_COMPLETED: return NO_PARAMS; case SMART_EVENT_EVENT_PHASE_CHANGE: return sizeof(SmartEvent::eventPhaseChange); - case SMART_EVENT_IS_BEHIND_TARGET: return sizeof(SmartEvent::behindTarget); + case SMART_EVENT_IS_BEHIND_TARGET: return sizeof(SmartEvent::minMaxRepeat); case SMART_EVENT_GAME_EVENT_START: return sizeof(SmartEvent::gameEvent); case SMART_EVENT_GAME_EVENT_END: return sizeof(SmartEvent::gameEvent); case SMART_EVENT_GO_STATE_CHANGED: return sizeof(SmartEvent::goStateChanged); @@ -584,8 +569,8 @@ bool SmartAIMgr::CheckUnusedEventParams(SmartScriptHolder const& e) case SMART_EVENT_NEAR_PLAYERS_NEGATION: return sizeof(SmartEvent::nearPlayerNegation); case SMART_EVENT_NEAR_UNIT: return sizeof(SmartEvent::nearUnit); case SMART_EVENT_NEAR_UNIT_NEGATION: return sizeof(SmartEvent::nearUnitNegation); - case SMART_EVENT_AREA_CASTING: return sizeof(SmartEvent::areaCasting); - case SMART_EVENT_AREA_RANGE: return sizeof(SmartEvent::areaRange); + case SMART_EVENT_AREA_CASTING: return sizeof(SmartEvent::minMaxRepeat); + case SMART_EVENT_AREA_RANGE: return sizeof(SmartEvent::minMaxRepeat); default: LOG_WARN("sql.sql", "SmartAIMgr: entryorguid {} source_type {} id {} action_type {} is using an event {} with no unused params specified in SmartAIMgr::CheckUnusedEventParams(), please report this.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType(), e.GetEventType()); @@ -781,6 +766,7 @@ bool SmartAIMgr::CheckUnusedActionParams(SmartScriptHolder const& e) case SMART_ACTION_SUMMON_RADIAL: return sizeof(SmartAction::radialSummon); case SMART_ACTION_PLAY_SPELL_VISUAL: return sizeof(SmartAction::spellVisual); case SMART_ACTION_FOLLOW_GROUP: return sizeof(SmartAction::followGroup); + case SMART_ACTION_SET_ORIENTATION_TARGET: return sizeof(SmartAction::orientationTarget); default: LOG_WARN("sql.sql", "SmartAIMgr: entryorguid {} source_type {} id {} action_type {} is using an action with no unused params specified in SmartAIMgr::CheckUnusedActionParams(), please report this.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType()); @@ -963,21 +949,17 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) if (!IsMinMaxValid(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax)) return false; break; - case SMART_EVENT_RANGE: - if (!IsMinMaxValid(e, e.event.rangeRepeat.minRange, e.event.rangeRepeat.maxRange)) - return false; - - if (!IsMinMaxValid(e, e.event.rangeRepeat.repeatMin, e.event.rangeRepeat.repeatMax)) - return false; - break; case SMART_EVENT_AREA_RANGE: - if (!IsMinMaxValid(e, e.event.areaRange.min, e.event.areaRange.max)) + case SMART_EVENT_AREA_CASTING: + case SMART_EVENT_IS_BEHIND_TARGET: + case SMART_EVENT_RANGE: + if (!IsMinMaxValid(e, e.event.minMaxRepeat.min, e.event.minMaxRepeat.max)) return false; - if (!IsMinMaxValid(e, e.event.areaRange.repeatMin, e.event.areaRange.repeatMax)) + if (!IsMinMaxValid(e, e.event.minMaxRepeat.repeatMin, e.event.minMaxRepeat.repeatMax)) return false; - if (!IsMinMaxValid(e, e.event.areaRange.rangeMin, e.event.areaRange.rangeMax)) + if (!IsMinMaxValid(e, e.event.minMaxRepeat.rangeMin, e.event.minMaxRepeat.rangeMax)) return false; break; @@ -1070,16 +1052,6 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) if (!IsMinMaxValid(e, e.event.targetCasting.repeatMin, e.event.targetCasting.repeatMax)) return false; break; - case SMART_EVENT_AREA_CASTING: - if (!IsMinMaxValid(e, e.event.areaCasting.min, e.event.areaCasting.max)) - return false; - - if (!IsMinMaxValid(e, e.event.areaCasting.repeatMin, e.event.areaCasting.repeatMax)) - return false; - - if (!IsMinMaxValid(e, e.event.areaCasting.rangeMin, e.event.areaCasting.rangeMax)) - return false; - break; case SMART_EVENT_PASSENGER_BOARDED: case SMART_EVENT_PASSENGER_REMOVED: if (!IsMinMaxValid(e, e.event.minMax.repeatMin, e.event.minMax.repeatMax)) @@ -1185,10 +1157,6 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) } break; } - case SMART_EVENT_IS_BEHIND_TARGET: - if (!IsMinMaxValid(e, e.event.behindTarget.cooldownMin, e.event.behindTarget.cooldownMax)) - return false; - break; case SMART_EVENT_GAME_EVENT_START: case SMART_EVENT_GAME_EVENT_END: { @@ -1207,10 +1175,13 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) break; } case SMART_EVENT_FRIENDLY_HEALTH_PCT: + if (!IsMinMaxValid(e, e.event.friendlyHealthPct.min, e.event.friendlyHealthPct.max)) + return false; + if (!IsMinMaxValid(e, e.event.friendlyHealthPct.repeatMin, e.event.friendlyHealthPct.repeatMax)) return false; - if (e.event.friendlyHealthPct.maxHpPct > 100 || e.event.friendlyHealthPct.minHpPct > 100) + if (e.event.friendlyHealthPct.hpPct > 100) { LOG_ERROR("sql.sql", "SmartAIMgr: Entry {} SourceType {} Event {} Action {} has pct value above 100, skipped.", e.entryOrGuid, e.GetScriptType(), e.event_id, e.GetActionType()); return false; @@ -1971,6 +1942,7 @@ bool SmartAIMgr::IsEventValid(SmartScriptHolder& e) case SMART_ACTION_SUMMON_RADIAL: case SMART_ACTION_PLAY_SPELL_VISUAL: case SMART_ACTION_FOLLOW_GROUP: + case SMART_ACTION_SET_ORIENTATION_TARGET: break; default: LOG_ERROR("sql.sql", "SmartAIMgr: Not handled action_type({}), event_type({}), Entry {} SourceType {} Event {}, skipped.", e.GetActionType(), e.GetEventType(), e.entryOrGuid, e.GetScriptType(), e.event_id); diff --git a/src/server/game/AI/SmartScripts/SmartScriptMgr.h b/src/server/game/AI/SmartScripts/SmartScriptMgr.h index b822ae989..3ac499498 100644 --- a/src/server/game/AI/SmartScripts/SmartScriptMgr.h +++ b/src/server/game/AI/SmartScripts/SmartScriptMgr.h @@ -124,7 +124,7 @@ enum SMART_EVENT SMART_EVENT_DEATH = 6, // NONE SMART_EVENT_EVADE = 7, // NONE SMART_EVENT_SPELLHIT = 8, // SpellID, School, CooldownMin, CooldownMax - SMART_EVENT_RANGE = 9, // minRange, maxRange, repeatMin, repeatMax, onlyFireOnRepeat + SMART_EVENT_RANGE = 9, // min, max, repeatMin, repeatMax, rangeMin, rangeMax SMART_EVENT_OOC_LOS = 10, // HostilityMode, MaxRnage, CooldownMin, CooldownMax, PlayerOnly SMART_EVENT_RESPAWN = 11, // type, MapId, ZoneId SMART_EVENT_TARGET_HEALTH_PCT = 12, // HPMin%, HPMax%, RepeatMin, RepeatMax @@ -182,14 +182,14 @@ enum SMART_EVENT SMART_EVENT_GOSSIP_HELLO = 64, // event_para_1 (only) 0 = no filter set, always execute action, 1 = GossipHello only filter set, skip action if reportUse, 2 = reportUse only filter set, skip action if GossipHello SMART_EVENT_FOLLOW_COMPLETED = 65, // none SMART_EVENT_EVENT_PHASE_CHANGE = 66, // event phase mask (<= SMART_EVENT_PHASE_ALL) - SMART_EVENT_IS_BEHIND_TARGET = 67, // cooldownMin, CooldownMax + SMART_EVENT_IS_BEHIND_TARGET = 67, // min, max, repeatMin, repeatMax, rangeMin, rangeMax SMART_EVENT_GAME_EVENT_START = 68, // game_event.Entry SMART_EVENT_GAME_EVENT_END = 69, // game_event.Entry SMART_EVENT_GO_STATE_CHANGED = 70, // go state SMART_EVENT_GO_EVENT_INFORM = 71, // eventId SMART_EVENT_ACTION_DONE = 72, // eventId (SharedDefines.EventId) SMART_EVENT_ON_SPELLCLICK = 73, // clicker (unit) - SMART_EVENT_FRIENDLY_HEALTH_PCT = 74, // minHpPct, maxHpPct, repeatMin, repeatMax + SMART_EVENT_FRIENDLY_HEALTH_PCT = 74, // min, max, repeatMin, repeatMax, hpPct, range SMART_EVENT_DISTANCE_CREATURE = 75, // guid, entry, distance, repeat SMART_EVENT_DISTANCE_GAMEOBJECT = 76, // guid, entry, distance, repeat SMART_EVENT_COUNTER_SET = 77, // id, value, cooldownMin, cooldownMax @@ -210,8 +210,8 @@ enum SMART_EVENT SMART_EVENT_NEAR_PLAYERS_NEGATION = 102, // max, radius, first timer, repeatMin, repeatMax SMART_EVENT_NEAR_UNIT = 103, // type (0: creature 1: gob), entry, count, range, timer SMART_EVENT_NEAR_UNIT_NEGATION = 104, // type (0: creature 1: gob), entry, count, range, timer - SMART_EVENT_AREA_CASTING = 105, // min, max, repeatMin, repeatMax, range - SMART_EVENT_AREA_RANGE = 106, // min, max, repeatMin, repeatMax, range + SMART_EVENT_AREA_CASTING = 105, // min, max, repeatMin, repeatMax, rangeMin, rangeMax + SMART_EVENT_AREA_RANGE = 106, // min, max, repeatMin, repeatMax, rangeMin, rangeMax SMART_EVENT_AC_END = 107 }; @@ -230,17 +230,10 @@ struct SmartEvent uint32 max; uint32 repeatMin; uint32 repeatMax; + uint32 rangeMin; + uint32 rangeMax; } minMaxRepeat; - struct - { - uint32 minRange; - uint32 maxRange; - uint32 repeatMin; - uint32 repeatMax; - uint32 onlyFireOnRepeat; - } rangeRepeat; - struct { uint32 cooldownMin; @@ -430,12 +423,6 @@ struct SmartEvent uint32 phasemask; } eventPhaseChange; - struct - { - uint32 cooldownMin; - uint32 cooldownMax; - } behindTarget; - struct { uint32 gameEventId; @@ -458,10 +445,11 @@ struct SmartEvent struct { - uint32 minHpPct; - uint32 maxHpPct; + uint32 min; + uint32 max; uint32 repeatMin; uint32 repeatMax; + uint32 hpPct; uint32 radius; } friendlyHealthPct; @@ -517,26 +505,6 @@ struct SmartEvent uint32 timer; } nearUnitNegation; - struct - { - uint32 min; - uint32 max; - uint32 repeatMin; - uint32 repeatMax; - uint32 rangeMin; - uint32 rangeMax; - } areaCasting; - - struct - { - uint32 min; - uint32 max; - uint32 repeatMin; - uint32 repeatMax; - uint32 rangeMin; - uint32 rangeMax; - } areaRange; - struct { uint32 param1; @@ -743,8 +711,9 @@ enum SMART_ACTION SMART_ACTION_SUMMON_RADIAL = 228, // summonEntry, summonDuration, repetitions, startAngle, stepAngle, dist SMART_ACTION_PLAY_SPELL_VISUAL = 229, // visualId, visualIdImpact SMART_ACTION_FOLLOW_GROUP = 230, // followState, followType, dist + SMART_ACTION_SET_ORIENTATION_TARGET = 231, // type, target_type, target_param1, target_param2, target_param3, target_param4 - SMART_ACTION_AC_END = 231, // placeholder + SMART_ACTION_AC_END = 232, // placeholder }; enum class SmartActionSummonCreatureFlags @@ -1453,6 +1422,16 @@ struct SmartAction uint32 followType; uint32 dist; } followGroup; + + struct + { + uint32 type; + uint32 targetType; + uint32 targetParam1; + uint32 targetParam2; + uint32 targetParam3; + uint32 targetParam4; + } orientationTarget; //! Note for any new future actions //! All parameters must have type uint32 @@ -1484,10 +1463,10 @@ enum SMARTAI_TARGETS SMART_TARGET_NONE = 0, // NONE SMART_TARGET_SELF = 1, // Self cast SMART_TARGET_VICTIM = 2, // Our current target (ie: highest aggro) - SMART_TARGET_HOSTILE_SECOND_AGGRO = 3, // Second highest aggro, maxdist, playerOnly, powerType + 1 - SMART_TARGET_HOSTILE_LAST_AGGRO = 4, // Dead last on aggro, maxdist, playerOnly, powerType + 1 - SMART_TARGET_HOSTILE_RANDOM = 5, // Just any random target on our threat list, maxdist, playerOnly, powerType + 1 - SMART_TARGET_HOSTILE_RANDOM_NOT_TOP = 6, // Any random target except top threat, maxdist, playerOnly, powerType + 1 + SMART_TARGET_HOSTILE_SECOND_AGGRO = 3, // Second highest aggro, maxdist, playerOnly, powerType + 1, missing aura + SMART_TARGET_HOSTILE_LAST_AGGRO = 4, // Dead last on aggro, maxdist, playerOnly, powerType + 1, missing aura + SMART_TARGET_HOSTILE_RANDOM = 5, // Just any random target on our threat list, maxdist, playerOnly, powerType + 1, missing aura + SMART_TARGET_HOSTILE_RANDOM_NOT_TOP = 6, // Any random target except top threat, maxdist, playerOnly, powerType + 1, missing aura SMART_TARGET_ACTION_INVOKER = 7, // Unit who caused this Event to occur SMART_TARGET_POSITION = 8, // use xyz from event params SMART_TARGET_CREATURE_RANGE = 9, // CreatureEntry(0any), minDist, maxDist, alive(0 - both, 1 - alive, 2 - dead) @@ -1551,6 +1530,7 @@ struct SmartTarget uint32 maxDist; SAIBool playerOnly; uint32 powerType; + uint32 aura; } hostileRandom; struct @@ -1864,16 +1844,16 @@ const uint32 SmartAIEventMask[SMART_EVENT_AC_END][2] = enum SmartEventFlags { - SMART_EVENT_FLAG_NOT_REPEATABLE = 0x001, //Event can not repeat - SMART_EVENT_FLAG_DIFFICULTY_0 = 0x002, //Event only occurs in instance difficulty 0 - SMART_EVENT_FLAG_DIFFICULTY_1 = 0x004, //Event only occurs in instance difficulty 1 - SMART_EVENT_FLAG_DIFFICULTY_2 = 0x008, //Event only occurs in instance difficulty 2 - SMART_EVENT_FLAG_DIFFICULTY_3 = 0x010, //Event only occurs in instance difficulty 3 + SMART_EVENT_FLAG_NOT_REPEATABLE = 0x001, // Event can not repeat + SMART_EVENT_FLAG_DIFFICULTY_0 = 0x002, // Event only occurs in instance difficulty 0 + SMART_EVENT_FLAG_DIFFICULTY_1 = 0x004, // Event only occurs in instance difficulty 1 + SMART_EVENT_FLAG_DIFFICULTY_2 = 0x008, // Event only occurs in instance difficulty 2 + SMART_EVENT_FLAG_DIFFICULTY_3 = 0x010, // Event only occurs in instance difficulty 3 SMART_EVENT_FLAG_RESERVED_5 = 0x020, SMART_EVENT_FLAG_RESERVED_6 = 0x040, - SMART_EVENT_FLAG_DEBUG_ONLY = 0x080, //Event only occurs in debug build - SMART_EVENT_FLAG_DONT_RESET = 0x100, //Event will not reset in SmartScript::OnReset() - SMART_EVENT_FLAG_WHILE_CHARMED = 0x200, //Event occurs even if AI owner is charmed + SMART_EVENT_FLAG_DEBUG_ONLY = 0x080, // Event only occurs in debug build + SMART_EVENT_FLAG_DONT_RESET = 0x100, // Event will not reset in SmartScript::OnReset() + SMART_EVENT_FLAG_WHILE_CHARMED = 0x200, // Event occurs even if AI owner is charmed SMART_EVENT_FLAG_DIFFICULTY_ALL = (SMART_EVENT_FLAG_DIFFICULTY_0 | SMART_EVENT_FLAG_DIFFICULTY_1 | SMART_EVENT_FLAG_DIFFICULTY_2 | SMART_EVENT_FLAG_DIFFICULTY_3), SMART_EVENT_FLAGS_ALL = (SMART_EVENT_FLAG_NOT_REPEATABLE | SMART_EVENT_FLAG_DIFFICULTY_ALL | SMART_EVENT_FLAG_RESERVED_5 | SMART_EVENT_FLAG_RESERVED_6 | SMART_EVENT_FLAG_DEBUG_ONLY | SMART_EVENT_FLAG_DONT_RESET | SMART_EVENT_FLAG_WHILE_CHARMED) @@ -1881,14 +1861,15 @@ enum SmartEventFlags enum SmartCastFlags { - SMARTCAST_INTERRUPT_PREVIOUS = 0x01, //Interrupt any spell casting - SMARTCAST_TRIGGERED = 0x02, //Triggered (this makes spell cost zero mana and have no cast time) - //CAST_FORCE_CAST = 0x04, //Forces cast even if creature is out of mana or out of range - //CAST_NO_MELEE_IF_OOM = 0x08, //Prevents creature from entering melee if out of mana or out of range - //CAST_FORCE_TARGET_SELF = 0x10, //Forces the target to cast this spell on itself - SMARTCAST_AURA_NOT_PRESENT = 0x20, //Only casts the spell if the target does not have an aura from the spell - SMARTCAST_COMBAT_MOVE = 0x40, //Prevents combat movement if cast successful. Allows movement on range, OOM, LOS - SMARTCAST_THREATLIST_NOT_SINGLE = 0x80 //Only cast if the source's threatlist is higher than one. This includes pets (see Skeram's True Fulfillment) + SMARTCAST_INTERRUPT_PREVIOUS = 0x001, // Interrupt any spell casting + SMARTCAST_TRIGGERED = 0x002, // Triggered (this makes spell cost zero mana and have no cast time) + //CAST_FORCE_CAST = 0x004, // Forces cast even if creature is out of mana or out of range + //CAST_NO_MELEE_IF_OOM = 0x008, // Prevents creature from entering melee if out of mana or out of range + //CAST_FORCE_TARGET_SELF = 0x010, // Forces the target to cast this spell on itself + SMARTCAST_AURA_NOT_PRESENT = 0x020, // Only casts the spell if the target does not have an aura from the spell + SMARTCAST_COMBAT_MOVE = 0x040, // Prevents combat movement if cast successful. Allows movement on range, OOM, LOS + SMARTCAST_THREATLIST_NOT_SINGLE = 0x080, // Only cast if the source's threatlist is higher than one. This includes pets (see Skeram's True Fulfillment) + SMARTCAST_TARGET_POWER_MANA = 0x100 // Only cast if the target has power type mana (e.g. Mana Drain) }; enum SmartFollowType diff --git a/src/server/game/AI/enuminfo_CreatureAI.cpp b/src/server/game/AI/enuminfo_CreatureAI.cpp new file mode 100644 index 000000000..3cb4c7e15 --- /dev/null +++ b/src/server/game/AI/enuminfo_CreatureAI.cpp @@ -0,0 +1,70 @@ +/* + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + +#include "CreatureAI.h" +#include "Define.h" +#include "SmartEnum.h" +#include + +namespace Acore::Impl::EnumUtilsImpl +{ + +/****************************************************************************\ +|* data for enum 'CreatureAI::EvadeReason' in 'CreatureAI.h' auto-generated *| +\****************************************************************************/ +template <> +AC_API_EXPORT EnumText EnumUtils::ToString(CreatureAI::EvadeReason value) +{ + switch (value) + { + case CreatureAI::EVADE_REASON_NO_HOSTILES: return { "EVADE_REASON_NO_HOSTILES", "EVADE_REASON_NO_HOSTILES", "the creature's threat list is empty" }; + case CreatureAI::EVADE_REASON_BOUNDARY: return { "EVADE_REASON_BOUNDARY", "EVADE_REASON_BOUNDARY", "the creature has moved outside its evade boundary" }; + case CreatureAI::EVADE_REASON_SEQUENCE_BREAK: return { "EVADE_REASON_SEQUENCE_BREAK", "EVADE_REASON_SEQUENCE_BREAK", "this is a boss and the pre-requisite encounters for engaging it are not defeated yet" }; + case CreatureAI::EVADE_REASON_NO_PATH: return { "EVADE_REASON_NO_PATH", "EVADE_REASON_NO_PATH", "the creature was unable to reach its target for over 5 seconds" }; + default: throw std::out_of_range("value"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::Count() { return 4; } + +template <> +AC_API_EXPORT CreatureAI::EvadeReason EnumUtils::FromIndex(size_t index) +{ + switch (index) + { + case 0: return CreatureAI::EVADE_REASON_NO_HOSTILES; + case 1: return CreatureAI::EVADE_REASON_BOUNDARY; + case 2: return CreatureAI::EVADE_REASON_SEQUENCE_BREAK; + case 3: return CreatureAI::EVADE_REASON_NO_PATH; + default: throw std::out_of_range("index"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::ToIndex(CreatureAI::EvadeReason value) +{ + switch (value) + { + case CreatureAI::EVADE_REASON_NO_HOSTILES: return 0; + case CreatureAI::EVADE_REASON_BOUNDARY: return 1; + case CreatureAI::EVADE_REASON_SEQUENCE_BREAK: return 2; + case CreatureAI::EVADE_REASON_NO_PATH: return 3; + default: throw std::out_of_range("value"); + } +} +} diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp index 1e86f067c..f445136f0 100644 --- a/src/server/game/Achievements/AchievementMgr.cpp +++ b/src/server/game/Achievements/AchievementMgr.cpp @@ -82,6 +82,7 @@ bool AchievementCriteriaData::IsValid(AchievementCriteriaEntry const* criteria) case ACHIEVEMENT_CRITERIA_TYPE_ON_LOGIN: case ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM: case ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM: + case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK: break; default: if (dataType != ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT) @@ -757,7 +758,12 @@ void AchievementMgr::SendCriteriaUpdate(AchievementCriteriaEntry const* entry, C data << uint32(timedCompleted ? 0 : 1); // 1 is for keeping the counter at 0 in client data.AppendPackedTime(progress->date); data << uint32(timeElapsed); // time elapsed in seconds - data << uint32(0); // unk + + if (sAchievementMgr->IsAverageCriteria(entry)) + data << uint32(GameTime::GetGameTime().count() - GetPlayer()->GetCreationTime().count()); // for average achievements + else + data << uint32(timeElapsed); // time elapsed in seconds + GetPlayer()->SendDirectMessage(&data); } @@ -881,6 +887,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui case ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS: /* FIXME: for online player only currently */ case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED: case ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED: + case ACHIEVEMENT_CRITERIA_TYPE_ROLL_DISENCHANT: case ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED: case ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN: case ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS: @@ -1147,6 +1154,21 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui SetCriteriaProgress(achievementCriteria, 1, PROGRESS_ACCUMULATE); break; } + case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID: + { + // AchievementMgr::UpdateAchievementCriteria might also be called on login - skip in this case + if (!miscValue1) + continue; + + Map const* map = GetPlayer()->IsInWorld() ? GetPlayer()->GetMap() : sMapMgr->FindMap(GetPlayer()->GetMapId(), GetPlayer()->GetInstanceId()); + if (!map || !map->IsDungeon()) + continue; + + if (map->ToInstanceMap()->GetMaxPlayers() != achievementCriteria->complete_raid.groupSize) + continue; + SetCriteriaProgress(achievementCriteria, 1, PROGRESS_ACCUMULATE); + break; + } case ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE: // AchievementMgr::UpdateAchievementCriteria might also be called on login - skip in this case if (!miscValue1) @@ -1732,6 +1754,16 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui SetCriteriaProgress(achievementCriteria, 1, PROGRESS_ACCUMULATE); break; } + case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK: + { + // those requirements couldn't be found in the dbc + AchievementCriteriaDataSet const* data = sAchievementMgr->GetCriteriaDataSet(achievementCriteria); + if (!data || !data->Meets(GetPlayer(), nullptr)) + continue; + + SetCriteriaProgress(achievementCriteria, 1); + break; + } // std case: not exist in DBC, not triggered in code as result case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER: @@ -1741,8 +1773,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING: break; // FIXME: not triggered in code as result, need to implement - case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID: - case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK: case ACHIEVEMENT_CRITERIA_TYPE_TOTAL: break; // Not implemented yet :( } @@ -1907,11 +1937,14 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve return true; case ACHIEVEMENT_CRITERIA_TYPE_WIN_ARENA: return achievementCriteria->win_arena.count && progress->counter >= achievementCriteria->win_arena.count; + case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK: + return true; // handle all statistic-only criteria here case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND: case ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP: case ACHIEVEMENT_CRITERIA_TYPE_DEATH: case ACHIEVEMENT_CRITERIA_TYPE_DEATH_IN_DUNGEON: + case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID: case ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_CREATURE: case ACHIEVEMENT_CRITERIA_TYPE_KILLED_BY_PLAYER: case ACHIEVEMENT_CRITERIA_TYPE_DEATHS_FROM: @@ -1936,6 +1969,7 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve case ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM: case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED: case ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED: + case ACHIEVEMENT_CRITERIA_TYPE_ROLL_DISENCHANT: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_ARMOR: @@ -2344,7 +2378,11 @@ void AchievementMgr::BuildAllDataPacket(WorldPacket* data) const *data << uint32(0); /// @todo: This should be 1 if it is a failed timed criteria data->AppendPackedTime(iter->second.date); *data << uint32(now - iter->second.date); - *data << uint32(now - iter->second.date); + + if (sAchievementMgr->IsAverageCriteria(sAchievementCriteriaStore.LookupEntry(iter->first))) + *data << uint32(now - GetPlayer()->GetCreationTime().count()); // for average achievements + else + *data << uint32(now - iter->second.date); } *data << int32(-1); @@ -2433,6 +2471,19 @@ bool AchievementGlobalMgr::IsStatisticAchievement(AchievementEntry const* achiev return false; } +bool AchievementGlobalMgr::IsAverageCriteria(AchievementCriteriaEntry const* criteria) const +{ + if ((sAchievementStore.LookupEntry(criteria->referredAchievement))->flags & ACHIEVEMENT_FLAG_AVERAGE) + return true; + + if (AchievementEntryList const* achRefList = GetAchievementByReferencedId(criteria->referredAchievement)) + for (AchievementEntryList::const_iterator itr = achRefList->begin(); itr != achRefList->end(); ++itr) + if ((*itr)->flags & ACHIEVEMENT_FLAG_AVERAGE) + return true; + + return false; +} + bool AchievementGlobalMgr::IsRealmCompleted(AchievementEntry const* achievement) const { auto itr = _allCompletedAchievements.find(achievement->ID); @@ -2724,6 +2775,7 @@ void AchievementGlobalMgr::LoadAchievementCriteriaData() case ACHIEVEMENT_CRITERIA_TYPE_CAST_SPELL: case ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE: case ACHIEVEMENT_CRITERIA_TYPE_HONORABLE_KILL: + case ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK: case ACHIEVEMENT_CRITERIA_TYPE_EQUIP_EPIC_ITEM: case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED_ON_LOOT: case ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED_ON_LOOT: diff --git a/src/server/game/Achievements/AchievementMgr.h b/src/server/game/Achievements/AchievementMgr.h index 7b46c58cc..c82cc6f4e 100644 --- a/src/server/game/Achievements/AchievementMgr.h +++ b/src/server/game/Achievements/AchievementMgr.h @@ -330,6 +330,7 @@ public: bool IsStatisticCriteria(AchievementCriteriaEntry const* achievementCriteria) const; bool IsStatisticAchievement(AchievementEntry const* achievement) const; + bool IsAverageCriteria(AchievementCriteriaEntry const* criteria) const; [[nodiscard]] AchievementCriteriaEntryList const* GetAchievementCriteriaByType(AchievementCriteriaTypes type) const { diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp index ab782a5c7..bdda9b37e 100644 --- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp +++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp @@ -761,6 +761,9 @@ bool AuctionHouseObject::BuildListAuctionItems(WorldPacket& data, Player* player } AuctionEntry* Aentry = itr->second; + if (!Aentry) + return false; + // Skip expired auctions if (Aentry->expire_time < curTime.count()) { diff --git a/src/server/game/Battlegrounds/BattlegroundScore.h b/src/server/game/Battlegrounds/BattlegroundScore.h index e07c41dd7..4ed344b7e 100644 --- a/src/server/game/Battlegrounds/BattlegroundScore.h +++ b/src/server/game/Battlegrounds/BattlegroundScore.h @@ -122,4 +122,4 @@ protected: uint32 HealingDone = 0; }; -#endif // TRINITY_BATTLEGROUND_SCORE_H +#endif // _BATTLEGROUND_SCORE_H diff --git a/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp b/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp index 85b665f4d..80a6de93a 100644 --- a/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp +++ b/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp @@ -42,7 +42,7 @@ AC_API_EXPORT EnumText EnumUtils::ToString(CreatureFlagsExtr case CREATURE_FLAG_EXTRA_NO_TAUNT: return { "CREATURE_FLAG_EXTRA_NO_TAUNT", "CREATURE_FLAG_EXTRA_NO_TAUNT", "creature is immune to taunt auras and 'attack me' effects" }; case CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE: return { "CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE", "CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE", "creature won't update movement flags" }; case CREATURE_FLAG_EXTRA_GHOST_VISIBILITY: return { "CREATURE_FLAG_EXTRA_GHOST_VISIBILITY", "CREATURE_FLAG_EXTRA_GHOST_VISIBILITY", "creature will only be visible to dead players" }; - case CREATURE_FLAG_EXTRA_UNUSED_12: return { "CREATURE_FLAG_EXTRA_UNUSED_12", "CREATURE_FLAG_EXTRA_UNUSED_12", "TODO: Implement CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK (creature will use offhand attacks)" }; + case CREATURE_FLAG_EXTRA_UNUSED_12: return { "CREATURE_FLAG_EXTRA_UNUSED_12", "CREATURE_FLAG_EXTRA_UNUSED_12", "/ @todo: Implement CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK (creature will use offhand attacks)" }; case CREATURE_FLAG_EXTRA_NO_SELL_VENDOR: return { "CREATURE_FLAG_EXTRA_NO_SELL_VENDOR", "CREATURE_FLAG_EXTRA_NO_SELL_VENDOR", "players can't sell items to this vendor" }; case CREATURE_FLAG_EXTRA_IGNORE_COMBAT: return { "CREATURE_FLAG_EXTRA_IGNORE_COMBAT", "CREATURE_FLAG_EXTRA_IGNORE_COMBAT", "" }; case CREATURE_FLAG_EXTRA_WORLDEVENT: return { "CREATURE_FLAG_EXTRA_WORLDEVENT", "CREATURE_FLAG_EXTRA_WORLDEVENT", "custom flag for world event creatures (left room for merging)" }; @@ -55,10 +55,10 @@ AC_API_EXPORT EnumText EnumUtils::ToString(CreatureFlagsExtr case CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ: return { "CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ", "CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ", "creature does not need to take player damage for kill credit" }; case CREATURE_FLAG_EXTRA_AVOID_AOE: return { "CREATURE_FLAG_EXTRA_AVOID_AOE", "CREATURE_FLAG_EXTRA_AVOID_AOE", "pussywizard: ignored by aoe attacks (for icc blood prince council npc - Dark Nucleus)" }; case CREATURE_FLAG_EXTRA_NO_DODGE: return { "CREATURE_FLAG_EXTRA_NO_DODGE", "CREATURE_FLAG_EXTRA_NO_DODGE", "xinef: target cannot dodge" }; - case CREATURE_FLAG_EXTRA_MODULE: return { "CREATURE_FLAG_EXTRA_MODULE", "CREATURE_FLAG_EXTRA_MODULE", "Used by module creatures to avoid blizzlike checks." }; - case CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE: return { "CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE", "Creature does not call for assistance on initial aggro", "" }; - case CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS: return { "CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS", "Prevents creature from responding to assistance calls", "" }; - case CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI: return { "CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI", "Creature entry SAI won't be overriden by GUID SAI", "" }; + case CREATURE_FLAG_EXTRA_MODULE: return { "CREATURE_FLAG_EXTRA_MODULE", "CREATURE_FLAG_EXTRA_MODULE", "" }; + case CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE: return { "CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE", "CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE", "Prevent creatures from calling for assistance on initial aggro" }; + case CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS: return { "CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS", "CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS", "Prevents creature from responding to assistance calls" }; + case CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI: return { "CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI", "CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI", "Load both ENTRY and GUID specific SAI" }; case CREATURE_FLAG_EXTRA_DUNGEON_BOSS: return { "CREATURE_FLAG_EXTRA_DUNGEON_BOSS", "CREATURE_FLAG_EXTRA_DUNGEON_BOSS", "creature is a dungeon boss (SET DYNAMICALLY, DO NOT ADD IN DB)" }; case CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING: return { "CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING", "CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING", "creature ignore pathfinding" }; case CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK: return { "CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK", "CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK", "creature is immune to knockback effects" }; diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 43262a38d..79a87ca50 100644 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1725,7 +1725,10 @@ void GameObject::Use(Unit* user) player->SendCinematicStart(info->camera.cinematicId); if (info->camera.eventID) + { GetMap()->ScriptsStart(sEventScripts, info->camera.eventID, player, this); + EventInform(info->camera.eventID); + } return; } diff --git a/src/server/game/Entities/Object/Position.h b/src/server/game/Entities/Object/Position.h index 8b87368d1..e88e3ea2e 100644 --- a/src/server/game/Entities/Object/Position.h +++ b/src/server/game/Entities/Object/Position.h @@ -196,10 +196,10 @@ struct Position float GetRelativeAngle(const Position* pos) const { - return GetAngle(pos) - m_orientation; + return NormalizeOrientation(GetAngle(pos) - m_orientation); } - [[nodiscard]] float GetRelativeAngle(float x, float y) const { return GetAngle(x, y) - m_orientation; } + [[nodiscard]] float GetRelativeAngle(float x, float y) const { return NormalizeOrientation(GetAngle(x, y) - m_orientation); } [[nodiscard]] float ToAbsoluteAngle(float relAngle) const { return NormalizeOrientation(relAngle + m_orientation); } void GetSinCos(float x, float y, float& vsin, float& vcos) const; diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index d3b160b62..69998d163 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -384,6 +384,8 @@ Player::Player(WorldSession* session): Unit(true), m_mover(this) _activeCheats = CHEAT_NONE; + m_creationTime = 0s; + _cinematicMgr = new CinematicMgr(this); m_achievementMgr = new AchievementMgr(this); @@ -8043,6 +8045,12 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type) // need know merged fishing/corpse loot type for achievements loot->loot_type = loot_type; + if (!sScriptMgr->OnAllowedToLootContainerCheck(this, guid)) + { + SendLootError(guid, LOOT_ERROR_DIDNT_KILL); + return; + } + if (permission != NONE_PERMISSION) { SetLootGUID(guid); @@ -13268,6 +13276,8 @@ void Player::SetTitle(CharTitlesEntry const* title, bool lost) data << uint32(title->bit_index); data << uint32(lost ? 0 : 1); // 1 - earned, 0 - lost GetSession()->SendPacket(&data); + + UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_OWN_RANK); } uint32 Player::GetRuneBaseCooldown(uint8 index, bool skipGrace) @@ -13544,8 +13554,13 @@ uint32 Player::CalculateTalentsPoints() const return uint32(talentPointsForLevel * sWorld->getRate(RATE_TALENT)); } -bool Player::canFlyInZone(uint32 mapid, uint32 zone, SpellInfo const* bySpell) const +bool Player::canFlyInZone(uint32 mapid, uint32 zone, SpellInfo const* bySpell) { + if (!sScriptMgr->OnCanPlayerFlyInZone(this, mapid,zone,bySpell)) + { + return false; + } + // continent checked in SpellInfo::CheckLocation at cast and area update uint32 v_map = GetVirtualMapForMapAndZone(mapid, zone); if (v_map == 571 && !bySpell->HasAttribute(SPELL_ATTR7_IGNORES_COLD_WEATHER_FLYING_REQUIREMENT)) diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h index 7fdf2c9ab..b0b93baaf 100644 --- a/src/server/game/Entities/Player/Player.h +++ b/src/server/game/Entities/Player/Player.h @@ -2299,7 +2299,7 @@ public: } void HandleFall(MovementInfo const& movementInfo); - [[nodiscard]] bool canFlyInZone(uint32 mapid, uint32 zone, SpellInfo const* bySpell) const; + [[nodiscard]] bool canFlyInZone(uint32 mapid, uint32 zone, SpellInfo const* bySpell); void SetClientControl(Unit* target, bool allowMove, bool packetOnly = false); @@ -2495,6 +2495,9 @@ public: void CompletedAchievement(AchievementEntry const* entry); [[nodiscard]] AchievementMgr* GetAchievementMgr() const { return m_achievementMgr; } + void SetCreationTime(Seconds creationTime) { m_creationTime = creationTime; } + [[nodiscard]] Seconds GetCreationTime() const { return m_creationTime; } + [[nodiscard]] bool HasTitle(uint32 bitIndex) const; bool HasTitle(CharTitlesEntry const* title) const { return HasTitle(title->bit_index); } void SetTitle(CharTitlesEntry const* title, bool lost = false); @@ -2951,6 +2954,8 @@ private: bool _wasOutdoor; PlayerSettingMap m_charSettingsMap; + + Seconds m_creationTime; }; void AddItemsSetItem(Player* player, Item* item); diff --git a/src/server/game/Entities/Player/PlayerStorage.cpp b/src/server/game/Entities/Player/PlayerStorage.cpp index 3aa74d667..6a20fea94 100644 --- a/src/server/game/Entities/Player/PlayerStorage.cpp +++ b/src/server/game/Entities/Player/PlayerStorage.cpp @@ -4948,8 +4948,8 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons //"arenaPoints, totalHonorPoints, todayHonorPoints, yesterdayHonorPoints, totalKills, todayKills, yesterdayKills, chosenTitle, knownCurrencies, watchedFaction, drunk, " // 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 //"health, power1, power2, power3, power4, power5, power6, power7, instance_id, talentGroupsCount, activeTalentGroup, exploredZones, equipmentCache, ammoId, knownTitles, - // 70 71 72 73 - //"actionBars, grantableLevels, innTriggerId, extraBonusTalentCount FROM characters WHERE guid = '{}'", guid); + // 70 71 72 73 74 + //"actionBars, grantableLevels, innTriggerId, extraBonusTalentCount, UNIX_TIMESTAMP(creation_date) FROM characters WHERE guid = '{}'", guid); PreparedQueryResult result = holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_FROM); if (!result) @@ -5026,6 +5026,9 @@ bool Player::LoadFromDB(ObjectGuid playerGuid, CharacterDatabaseQueryHolder cons SetObjectScale(1.0f); SetFloatValue(UNIT_FIELD_HOVERHEIGHT, 1.0f); + // load character creation date, relevant for achievements of type average + SetCreationTime(fields[74].Get()); + // load achievements before anything else to prevent multiple gains for the same achievement/criteria on every loading (as loading does call UpdateAchievementCriteria) m_achievementMgr->LoadFromDB(holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_ACHIEVEMENTS), holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_CRITERIA_PROGRESS)); diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index d9840a244..871126768 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -13973,6 +13973,9 @@ bool Unit::_IsValidAttackTarget(Unit const* target, SpellInfo const* bySpell, Wo // additional checks - only PvP case if (playerAffectingAttacker && playerAffectingTarget) { + if (!IsPvP() && bySpell && bySpell->IsAffectingArea() && !bySpell->HasAttribute(SPELL_ATTR5_IGNORE_AREA_EFFECT_PVP_CHECK)) + return false; + if (target->IsPvP()) return true; diff --git a/src/server/game/Entities/Unit/enuminfo_Unit.cpp b/src/server/game/Entities/Unit/enuminfo_Unit.cpp index 8444ba3d4..a3c4938c6 100644 --- a/src/server/game/Entities/Unit/enuminfo_Unit.cpp +++ b/src/server/game/Entities/Unit/enuminfo_Unit.cpp @@ -31,6 +31,7 @@ AC_API_EXPORT EnumText EnumUtils::ToString(UnitFlags value) { switch (value) { + case UNIT_FLAG_NONE: return { "UNIT_FLAG_NONE", "UNIT_FLAG_NONE", "" }; case UNIT_FLAG_SERVER_CONTROLLED: return { "UNIT_FLAG_SERVER_CONTROLLED", "UNIT_FLAG_SERVER_CONTROLLED", "set only when unit movement is controlled by server - by SPLINE/MONSTER_MOVE packets, together with UNIT_FLAG_STUNNED; only set to units controlled by client; client function CGUnit_C::IsClientControlled returns false when set for owner" }; case UNIT_FLAG_NON_ATTACKABLE: return { "UNIT_FLAG_NON_ATTACKABLE", "UNIT_FLAG_NON_ATTACKABLE", "not attackable" }; case UNIT_FLAG_DISABLE_MOVE: return { "UNIT_FLAG_DISABLE_MOVE", "UNIT_FLAG_DISABLE_MOVE", "" }; @@ -68,45 +69,46 @@ AC_API_EXPORT EnumText EnumUtils::ToString(UnitFlags value) } template <> -AC_API_EXPORT size_t EnumUtils::Count() { return 32; } +AC_API_EXPORT size_t EnumUtils::Count() { return 33; } template <> AC_API_EXPORT UnitFlags EnumUtils::FromIndex(size_t index) { switch (index) { - case 0: return UNIT_FLAG_SERVER_CONTROLLED; - case 1: return UNIT_FLAG_NON_ATTACKABLE; - case 2: return UNIT_FLAG_DISABLE_MOVE; - case 3: return UNIT_FLAG_PLAYER_CONTROLLED; - case 4: return UNIT_FLAG_RENAME; - case 5: return UNIT_FLAG_PREPARATION; - case 6: return UNIT_FLAG_UNK_6; - case 7: return UNIT_FLAG_NOT_ATTACKABLE_1; - case 8: return UNIT_FLAG_IMMUNE_TO_PC; - case 9: return UNIT_FLAG_IMMUNE_TO_NPC; - case 10: return UNIT_FLAG_LOOTING; - case 11: return UNIT_FLAG_PET_IN_COMBAT; - case 12: return UNIT_FLAG_PVP; - case 13: return UNIT_FLAG_SILENCED; - case 14: return UNIT_FLAG_CANNOT_SWIM; - case 15: return UNIT_FLAG_SWIMMING; - case 16: return UNIT_FLAG_NON_ATTACKABLE_2; - case 17: return UNIT_FLAG_PACIFIED; - case 18: return UNIT_FLAG_STUNNED; - case 19: return UNIT_FLAG_IN_COMBAT; - case 20: return UNIT_FLAG_TAXI_FLIGHT; - case 21: return UNIT_FLAG_DISARMED; - case 22: return UNIT_FLAG_CONFUSED; - case 23: return UNIT_FLAG_FLEEING; - case 24: return UNIT_FLAG_POSSESSED; - case 25: return UNIT_FLAG_NOT_SELECTABLE; - case 26: return UNIT_FLAG_SKINNABLE; - case 27: return UNIT_FLAG_MOUNT; - case 28: return UNIT_FLAG_UNK_28; - case 29: return UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT; - case 30: return UNIT_FLAG_SHEATHE; - case 31: return UNIT_FLAG_IMMUNE; + case 0: return UNIT_FLAG_NONE; + case 1: return UNIT_FLAG_SERVER_CONTROLLED; + case 2: return UNIT_FLAG_NON_ATTACKABLE; + case 3: return UNIT_FLAG_DISABLE_MOVE; + case 4: return UNIT_FLAG_PLAYER_CONTROLLED; + case 5: return UNIT_FLAG_RENAME; + case 6: return UNIT_FLAG_PREPARATION; + case 7: return UNIT_FLAG_UNK_6; + case 8: return UNIT_FLAG_NOT_ATTACKABLE_1; + case 9: return UNIT_FLAG_IMMUNE_TO_PC; + case 10: return UNIT_FLAG_IMMUNE_TO_NPC; + case 11: return UNIT_FLAG_LOOTING; + case 12: return UNIT_FLAG_PET_IN_COMBAT; + case 13: return UNIT_FLAG_PVP; + case 14: return UNIT_FLAG_SILENCED; + case 15: return UNIT_FLAG_CANNOT_SWIM; + case 16: return UNIT_FLAG_SWIMMING; + case 17: return UNIT_FLAG_NON_ATTACKABLE_2; + case 18: return UNIT_FLAG_PACIFIED; + case 19: return UNIT_FLAG_STUNNED; + case 20: return UNIT_FLAG_IN_COMBAT; + case 21: return UNIT_FLAG_TAXI_FLIGHT; + case 22: return UNIT_FLAG_DISARMED; + case 23: return UNIT_FLAG_CONFUSED; + case 24: return UNIT_FLAG_FLEEING; + case 25: return UNIT_FLAG_POSSESSED; + case 26: return UNIT_FLAG_NOT_SELECTABLE; + case 27: return UNIT_FLAG_SKINNABLE; + case 28: return UNIT_FLAG_MOUNT; + case 29: return UNIT_FLAG_UNK_28; + case 30: return UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT; + case 31: return UNIT_FLAG_SHEATHE; + case 32: return UNIT_FLAG_IMMUNE; default: throw std::out_of_range("index"); } } @@ -116,38 +118,39 @@ AC_API_EXPORT size_t EnumUtils::ToIndex(UnitFlags value) { switch (value) { - case UNIT_FLAG_SERVER_CONTROLLED: return 0; - case UNIT_FLAG_NON_ATTACKABLE: return 1; - case UNIT_FLAG_DISABLE_MOVE: return 2; - case UNIT_FLAG_PLAYER_CONTROLLED: return 3; - case UNIT_FLAG_RENAME: return 4; - case UNIT_FLAG_PREPARATION: return 5; - case UNIT_FLAG_UNK_6: return 6; - case UNIT_FLAG_NOT_ATTACKABLE_1: return 7; - case UNIT_FLAG_IMMUNE_TO_PC: return 8; - case UNIT_FLAG_IMMUNE_TO_NPC: return 9; - case UNIT_FLAG_LOOTING: return 10; - case UNIT_FLAG_PET_IN_COMBAT: return 11; - case UNIT_FLAG_PVP: return 12; - case UNIT_FLAG_SILENCED: return 13; - case UNIT_FLAG_CANNOT_SWIM: return 14; - case UNIT_FLAG_SWIMMING: return 15; - case UNIT_FLAG_NON_ATTACKABLE_2: return 16; - case UNIT_FLAG_PACIFIED: return 17; - case UNIT_FLAG_STUNNED: return 18; - case UNIT_FLAG_IN_COMBAT: return 19; - case UNIT_FLAG_TAXI_FLIGHT: return 20; - case UNIT_FLAG_DISARMED: return 21; - case UNIT_FLAG_CONFUSED: return 22; - case UNIT_FLAG_FLEEING: return 23; - case UNIT_FLAG_POSSESSED: return 24; - case UNIT_FLAG_NOT_SELECTABLE: return 25; - case UNIT_FLAG_SKINNABLE: return 26; - case UNIT_FLAG_MOUNT: return 27; - case UNIT_FLAG_UNK_28: return 28; - case UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT: return 29; - case UNIT_FLAG_SHEATHE: return 30; - case UNIT_FLAG_IMMUNE: return 31; + case UNIT_FLAG_NONE: return 0; + case UNIT_FLAG_SERVER_CONTROLLED: return 1; + case UNIT_FLAG_NON_ATTACKABLE: return 2; + case UNIT_FLAG_DISABLE_MOVE: return 3; + case UNIT_FLAG_PLAYER_CONTROLLED: return 4; + case UNIT_FLAG_RENAME: return 5; + case UNIT_FLAG_PREPARATION: return 6; + case UNIT_FLAG_UNK_6: return 7; + case UNIT_FLAG_NOT_ATTACKABLE_1: return 8; + case UNIT_FLAG_IMMUNE_TO_PC: return 9; + case UNIT_FLAG_IMMUNE_TO_NPC: return 10; + case UNIT_FLAG_LOOTING: return 11; + case UNIT_FLAG_PET_IN_COMBAT: return 12; + case UNIT_FLAG_PVP: return 13; + case UNIT_FLAG_SILENCED: return 14; + case UNIT_FLAG_CANNOT_SWIM: return 15; + case UNIT_FLAG_SWIMMING: return 16; + case UNIT_FLAG_NON_ATTACKABLE_2: return 17; + case UNIT_FLAG_PACIFIED: return 18; + case UNIT_FLAG_STUNNED: return 19; + case UNIT_FLAG_IN_COMBAT: return 20; + case UNIT_FLAG_TAXI_FLIGHT: return 21; + case UNIT_FLAG_DISARMED: return 22; + case UNIT_FLAG_CONFUSED: return 23; + case UNIT_FLAG_FLEEING: return 24; + case UNIT_FLAG_POSSESSED: return 25; + case UNIT_FLAG_NOT_SELECTABLE: return 26; + case UNIT_FLAG_SKINNABLE: return 27; + case UNIT_FLAG_MOUNT: return 28; + case UNIT_FLAG_UNK_28: return 29; + case UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT: return 30; + case UNIT_FLAG_SHEATHE: return 31; + case UNIT_FLAG_IMMUNE: return 32; default: throw std::out_of_range("value"); } } @@ -187,12 +190,13 @@ AC_API_EXPORT EnumText EnumUtils::ToString(NPCFlags value) case UNIT_NPC_FLAG_SPELLCLICK: return { "UNIT_NPC_FLAG_SPELLCLICK", "has spell click enabled", "cause client to send 1015 opcode (spell click)" }; case UNIT_NPC_FLAG_PLAYER_VEHICLE: return { "UNIT_NPC_FLAG_PLAYER_VEHICLE", "is player vehicle", "players with mounts that have vehicle data should have it set" }; case UNIT_NPC_FLAG_MAILBOX: return { "UNIT_NPC_FLAG_MAILBOX", "is mailbox", "" }; + case UNIT_NPC_FLAG_VENDOR_MASK: return { "UNIT_NPC_FLAG_VENDOR_MASK", "UNIT_NPC_FLAG_VENDOR_MASK", "" }; default: throw std::out_of_range("value"); } } template <> -AC_API_EXPORT size_t EnumUtils::Count() { return 27; } +AC_API_EXPORT size_t EnumUtils::Count() { return 28; } template <> AC_API_EXPORT NPCFlags EnumUtils::FromIndex(size_t index) @@ -226,6 +230,7 @@ AC_API_EXPORT NPCFlags EnumUtils::FromIndex(size_t index) case 24: return UNIT_NPC_FLAG_SPELLCLICK; case 25: return UNIT_NPC_FLAG_PLAYER_VEHICLE; case 26: return UNIT_NPC_FLAG_MAILBOX; + case 27: return UNIT_NPC_FLAG_VENDOR_MASK; default: throw std::out_of_range("index"); } } @@ -262,6 +267,7 @@ AC_API_EXPORT size_t EnumUtils::ToIndex(NPCFlags value) case UNIT_NPC_FLAG_SPELLCLICK: return 24; case UNIT_NPC_FLAG_PLAYER_VEHICLE: return 25; case UNIT_NPC_FLAG_MAILBOX: return 26; + case UNIT_NPC_FLAG_VENDOR_MASK: return 27; default: throw std::out_of_range("value"); } } diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index d814b7c01..80804e9b5 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -2863,47 +2863,43 @@ void ObjectMgr::LoadItemTemplates() if (dbcitem) { - if (itemTemplate.Class != dbcitem->ClassID) + if (enforceDBCAttributes) { - LOG_ERROR("sql.sql", "Item (Entry: {}) has wrong Class value ({}), must be ({}).", entry, itemTemplate.Class, dbcitem->ClassID); - if (enforceDBCAttributes) + if (itemTemplate.Class != dbcitem->ClassID) + { + LOG_ERROR("sql.sql", "Item (Entry: {}) has wrong Class value ({}), must be ({}).", entry, itemTemplate.Class, dbcitem->ClassID); itemTemplate.Class = dbcitem->ClassID; - } - if (itemTemplate.SubClass != dbcitem->SubclassID) - { - LOG_ERROR("sql.sql", "Item (Entry: {}) has wrong Subclass value ({}) for class {}, must be ({}).", entry, itemTemplate.SubClass, itemTemplate.Class, dbcitem->SubclassID); - if (enforceDBCAttributes) + } + if (itemTemplate.SubClass != dbcitem->SubclassID) + { + LOG_ERROR("sql.sql", "Item (Entry: {}) has wrong Subclass value ({}) for class {}, must be ({}).", entry, itemTemplate.SubClass, itemTemplate.Class, dbcitem->SubclassID); itemTemplate.SubClass = dbcitem->SubclassID; - } - if (itemTemplate.SoundOverrideSubclass != dbcitem->SoundOverrideSubclassID) - { - LOG_ERROR("sql.sql", "Item (Entry: {}) does not have a correct SoundOverrideSubclass ({}), must be {}.", entry, itemTemplate.SoundOverrideSubclass); - if (enforceDBCAttributes) + } + if (itemTemplate.SoundOverrideSubclass != dbcitem->SoundOverrideSubclassID) + { + LOG_ERROR("sql.sql", "Item (Entry: {}) does not have a correct SoundOverrideSubclass ({}), must be {}.", entry, itemTemplate.SoundOverrideSubclass, dbcitem->SoundOverrideSubclassID); itemTemplate.SoundOverrideSubclass = dbcitem->SoundOverrideSubclassID; - } - if (itemTemplate.Material != dbcitem->Material) - { - LOG_ERROR("sql.sql", "Item (Entry: {}) does not have a correct material ({}), must be {}.", entry, itemTemplate.Material, dbcitem->Material); - if (enforceDBCAttributes) + } + if (itemTemplate.Material != dbcitem->Material) + { + LOG_ERROR("sql.sql", "Item (Entry: {}) does not have a correct material ({}), must be {}.", entry, itemTemplate.Material, dbcitem->Material); itemTemplate.Material = dbcitem->Material; - } - if (itemTemplate.InventoryType != dbcitem->InventoryType) - { - LOG_ERROR("sql.sql", "Item (Entry: {}) has wrong InventoryType value ({}), must be {}.", entry, itemTemplate.InventoryType, dbcitem->InventoryType); - if (enforceDBCAttributes) + } + if (itemTemplate.InventoryType != dbcitem->InventoryType) + { + LOG_ERROR("sql.sql", "Item (Entry: {}) has wrong InventoryType value ({}), must be {}.", entry, itemTemplate.InventoryType, dbcitem->InventoryType); itemTemplate.InventoryType = dbcitem->InventoryType; - } - if (itemTemplate.DisplayInfoID != dbcitem->DisplayInfoID) - { - LOG_ERROR("sql.sql", "Item (Entry: {}) does not have a correct display id ({}), must be {}.", entry, itemTemplate.DisplayInfoID, dbcitem->DisplayInfoID); - if (enforceDBCAttributes) + } + if (itemTemplate.DisplayInfoID != dbcitem->DisplayInfoID) + { + LOG_ERROR("sql.sql", "Item (Entry: {}) does not have a correct display id ({}), must be {}.", entry, itemTemplate.DisplayInfoID, dbcitem->DisplayInfoID); itemTemplate.DisplayInfoID = dbcitem->DisplayInfoID; - } - if (itemTemplate.Sheath != dbcitem->SheatheType) - { - LOG_ERROR("sql.sql", "Item (Entry: {}) has wrong Sheath ({}), must be {}.", entry, itemTemplate.Sheath, dbcitem->SheatheType); - if (enforceDBCAttributes) + } + if (itemTemplate.Sheath != dbcitem->SheatheType) + { + LOG_ERROR("sql.sql", "Item (Entry: {}) has wrong Sheath ({}), must be {}.", entry, itemTemplate.Sheath, dbcitem->SheatheType); itemTemplate.Sheath = dbcitem->SheatheType; + } } } else @@ -4062,88 +4058,6 @@ void ObjectMgr::LoadPlayerInfo() } } - // Loading levels data (class only dependent) - LOG_INFO("server.loading", "Loading Player Create Level HP/Mana Data..."); - { - uint32 oldMSTime = getMSTime(); - - // 0 1 2 3 - QueryResult result = WorldDatabase.Query("SELECT class, level, basehp, basemana FROM player_classlevelstats"); - - if (!result) - { - LOG_FATAL("server.loading", ">> Loaded 0 level health/mana definitions. DB table `player_classlevelstats` is empty."); - exit(1); - } - - uint32 count = 0; - - do - { - Field* fields = result->Fetch(); - - uint32 current_class = fields[0].Get(); - if (current_class >= MAX_CLASSES) - { - LOG_ERROR("sql.sql", "Wrong class {} in `player_classlevelstats` table, ignoring.", current_class); - continue; - } - - uint8 current_level = fields[1].Get(); // Can't be > than STRONG_MAX_LEVEL (hardcoded level maximum) due to var type - if (current_level > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) - { - LOG_INFO("sql.sql", "Unused (> MaxPlayerLevel in worldserver.conf) level {} in `player_classlevelstats` table, ignoring.", current_level); - ++count; // make result loading percent "expected" correct in case disabled detail mode for example. - continue; - } - - PlayerClassInfo* info = _playerClassInfo[current_class]; - if (!info) - { - info = new PlayerClassInfo(); - info->levelInfo = new PlayerClassLevelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)]; - _playerClassInfo[current_class] = info; - } - - PlayerClassLevelInfo& levelInfo = info->levelInfo[current_level - 1]; - - levelInfo.basehealth = fields[2].Get(); - levelInfo.basemana = fields[3].Get(); - - ++count; - } while (result->NextRow()); - - // Fill gaps and check integrity - for (int class_ = 0; class_ < MAX_CLASSES; ++class_) - { - // skip non existed classes - if (!sChrClassesStore.LookupEntry(class_)) - continue; - - PlayerClassInfo* pClassInfo = _playerClassInfo[class_]; - - // fatal error if no initial level data - if (!pClassInfo->levelInfo || (pClassInfo->levelInfo[sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL) - 1].basehealth == 0 && class_ != CLASS_DEATH_KNIGHT) || (pClassInfo->levelInfo[sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) - 1].basehealth == 0 && class_ == CLASS_DEATH_KNIGHT)) - { - LOG_ERROR("sql.sql", "Class {} initial level does not have health/mana data!", class_); - exit(1); - } - - // fill level gaps - for (uint8 level = 1; level < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL); ++level) - { - if ((pClassInfo->levelInfo[level].basehealth == 0 && class_ != CLASS_DEATH_KNIGHT) || (level >= sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) && pClassInfo->levelInfo[level].basehealth == 0 && class_ == CLASS_DEATH_KNIGHT)) - { - LOG_ERROR("sql.sql", "Class {} level {} does not have health/mana data. Using stats data of level {}.", class_, level + 1, level); - pClassInfo->levelInfo[level] = pClassInfo->levelInfo[level - 1]; - } - } - } - - LOG_INFO("server.loading", ">> Loaded {} Level Health/Mana Definitions in {} ms", count, GetMSTimeDiffToNow(oldMSTime)); - LOG_INFO("server.loading", " "); - } - // Loading levels data (class/race dependent) LOG_INFO("server.loading", "Loading Player Create Level Stats Data..."); { @@ -4182,8 +4096,8 @@ void ObjectMgr::LoadPlayerInfo() } while (raceStatsResult->NextRow()); - // 0 1 2 3 4 5 6 - QueryResult result = WorldDatabase.Query("SELECT Class, Level, Strength, Agility, Stamina, Intellect, Spirit FROM player_class_stats"); + // 0 1 2 3 4 5 6 7 8 + QueryResult result = WorldDatabase.Query("SELECT Class, Level, Strength, Agility, Stamina, Intellect, Spirit, BaseHP, BaseMana FROM player_class_stats"); if (!result) { @@ -4207,7 +4121,7 @@ void ObjectMgr::LoadPlayerInfo() uint32 current_level = fields[1].Get(); if (current_level > sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)) { - if (current_level > STRONG_MAX_LEVEL) // hardcoded level maximum + if (current_level > STRONG_MAX_LEVEL) // hardcoded level maximum LOG_ERROR("sql.sql", "Wrong (> {}) level {} in `player_class_stats` table, ignoring.", STRONG_MAX_LEVEL, current_level); else LOG_DEBUG("sql.sql", "Unused (> MaxPlayerLevel in worldserver.conf) level {} in `player_class_stats` table, ignoring.", current_level); @@ -4228,6 +4142,19 @@ void ObjectMgr::LoadPlayerInfo() } } + PlayerClassInfo* info = _playerClassInfo[current_class]; + if (!info) + { + info = new PlayerClassInfo(); + info->levelInfo = new PlayerClassLevelInfo[sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL)]; + _playerClassInfo[current_class] = info; + } + + PlayerClassLevelInfo& levelInfo = info->levelInfo[current_level - 1]; + + levelInfo.basehealth = fields[7].Get(); + levelInfo.basemana = fields[8].Get(); + ++count; } while (result->NextRow()); @@ -4244,6 +4171,7 @@ void ObjectMgr::LoadPlayerInfo() if (!sChrClassesStore.LookupEntry(class_)) continue; + PlayerClassInfo* pClassInfo = _playerClassInfo[class_]; PlayerInfo* info = _playerInfo[race][class_]; if (!info) continue; @@ -4256,14 +4184,21 @@ void ObjectMgr::LoadPlayerInfo() if (sWorld->getIntConfig(CONFIG_EXPANSION) < EXPANSION_WRATH_OF_THE_LICH_KING && class_ == CLASS_DEATH_KNIGHT) continue; - // fatal error if no initial level data + // fatal error if no initial stats data if (!info->levelInfo || (info->levelInfo[sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL) - 1].stats[0] == 0 && class_ != CLASS_DEATH_KNIGHT) || (info->levelInfo[sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) - 1].stats[0] == 0 && class_ == CLASS_DEATH_KNIGHT)) { LOG_ERROR("sql.sql", "Race {} class {} initial level does not have stats data!", race, class_); exit(1); } - // fill level gaps + // fatal error if no initial health/mana data + if (!pClassInfo->levelInfo || (pClassInfo->levelInfo[sWorld->getIntConfig(CONFIG_START_PLAYER_LEVEL) - 1].basehealth == 0 && class_ != CLASS_DEATH_KNIGHT) || (pClassInfo->levelInfo[sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) - 1].basehealth == 0 && class_ == CLASS_DEATH_KNIGHT)) + { + LOG_ERROR("sql.sql", "Class {} initial level does not have health/mana data!", class_); + exit(1); + } + + // fill level gaps for stats for (uint8 level = 1; level < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL); ++level) { if ((info->levelInfo[level].stats[0] == 0 && class_ != CLASS_DEATH_KNIGHT) || (level >= sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) && info->levelInfo[level].stats[0] == 0 && class_ == CLASS_DEATH_KNIGHT)) @@ -4272,6 +4207,16 @@ void ObjectMgr::LoadPlayerInfo() info->levelInfo[level] = info->levelInfo[level - 1]; } } + + // fill level gaps for health/mana + for (uint8 level = 1; level < sWorld->getIntConfig(CONFIG_MAX_PLAYER_LEVEL); ++level) + { + if ((pClassInfo->levelInfo[level].basehealth == 0 && class_ != CLASS_DEATH_KNIGHT) || (level >= sWorld->getIntConfig(CONFIG_START_HEROIC_PLAYER_LEVEL) && pClassInfo->levelInfo[level].basehealth == 0 && class_ == CLASS_DEATH_KNIGHT)) + { + LOG_ERROR("sql.sql", "Class {} level {} does not have health/mana data. Using stats data of level {}.", class_, level + 1, level); + pClassInfo->levelInfo[level] = pClassInfo->levelInfo[level - 1]; + } + } } } diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index 195257b2a..e239f6105 100644 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -536,6 +536,9 @@ void WorldSession::HandleLootRoll(WorldPacket& recvData) case ROLL_GREED: GetPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED, 1); break; + case ROLL_DISENCHANT: + GetPlayer()->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_ROLL_DISENCHANT, 1); + break; } } diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index efc07e5a4..d934ec3ad 100644 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -675,6 +675,8 @@ InstancePlayerBind* InstanceSaveMgr::PlayerBindToInstance(ObjectGuid guid, Insta stmt->SetData(1, save->GetInstanceId()); stmt->SetData(2, permanent); CharacterDatabase.Execute(stmt); + + player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID, 1); } if (bind.save != save) diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 600edae4a..5bc15b670 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -218,6 +218,11 @@ void InstanceScript::UpdateMinionState(Creature* minion, EncounterState state) } } +void InstanceScript::Update(uint32 diff) +{ + scheduler.Update(diff); +} + void InstanceScript::UpdateDoorState(GameObject* door) { DoorInfoMapBounds range = doors.equal_range(door->GetEntry()); diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index 4f3a2d8c9..da82f1fdc 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -20,6 +20,7 @@ #include "CreatureAI.h" #include "ObjectMgr.h" +#include "TaskScheduler.h" #include "World.h" #include "ZoneScript.h" #include @@ -159,7 +160,7 @@ public: void SaveToDB(); - virtual void Update(uint32 /*diff*/) {} + virtual void Update(uint32 /*diff*/); //Used by the map's CanEnter function. //This is to prevent players from entering during boss encounters. @@ -263,6 +264,8 @@ public: // Allows executing code using all creatures registered in the instance script as minions void DoForAllMinions(uint32 id, std::function exec); + + TaskScheduler scheduler; protected: void SetHeaders(std::string const& dataHeaders); void SetBossNumber(uint32 number) { bosses.resize(number); } diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index 824810fda..4cbadd49d 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -1058,7 +1058,7 @@ enum AcoreStrings LANG_COMMAND_TICKETLISTRESPONSE = 2029, LANG_COMMAND_TICKETCOMPLETED = 2030, - // Trinity strings 5000-9999 + // acore strings 5000-9999 LANG_COMMAND_FREEZE = 5000, LANG_COMMAND_FREEZE_ERROR = 5001, LANG_COMMAND_FREEZE_WRONG = 5002, diff --git a/src/server/game/Movement/Spline/MoveSpline.h b/src/server/game/Movement/Spline/MoveSpline.h index d713ba9f3..5ebe5f5aa 100644 --- a/src/server/game/Movement/Spline/MoveSpline.h +++ b/src/server/game/Movement/Spline/MoveSpline.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITYSERVER_MOVEPLINE_H -#define TRINITYSERVER_MOVEPLINE_H +#ifndef AC_MOVEPLINE_H +#define AC_MOVEPLINE_H #include "MoveSplineInitArgs.h" #include "Spline.h" @@ -132,4 +132,4 @@ namespace Movement } }; } -#endif // TRINITYSERVER_MOVEPLINE_H +#endif // AC_MOVEPLINE_H diff --git a/src/server/game/Movement/Spline/MoveSplineFlag.h b/src/server/game/Movement/Spline/MoveSplineFlag.h index 638a921a1..17e812815 100644 --- a/src/server/game/Movement/Spline/MoveSplineFlag.h +++ b/src/server/game/Movement/Spline/MoveSplineFlag.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITYSERVER_MOVESPLINEFLAG_H -#define TRINITYSERVER_MOVESPLINEFLAG_H +#ifndef AC_MOVESPLINEFLAG_H +#define AC_MOVESPLINEFLAG_H #include "MovementTypedefs.h" #include @@ -145,4 +145,4 @@ namespace Movement #endif } -#endif // TRINITYSERVER_MOVESPLINEFLAG_H +#endif // AC_MOVESPLINEFLAG_H diff --git a/src/server/game/Movement/Spline/MoveSplineInit.h b/src/server/game/Movement/Spline/MoveSplineInit.h index 5d969e9f0..a98da3446 100644 --- a/src/server/game/Movement/Spline/MoveSplineInit.h +++ b/src/server/game/Movement/Spline/MoveSplineInit.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITYSERVER_MOVESPLINEINIT_H -#define TRINITYSERVER_MOVESPLINEINIT_H +#ifndef AC_MOVESPLINEINIT_H +#define AC_MOVESPLINEINIT_H #include "MoveSplineInitArgs.h" #include "PathGenerator.h" @@ -209,4 +209,4 @@ namespace Movement inline void MoveSplineInit::DisableTransportPathTransformations() { args.TransformForTransport = false; } } -#endif // TRINITYSERVER_MOVESPLINEINIT_H +#endif // AC_MOVESPLINEINIT_H diff --git a/src/server/game/Movement/Spline/MoveSplineInitArgs.h b/src/server/game/Movement/Spline/MoveSplineInitArgs.h index e0789a4f1..a0d26fd54 100644 --- a/src/server/game/Movement/Spline/MoveSplineInitArgs.h +++ b/src/server/game/Movement/Spline/MoveSplineInitArgs.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITYSERVER_MOVESPLINEINIT_ARGS_H -#define TRINITYSERVER_MOVESPLINEINIT_ARGS_H +#ifndef AC_MOVESPLINEINIT_ARGS_H +#define AC_MOVESPLINEINIT_ARGS_H #include "MoveSplineFlag.h" #include @@ -68,4 +68,4 @@ namespace Movement }; } -#endif // TRINITYSERVER_MOVESPLINEINIT_ARGS_H +#endif // AC_MOVESPLINEINIT_ARGS_H diff --git a/src/server/game/Movement/Spline/MovementPacketBuilder.h b/src/server/game/Movement/Spline/MovementPacketBuilder.h index 6ec1af6a3..711eccc33 100644 --- a/src/server/game/Movement/Spline/MovementPacketBuilder.h +++ b/src/server/game/Movement/Spline/MovementPacketBuilder.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITYSERVER_PACKET_BUILDER_H -#define TRINITYSERVER_PACKET_BUILDER_H +#ifndef AC_PACKET_BUILDER_H +#define AC_PACKET_BUILDER_H #include "Define.h" @@ -40,4 +40,4 @@ namespace Movement static void WriteCreate(const MoveSpline& mov, ByteBuffer& data); }; } -#endif // TRINITYSERVER_PACKET_BUILDER_H +#endif // AC_PACKET_BUILDER_H diff --git a/src/server/game/Movement/Spline/MovementTypedefs.h b/src/server/game/Movement/Spline/MovementTypedefs.h index d0b879c05..512bcc7dc 100644 --- a/src/server/game/Movement/Spline/MovementTypedefs.h +++ b/src/server/game/Movement/Spline/MovementTypedefs.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITYSERVER_TYPEDEFS_H -#define TRINITYSERVER_TYPEDEFS_H +#ifndef AC_TYPEDEFS_H +#define AC_TYPEDEFS_H #include "Common.h" @@ -74,4 +74,4 @@ namespace Movement extern UInt32Counter splineIdGen; } -#endif // TRINITYSERVER_TYPEDEFS_H +#endif // AC_TYPEDEFS_H diff --git a/src/server/game/Movement/Spline/Spline.h b/src/server/game/Movement/Spline/Spline.h index 98896d931..d9d255f0a 100644 --- a/src/server/game/Movement/Spline/Spline.h +++ b/src/server/game/Movement/Spline/Spline.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITYSERVER_SPLINE_H -#define TRINITYSERVER_SPLINE_H +#ifndef AC_SPLINE_H +#define AC_SPLINE_H #include "Errors.h" #include "MovementTypedefs.h" @@ -210,4 +210,4 @@ namespace Movement #include "SplineImpl.h" -#endif // TRINITYSERVER_SPLINE_H +#endif // AC_SPLINE_H diff --git a/src/server/game/Scripting/ScriptDefines/GlobalScript.cpp b/src/server/game/Scripting/ScriptDefines/GlobalScript.cpp index 1e10185de..74b1ddbe4 100644 --- a/src/server/game/Scripting/ScriptDefines/GlobalScript.cpp +++ b/src/server/game/Scripting/ScriptDefines/GlobalScript.cpp @@ -178,6 +178,21 @@ bool ScriptMgr::OnAllowedForPlayerLootCheck(Player const* player, ObjectGuid sou return true; } +bool ScriptMgr::OnAllowedToLootContainerCheck(Player const* player, ObjectGuid source) +{ + auto ret = IsValidBoolScript([&](GlobalScript* script) + { + return script->OnAllowedToLootContainerCheck(player, source); + }); + + if (ret && *ret) + { + return false; + } + + return true; +} + /** * @brief Called when an instance Id is deleted, usually because it expired or no players are bound to it anymore. * diff --git a/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp b/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp index 2c1882d79..581c10b6c 100644 --- a/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp +++ b/src/server/game/Scripting/ScriptDefines/PlayerScript.cpp @@ -74,6 +74,21 @@ void ScriptMgr::OnPlayerReleasedGhost(Player* player) }); } +bool ScriptMgr::OnCanPlayerFlyInZone(Player* player, uint32 mapId, uint32 zoneId, SpellInfo const* bySpell) +{ + auto ret = IsValidBoolScript([player, mapId, zoneId, bySpell](PlayerScript* script) + { + return !script->OnCanPlayerFlyInZone(player, mapId, zoneId, bySpell); + }); + + if (ret && *ret) + { + return false; + } + + return true; +} + void ScriptMgr::OnPVPKill(Player* killer, Player* killed) { ExecuteScript([&](PlayerScript* script) diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 27057ee31..fb0d4e11c 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -1474,6 +1474,16 @@ public: */ virtual void OnQuestAbandon(Player* /*player*/, uint32 /*questId*/) { } + /** + * @brief This hook called before other CanFlyChecks are applied + * + * @param player Contains information about the Player + * @param mapId Contains information about the current map id + * @param zoneId Contains information about the current zone + * @param bySpell Contains information about the spell that invoked the check + */ + [[nodiscard]] virtual bool OnCanPlayerFlyInZone(Player* /*player*/, uint32 /*mapId*/, uint32 /*zoneId*/, SpellInfo const* /*bySpell*/) { return true; } + // Passive Anticheat System virtual void AnticheatSetSkipOnePacketForASH(Player* /*player*/, bool /*apply*/) { } virtual void AnticheatSetCanFlybyServer(Player* /*player*/, bool /*apply*/) { } @@ -1648,9 +1658,12 @@ public: // Called after loading spell dbc corrections virtual void OnLoadSpellCustomAttr(SpellInfo* /*spell*/) { } - // Called when checking if a player can see the creature loot + // Called when checking if a player can see the creature loot item virtual bool OnAllowedForPlayerLootCheck(Player const* /*player*/, ObjectGuid /*source*/) { return false; }; + // Called when checking if a player can see the creature loot (if it can click the corpse f.e) + virtual bool OnAllowedToLootContainerCheck(Player const* /*player*/, ObjectGuid /*source*/) { return false; }; + // Called when instance id is removed from database (e.g. instance reset) virtual void OnInstanceIdRemoved(uint32 /*instanceId*/) { } @@ -2474,6 +2487,7 @@ public: /* PlayerScript */ bool CanSendErrorAlreadyLooted(Player* player); void OnAfterCreatureLoot(Player* player); void OnAfterCreatureLootMoney(Player* player); + bool OnCanPlayerFlyInZone(Player* player, uint32 mapId, uint32 zoneId, SpellInfo const* bySpell); // Anti cheat void AnticheatSetSkipOnePacketForASH(Player* player, bool apply); @@ -2535,6 +2549,7 @@ public: /* GlobalScript */ bool OnSpellHealingBonusTakenNegativeModifiers(Unit const* target, Unit const* caster, SpellInfo const* spellInfo, float& val); void OnLoadSpellCustomAttr(SpellInfo* spell); bool OnAllowedForPlayerLootCheck(Player const* player, ObjectGuid source); + bool OnAllowedToLootContainerCheck(Player const* player, ObjectGuid source); void OnInstanceIdRemoved(uint32 instanceId); void OnBeforeSetBossState(uint32 id, EncounterState newState, EncounterState oldState, Map* instance); diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 7097596ad..52c45ba63 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -57,6 +57,7 @@ namespace WorldPackets class AC_GAME_API PlayMusic final : public ServerPacket { public: + // cppcheck-suppress missingReturn PlayMusic() : ServerPacket(SMSG_PLAY_MUSIC, 4) { } PlayMusic(uint32 soundKitID) : ServerPacket(SMSG_PLAY_MUSIC, 4), SoundKitID(soundKitID) { } @@ -68,6 +69,7 @@ namespace WorldPackets class AC_GAME_API PlayObjectSound final : public ServerPacket { public: + // cppcheck-suppress missingReturn PlayObjectSound() : ServerPacket(SMSG_PLAY_OBJECT_SOUND, 4 + 8) { } PlayObjectSound(ObjectGuid const& sourceObjectGUID, uint32 soundKitID) : ServerPacket(SMSG_PLAY_OBJECT_SOUND, 4 + 8), SourceObjectGUID(sourceObjectGUID), SoundKitID(soundKitID) { } @@ -82,6 +84,7 @@ namespace WorldPackets class AC_GAME_API Playsound final : public ServerPacket { public: + // cppcheck-suppress missingReturn Playsound() : ServerPacket(SMSG_PLAY_SOUND, 4) { } Playsound(uint32 soundKitID) : ServerPacket(SMSG_PLAY_SOUND, 4), SoundKitID(soundKitID) { } diff --git a/src/server/game/Server/WorldSocket.cpp b/src/server/game/Server/WorldSocket.cpp index f2ce1d91b..f6317b504 100644 --- a/src/server/game/Server/WorldSocket.cpp +++ b/src/server/game/Server/WorldSocket.cpp @@ -564,7 +564,7 @@ void WorldSocket::HandleAuthSessionCallback(std::shared_ptr authSes //! Negative mutetime indicates amount of minutes to be muted effective on next login - which is now. if (account.MuteTime < 0) { - account.MuteTime = GameTime::GetGameTime().count() + llabs(account.MuteTime); + account.MuteTime = GameTime::GetGameTime().count() + std::llabs(account.MuteTime); auto* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_MUTE_TIME_LOGIN); stmt->SetData(0, account.MuteTime); diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 65c4d612d..721785870 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6088,23 +6088,6 @@ SpellCastResult Spell::CheckCast(bool strict) // for effects of spells that have only one target switch (m_spellInfo->Effects[i].Effect) { - case SPELL_EFFECT_DUMMY: - { - if (m_spellInfo->SpellFamilyName == SPELLFAMILY_DEATHKNIGHT) - { - // Raise Ally - if( m_spellInfo->Id == 61999 ) - { - Unit* target = m_targets.GetUnitTarget(); - if (!target) - return SPELL_FAILED_BAD_TARGETS; - - if (target->IsAlive()) // not discovered attributeEx5? - return SPELL_FAILED_TARGET_NOT_DEAD; - } - } - break; - } case SPELL_EFFECT_LEARN_SPELL: { if (m_caster->GetTypeId() != TYPEID_PLAYER) diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 84e107db8..bdab02384 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1470,7 +1470,7 @@ SpellCastResult SpellInfo::CheckShapeshift(uint32 form) const return SPELL_CAST_OK; } -SpellCastResult SpellInfo::CheckLocation(uint32 map_id, uint32 zone_id, uint32 area_id, Player const* player /*= nullptr*/, bool strict /*= true*/) const +SpellCastResult SpellInfo::CheckLocation(uint32 map_id, uint32 zone_id, uint32 area_id, Player* player /*= nullptr*/, bool strict /*= true*/) const { // normal case if (AreaGroupId > 0) diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h index dc300600b..06450274f 100644 --- a/src/server/game/Spells/SpellInfo.h +++ b/src/server/game/Spells/SpellInfo.h @@ -474,7 +474,7 @@ public: bool IsAuraExclusiveBySpecificPerCasterWith(SpellInfo const* spellInfo) const; SpellCastResult CheckShapeshift(uint32 form) const; - SpellCastResult CheckLocation(uint32 map_id, uint32 zone_id, uint32 area_id, Player const* player = nullptr, bool strict = true) const; + SpellCastResult CheckLocation(uint32 map_id, uint32 zone_id, uint32 area_id, Player* player = nullptr, bool strict = true) const; SpellCastResult CheckTarget(Unit const* caster, WorldObject const* target, bool implicit = true) const; SpellCastResult CheckExplicitTarget(Unit const* caster, WorldObject const* target, Item const* itemTarget = nullptr) const; bool CheckTargetCreatureType(Unit const* target) const; diff --git a/src/server/game/Spells/SpellInfoCorrections.cpp b/src/server/game/Spells/SpellInfoCorrections.cpp index 24019070a..3aff2bee8 100644 --- a/src/server/game/Spells/SpellInfoCorrections.cpp +++ b/src/server/game/Spells/SpellInfoCorrections.cpp @@ -1530,8 +1530,8 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->ChannelInterruptFlags |= AURA_INTERRUPT_FLAG_MOVE; }); - // Debris - ApplySpellFix({ 36449 }, [](SpellInfo* spellInfo) + // Debris - Debris Visual + ApplySpellFix({ 36449, 30632 }, [](SpellInfo* spellInfo) { spellInfo->Attributes |= SPELL_ATTR0_AURA_IS_DEBUFF; }); @@ -1542,12 +1542,6 @@ void SpellMgr::LoadSpellInfoCorrections() spellInfo->AttributesEx3 |= SPELL_ATTR3_DOT_STACKING_RULE; }); - // Debris Visual - ApplySpellFix({ 30632 }, [](SpellInfo* spellInfo) - { - spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_DEST_DYNOBJ_ALLY); - }); - // Activate Sunblade Protecto ApplySpellFix({ 46475, 46476 }, [](SpellInfo* spellInfo) { diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp index dc3a49443..c61e28444 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp @@ -290,7 +290,7 @@ public: bool OnGossipHello(Player* player, GameObject* go) override { if (InstanceScript* instance = go->GetInstanceScript()) - if (instance->GetData(DATA_EGG_EVENT) != DONE && !player->HasAura(SPELL_MIND_EXHAUSTION)) + if (instance->GetData(DATA_EGG_EVENT) != DONE && !player->HasAura(SPELL_MIND_EXHAUSTION) && !player->GetPet()) if (Creature* razor = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_RAZORGORE_THE_UNTAMED))) { razor->AI()->SetGUID(player->GetGUID()); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp index dfc07e012..88da4576c 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_curator.cpp @@ -54,9 +54,11 @@ struct boss_curator : public BossAI me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_POWER_BURN, true); me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_POWER_BURN, true); ScheduleHealthCheckEvent(15, [&] { - DoCastSelf(SPELL_ARCANE_INFUSION, true); - Talk(SAY_ENRAGE); + me->InterruptNonMeleeSpells(true); + DoCastSelf(SPELL_ARCANE_INFUSION, true); + Talk(SAY_ENRAGE); }); + me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA)); } void KilledUnit(Unit* victim) override @@ -85,7 +87,7 @@ struct boss_curator : public BossAI DoCastSelf(SPELL_ASTRAL_DECONSTRUCTION, true); }).Schedule(10s, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 0, 45.0f, true, false)) + if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat, 1, 45.0f, true, false)) { DoCast(target, SPELL_HATEFUL_BOLT); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index a86c05a0c..46f16be95 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -218,13 +218,17 @@ struct boss_netherspite : public BossAI } }).Schedule(10s, PORTAL_PHASE, [this](TaskContext context) { - UpdatePortals(); - context.Repeat(1s); + UpdatePortals(); + context.Repeat(1s); }).Schedule(10s, PORTAL_PHASE, [this](TaskContext context) { - DoCastSelf(SPELL_EMPOWERMENT); - me->AddAura(SPELL_NETHERBURN_AURA, me); - context.Repeat(90s); + DoCastSelf(SPELL_EMPOWERMENT); + me->AddAura(SPELL_NETHERBURN_AURA, me); + context.Repeat(90s); + }).Schedule(15s, PORTAL_PHASE, [this](TaskContext context) + { + DoCastRandomTarget(SPELL_VOIDZONE, 1, 45.0f, true, true); + context.Repeat(15s); }); Talk(EMOTE_PHASE_PORTAL); } @@ -237,13 +241,10 @@ struct boss_netherspite : public BossAI DoCastSelf(SPELL_BANISH_VISUAL, true); DoCastSelf(SPELL_BANISH_ROOT, true); DestroyPortals(); - scheduler.Schedule(30s, [this](TaskContext /*context*/) + scheduler.Schedule(30s, [this](TaskContext) { - if (!me->IsNonMeleeSpellCast(false)) - { - SwitchToPortalPhase(); - return; - } + SwitchToPortalPhase(); + return; }).Schedule(10s, VANISH_PHASE, [this](TaskContext context) { DoCastRandomTarget(SPELL_NETHERBREATH, 0, 40.0f, true); @@ -270,11 +271,7 @@ struct boss_netherspite : public BossAI HandleDoors(false); SwitchToPortalPhase(); DoZoneInCombat(); - scheduler.Schedule(15s, [this](TaskContext context) - { - DoCastRandomTarget(SPELL_VOIDZONE, 1, 45.0f, true, true); - context.Repeat(15s); - }).Schedule(9min, [this](TaskContext /*context*/) + scheduler.Schedule(9min, [this](TaskContext /*context*/) { if (!berserk) { diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index 9c8a293f9..0d4774a61 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -18,6 +18,7 @@ #include "ScriptMgr.h" #include "ScriptedCreature.h" #include "SpellInfo.h" +#include "SpellScript.h" #include "karazhan.h" enum PrinceSay @@ -47,11 +48,13 @@ enum Spells enum creatures { - NPC_NETHERSPITE_INFERNAL = 17646, - NPC_MALCHEZARS_AXE = 17650, - INFERNAL_MODEL_INVISIBLE = 11686, - SPELL_INFERNAL_RELAY = 33814, // 30835, - EQUIP_ID_AXE = 33542 + NPC_NETHERSPITE_INFERNAL = 17646, + NPC_MALCHEZAARS_AXE = 17650, + INFERNAL_MODEL_INVISIBLE = 11686, + SPELL_INFERNAL_RELAY = 33814, // 30835, + SPELL_INFERNAL_RELAY_ONE = 30834, + SPELL_INFERNAL_RELAY_TWO = 30835, + EQUIP_ID_AXE = 33542 }; enum EventGroups @@ -68,44 +71,19 @@ enum Phases PHASE_THREE = 3 }; -struct InfernalPoint -{ - float x, y; -}; - -#define INFERNAL_Z 275.5f - -/*static InfernalPoint InfernalPoints[] = -{ - { -10922.8f, -1985.2f }, - { -10916.2f, -1996.2f }, - { -10932.2f, -2008.1f }, - { -10948.8f, -2022.1f }, - { -10958.7f, -1997.7f }, - { -10971.5f, -1997.5f }, - { -10990.8f, -1995.1f }, - { -10989.8f, -1976.5f }, - { -10971.6f, -1973.0f }, - { -10955.5f, -1974.0f }, - { -10939.6f, -1969.8f }, - { -10958.0f, -1952.2f }, - { -10941.7f, -1954.8f }, - { -10943.1f, -1988.5f }, - { -10948.8f, -2005.1f }, - { -10984.0f, -2019.3f }, - { -10932.8f, -1979.6f }, - { -10935.7f, -1996.0f } -};*/ - struct boss_malchezaar : public BossAI { - boss_malchezaar(Creature* creature) : BossAI(creature, DATA_MALCHEZZAR) { } + boss_malchezaar(Creature* creature) : BossAI(creature, DATA_MALCHEZAAR) { } + + std::list relays; + std::list infernalTargets; void Initialize() { _phase = 1; clearweapons(); - positions.clear(); + relays.clear(); + infernalTargets.clear(); instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true); } @@ -145,7 +123,7 @@ struct boss_malchezaar : public BossAI _phase = PHASE_THREE; clearweapons(); - me->SummonCreature(NPC_MALCHEZARS_AXE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 10000); + me->SummonCreature(NPC_MALCHEZAARS_AXE, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 10000); scheduler.Schedule(20s, 30s, [this](TaskContext context) { @@ -174,15 +152,52 @@ struct boss_malchezaar : public BossAI instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), true); } + void SpawnInfernal(Creature* relay, Creature* target) + { + if (Creature* infernal = relay->SummonCreature(NPC_NETHERSPITE_INFERNAL, target->GetPosition(), TEMPSUMMON_TIMED_DESPAWN, 180000)) + { + infernal->SetDisplayId(INFERNAL_MODEL_INVISIBLE); + relay->CastSpell(infernal, SPELL_INFERNAL_RELAY); + infernal->SetFaction(me->GetFaction()); + infernal->SetControlled(true, UNIT_STATE_ROOT); + relay->CastSpell(infernal, SPELL_INFERNAL_RELAY); + summons.Summon(infernal); + } + } + + bool MaxSpawns(std::list spawns) + { + return spawns.size() == 0; + } + + Creature* PickTarget(std::list pickList) + { + uint8 index = urand(0, pickList.size()-1); + uint8 counter = 0; + for (Creature* creature : pickList) + { + if (counter == index) + { + return creature; + } + counter++; + } + return nullptr; + } + void JustEngagedWith(Unit* /*who*/) override { Talk(SAY_AGGRO); _JustEngagedWith(); + + me->GetCreaturesWithEntryInRange(relays, 250.0f, NPC_INFERNAL_RELAY); + me->GetCreaturesWithEntryInRange(infernalTargets, 100.0f, NPC_INFERNAL_TARGET); + instance->HandleGameObject(instance->GetGuidData(DATA_GO_NETHER_DOOR), false); scheduler.Schedule(30s, [this](TaskContext context) { - EnfeebleHealthEffect(); + DoCastAOE(SPELL_ENFEEBLE); scheduler.Schedule(9s, [this](TaskContext) { @@ -199,23 +214,30 @@ struct boss_malchezaar : public BossAI context.Repeat(); }).Schedule(40s, [this](TaskContext context) { - Position pos = me->GetRandomNearPosition(40.0);; - - if (Creature* RELAY = me->FindNearestCreature(NPC_RELAY, 100.0f)) + if (!MaxSpawns(infernalTargets)) // only spawn infernal when the area is not full { - if (Creature* infernal = RELAY->SummonCreature(NPC_NETHERSPITE_INFERNAL, pos, TEMPSUMMON_TIMED_DESPAWN, 180000)) + Talk(SAY_SUMMON); + if (Creature* infernalRelayOne = relays.back()) { - infernal->SetDisplayId(INFERNAL_MODEL_INVISIBLE); - infernal->SetFaction(me->GetFaction()); - infernal->SetControlled(true, UNIT_STATE_ROOT); - RELAY->AI()->DoCast(infernal, SPELL_INFERNAL_RELAY); - summons.Summon(infernal); + if (Creature* infernalRelayTwo = relays.front()) + { + infernalRelayOne->CastSpell(infernalRelayTwo, SPELL_INFERNAL_RELAY_ONE, true); + + if (Creature* infernalTarget = PickTarget(infernalTargets)) + { + infernalTargets.remove(infernalTarget); + SpawnInfernal(infernalRelayTwo, infernalTarget); + + scheduler.Schedule(3min, [this, infernalTarget](TaskContext) + { + infernalTargets.push_back(infernalTarget); //adds to list again + }); + + } + } } } - context.Repeat(_phase == PHASE_THREE ? 15s : 45s); - - Talk(SAY_SUMMON); }).Schedule(20s, [this](TaskContext context) { DoCastVictim(SPELL_SHADOW_WORD_PAIN); @@ -224,23 +246,12 @@ struct boss_malchezaar : public BossAI }); } - void EnfeebleHealthEffect() + void SpellHitTarget(Unit* target, SpellInfo const* spell) override { - std::list targetList; - SelectTargetList(targetList, 5, SelectTargetMethod::Random, 1, [&](Unit* u) { return u->IsAlive() && u->IsPlayer(); }); - - if (targetList.empty()) - return; - - for (auto const& target : targetList) + if (spell->Id == SPELL_ENFEEBLE) { - if (target) - { - _enfeebleTargets[target->GetGUID()] = target->GetHealth(); - - me->CastSpell(target, SPELL_ENFEEBLE, true); - target->SetHealth(1); - } + _enfeebleTargets[target->GetGUID()] = target->GetHealth(); + target->SetHealth(1); } } @@ -261,7 +272,6 @@ struct boss_malchezaar : public BossAI private: uint32 _phase; std::map _enfeebleTargets; - std::vector positions; }; struct npc_netherspite_infernal : public ScriptedAI @@ -357,9 +367,43 @@ struct npc_malchezaar_axe : public ScriptedAI TaskScheduler _scheduler; }; +// 30843 - Enfeeble +class spell_malchezaar_enfeeble : public SpellScript +{ + PrepareSpellScript(spell_malchezaar_enfeeble); + + bool Load() override + { + return GetCaster()->ToCreature(); + } + + void FilterTargets(std::list& targets) + { + uint8 maxSize = 5; + Unit* caster = GetCaster(); + + targets.remove_if([caster](WorldObject const* target) -> bool + { + // Should not target current victim. + return caster->GetVictim() == target; + }); + + if (targets.size() > maxSize) + { + Acore::Containers::RandomResize(targets, maxSize); + } + } + + void Register() override + { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_malchezaar_enfeeble::FilterTargets, EFFECT_ALL, TARGET_UNIT_SRC_AREA_ENEMY); + } +}; + void AddSC_boss_malchezaar() { RegisterKarazhanCreatureAI(boss_malchezaar); RegisterKarazhanCreatureAI(npc_malchezaar_axe); RegisterKarazhanCreatureAI(npc_netherspite_infernal); + RegisterSpellScript(spell_malchezaar_enfeeble); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp index 5b08d8399..61f4538b2 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp @@ -55,7 +55,6 @@ enum ShadeOfAran //Creature Spells SPELL_CIRCULAR_BLIZZARD = 29951, - SPELL_WATERBOLT = 31012, SPELL_SHADOW_PYRO = 29978, //Creatures @@ -77,6 +76,8 @@ enum Groups GROUP_DRINKING = 1 }; +Position const roomCenter = {-11158.f, -1920.f}; + Position const elementalPos[4] = { {-11168.1f, -1939.29f, 232.092f, 1.46f}, @@ -103,12 +104,10 @@ struct boss_shade_of_aran : public BossAI uint32 CurrentNormalSpell; - bool Drinking; - void Reset() override { BossAI::Reset(); - drinkScheduler.CancelAll(); + _drinkScheduler.CancelAll(); LastSuperSpell = rand() % 3; for (uint8 i = 0; i < 3; ++i) @@ -120,7 +119,7 @@ struct boss_shade_of_aran : public BossAI _fireCooledDown = true; _frostCooledDown = true; - Drinking = false; + _drinking = false; // Not in progress instance->SetData(DATA_ARAN, NOT_STARTED); @@ -149,6 +148,23 @@ struct boss_shade_of_aran : public BossAI }); } + bool CheckAranInRoom() + { + return me->GetDistance2d(roomCenter.GetPositionX(), roomCenter.GetPositionY()) < 45.0f; + } + + void AttackStart(Unit* who) override + { + if (who && who->isTargetableForAttack() && me->GetReactState() != REACT_PASSIVE) + { + if (me->Attack(who, false)) + { + me->GetMotionMaster()->MoveChase(who, 45.0f, 0); + me->AddThreat(who, 0.0f); + } + } + } + void KilledUnit(Unit* /*victim*/) override { Talk(SAY_KILL); @@ -207,9 +223,9 @@ struct boss_shade_of_aran : public BossAI libraryDoor->SetGoState(GO_STATE_READY); libraryDoor->SetGameObjectFlag(GO_FLAG_NOT_SELECTABLE); } - }).Schedule(1ms, [this](TaskContext context) + }).Schedule(1s, [this](TaskContext context) { - if (!me->IsNonMeleeSpellCast(false)) + if (!me->IsNonMeleeSpellCast(false) && !_drinking) { Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100, true); if (!target) @@ -242,93 +258,144 @@ struct boss_shade_of_aran : public BossAI DoCast(target, CurrentNormalSpell); } } - context.Repeat(10s); + context.Repeat(2s); }).Schedule(5s, [this](TaskContext context) { - switch (urand(0, 1)) + if (!_drinking) { - case 0: - DoCastSelf(SPELL_AOE_CS); - break; - case 1: - DoCastRandomTarget(SPELL_CHAINSOFICE); - break; + switch (urand(0, 1)) + { + case 0: + DoCastSelf(SPELL_AOE_CS); + break; + case 1: + DoCastRandomTarget(SPELL_CHAINSOFICE); + break; + } } context.Repeat(5s, 20s); }).Schedule(35s, [this](TaskContext context) { - uint8 Available[2]; - - switch (LastSuperSpell) + if (!_drinking) { - case SUPER_AE: - Available[0] = SUPER_FLAME; - Available[1] = SUPER_BLIZZARD; - break; - case SUPER_FLAME: - Available[0] = SUPER_AE; - Available[1] = SUPER_BLIZZARD; - break; - case SUPER_BLIZZARD: - Available[0] = SUPER_FLAME; - Available[1] = SUPER_AE; - break; - } + uint8 Available[2]; - LastSuperSpell = Available[urand(0, 1)]; + switch (LastSuperSpell) + { + case SUPER_AE: + Available[0] = SUPER_FLAME; + Available[1] = SUPER_BLIZZARD; + break; + case SUPER_FLAME: + Available[0] = SUPER_AE; + Available[1] = SUPER_BLIZZARD; + break; + case SUPER_BLIZZARD: + Available[0] = SUPER_FLAME; + Available[1] = SUPER_AE; + break; + } - switch (LastSuperSpell) - { - case SUPER_AE: - Talk(SAY_EXPLOSION); + LastSuperSpell = Available[urand(0, 1)]; - DoCastSelf(SPELL_BLINK_CENTER, true); - DoCastSelf(SPELL_PLAYERPULL, true); - DoCastSelf(SPELL_MASSSLOW, true); - DoCastSelf(SPELL_AEXPLOSION, false); - break; + switch (LastSuperSpell) + { + case SUPER_AE: + Talk(SAY_EXPLOSION); - case SUPER_FLAME: - Talk(SAY_FLAMEWREATH); + DoCastSelf(SPELL_BLINK_CENTER, true); + DoCastSelf(SPELL_PLAYERPULL, true); + DoCastSelf(SPELL_MASSSLOW, true); + DoCastSelf(SPELL_AEXPLOSION, false); + break; - scheduler.Schedule(20s, GROUP_FLAMEWREATH, [this](TaskContext) - { - scheduler.CancelGroup(GROUP_FLAMEWREATH); - }).Schedule(500ms, GROUP_FLAMEWREATH, [this](TaskContext context) - { - for (uint8 i = 0; i < 3; ++i) + case SUPER_FLAME: + Talk(SAY_FLAMEWREATH); + + scheduler.Schedule(20s, GROUP_FLAMEWREATH, [this](TaskContext) { - if (!FlameWreathTarget[i]) - continue; - - Unit* unit = ObjectAccessor::GetUnit(*me, FlameWreathTarget[i]); - if (unit && !unit->IsWithinDist2d(FWTargPosX[i], FWTargPosY[i], 3)) + scheduler.CancelGroup(GROUP_FLAMEWREATH); + }).Schedule(500ms, GROUP_FLAMEWREATH, [this](TaskContext context) + { + for (uint8 i = 0; i < 3; ++i) { - unit->CastSpell(unit, 20476, true, 0, 0, me->GetGUID()); - FlameWreathTarget[i].Clear(); + if (!FlameWreathTarget[i]) + continue; + + Unit* unit = ObjectAccessor::GetUnit(*me, FlameWreathTarget[i]); + if (unit && !unit->IsWithinDist2d(FWTargPosX[i], FWTargPosY[i], 3)) + { + unit->CastSpell(unit, 20476, true, 0, 0, me->GetGUID()); + FlameWreathTarget[i].Clear(); + } } + context.Repeat(500ms); + }); + + FlameWreathTarget[0].Clear(); + FlameWreathTarget[1].Clear(); + FlameWreathTarget[2].Clear(); + + FlameWreathEffect(); + break; + + case SUPER_BLIZZARD: + Talk(SAY_BLIZZARD); + + if (Creature* pSpawn = me->SummonCreature(NPC_ARAN_BLIZZARD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 25000)) + { + pSpawn->SetFaction(me->GetFaction()); + pSpawn->CastSpell(me, SPELL_CIRCULAR_BLIZZARD, false); } - context.Repeat(500ms); - }); - - FlameWreathTarget[0].Clear(); - FlameWreathTarget[1].Clear(); - FlameWreathTarget[2].Clear(); - - FlameWreathEffect(); - break; - - case SUPER_BLIZZARD: - Talk(SAY_BLIZZARD); - - if (Creature* pSpawn = me->SummonCreature(NPC_ARAN_BLIZZARD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 25000)) - { - pSpawn->SetFaction(me->GetFaction()); - pSpawn->CastSpell(me, SPELL_CIRCULAR_BLIZZARD, false); - } - break; + break; + } } context.Repeat(35s, 40s); + }).Schedule(1s, [this](TaskContext context){ + if (me->GetMaxPower(POWER_MANA) && (me->GetPower(POWER_MANA) * 100 / me->GetMaxPower(POWER_MANA)) < 20) + { + _drinking = true; + me->InterruptNonMeleeSpells(true); + Talk(SAY_DRINK); + DoCastSelf(SPELL_MASS_POLY, true); + DoCastSelf(SPELL_CONJURE, false); + me->SetReactState(REACT_PASSIVE); + me->SetStandState(UNIT_STAND_STATE_SIT); + DoCastSelf(SPELL_DRINK, true); + _currentHealth = me->GetHealth(); + _drinkScheduler.Schedule(500ms, GROUP_DRINKING, [this](TaskContext context) + { + //check for damage to interrupt + if (me->GetHealth() < _currentHealth) + { + me->RemoveAurasDueToSpell(SPELL_DRINK); + me->SetStandState(UNIT_STAND_STATE_STAND); + me->SetReactState(REACT_AGGRESSIVE); + me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA) - 32000); + DoCastSelf(SPELL_POTION, false); + DoCastSelf(SPELL_AOE_PYROBLAST, false); + _drinkScheduler.CancelGroup(GROUP_DRINKING); + _drinking = false; + } else + { + context.Repeat(500ms); + } + }).Schedule(10s, GROUP_DRINKING, [this](TaskContext) + { + me->SetStandState(UNIT_STAND_STATE_STAND); + me->SetReactState(REACT_AGGRESSIVE); + me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA) - 32000); + DoCastSelf(SPELL_POTION, true); + DoCastSelf(SPELL_AOE_PYROBLAST, false); + _drinkScheduler.CancelGroup(GROUP_DRINKING); + _drinking = false; + }); + context.Repeat(12s); //semi-arbitrary duration to envelop drinking duration + } + else + { + context.Repeat(1s); + } }).Schedule(12min, [this](TaskContext context) { for (uint32 i = 0; i < 5; ++i) @@ -384,70 +451,21 @@ struct boss_shade_of_aran : public BossAI void UpdateAI(uint32 diff) override { scheduler.Update(diff); - drinkScheduler.Update(diff); + _drinkScheduler.Update(diff); if (!UpdateVictim()) return; - if (!Drinking && me->GetMaxPower(POWER_MANA) && (me->GetPower(POWER_MANA) * 100 / me->GetMaxPower(POWER_MANA)) < 20) + if (!CheckAranInRoom()) { - Drinking = true; - me->InterruptNonMeleeSpells(false); - - Talk(SAY_DRINK); - - scheduler.DelayAll(10s); - DoCastSelf(SPELL_MASS_POLY, true); - DoCastSelf(SPELL_CONJURE, false); - me->SetReactState(REACT_PASSIVE); - me->SetStandState(UNIT_STAND_STATE_SIT); - DoCastSelf(SPELL_DRINK, true); - _currentHealth = me->GetHealth(); - drinkScheduler.Schedule(500ms, GROUP_DRINKING, [this](TaskContext context) - { - //check for damage to interrupt - if(CheckDamageDuringDrinking(_currentHealth)) - { - Drinking = false; - me->RemoveAurasDueToSpell(SPELL_DRINK); - me->SetStandState(UNIT_STAND_STATE_STAND); - me->SetReactState(REACT_AGGRESSIVE); - me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA) - 32000); - DoCastSelf(SPELL_POTION, false); - DoCastSelf(SPELL_AOE_PYROBLAST, false); - drinkScheduler.CancelGroup(GROUP_DRINKING); - } else { - context.Repeat(500ms); - } - }).Schedule(10s, GROUP_DRINKING, [this](TaskContext) - { - me->SetStandState(UNIT_STAND_STATE_STAND); - me->SetReactState(REACT_AGGRESSIVE); - me->SetPower(POWER_MANA, me->GetMaxPower(POWER_MANA) - 32000); - DoCastSelf(SPELL_POTION, true); - DoCastSelf(SPELL_AOE_PYROBLAST, false); - - Drinking = false; - drinkScheduler.CancelGroup(GROUP_DRINKING); - }); + EnterEvadeMode(); + return; } - if (_arcaneCooledDown && _fireCooledDown && _frostCooledDown && !Drinking) + if (_arcaneCooledDown && _fireCooledDown && _frostCooledDown && !_drinking) DoMeleeAttackIfReady(); } - bool CheckDamageDuringDrinking(uint32 oldHealth) - { - if (Drinking) - { - if (me->GetHealth() < oldHealth) - { - return true; - } - } - return false; - } - void SpellHit(Unit* /*pAttacker*/, SpellInfo const* Spell) override { //We only care about interrupt effects and only if they are durring a spell currently being cast @@ -476,52 +494,16 @@ struct boss_shade_of_aran : public BossAI } } private: - TaskScheduler drinkScheduler; + TaskScheduler _drinkScheduler; bool _arcaneCooledDown; bool _fireCooledDown; bool _frostCooledDown; + bool _drinking; uint32 _currentHealth; }; -struct npc_aran_elemental : public ScriptedAI -{ - npc_aran_elemental(Creature* creature) : ScriptedAI(creature) - { - SetCombatMovement(false); - _scheduler.SetValidator([this] - { - return !me->HasUnitState(UNIT_STATE_CASTING); - }); - } - - void Reset() override - { - _scheduler.CancelAll(); - } - - void JustEngagedWith(Unit* /*who*/) override - { - _scheduler.Schedule(2s, [this](TaskContext context) - { - DoCastVictim(SPELL_WATERBOLT); - context.Repeat(2s); - }); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - _scheduler.Update(diff); - } -private: - TaskScheduler _scheduler; -}; - void AddSC_boss_shade_of_aran() { RegisterKarazhanCreatureAI(boss_shade_of_aran); - RegisterKarazhanCreatureAI(npc_aran_elemental); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp index b81b7cd8b..956bd2b6f 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp @@ -52,7 +52,6 @@ enum Spells enum Creatures { NPC_DEMONCHAINS = 17248, - NPC_FIENDISHIMP = 17267, NPC_PORTAL = 17265 }; @@ -146,64 +145,6 @@ private: ObjectGuid sacrificeGUID; }; -struct npc_fiendish_portal : public PassiveAI -{ - npc_fiendish_portal(Creature* creature) : PassiveAI(creature), summons(me) {} - - void Reset() override - { - DespawnAllImp(); - } - - void JustSummoned(Creature* summon) override - { - summons.Summon(summon); - DoZoneInCombat(summon); - } - - void DespawnAllImp() - { - summons.DespawnAll(); - } - -private: - SummonList summons; -}; - -struct npc_fiendish_imp : public ScriptedAI -{ - npc_fiendish_imp(Creature* creature) : ScriptedAI(creature) {} - - void Reset() override - { - _scheduler.CancelAll(); - } - - void JustEngagedWith(Unit* /*who*/) override - { - _scheduler.Schedule(2s, [this](TaskContext context) - { - DoCastVictim(SPELL_FIREBOLT); - context.Repeat(2200ms); - }); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - _scheduler.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - DoMeleeAttackIfReady(); - } - -private: - TaskScheduler _scheduler; -}; - struct boss_terestian_illhoof : public BossAI { boss_terestian_illhoof(Creature* creature) : BossAI(creature, DATA_TERESTIAN) @@ -218,20 +159,6 @@ struct boss_terestian_illhoof : public BossAI { _Reset(); SummonKilrek(); - portalsCount = 0; - berserk = false; - for (uint8 i = 0; i < 2; ++i) - { - if (portalGUID[i]) - { - if (Creature* pPortal = ObjectAccessor::GetCreature(*me, portalGUID[i])) - { - pPortal->AI()->Reset(); - pPortal->DespawnOrUnsummon(); - } - portalGUID[i].Clear(); - } - } } void SummonKilrek() @@ -256,10 +183,13 @@ struct boss_terestian_illhoof : public BossAI DoZoneInCombat(); scheduler.Schedule(30s, [this](TaskContext context) { - if (Unit * target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false)) + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 100.0f, true, false)) { DoCast(target, SPELL_SACRIFICE, true); - target->CastSpell(target, SPELL_SUMMON_DEMONCHAINS, true); + target->m_Events.AddEventAtOffset([target] { + target->CastSpell(target, SPELL_SUMMON_DEMONCHAINS, true); + }, 1s); + Talk(SAY_SACRIFICE); context.Repeat(30s); } @@ -267,31 +197,15 @@ struct boss_terestian_illhoof : public BossAI { DoCastVictim(SPELL_SHADOW_BOLT); context.Repeat(10s); - }).Schedule(10s, [this](TaskContext context) + }).Schedule(10s, [this](TaskContext) { - if (!portalGUID[0]) - { - DoCastVictim(SPELL_FIENDISH_PORTAL); - } - if (!portalGUID[1]) - { - DoCastVictim(SPELL_FIENDISH_PORTAL_1); - } - if (portalGUID[0] && portalGUID[1]) - { - if (Creature* pPortal = ObjectAccessor::GetCreature(*me, portalGUID[urand(0, 1)])) - { - pPortal->CastSpell(me->GetVictim(), SPELL_SUMMON_FIENDISIMP); - } - context.Repeat(5s); - } + DoCastAOE(SPELL_FIENDISH_PORTAL); + }).Schedule(11s, [this](TaskContext) + { + DoCastAOE(SPELL_FIENDISH_PORTAL_1); }).Schedule(10min, [this](TaskContext /*context*/) { - if (!berserk) - { - DoCastSelf(SPELL_BERSERK); - berserk = true; - } + DoCastSelf(SPELL_BERSERK); }); } @@ -299,13 +213,14 @@ struct boss_terestian_illhoof : public BossAI { if (summoned->GetEntry() == NPC_PORTAL) { - portalGUID[portalsCount] = summoned->GetGUID(); - ++portalsCount; + summoned->SetReactState(REACT_PASSIVE); if (summoned->GetUInt32Value(UNIT_CREATED_BY_SPELL) == SPELL_FIENDISH_PORTAL_1) { Talk(SAY_SUMMON); } } + + summons.Summon(summoned); } void KilledUnit(Unit* victim) override @@ -318,44 +233,14 @@ struct boss_terestian_illhoof : public BossAI void JustDied(Unit* /*killer*/) override { + _JustDied(); Talk(SAY_DEATH); - for (uint8 i = 0; i < 2; ++i) - { - if (portalGUID[i]) - { - if (Creature* pPortal = ObjectAccessor::GetCreature((*me), portalGUID[i])) - { - pPortal->AI()->Reset(); - pPortal->DespawnOrUnsummon(); - } - portalGUID[i].Clear(); - } - } } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - scheduler.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - DoMeleeAttackIfReady(); - } - -private: - bool berserk; - ObjectGuid portalGUID[2]; - uint8 portalsCount; }; void AddSC_boss_terestian_illhoof() { RegisterKarazhanCreatureAI(boss_terestian_illhoof); - RegisterKarazhanCreatureAI(npc_fiendish_imp); - RegisterKarazhanCreatureAI(npc_fiendish_portal); RegisterKarazhanCreatureAI(npc_kilrek); RegisterKarazhanCreatureAI(npc_demon_chain); } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 3753a61bc..24fb4e991 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -508,7 +508,7 @@ struct boss_strawman : public ScriptedAI void SpellHit(Unit* /*caster*/, SpellInfo const* Spell) override { - if ((Spell->SchoolMask == SPELL_SCHOOL_MASK_FIRE) && (!(rand() % 10))) + if ((Spell->SchoolMask == SPELL_SCHOOL_MASK_FIRE) && roll_chance_i(10)) { /* if (not direct damage(aoe, dot)) diff --git a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp index f7c600a13..f8568de6c 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/instance_karazhan.cpp @@ -44,6 +44,7 @@ ObjectData const creatureData[] = { NPC_ROMULO, DATA_ROMULO }, { NPC_JULIANNE, DATA_JULIANNE }, { NPC_NIGHTBANE, DATA_NIGHTBANE }, + { NPC_TERESTIAN_ILLHOOF, DATA_TERESTIAN }, { 0, 0 } }; @@ -122,6 +123,16 @@ public: case NPC_ECHO_OF_MEDIVH: _echoOfMedivhGUID = creature->GetGUID(); break; + case NPC_FIENDISH_IMP: + if (Creature* terestrian = GetCreature(DATA_TERESTIAN)) + { + if (terestrian->AI()) + { + terestrian->AI()->JustSummoned(creature); + creature->SetInCombatWithZone(); + } + } + break; default: break; } @@ -252,7 +263,6 @@ public: piece->NearTeleportTo(x, y, z, o); piece->AI()->DoAction(ACTION_CHESS_PIECE_RESET_ORIENTATION); piece->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); - piece->RemoveNpcFlag(UNIT_NPC_FLAG_GOSSIP); piece->AI()->Reset(); } } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h index 86cf16fbe..274a5f1f3 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.h @@ -37,7 +37,7 @@ enum KZDataTypes DATA_TERESTIAN = 7, DATA_NETHERSPITE = 8, DATA_CHESS_EVENT = 9, - DATA_MALCHEZZAR = 10, + DATA_MALCHEZAAR = 10, DATA_NIGHTBANE = 11, DATA_SERVANT_QUARTERS = 12, DATA_OPERA_OZ_DEATHCOUNT = 13, @@ -117,6 +117,7 @@ enum KZCreatures NPC_ROAR = 17546, NPC_STRAWMAN = 17543, NPC_TINHEAD = 17547, + NPC_FIENDISH_IMP = 17267, // Chess Event NPC_ECHO_OF_MEDIVH = 16816, @@ -132,7 +133,12 @@ enum KZCreatures NPC_ROOK_A = 21160, NPC_KING_H = 21752, NPC_KING_A = 21684, - NPC_CHESS_EVENT_MEDIVH_CHEAT_FIRES = 22521 + NPC_CHESS_EVENT_MEDIVH_CHEAT_FIRES = 22521, + + // Malchezaar Helpers + NPC_INFERNAL_TARGET = 17644, + NPC_INFERNAL_RELAY = 17645 + }; enum KZGameObjectIds diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp index 7f812f34c..315a7df18 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/instance_magisters_terrace.cpp @@ -16,9 +16,18 @@ */ #include "InstanceScript.h" +#include "ScriptedCreature.h" #include "ScriptMgr.h" #include "magisters_terrace.h" +ObjectData const creatureData[] = +{ + { NPC_KALECGOS, DATA_KALECGOS }, + { 0, 0 } +}; + +Position const KalecgosSpawnPos = { 164.3747f, -397.1197f, 2.151798f, 1.66219f }; + class instance_magisters_terrace : public InstanceMapScript { public: @@ -29,6 +38,7 @@ public: instance_magisters_terrace_InstanceMapScript(Map* map) : InstanceScript(map) { SetHeaders(DataHeader); + LoadObjectData(creatureData, nullptr); } uint32 Encounter[MAX_ENCOUNTER]; @@ -69,6 +79,24 @@ public: return 0; } + void ProcessEvent(WorldObject* /*obj*/, uint32 eventId) override + { + if (eventId == EVENT_SPAWN_KALECGOS) + { + if (!GetCreature(DATA_KALECGOS) && !scheduler.IsGroupScheduled(DATA_KALECGOS)) + { + scheduler.Schedule(1min, 1min, DATA_KALECGOS,[this](TaskContext) + { + if (Creature* kalecgos = instance->SummonCreature(NPC_KALECGOS, KalecgosSpawnPos)) + { + kalecgos->GetMotionMaster()->MovePath(PATH_KALECGOS_FLIGHT, false); + kalecgos->AI()->Talk(SAY_KALECGOS_SPAWN); + } + }); + } + } + } + void SetData(uint32 identifier, uint32 data) override { switch (identifier) @@ -116,6 +144,8 @@ public: kael->AI()->JustSummoned(creature); break; } + + InstanceScript::OnCreatureCreate(creature); } void OnGameObjectCreate(GameObject* go) override @@ -184,7 +214,53 @@ public: } }; +enum Spells +{ + SPELL_KALECGOS_TRANSFORM = 44670, + SPELL_TRANSFORM_VISUAL = 24085, + SPELL_CAMERA_SHAKE = 44762, + SPELL_ORB_KILL_CREDIT = 46307 +}; + +enum MovementPoints +{ + POINT_ID_PREPARE_LANDING = 6 +}; + +struct npc_kalecgos : public ScriptedAI +{ + npc_kalecgos(Creature* creature) : ScriptedAI(creature) { } + + void MovementInform(uint32 type, uint32 pointId) override + { + if (type != WAYPOINT_MOTION_TYPE) + return; + + if (pointId == POINT_ID_PREPARE_LANDING) + { + me->HandleEmoteCommand(EMOTE_ONESHOT_LAND); + me->SetDisableGravity(false); + me->SetHover(false); + + me->m_Events.AddEventAtOffset([this]() + { + DoCastAOE(SPELL_CAMERA_SHAKE); + me->SetObjectScale(0.6f); + + me->m_Events.AddEventAtOffset([this]() + { + DoCastSelf(SPELL_ORB_KILL_CREDIT, true); + DoCastSelf(SPELL_TRANSFORM_VISUAL); + DoCastSelf(SPELL_KALECGOS_TRANSFORM); + me->UpdateEntry(NPC_HUMAN_KALECGOS); + }, 1s); + }, 2s); + } + } +}; + void AddSC_instance_magisters_terrace() { new instance_magisters_terrace(); + RegisterMagistersTerraceCreatureAI(npc_kalecgos); } diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h index 20bb86b22..d265866cd 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/magisters_terrace.h @@ -32,7 +32,9 @@ enum MTData DATA_VEXALLUS_EVENT = 1, DATA_DELRISSA_EVENT = 2, DATA_KAELTHAS_EVENT = 3, - MAX_ENCOUNTER = 4 + MAX_ENCOUNTER = 4, + + DATA_KALECGOS = 5 }; enum MTCreatures @@ -41,7 +43,9 @@ enum MTCreatures NPC_FEL_CRYSTAL = 24722, NPC_KAEL_THAS = 24664, NPC_PHOENIX = 21362, - NPC_PHOENIX_EGG = 21364 + NPC_PHOENIX_EGG = 21364, + NPC_KALECGOS = 24844, + NPC_HUMAN_KALECGOS = 24848 }; enum MTGameObjects @@ -54,10 +58,27 @@ enum MTGameObjects GO_ESCAPE_ORB = 188173 }; +enum InstanceEventIds +{ + EVENT_SPAWN_KALECGOS = 16547 +}; + +enum InstanceText +{ + SAY_KALECGOS_SPAWN = 0 +}; + +enum MovementData +{ + PATH_KALECGOS_FLIGHT = 248440 +}; + template inline AI* GetMagistersTerraceAI(T* obj) { return GetInstanceAI(obj, MTScriptName); } +#define RegisterMagistersTerraceCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetMagistersTerraceAI) + #endif diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp index d0024de85..65b8c64f1 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/instance_scarlet_monastery.cpp @@ -695,106 +695,6 @@ class npc_fairbanks : public CreatureScript public: npc_fairbanks() : CreatureScript("npc_fairbanks") { } - bool OnGossipHello(Player* player, Creature* creature) override - { - AddGossipItemFor(player, 0, "Curse? What's going on here, Fairbanks?", GOSSIP_SENDER_MAIN, 1); - SendGossipMenuFor(player, 100100, creature->GetGUID()); - return true; - } - - bool OnGossipSelect(Player* player, Creature* creature, uint32 /*Sender*/, uint32 uiAction) override - { - ClearGossipMenuFor(player); - - switch (uiAction) - { - case 1: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "Mograine?", GOSSIP_SENDER_MAIN, 2); - SendGossipMenuFor(player, 100101, creature->GetGUID()); - return true; - case 2: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "What do you mean?", GOSSIP_SENDER_MAIN, 3); - SendGossipMenuFor(player, 100102, creature->GetGUID()); - return true; - case 3: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "I still do not fully understand.", GOSSIP_SENDER_MAIN, 4); - SendGossipMenuFor(player, 100103, creature->GetGUID()); - return true; - case 4: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "Incredible story. So how did he die?", GOSSIP_SENDER_MAIN, 5); - SendGossipMenuFor(player, 100104, creature->GetGUID()); - return true; - case 5: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "You mean...", GOSSIP_SENDER_MAIN, 6); - SendGossipMenuFor(player, 100105, creature->GetGUID()); - return true; - case 6: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "How do you know all of this?", GOSSIP_SENDER_MAIN, 7); - SendGossipMenuFor(player, 100106, creature->GetGUID()); - return true; - case 7: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "A thousand? For one man?", GOSSIP_SENDER_MAIN, 8); - SendGossipMenuFor(player, 100107, creature->GetGUID()); - return true; - case 8: - creature->HandleEmoteCommand(5); - AddGossipItemFor(player, 0, "Yet? Yet what?", GOSSIP_SENDER_MAIN, 9); - SendGossipMenuFor(player, 100108, creature->GetGUID()); - return true; - case 9: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "And did he?", GOSSIP_SENDER_MAIN, 10); - SendGossipMenuFor(player, 100109, creature->GetGUID()); - return true; - case 10: - creature->HandleEmoteCommand(274); - AddGossipItemFor(player, 0, "Continue please, Fairbanks.", GOSSIP_SENDER_MAIN, 11); - SendGossipMenuFor(player, 100110, creature->GetGUID()); - return true; - case 11: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "You mean...", GOSSIP_SENDER_MAIN, 12); - SendGossipMenuFor(player, 100111, creature->GetGUID()); - return true; - case 12: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "You were right, Fairbanks. That is tragic.", GOSSIP_SENDER_MAIN, 13); - SendGossipMenuFor(player, 100112, creature->GetGUID()); - return true; - case 13: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "And you did...", GOSSIP_SENDER_MAIN, 14); - SendGossipMenuFor(player, 100113, creature->GetGUID()); - return true; - case 14: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "You tell an incredible tale, Fairbanks. What of the blade? Is it beyond redemption?", GOSSIP_SENDER_MAIN, 15); - SendGossipMenuFor(player, 100114, creature->GetGUID()); - return true; - case 15: - creature->HandleEmoteCommand(1); - AddGossipItemFor(player, 0, "But his son is dead.", GOSSIP_SENDER_MAIN, 16); - SendGossipMenuFor(player, 100115, creature->GetGUID()); - return true; - case 16: - SendGossipMenuFor(player, 100116, creature->GetGUID()); - /// @todo: we need to play these 3 emote in sequence, we play only the last one right now. - creature->HandleEmoteCommand(274); - creature->HandleEmoteCommand(1); - creature->HandleEmoteCommand(397); - return true; - } - - return true; - } - struct npc_fairbanksAI : public SmartAI { npc_fairbanksAI(Creature* creature) : SmartAI(creature) { } @@ -812,7 +712,6 @@ public: { me->SetFaction(FACTION_FRIENDLY); me->SetNpcFlag(UNIT_NPC_FLAG_GOSSIP); - me->SetSheath(SHEATH_STATE_UNARMED); me->CastSpell(me, 57767, true); me->SetDisplayId(16179); me->SetFacingToObject(player); diff --git a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp index b575abeb3..bd6ce0bf7 100644 --- a/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/RuinsOfAhnQiraj/instance_ruins_of_ahnqiraj.cpp @@ -154,8 +154,8 @@ public: switch (type) { case DATA_RAJAXX_WAVE_ENGAGED: - _scheduler.CancelGroup(GROUP_RAJAXX_WAVE_TIMER); - _scheduler.Schedule(2min, [this](TaskContext context) + scheduler.CancelGroup(GROUP_RAJAXX_WAVE_TIMER); + scheduler.Schedule(2min, [this](TaskContext context) { CallNextRajaxxLeader(); context.SetGroup(GROUP_RAJAXX_WAVE_TIMER); @@ -195,8 +195,8 @@ public: case NPC_YEGGETH: case NPC_PAKKON: case NPC_ZERRAN: - _scheduler.CancelAll(); - _scheduler.Schedule(1s, [this, formation](TaskContext /*context*/) + scheduler.CancelAll(); + scheduler.Schedule(1s, [this, formation](TaskContext /*context*/) { if (!formation->IsAnyMemberAlive()) { @@ -212,11 +212,6 @@ public: } } - void Update(uint32 diff) override - { - _scheduler.Update(diff); - } - void SetGuidData(uint32 type, ObjectGuid data) override { if (type == DATA_PARALYZED) @@ -285,7 +280,7 @@ public: void ResetRajaxxWaves() { _rajaxWaveCounter = 0; - _scheduler.CancelAll(); + scheduler.CancelAll(); for (auto const& data : RajaxxWavesData) { if (Creature* creature = GetCreature(data.at(0))) @@ -308,7 +303,6 @@ public: ObjectGuid _andorovGUID; uint32 _rajaxWaveCounter; uint8 _buruPhase; - TaskScheduler _scheduler; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp index 1909fe48a..daa2c2e4e 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/instance_temple_of_ahnqiraj.cpp @@ -210,15 +210,9 @@ public: return true; } - void Update(uint32 diff) override - { - scheduler.Update(diff); - } - private: GuidVector CThunGraspGUIDs; uint32 BugTrioDeathCount; - TaskScheduler scheduler; }; }; diff --git a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp index 1689944cf..80862401e 100644 --- a/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp +++ b/src/server/scripts/Kalimdor/ZulFarrak/zulfarrak.cpp @@ -1,7 +1,18 @@ /* - * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. - * Copyright (C) 2008-2016 TrinityCore - * Copyright (C) 2005-2009 MaNGOS + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . */ /* ScriptData diff --git a/src/server/scripts/Kalimdor/zone_darkshore.cpp b/src/server/scripts/Kalimdor/zone_darkshore.cpp index 768eb3b51..3e048e3c9 100644 --- a/src/server/scripts/Kalimdor/zone_darkshore.cpp +++ b/src/server/scripts/Kalimdor/zone_darkshore.cpp @@ -175,6 +175,7 @@ enum Kerlonian SPELL_SLEEP_VISUAL = 25148, SPELL_AWAKEN = 17536, + SPELL_BEAR_FORM = 18309, QUEST_SLEEPER_AWAKENED = 5321, NPC_LILADRIS = 11219 //attackers entries unknown }; @@ -194,6 +195,8 @@ public: void Reset() override { FallAsleepTimer = urand(10000, 45000); + + DoCastSelf(SPELL_BEAR_FORM); } void MoveInLineOfSight(Unit* who) override diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp index a3c94d269..446f61ef8 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp @@ -69,219 +69,185 @@ enum Misc { GROUP_ABILITIES = 1, NPC_PURE_SPAWN_OF_HYDROSS = 22035, - - EVENT_SPELL_MARK_OF_CORRUPTION1 = 1, - EVENT_SPELL_MARK_OF_CORRUPTION2 = 2, - EVENT_SPELL_MARK_OF_CORRUPTION3 = 3, - EVENT_SPELL_MARK_OF_CORRUPTION4 = 4, - EVENT_SPELL_MARK_OF_CORRUPTION5 = 5, - EVENT_SPELL_MARK_OF_CORRUPTION6 = 6, - EVENT_SPELL_MARK_OF_HYDROSS1 = 7, - EVENT_SPELL_MARK_OF_HYDROSS2 = 8, - EVENT_SPELL_MARK_OF_HYDROSS3 = 9, - EVENT_SPELL_MARK_OF_HYDROSS4 = 10, - EVENT_SPELL_MARK_OF_HYDROSS5 = 11, - EVENT_SPELL_MARK_OF_HYDROSS6 = 12, - EVENT_SPELL_WATER_TOMB = 13, - EVENT_SPELL_VILE_SLUDGE = 14, - EVENT_SPELL_ENRAGE = 15, - EVENT_CHECK_AURA = 16, - EVENT_KILL_TALK = 17 }; -class boss_hydross_the_unstable : public CreatureScript +struct boss_hydross_the_unstable : public BossAI { -public: - boss_hydross_the_unstable() : CreatureScript("boss_hydross_the_unstable") { } - - CreatureAI* GetAI(Creature* creature) const override + boss_hydross_the_unstable(Creature* creature) : BossAI(creature, DATA_HYDROSS_THE_UNSTABLE) { - return GetSerpentShrineAI(creature); + scheduler.SetValidator([this] + { + return !me->HasUnitState(UNIT_STATE_CASTING); + }); } - struct boss_hydross_the_unstableAI : public BossAI + void Reset() override { - boss_hydross_the_unstableAI(Creature* creature) : BossAI(creature, DATA_HYDROSS_THE_UNSTABLE) + BossAI::Reset(); + + _recentlySpoken = false; + } + + void JustReachedHome() override + { + BossAI::JustReachedHome(); + if (!me->HasAura(SPELL_BLUE_BEAM)) { + me->RemoveAurasDueToSpell(SPELL_CLEANSING_FIELD_AURA); + } + } + + void SetForm(bool corrupt, bool initial) + { + scheduler.CancelGroup(GROUP_ABILITIES); + DoResetThreatList(); + + if (corrupt) + { + me->SetMeleeDamageSchool(SPELL_SCHOOL_NATURE); + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, false); + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); + DoCastSelf(SPELL_CORRUPTION, true); + + scheduler.Schedule(0s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_CORRUPTION1); + }).Schedule(15s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_CORRUPTION2); + }).Schedule(30s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_CORRUPTION3); + }).Schedule(45s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_CORRUPTION4); + }).Schedule(60s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_CORRUPTION5); + }).Schedule(75s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_CORRUPTION6); + }).Schedule(12150ms, GROUP_ABILITIES, [this](TaskContext context) + { + DoCastRandomTarget(SPELL_VILE_SLUDGE, true); + context.Repeat(9700ms, 32800ms); + }); + } + else + { + me->SetMeleeDamageSchool(SPELL_SCHOOL_FROST); + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); + me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, false); + me->RemoveAurasDueToSpell(SPELL_CORRUPTION); + + scheduler.Schedule(0s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_HYDROSS1); + }).Schedule(15s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_HYDROSS2); + }).Schedule(30s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_HYDROSS3); + }).Schedule(45s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_HYDROSS4); + }).Schedule(60s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_HYDROSS5); + }).Schedule(75s, GROUP_ABILITIES, [this](TaskContext) + { + DoCastSelf(SPELL_MARK_OF_HYDROSS6); + }).Schedule(12150ms, GROUP_ABILITIES, [this](TaskContext context) + { + DoCastRandomTarget(SPELL_WATER_TOMB, true); + context.Repeat(9700ms, 32800ms); + }); } - void Reset() override + if (initial) { - BossAI::Reset(); + return; } - void JustReachedHome() override + if (corrupt) { - BossAI::JustReachedHome(); - if (!me->HasAura(SPELL_BLUE_BEAM)) - me->RemoveAurasDueToSpell(SPELL_CLEANSING_FIELD_AURA); - } - - void SetForm(bool corrupt, bool initial) - { - events.CancelEventGroup(GROUP_ABILITIES); - DoResetThreatList(); - - if (corrupt) + Talk(SAY_SWITCH_TO_CORRUPT); + for (uint32 spellId = SPELL_SUMMON_CORRUPTED1; spellId <= SPELL_SUMMON_CORRUPTED4; ++spellId) { - me->SetMeleeDamageSchool(SPELL_SCHOOL_NATURE); - me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, false); - me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); - me->CastSpell(me, SPELL_CORRUPTION, true); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_CORRUPTION1, 0, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_CORRUPTION2, 15000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_CORRUPTION3, 30000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_CORRUPTION4, 45000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_CORRUPTION5, 60000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_CORRUPTION6, 75000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_VILE_SLUDGE, 7000, GROUP_ABILITIES); - } - else - { - me->SetMeleeDamageSchool(SPELL_SCHOOL_FROST); - me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); - me->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, false); - me->RemoveAurasDueToSpell(SPELL_CORRUPTION); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_HYDROSS1, 0, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_HYDROSS2, 15000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_HYDROSS3, 30000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_HYDROSS4, 45000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_HYDROSS5, 60000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_HYDROSS6, 75000, GROUP_ABILITIES); - events.ScheduleEvent(EVENT_SPELL_WATER_TOMB, 7000, GROUP_ABILITIES); - } - - if (initial) - return; - - if (corrupt) - { - Talk(SAY_SWITCH_TO_CORRUPT); - for (uint32 i = SPELL_SUMMON_CORRUPTED1; i <= SPELL_SUMMON_CORRUPTED4; ++i) - me->CastSpell(me, i, true); - } - else - { - Talk(SAY_SWITCH_TO_CLEAN); - for (uint32 i = SPELL_SUMMON_PURIFIED1; i <= SPELL_SUMMON_PURIFIED4; ++i) - me->CastSpell(me, i, true); + DoCastSelf(spellId, true); } } - - void JustEngagedWith(Unit* who) override + else { - BossAI::JustEngagedWith(who); - Talk(SAY_AGGRO); - - events.ScheduleEvent(EVENT_SPELL_ENRAGE, 600000); - events.ScheduleEvent(EVENT_CHECK_AURA, 1000); - SetForm(false, true); - } - - void KilledUnit(Unit* /*victim*/) override - { - if (events.GetNextEventTime(EVENT_KILL_TALK) == 0) + Talk(SAY_SWITCH_TO_CLEAN); + for (uint32 spellId = SPELL_SUMMON_PURIFIED1; spellId <= SPELL_SUMMON_PURIFIED4; ++spellId) { - Talk(me->HasAura(SPELL_CORRUPTION) ? SAY_CORRUPT_SLAY : SAY_CLEAN_SLAY); - events.ScheduleEvent(EVENT_KILL_TALK, 6000); + DoCastSelf(spellId, true); } } + } - void JustSummoned(Creature* summon) override + void JustEngagedWith(Unit* who) override + { + BossAI::JustEngagedWith(who); + Talk(SAY_AGGRO); + SetForm(false, true); + + scheduler.Schedule(1s, [this](TaskContext context) { - summons.Summon(summon); - summon->CastSpell(summon, SPELL_ELEMENTAL_SPAWNIN, true); - summon->SetInCombatWithZone(); - - if (summon->GetEntry() == NPC_PURE_SPAWN_OF_HYDROSS) - summon->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); - else - summon->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); - } - - void SummonedCreatureDespawn(Creature* summon) override - { - summons.Despawn(summon); - } - - void JustDied(Unit* killer) override - { - Talk(me->HasAura(SPELL_CORRUPTION) ? SAY_CORRUPT_DEATH : SAY_CLEAN_DEATH); - BossAI::JustDied(killer); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) + if (me->HasAura(SPELL_BLUE_BEAM) == me->HasAura(SPELL_CORRUPTION)) { - case EVENT_CHECK_AURA: - if (me->HasAura(SPELL_BLUE_BEAM) == me->HasAura(SPELL_CORRUPTION)) - SetForm(!me->HasAura(SPELL_BLUE_BEAM), false); - events.ScheduleEvent(EVENT_CHECK_AURA, 1000); - break; - case EVENT_SPELL_ENRAGE: - me->CastSpell(me, SPELL_ENRAGE, true); - break; - case EVENT_SPELL_MARK_OF_HYDROSS1: - me->CastSpell(me, SPELL_MARK_OF_HYDROSS1, false); - break; - case EVENT_SPELL_MARK_OF_HYDROSS2: - me->CastSpell(me, SPELL_MARK_OF_HYDROSS2, false); - break; - case EVENT_SPELL_MARK_OF_HYDROSS3: - me->CastSpell(me, SPELL_MARK_OF_HYDROSS3, false); - break; - case EVENT_SPELL_MARK_OF_HYDROSS4: - me->CastSpell(me, SPELL_MARK_OF_HYDROSS4, false); - break; - case EVENT_SPELL_MARK_OF_HYDROSS5: - me->CastSpell(me, SPELL_MARK_OF_HYDROSS5, false); - break; - case EVENT_SPELL_MARK_OF_HYDROSS6: - me->CastSpell(me, SPELL_MARK_OF_HYDROSS6, false); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_HYDROSS6, 15000, GROUP_ABILITIES); - break; - case EVENT_SPELL_MARK_OF_CORRUPTION1: - me->CastSpell(me, SPELL_MARK_OF_CORRUPTION1, false); - break; - case EVENT_SPELL_MARK_OF_CORRUPTION2: - me->CastSpell(me, SPELL_MARK_OF_CORRUPTION2, false); - break; - case EVENT_SPELL_MARK_OF_CORRUPTION3: - me->CastSpell(me, SPELL_MARK_OF_CORRUPTION3, false); - break; - case EVENT_SPELL_MARK_OF_CORRUPTION4: - me->CastSpell(me, SPELL_MARK_OF_CORRUPTION4, false); - break; - case EVENT_SPELL_MARK_OF_CORRUPTION5: - me->CastSpell(me, SPELL_MARK_OF_CORRUPTION5, false); - break; - case EVENT_SPELL_MARK_OF_CORRUPTION6: - me->CastSpell(me, SPELL_MARK_OF_CORRUPTION6, false); - events.ScheduleEvent(EVENT_SPELL_MARK_OF_CORRUPTION6, 15000, GROUP_ABILITIES); - break; - case EVENT_SPELL_WATER_TOMB: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true)) - me->CastSpell(target, SPELL_WATER_TOMB, false); - events.ScheduleEvent(EVENT_SPELL_WATER_TOMB, 7000, GROUP_ABILITIES); - break; - case EVENT_SPELL_VILE_SLUDGE: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 60.0f, true)) - me->CastSpell(target, SPELL_VILE_SLUDGE, false); - events.ScheduleEvent(EVENT_SPELL_VILE_SLUDGE, 15000, GROUP_ABILITIES); - break; + SetForm(!me->HasAura(SPELL_BLUE_BEAM), false); } + context.Repeat(1s); + }).Schedule(10min, [this](TaskContext) + { + DoCastSelf(SPELL_ENRAGE, true); + }); + } - DoMeleeAttackIfReady(); + void KilledUnit(Unit* /*victim*/) override + { + if (!_recentlySpoken) + { + Talk(me->HasAura(SPELL_CORRUPTION) ? SAY_CORRUPT_SLAY : SAY_CLEAN_SLAY); + _recentlySpoken = true; } - }; + scheduler.Schedule(6s, [this](TaskContext) + { + _recentlySpoken = false; + }); + } + + void JustSummoned(Creature* summon) override + { + summons.Summon(summon); + summon->CastSpell(summon, SPELL_ELEMENTAL_SPAWNIN, true); + summon->SetInCombatWithZone(); + + if (summon->GetEntry() == NPC_PURE_SPAWN_OF_HYDROSS) + { + summon->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_FROST, true); + } + else + { + summon->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); + } + } + + void SummonedCreatureDespawn(Creature* summon) override + { + summons.Despawn(summon); + } + + void JustDied(Unit* killer) override + { + Talk(me->HasAura(SPELL_CORRUPTION) ? SAY_CORRUPT_DEATH : SAY_CLEAN_DEATH); + BossAI::JustDied(killer); + } +private: + bool _recentlySpoken; }; class spell_hydross_cleansing_field_aura : public SpellScriptLoader @@ -377,7 +343,7 @@ public: void AddSC_boss_hydross_the_unstable() { - new boss_hydross_the_unstable(); + RegisterSerpentShrineAI(boss_hydross_the_unstable); new spell_hydross_cleansing_field_aura(); new spell_hydross_cleansing_field_command(); new spell_hydross_mark_of_hydross(); diff --git a/src/server/scripts/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp b/src/server/scripts/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp index c06178bb3..557afea8d 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/underbog/instance_the_underbog.cpp @@ -1,14 +1,14 @@ /* - * Copyright (C) 2008-2018 TrinityCore + * This file is part of the AzerothCore Project. See AUTHORS file for Copyright information * * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your + * under the terms of the GNU Affero General Public License as published by the + * Free Software Foundation; either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for * more details. * * You should have received a copy of the GNU General Public License along diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp index f301dbfcc..c9602b38b 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp @@ -55,8 +55,10 @@ enum Spells SPELL_QUAKE_KNOCKBACK = 30571, SPELL_COLLAPSE_DAMAGE = 36449, SPELL_CAMERA_SHAKE = 36455, + SPELL_DEBRIS_TARGET = 30629, + SPELL_DEBRIS_SPAWN = 30630, + SPELL_DEBRIS_DAMAGE = 30631, SPELL_DEBRIS_VISUAL = 30632, - SPELL_DEBRIS_DAMAGE = 30631 }; enum Groups @@ -70,26 +72,9 @@ enum Actions ACTION_INCREASE_HELLFIRE_CHANNELER_DEATH_COUNT = 1 }; -class DealDebrisDamage : public BasicEvent -{ -public: - DealDebrisDamage(Creature& creature, ObjectGuid targetGUID) : _owner(creature), _targetGUID(targetGUID) { } - - bool Execute(uint64 /*eventTime*/, uint32 /*updateTime*/) override - { - if (Unit* target = ObjectAccessor::GetUnit(_owner, _targetGUID)) - target->CastSpell(target, SPELL_DEBRIS_DAMAGE, true, nullptr, nullptr, _owner.GetGUID()); - return true; - } - -private: - Creature& _owner; - ObjectGuid _targetGUID; -}; - struct boss_magtheridon : public BossAI { - boss_magtheridon(Creature* creature) : BossAI(creature, TYPE_MAGTHERIDON) + boss_magtheridon(Creature* creature) : BossAI(creature, DATA_MAGTHERIDON) { scheduler.SetValidator([this] { @@ -137,11 +122,7 @@ struct boss_magtheridon : public BossAI _currentPhase = 0; scheduler.Schedule(20s, [this](TaskContext context) { - if (Unit* target = SelectTarget(SelectTargetMethod::Random)) - { - target->CastSpell(target, SPELL_DEBRIS_VISUAL, true, nullptr, nullptr, me->GetGUID()); - me->m_Events.AddEvent(new DealDebrisDamage(*me, target->GetGUID()), me->m_Events.CalculateTime(5000)); - } + DoCastAOE(SPELL_DEBRIS_TARGET); context.Repeat(20s); }); }); @@ -170,7 +151,7 @@ struct boss_magtheridon : public BossAI void ScheduleCombatEvents() { - me->GetThreatMgr().ClearAllThreat(); + DoResetThreatList(); me->RemoveUnitFlag(UNIT_FLAG_NOT_SELECTABLE); me->SetImmuneToPC(false); me->SetReactState(REACT_AGGRESSIVE); @@ -248,7 +229,7 @@ struct boss_magtheridon : public BossAI BossAI::JustEngagedWith(who); Talk(SAY_EMOTE_BEGIN); - instance->DoForAllMinions(TYPE_MAGTHERIDON, [&](Creature* creature) { + instance->DoForAllMinions(DATA_MAGTHERIDON, [&](Creature* creature) { creature->SetInCombatWithZone(); }); @@ -289,6 +270,37 @@ private: TaskScheduler _interruptScheduler; }; +struct npc_target_trigger : public ScriptedAI +{ + npc_target_trigger(Creature* creature) : ScriptedAI(creature), _cast(false) + { + me->SetReactState(REACT_PASSIVE); + } + + void Reset() override + { + if (!_cast) + { + DoCastSelf(SPELL_DEBRIS_VISUAL); + _cast = true; + _scheduler.Schedule(5s, [this](TaskContext /*context*/) + { + DoCastSelf(SPELL_DEBRIS_DAMAGE); + me->DespawnOrUnsummon(6000); + }); + } + } + + void UpdateAI(uint32 diff) override + { + _scheduler.Update(diff); + } + +protected: + TaskScheduler _scheduler; + bool _cast; +}; + class spell_magtheridon_blaze : public SpellScript { PrepareSpellScript(spell_magtheridon_blaze); @@ -348,6 +360,33 @@ class spell_magtheridon_quake : public SpellScript } }; +class spell_magtheridon_debris_target_selector : public SpellScript +{ + PrepareSpellScript(spell_magtheridon_debris_target_selector); + + void FilterTargets(std::list& targets) + { + targets.remove_if([&](WorldObject* target) -> bool + { + return target->GetEntry() != NPC_TARGET_TRIGGER; + }); + + Acore::Containers::RandomResize(targets, 1); + } + + void HandleHit() + { + if (Unit* target = GetHitUnit()) + target->CastSpell(target, SPELL_DEBRIS_SPAWN); + } + + void Register() override + { + OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_magtheridon_debris_target_selector::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ENTRY); + OnHit += SpellHitFn(spell_magtheridon_debris_target_selector::HandleHit); + } +}; + class go_manticron_cube : public GameObjectScript { public: @@ -369,8 +408,10 @@ public: void AddSC_boss_magtheridon() { RegisterMagtheridonsLairCreatureAI(boss_magtheridon); + RegisterMagtheridonsLairCreatureAI(npc_target_trigger); RegisterSpellScript(spell_magtheridon_blaze); RegisterSpellScript(spell_magtheridon_shadow_grasp); RegisterSpellScript(spell_magtheridon_quake); + RegisterSpellScript(spell_magtheridon_debris_target_selector); new go_manticron_cube(); } diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp index 454479e9c..33b1c1113 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp @@ -21,18 +21,18 @@ BossBoundaryData const boundaries = { - { TYPE_MAGTHERIDON, new CircleBoundary(Position(-18.70f, 2.24f), 52.30) } + { DATA_MAGTHERIDON, new CircleBoundary(Position(-18.70f, 2.24f), 52.30) } }; DoorData const doorData[] = { - { GO_MAGTHERIDON_DOORS, TYPE_MAGTHERIDON, DOOR_TYPE_ROOM }, + { GO_MAGTHERIDON_DOORS, DATA_MAGTHERIDON, DOOR_TYPE_ROOM }, { 0, 0, DOOR_TYPE_ROOM } // END }; MinionData const minionData[] = { - { NPC_HELLFIRE_CHANNELER, TYPE_MAGTHERIDON } + { NPC_HELLFIRE_CHANNELER, DATA_MAGTHERIDON } }; class instance_magtheridons_lair : public InstanceMapScript @@ -133,7 +133,7 @@ public: if (!InstanceScript::SetBossState(id, state)) return false; - if (id == TYPE_MAGTHERIDON) + if (id == DATA_MAGTHERIDON) { if (state == IN_PROGRESS) { @@ -163,7 +163,7 @@ public: switch (type) { case DATA_CHANNELER_COMBAT: - if (GetBossState(TYPE_MAGTHERIDON) != IN_PROGRESS) + if (GetBossState(DATA_MAGTHERIDON) != IN_PROGRESS) if (Creature* magtheridon = instance->GetCreature(_magtheridonGUID)) magtheridon->SetInCombatWithZone(); break; diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h index a65282235..4e2828016 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/magtheridons_lair.h @@ -27,7 +27,7 @@ enum DataTypes { - TYPE_MAGTHERIDON = 0, + DATA_MAGTHERIDON = 0, MAX_ENCOUNTER = 1, DATA_CHANNELER_COMBAT = 10, @@ -41,6 +41,7 @@ enum NpcIds NPC_HELLFIRE_CHANNELER = 17256, NPC_HELLFIRE_WARDER = 18829, NPC_HELLFIRE_RAID_TRIGGER = 17376, + NPC_TARGET_TRIGGER = 17474 }; enum GoIds diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp index a6eaba296..1ed6b4dec 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp @@ -29,107 +29,94 @@ enum voidReaver SPELL_POUNDING = 34162, SPELL_ARCANE_ORB = 34172, SPELL_KNOCK_AWAY = 25778, - SPELL_BERSERK = 26662, - - EVENT_SPELL_POUNDING = 1, - EVENT_SPELL_ARCANEORB = 2, - EVENT_SPELL_KNOCK_AWAY = 3, - EVENT_SPELL_BERSERK = 4 + SPELL_BERSERK = 26662 }; -class boss_void_reaver : public CreatureScript +enum Groups { -public: - boss_void_reaver() : CreatureScript("boss_void_reaver") { } + GROUP_ARCANE_ORB = 1 +}; - struct boss_void_reaverAI : public BossAI +struct boss_void_reaver : public BossAI +{ + boss_void_reaver(Creature* creature) : BossAI(creature, DATA_REAVER) { - boss_void_reaverAI(Creature* creature) : BossAI(creature, DATA_REAVER) + scheduler.SetValidator([this] { - me->ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_POISON, true); - me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEALTH_LEECH, true); - me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_POWER_DRAIN, true); - me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_LEECH, true); - me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_MANA_LEECH, true); - } + return !me->HasUnitState(UNIT_STATE_CASTING); + }); - void Reset() override - { - BossAI::Reset(); - } - - void KilledUnit(Unit* victim) override - { - if (victim->GetTypeId() == TYPEID_PLAYER && roll_chance_i(50)) - Talk(SAY_SLAY); - } - - void JustDied(Unit* killer) override - { - Talk(SAY_DEATH); - BossAI::JustDied(killer); - } - - void JustEngagedWith(Unit* who) override - { - Talk(SAY_AGGRO); - BossAI::JustEngagedWith(who); - - events.ScheduleEvent(EVENT_SPELL_POUNDING, 15000); - events.ScheduleEvent(EVENT_SPELL_ARCANEORB, 3000); - events.ScheduleEvent(EVENT_SPELL_KNOCK_AWAY, 30000); - events.ScheduleEvent(EVENT_SPELL_BERSERK, 600000); - me->CallForHelp(105.0f); - } - - void UpdateAI(uint32 diff) override - { - if (!UpdateVictim()) - return; - - events.Update(diff); - if (me->HasUnitState(UNIT_STATE_CASTING)) - return; - - switch (events.ExecuteEvent()) - { - case EVENT_SPELL_BERSERK: - me->CastSpell(me, SPELL_BERSERK, true); - break; - case EVENT_SPELL_POUNDING: - Talk(SAY_POUNDING); - me->CastSpell(me, SPELL_POUNDING, false); - events.ScheduleEvent(EVENT_SPELL_POUNDING, 15000); - break; - case EVENT_SPELL_ARCANEORB: - if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, -18.0f, true)) - me->CastSpell(target, SPELL_ARCANE_ORB, false); - else if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, true)) - me->CastSpell(target, SPELL_ARCANE_ORB, false); - events.ScheduleEvent(EVENT_SPELL_ARCANEORB, 4000); - break; - case EVENT_SPELL_KNOCK_AWAY: - me->CastSpell(me->GetVictim(), SPELL_KNOCK_AWAY, false); - events.ScheduleEvent(EVENT_SPELL_POUNDING, 25000); - break; - } - - DoMeleeAttackIfReady(); - } - - bool CheckEvadeIfOutOfCombatArea() const override - { - return me->GetDistance2d(432.59f, 371.93f) > 105.0f; - } - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetTheEyeAI(creature); + me->ApplySpellImmune(0, IMMUNITY_DISPEL, DISPEL_POISON, true); + me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEALTH_LEECH, true); + me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_POWER_DRAIN, true); + me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_LEECH, true); + me->ApplySpellImmune(0, IMMUNITY_STATE, SPELL_AURA_PERIODIC_MANA_LEECH, true); } + + void Reset() override + { + BossAI::Reset(); + _recentlySpoken = false; + } + + void KilledUnit(Unit* /*victim*/) override + { + if (!_recentlySpoken) + { + Talk(SAY_SLAY); + _recentlySpoken = true; + scheduler.Schedule(5s, [this](TaskContext) + { + _recentlySpoken = false; + }); + } + } + + void JustDied(Unit* killer) override + { + Talk(SAY_DEATH); + BossAI::JustDied(killer); + } + + void JustEngagedWith(Unit* who) override + { + BossAI::JustEngagedWith(who); + Talk(SAY_AGGRO); + me->CallForHelp(105.0f); + + scheduler.Schedule(10min, [this](TaskContext) + { + DoCastSelf(SPELL_BERSERK); + }).Schedule(15s, [this](TaskContext context) + { + Talk(SAY_POUNDING); + DoCastSelf(SPELL_POUNDING); + scheduler.DelayGroup(GROUP_ARCANE_ORB, 3s); + context.Repeat(15s); + }).Schedule(3s, GROUP_ARCANE_ORB, [this](TaskContext context) + { + if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, -18.0f, true)) + me->CastSpell(target, SPELL_ARCANE_ORB, false); + else if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 20.0f, true)) + me->CastSpell(target, SPELL_ARCANE_ORB, false); + context.Repeat(3s); + }).Schedule(30s, [this](TaskContext context) + { + DoCastVictim(SPELL_KNOCK_AWAY); + context.Repeat(25s); + }); + } + + bool CheckEvadeIfOutOfCombatArea() const override + { + return me->GetDistance2d(432.59f, 371.93f) > 105.0f; + } + + private: + bool _recentlySpoken; }; void AddSC_boss_void_reaver() { - new boss_void_reaver(); + RegisterTheEyeAI(boss_void_reaver); } diff --git a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h index e7f2b0625..5961fcc2d 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h +++ b/src/server/scripts/Outland/TempestKeep/Eye/the_eye.h @@ -65,4 +65,6 @@ inline AI* GetTheEyeAI(T* obj) return GetInstanceAI(obj, TheEyeScriptName); } +#define RegisterTheEyeAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetTheEyeAI) + #endif diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp index 2f615ec50..cee8cf339 100644 --- a/src/server/scripts/Outland/zone_netherstorm.cpp +++ b/src/server/scripts/Outland/zone_netherstorm.cpp @@ -22,6 +22,8 @@ #include "ScriptedEscortAI.h" #include "ScriptedGossip.h" #include "SpellInfo.h" +#include "SpellAuras.h" +#include "SpellScript.h" // Ours enum saeed @@ -697,9 +699,6 @@ public: { Drained = true; int32 uHpPct = int32(me->GetHealthPct()); - - me->UpdateEntry(NPC_DRAINED_PHASE_HUNTER_ENTRY); - me->SetHealth(me->CountPctFromMaxHealth(uHpPct)); me->LowerPlayerDamageReq(me->GetMaxHealth() - me->GetHealth()); me->SetInCombatWith(player); @@ -911,6 +910,45 @@ public: } }; +class spell_q10190_battery_recharging_blaster : public SpellScript +{ + PrepareSpellScript(spell_q10190_battery_recharging_blaster); + + SpellCastResult CheckCast() + { + if (Unit* target = GetExplTargetUnit()) + if (target->GetHealthPct() <= 25.0f) + return SPELL_CAST_OK; + + return SPELL_FAILED_BAD_TARGETS; + } + + void Register() override + { + OnCheckCast += SpellCheckCastFn(spell_q10190_battery_recharging_blaster::CheckCast); + } + }; + +class spell_q10190_battery_recharging_blaster_aura : public AuraScript +{ + PrepareAuraScript(spell_q10190_battery_recharging_blaster_aura); + + void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) + { + if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE) + return; + + if (Creature* phasehunter = GetTarget()->ToCreature()) + if (phasehunter->GetEntry() == NPC_PHASE_HUNTER_ENTRY) + phasehunter->UpdateEntry(NPC_DRAINED_PHASE_HUNTER_ENTRY); + } + + void Register() override + { + OnEffectRemove += AuraEffectRemoveFn(spell_q10190_battery_recharging_blaster_aura::HandleEffectRemove, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL); + } +}; + void AddSC_netherstorm() { // Ours @@ -922,5 +960,5 @@ void AddSC_netherstorm() new npc_phase_hunter(); new npc_bessy(); new npc_maxx_a_million_escort(); - + RegisterSpellAndAuraScriptPair(spell_q10190_battery_recharging_blaster, spell_q10190_battery_recharging_blaster_aura); } diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 046dd925e..7a829a517 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -146,6 +146,18 @@ class spell_dk_raise_ally : public SpellScript { PrepareSpellScript(spell_dk_raise_ally); + SpellCastResult CheckCast() + { + Player* unitTarget = GetHitPlayer(); + if (!unitTarget) + return SPELL_FAILED_BAD_TARGETS; + + if (unitTarget->IsAlive()) // not discovered attributeEx5? + return SPELL_FAILED_TARGET_NOT_DEAD; + + return SPELL_CAST_OK; + } + void HandleDummy(SpellEffIndex /*effIndex*/) { if (Player* unitTarget = GetHitPlayer()) @@ -237,6 +249,7 @@ class spell_dk_raise_ally : public SpellScript void Register() override { + OnCheckCast += SpellCheckCastFn(spell_dk_raise_ally::CheckCast); OnEffectHitTarget += SpellEffectFn(spell_dk_raise_ally::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); } }; diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 14dfc2e24..55945914e 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -302,7 +302,8 @@ private: enum Spell { - PAL_SPELL_ARDENT_DEFENDER_HEAL = 66235 + PAL_SPELL_ARDENT_DEFENDER_DEBUFF = 66233, + PAL_SPELL_ARDENT_DEFENDER_HEAL = 66235 }; bool Validate(SpellInfo const* /*spellInfo*/) override @@ -329,7 +330,7 @@ private: int32 remainingHealth = victim->GetHealth() - dmgInfo.GetDamage(); uint32 allowedHealth = victim->CountPctFromMaxHealth(35); // If damage kills us - if (remainingHealth <= 0 && !victim->ToPlayer()->HasSpellCooldown(PAL_SPELL_ARDENT_DEFENDER_HEAL)) + if (remainingHealth <= 0 && !victim->ToPlayer()->HasAura(PAL_SPELL_ARDENT_DEFENDER_DEBUFF)) { // Cast healing spell, completely avoid damage absorbAmount = dmgInfo.GetDamage(); @@ -344,7 +345,6 @@ private: int32 healAmount = int32(victim->CountPctFromMaxHealth(uint32(healPct * pctFromDefense))); victim->CastCustomSpell(PAL_SPELL_ARDENT_DEFENDER_HEAL, SPELLVALUE_BASE_POINT0, healAmount, victim, true, nullptr, aurEff); - victim->ToPlayer()->AddSpellCooldown(PAL_SPELL_ARDENT_DEFENDER_HEAL, 0, 120000); } else if (remainingHealth < int32(allowedHealth)) { diff --git a/src/server/scripts/World/chat_log.cpp b/src/server/scripts/World/chat_log.cpp index 186398009..103fb50b6 100644 --- a/src/server/scripts/World/chat_log.cpp +++ b/src/server/scripts/World/chat_log.cpp @@ -19,12 +19,7 @@ #include "Group.h" #include "Guild.h" #include "ScriptMgr.h" - -#define LOG_CHAT(TYPE, ...) \ - if (lang != LANG_ADDON) \ - LOG_DEBUG("chat.log." TYPE, __VA_ARGS__); \ - else \ - LOG_DEBUG("chat.log.addon." TYPE, __VA_ARGS__); +#include "Log.h" class ChatLogScript : public PlayerScript { @@ -36,66 +31,67 @@ public: switch (type) { case CHAT_MSG_SAY: - LOG_CHAT("say", "Player {} says (language {}): {}", + LOG_INFO("chat.say", "Player {} says (language {}): {}", player->GetName(), lang, msg); break; case CHAT_MSG_EMOTE: - LOG_CHAT("emote", "Player {} emotes: {}", + LOG_INFO("chat.emote", "Player {} emotes: {}", player->GetName(), msg); break; case CHAT_MSG_YELL: - LOG_CHAT("yell", "Player {} yells (language {}): {}", + LOG_INFO("chat.yell", "Player {} yells (language {}): {}", player->GetName(), lang, msg); break; } } - void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Player* receiver) override + void OnChat(Player* player, uint32 /*type*/, uint32 /*lang*/, std::string& msg, Player* receiver) override { - LOG_CHAT("whisper", "Player {} tells {}: {}", + LOG_INFO("chat.whisper", "Player {} tells {}: {}", player->GetName(), receiver ? receiver->GetName() : "", msg); } void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Group* group) override { + std::string str = lang != LANG_ADDON ? "chat." : "chat.addon."; //! NOTE: //! LANG_ADDON can only be sent by client in "PARTY", "RAID", "GUILD", "BATTLEGROUND", "WHISPER" switch (type) { case CHAT_MSG_PARTY: - LOG_CHAT("party", "Player {} tells group with leader {}: {}", + LOG_INFO(str + "party", "Player {} tells group with leader {}: {}", player->GetName(), group ? group->GetLeaderName() : "", msg); break; case CHAT_MSG_PARTY_LEADER: - LOG_CHAT("party", "Leader {} tells group: {}", + LOG_INFO(str + "party", "Leader {} tells group: {}", player->GetName(), msg); break; case CHAT_MSG_RAID: - LOG_CHAT("raid", "Player {} tells raid with leader {}: {}", + LOG_INFO(str + "raid", "Player {} tells raid with leader {}: {}", player->GetName(), group ? group->GetLeaderName() : "", msg); break; case CHAT_MSG_RAID_LEADER: - LOG_CHAT("raid", "Leader player {} tells raid: {}", + LOG_INFO(str + "raid", "Leader player {} tells raid: {}", player->GetName(), msg); break; case CHAT_MSG_RAID_WARNING: - LOG_CHAT("raid", "Leader player {} warns raid with: {}", + LOG_INFO(str + "raid", "Leader player {} sends raid warning: {}", player->GetName(), msg); break; case CHAT_MSG_BATTLEGROUND: - LOG_CHAT("bg", "Player {} tells battleground with leader {}: {}", + LOG_INFO(str + "bg", "Player {} tells battleground with leader {}: {}", player->GetName(), group ? group->GetLeaderName() : "", msg); break; case CHAT_MSG_BATTLEGROUND_LEADER: - LOG_CHAT("bg", "Leader player {} tells battleground: {}", + LOG_INFO(str + "bg", "Leader player {} tells battleground: {}", player->GetName(), msg); break; } @@ -103,21 +99,22 @@ public: void OnChat(Player* player, uint32 type, uint32 lang, std::string& msg, Guild* guild) override { + std::string str = lang != LANG_ADDON ? "chat." : "chat.addon."; switch (type) { case CHAT_MSG_GUILD: - LOG_CHAT("guild", "Player {} tells guild {}: {}", + LOG_INFO(str + "guild", "Player {} tells guild {}: {}", player->GetName(), guild ? guild->GetName() : "", msg); break; case CHAT_MSG_OFFICER: - LOG_CHAT("guild.officer", "Player {} tells guild {} officers: {}", + LOG_INFO(str + "guild.officer", "Player {} tells guild {} officers: {}", player->GetName(), guild ? guild->GetName() : "", msg); break; } } - void OnChat(Player* player, uint32 /*type*/, uint32 lang, std::string& msg, Channel* channel) override + void OnChat(Player* player, uint32 /*type*/, uint32 /*lang*/, std::string& msg, Channel* channel) override { bool isSystem = channel && (channel->HasFlag(CHANNEL_FLAG_TRADE) || @@ -127,13 +124,15 @@ public: if (isSystem) { - LOG_CHAT("system", "Player {} tells channel {}: {}", + LOG_INFO("chat.channel", "Player {} tells channel {}: {}", player->GetName(), channel->GetName(), msg); } else { + // Allow to log custom channels. i.e. world channel + // in that case set config: Logger.channel.world=6,Chat std::string channelName = channel ? channel->GetName() : ""; - LOG_CHAT("channel." + channelName, "Player {} tells channel {}: {}", + LOG_INFO("chat.channel." + channelName, "Player {} tells channel {}: {}", player->GetName(), channelName, msg); } } diff --git a/src/server/shared/DataStores/DBCEnums.h b/src/server/shared/DataStores/DBCEnums.h index 60eae27c9..bf0411b63 100644 --- a/src/server/shared/DataStores/DBCEnums.h +++ b/src/server/shared/DataStores/DBCEnums.h @@ -225,6 +225,7 @@ enum AchievementCriteriaTypes ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL = 113, ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS = 114, ACHIEVEMENT_CRITERIA_TYPE_EARN_ACHIEVEMENT_POINTS = 115, + ACHIEVEMENT_CRITERIA_TYPE_ROLL_DISENCHANT = 117, ACHIEVEMENT_CRITERIA_TYPE_USE_LFD_TO_GROUP_WITH_PLAYERS = 119, ACHIEVEMENT_CRITERIA_TYPE_TOTAL = 124, // 0..123 => 124 criteria types total };