diff --git a/README.md b/README.md index a898266..83570d0 100644 --- a/README.md +++ b/README.md @@ -926,4 +926,4 @@ git clone https://github.com/cmangos/classic-db.git ![登录入口](https://github.com/geektcp/Namjagbarwa-wow/blob/master/doc/screen/login.png) # donate -![赞助](https://github.com/geektcp/Namjagbarwa-wow/blob/master/alipay_zhifubao.png) +![赞助](https://github.com/geektcp/Namjagbarwa-wow/blob/master/doc/sponsor/alipay_zhifubao.png) diff --git a/THANKS b/THANKS index 4002dc8..623f356 100644 --- a/THANKS +++ b/THANKS @@ -1 +1 @@ -多谢关注 +多谢关注,正是有你们的持续关注,项目才更好的持续更新。 diff --git a/CONTRIBUTING.md b/doc/describe/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to doc/describe/CONTRIBUTING.md diff --git a/HISTORY.md b/doc/describe/HISTORY.md similarity index 96% rename from HISTORY.md rename to doc/describe/HISTORY.md index 7e5a8bc..3238c1a 100644 --- a/HISTORY.md +++ b/doc/describe/HISTORY.md @@ -1,8 +1,8 @@ # CMaNGOS -- History of visible changes -This file is part of the CMaNGOS Project. See [AUTHORS](AUTHORS.md) file for Copyright information +This file is part of the CMaNGOS Project. See [AUTHORS](../../AUTHORS.md) file for Copyright information -Most of our code is released under the GPL v2, a copy is shipped with the file [COPYING](COPYING). +Most of our code is released under the GPL v2, a copy is shipped with the file [COPYING](../../COPYING). Visit our project website for forums, links and more: http://cmangos.net diff --git a/doc/AuctionHouseBot.txt b/doc/other/AuctionHouseBot.txt similarity index 100% rename from doc/AuctionHouseBot.txt rename to doc/other/AuctionHouseBot.txt diff --git a/doc/DocStructure.dox b/doc/other/DocStructure.dox similarity index 100% rename from doc/DocStructure.dox rename to doc/other/DocStructure.dox diff --git a/doc/Doxyfile.in b/doc/other/Doxyfile.in similarity index 100% rename from doc/Doxyfile.in rename to doc/other/Doxyfile.in diff --git a/doc/EventAI.txt b/doc/other/EventAI.txt similarity index 100% rename from doc/EventAI.txt rename to doc/other/EventAI.txt diff --git a/WARNING b/doc/other/WARNING similarity index 100% rename from WARNING rename to doc/other/WARNING diff --git a/createprojects.bat b/doc/other/createprojects.bat similarity index 100% rename from createprojects.bat rename to doc/other/createprojects.bat diff --git a/doc/script_commands.txt b/doc/other/script_commands.txt similarity index 100% rename from doc/script_commands.txt rename to doc/other/script_commands.txt diff --git a/README_PLAYERBOT.txt b/doc/playerbot/README_PLAYERBOT.txt similarity index 98% rename from README_PLAYERBOT.txt rename to doc/playerbot/README_PLAYERBOT.txt index 5547b93..c6bbae7 100644 --- a/README_PLAYERBOT.txt +++ b/doc/playerbot/README_PLAYERBOT.txt @@ -1,4 +1,3 @@ -What it is: =========== Playerbot lets you add another character from your account as a bot that you can control and which will hopefully help you. Only characters from your account can be used, so you can have a maximum of 9 bots at one time. diff --git a/bot_commands.txt b/doc/playerbot/bot_commands.txt similarity index 100% rename from bot_commands.txt rename to doc/playerbot/bot_commands.txt diff --git a/doc/scripts docs/ChangeLog.html b/doc/scripts docs/ChangeLog.html deleted file mode 100644 index 94eacfd..0000000 --- a/doc/scripts docs/ChangeLog.html +++ /dev/null @@ -1,1122 +0,0 @@ - - - - - -ScriptDev2 Milestones - - - - - -
-
-
- -

Supports:

-
-
-
-
-

1. Milestone ScriptDev2 - 0.8

-
-
-

1.1. General

-
    -
  • -

    -Implemented various missing quest scripts and similar events -

    -
  • -
  • -

    -Implemented many missing escort quests -

    -
  • -
-
-
-

1.2. WotLK content

-
    -
  • -

    -Implemented full script for Ulduar -

    -
  • -
  • -

    -Implemented full script for Culling of Stratholme -

    -
  • -
-
-
-

1.3. TBC content

-
    -
  • -

    -Implemented script for event boss Headless Horseman -

    -
  • -
  • -

    -Various improvements and bug fixes -

    -
  • -
-
-
-

1.4. Classic content

-
    -
  • -

    -Implemented script for boss Viscidus in AQ40 -

    -
  • -
  • -

    -Various improvements and bug fixes -

    -
  • -
-
-

1.4.1. Statistics

-
    -
  • -

    -Total number of changes: over 144 revisions -

    -
  • -
  • -

    -Fixed many bugs from forum and issues from github -

    -
  • -
-
-
-
-
-
-

2. Milestone ScriptDev2 - 0.7

-
-
-

2.1. General

-
    -
  • -

    -Unify texts loading with the core -

    -
  • -
  • -

    -Implemented support for ScriptEffect spell hooks -

    -
  • -
  • -

    -Implemented various missing quest scripts and similar events -

    -
  • -
-
-
-

2.2. WotLK content

-
    -
  • -

    -Finished script content for Death Knight area and Obsidian Sanctum -

    -
  • -
  • -

    -Implemented full script for Oculus and Pit of Saron instances -

    -
  • -
  • -

    -Improved script for the following dungeons or bosses: Ruby Sanctum, Halls of Stone, Ormorok, Hadronox, Herald Volazj, Skadi and Sapphiron -

    -
  • -
  • -

    -Implemented various missing achievements -

    -
  • -
-
-
-

2.3. TBC content

-
    -
  • -

    -Implemented script support for the Chess event, SSC water and Simon game -

    -
  • -
  • -

    -Improved script for the following dungeons or bosses: Felmyst, Kil’jaeden, Zul’jin, Al’ar, Shadow Labyrinth, Black Temple, Nazan and Vazruden and Netherspite -

    -
  • -
  • -

    -Implemented Year event boss - Ahune -

    -
  • -
  • -

    -Implemented Zul’Aman and Shattered Halls loot modes. -

    -
  • -
-
-
-

2.4. Classic content

-
    -
  • -

    -Improve script for the following dungeons or bosses: Razorgore, Archaedas, Zul’farrak, Ruins of AQ, Baroness Anastari and Zul’gurub -

    -
  • -
  • -

    -Implemented Dire Maul loot modes (tribute run event) -

    -
  • -
-
-

2.4.1. Statistics

-
    -
  • -

    -Total number of changes: over 166 revisions (183 commits) -

    -
  • -
  • -

    -Lots of bugs from forum and issues from github fixed -

    -
  • -
-
-
-
-
-
-

3. Milestone ScriptDev2 - 0.6

-
-
-

3.1. General

-
    -
  • -

    -Added distinct script library support for all the server versions -

    -
  • -
  • -

    -Unified instance handling and added some generic patterns -

    -
  • -
  • -

    -Added support for spell scripts -

    -
  • -
  • -

    -Added support for world scripts for more complicated events -

    -
  • -
  • -

    -Codestyle cleanup on all scripts -

    -
  • -
  • -

    -Convert many old scripts to EventAI -

    -
  • -
  • -

    -Convert many old gossip scripts to DB-gossip system -

    -
  • -
  • -

    -Added script placeholders for future 4.x content -

    -
  • -
  • -

    -Implemented various missing quest scripts and similar events -

    -
  • -
-
-
-

3.2. WotLK content

-
    -
  • -

    -Added script content for the following dungeons: Azjol Nerub, Ahn-Kahet, Drak’tharon Keep, Gundrak, Halls of Stone, Oculus, Utgarde Keep, Utgarde Pinnacle, Violet Hold, Nexus -

    -
  • -
  • -

    -Finished raid script for Naxxramas and Onyxia -

    -
  • -
  • -

    -Added partial script content for the following: Eye of Eternity, Ruby Sanctum, Trial of the Crusader, Ulduar, Death Knight area quests. -

    -
  • -
  • -

    -Added some basic script support for all bosses in Icecrown Citadel -

    -
  • -
  • -

    -Implemented Year event boss - Apothecary Hummel -

    -
  • -
-
-
-

3.3. TBC content

-
    -
  • -

    -Cleanup and improve all the existing scripts by removing workarounds and adding missing content for all dungeons and raids. -

    -
  • -
  • -

    -Added script for the following dungeons or bosses: Arcatraz, Blood Furnace, Sunwell Plateau, A’lar, The Lurker Below, Malacras, Zul’jin. -

    -
  • -
  • -

    -Improve scripts for: Auchenai Crypts, Sethekk Halls, Shadow Labyrinth, Black Morass, Old Hillsbrad Foothills, Steamvault, Shattered Halls, Botanica, Mechanar, Karazhan, Black Temple, The Eye, Serperntshrine Cavern, Zul’Aman. -

    -
  • -
  • -

    -Properly downgraded Naxxramas and Onyxia for TBC and Classic versions -

    -
  • -
  • -

    -Implemented Year event boss - Coren Direbrew -

    -
  • -
-
-
-

3.4. Classic content

-
    -
  • -

    -Implemented epic quests script for the opening of Ahn’Qiraj and Onyxia events. -

    -
  • -
  • -

    -Cleanup and improve all the existing scripts by removing workarounds and adding missing content for all dungeons and raids. -

    -
  • -
  • -

    -Added or substantially improved script for the following dungeons: Blackrock Depths, Deathmines, Dire Maul, Gnomeregan, Razorfen Kraul, Shadowfang Keep, Sunken Temple, Wailing Caverns, Uldaman, Ruins of AQ -

    -
  • -
  • -

    -Improve script for the following dungeons: Blackrock Spire, Blackfathom Deeps, Marauudon, Scholomance, Stratholme, Blackwing Lair, Molten Core, Emerald Dragons, Temple of AQ, Zul’Gurub -

    -
  • -
  • -

    -Properly downgraded Lord Kazzak for Classic version -

    -
  • -
-
-

3.4.1. Statistics

-
    -
  • -

    -Total number of changes: over 1300 revisions (1300 commits) -

    -
  • -
  • -

    -Lots of bugs from forum and issues from github fixed -

    -
  • -
-
-
-
-
-
-

- - - diff --git a/doc/scripts docs/ChangeLog.txt b/doc/scripts docs/ChangeLog.txt deleted file mode 100644 index 6c0eaef..0000000 --- a/doc/scripts docs/ChangeLog.txt +++ /dev/null @@ -1,100 +0,0 @@ -= ScriptDev2 Milestones = - -*Current Version: <>* - -*Supports:* - -* Classic (1.12.1), see https://github.com/scriptdev2/scriptdev2-classic -* TBC (2.4.3), see https://github.com/scriptdev2/scriptdev2-tbc -* WotLK (3.3.5a), see https://github.com/scriptdev2/scriptdev2 -* Cata (4.3.4), see https://github.com/scriptdev2/scriptdev2-cata - -[[currentMS]] -== Milestone ScriptDev2 - 0.8 == - -=== General === -* Implemented various missing quest scripts and similar events -* Implemented many missing escort quests - -=== WotLK content === -* Implemented full script for Ulduar -* Implemented full script for Culling of Stratholme - -=== TBC content === -* Implemented script for event boss Headless Horseman -* Various improvements and bug fixes - -=== Classic content === -* Implemented script for boss Viscidus in AQ40 -* Various improvements and bug fixes - -==== Statistics ==== -* Total number of changes: over 144 revisions -* Fixed many bugs from forum and issues from github - - -== Milestone ScriptDev2 - 0.7 == - -=== General === -* Unify texts loading with the core -* Implemented support for ScriptEffect spell hooks -* Implemented various missing quest scripts and similar events - -=== WotLK content === -* Finished script content for Death Knight area and Obsidian Sanctum -* Implemented full script for Oculus and Pit of Saron instances -* Improved script for the following dungeons or bosses: Ruby Sanctum, Halls of Stone, Ormorok, Hadronox, Herald Volazj, Skadi and Sapphiron -* Implemented various missing achievements - -=== TBC content === -* Implemented script support for the Chess event, SSC water and Simon game -* Improved script for the following dungeons or bosses: Felmyst, Kil'jaeden, Zul'jin, Al'ar, Shadow Labyrinth, Black Temple, Nazan and Vazruden and Netherspite -* Implemented Year event boss - Ahune -* Implemented Zul'Aman and Shattered Halls loot modes. - -=== Classic content === -* Improve script for the following dungeons or bosses: Razorgore, Archaedas, Zul'farrak, Ruins of AQ, Baroness Anastari and Zul'gurub -* Implemented Dire Maul loot modes (tribute run event) - -==== Statistics ==== -* Total number of changes: over 166 revisions (183 commits) -* Lots of bugs from forum and issues from github fixed - - -== Milestone ScriptDev2 - 0.6 == - -=== General === -* Added distinct script library support for all the server versions -* Unified instance handling and added some generic patterns -* Added support for spell scripts -* Added support for world scripts for more complicated events -* Codestyle cleanup on all scripts -* Convert many old scripts to EventAI -* Convert many old gossip scripts to DB-gossip system -* Added script placeholders for future 4.x content -* Implemented various missing quest scripts and similar events - -=== WotLK content === -* Added script content for the following dungeons: Azjol Nerub, Ahn-Kahet, Drak'tharon Keep, Gundrak, Halls of Stone, Oculus, Utgarde Keep, Utgarde Pinnacle, Violet Hold, Nexus -* Finished raid script for Naxxramas and Onyxia -* Added partial script content for the following: Eye of Eternity, Ruby Sanctum, Trial of the Crusader, Ulduar, Death Knight area quests. -* Added some basic script support for all bosses in Icecrown Citadel -* Implemented Year event boss - Apothecary Hummel - -=== TBC content === -* Cleanup and improve all the existing scripts by removing workarounds and adding missing content for all dungeons and raids. -* Added script for the following dungeons or bosses: Arcatraz, Blood Furnace, Sunwell Plateau, A'lar, The Lurker Below, Malacras, Zul'jin. -* Improve scripts for: Auchenai Crypts, Sethekk Halls, Shadow Labyrinth, Black Morass, Old Hillsbrad Foothills, Steamvault, Shattered Halls, Botanica, Mechanar, Karazhan, Black Temple, The Eye, Serperntshrine Cavern, Zul'Aman. -* Properly downgraded Naxxramas and Onyxia for TBC and Classic versions -* Implemented Year event boss - Coren Direbrew - -=== Classic content === -* Implemented epic quests script for the opening of Ahn'Qiraj and Onyxia events. -* Cleanup and improve all the existing scripts by removing workarounds and adding missing content for all dungeons and raids. -* Added or substantially improved script for the following dungeons: Blackrock Depths, Deathmines, Dire Maul, Gnomeregan, Razorfen Kraul, Shadowfang Keep, Sunken Temple, Wailing Caverns, Uldaman, Ruins of AQ -* Improve script for the following dungeons: Blackrock Spire, Blackfathom Deeps, Marauudon, Scholomance, Stratholme, Blackwing Lair, Molten Core, Emerald Dragons, Temple of AQ, Zul'Gurub -* Properly downgraded Lord Kazzak for Classic version - -==== Statistics ==== -* Total number of changes: over 1300 revisions (1300 commits) -* Lots of bugs from forum and issues from github fixed diff --git a/doc/scripts docs/GIT_guide_1_easy_use.html b/doc/scripts docs/GIT_guide_1_easy_use.html deleted file mode 100644 index 84a2de4..0000000 --- a/doc/scripts docs/GIT_guide_1_easy_use.html +++ /dev/null @@ -1,801 +0,0 @@ - - - - - -[Git GUIDE] Easy use - - - - - -
-
-
-

This assumes you have already cloned the SD2-repository.

-

If not, please follow the installation instructions how to do so:

- -
-
-
-

1. Graphical user Interfaces for Windows

-
-
-
-
-
-

2. Updateting

-
-

The word to look for is "Pull", both GUIs have this option.

-

For Command-line fans, simple right-click ScriptDev2-directory, choose "Git Bash here" and then type
-$ git pull
-to Update

-
-
-
-

3. Restoring

-
-

In case you polluted something in your working directory open the Git bash, and type
-$ git reset --hard origin/master

-

Warning: This will remove every custom changes

-
-
-
-

- - - diff --git a/doc/scripts docs/GIT_guide_1_easy_use.txt b/doc/scripts docs/GIT_guide_1_easy_use.txt deleted file mode 100644 index 6cf3167..0000000 --- a/doc/scripts docs/GIT_guide_1_easy_use.txt +++ /dev/null @@ -1,32 +0,0 @@ -[Git GUIDE] Easy use -==================== - -This assumes you have already cloned the SD2-repository. - -If not, please follow the _installation instructions_ how to do so: - -* link:How_to_install.html[Installation instructions] -* http://www.scriptdev2.com/showthread.php?t=4[Installation instructions on SD2 Forum] - -Graphical user Interfaces for Windows -------------------------------------- - -* http://code.google.com/p/tortoisegit[TortoiseGIT] - Similar to TortoiseSVN Shell-Extention based GUI -* http://www.syntevo.com/smartgit/index.html[SmartGit] - -Updateting ----------- - -The word to look for is "Pull", both GUIs have this option. - -For Command-line fans, simple right-click ScriptDev2-directory, choose "Git Bash here" and then type + -`$ git pull` + -to Update - -Restoring ---------- - -In case you polluted something in your working directory open the Git bash, and type + -`$ git reset --hard origin/master` - -Warning: This will remove *every* custom changes diff --git a/doc/scripts docs/GIT_guide_2_normal_use.html b/doc/scripts docs/GIT_guide_2_normal_use.html deleted file mode 100644 index bbab3f6..0000000 --- a/doc/scripts docs/GIT_guide_2_normal_use.html +++ /dev/null @@ -1,827 +0,0 @@ - - - - - -[Git GUIDE] Normal use - - - - - -
-
-
-

This topic is for people who want to do a little work with SD2.

-

In this topic I assume that you are familar with basic use of Git and also that you are familiar with your GUI (if you use any).

-

If you are not, maybe you should start with the Easy use guide, see:

- -

In this topic I will describe the needed steps to test other people’s patches, and how to create some own patches. However based on the Command-line tool.

-

For Windows users you can start the command line with right-clicking the ScriptDev2 directory and selecting "Git Bash Here".

-
-
-
-

1. Basic concepts in Git

-
-

Git has a working directory, these are the actual files you edit, compile and work with.

-

Git has a "index" which is the history information.+

-

By default the working directory is clean related to the index.

-

For this topic I assume that your working-tree is clean.

-

You can check this with $ git status .

-

Clean results in nothing to commit (working directory clean) .

-

If your working directory is not clean, you can either commit your changes (if they were good) with $ git commit -a .

-

or remove your changes with $ git reset --hard ,

-

or reset your working dir to default state with $ git reset -hard origin/master .

-
-
-
-

2. Testing ("applying") patches from other people

-
-

You can apply a git patch (located in fileName.patch) with
-$ git apply fileName.patch
-or
-$ git am fileName.patch

-

The second expects a patch that includes history information, so if this fails, the first way must work (or it is no proper patch)

-
-
-
-

3. Creating own patches

-
-

You have spotted a bug, fixed it, and now you wonder how you can share this fix with other people.

-

The recommanded way is, to commit your change locally and create a patch file from your commit

-

To commit your patch locally, you simple need to
-$ git commit -a -m "Make Illidan more powerfull"

-

Then you can create a patch with
-$ git format-patch HEAD^ --stdout > IllidanFix.patch
-which will create a patch for the top-most commit into the file IllidanFix.patch

-

You can also create a patch with
-$ git format-patch HEAD~n --stdout > IllidanFix.patch
-HEAD^ == HEAD~1 and is the previous commit, HEAD~n is the n-th commit before the current

-

A very usefull way to create a patch is based on clean ScriptDev2, with
-$ git format-patch origin/master --stdout > IllidanFix.patch

-
-
-
-

4. Branching projects, and tests

-
-

This is actually the part, where Git has its power. If you don’t use branches, you prevent yourself from using the best within Git!

-

The main idea is to test patches, to create patches always into special branches, and this way they won’t interfere with the main-branch.

-

Assuming you are on clean master, you create and checkout into a new branch with
-$ git checkout -b IlllidanFixes
-(the -b is for "create", whereas the normal checkout means switching between branches)
-so, you can edit, commit, apply patches as often as you want in your branch.

-

To compare what actually happend in this branch relative to ie your master branch, simply do
-$ git diff master
-and to create a patch do
-$ git format-patch master --stdout > IllidanFix.patch

-

And the best thing: You can create as many branches as you wish - which makes separating different projects, tests and so on a piece of cake :)

-
-
-
-

- - - diff --git a/doc/scripts docs/GIT_guide_2_normal_use.txt b/doc/scripts docs/GIT_guide_2_normal_use.txt deleted file mode 100644 index 0078281..0000000 --- a/doc/scripts docs/GIT_guide_2_normal_use.txt +++ /dev/null @@ -1,86 +0,0 @@ -[Git GUIDE] Normal use -====================== - -This topic is for people who want to do a little work with SD2. - -In this topic I assume that you are familar with basic use of Git and also that you are familiar with your GUI (if you use any). - -If you are not, maybe you should start with the _Easy use_ guide, see: - -* link:GIT_guide_1_easy_use.html[Git GUIDE - Easy use] -* http://www.scriptdev2.com/showthread.php?t=5637[Git GUIDE - Easy use on SD2 Forums] - -In this topic I will describe the needed steps to test other people's patches, and how to create some own patches. However based on the Command-line tool. - -For Windows users you can start the command line with right-clicking the ScriptDev2 directory and selecting "Git Bash Here". - -Basic concepts in Git ---------------------- - -Git has a working directory, these are the actual files you edit, compile and work with. - -Git has a "index" which is the history information.+ - -By default the working directory is clean related to the index. - -For this topic I assume that your working-tree is clean. - -You can check this with `$ git status` . - -Clean results in `nothing to commit (working directory clean)` . - -If your working directory is not clean, you can either commit your changes (if they were good) with `$ git commit -a` . - -or remove your changes with `$ git reset --hard` , - -or reset your working dir to default state with `$ git reset -hard origin/master` . - -Testing ("applying") patches from other people ----------------------------------------------- - -You can apply a git patch (located in fileName.patch) with + -`$ git apply fileName.patch` + -or + -`$ git am fileName.patch` - -The second expects a patch that includes history information, so if this fails, the first way must work (or it is no proper patch) - -Creating own patches --------------------- - -You have spotted a bug, fixed it, and now you wonder how you can share this fix with other people. - -The recommanded way is, to commit your change locally and create a patch file from your commit - -To commit your patch locally, you simple need to + -`$ git commit -a -m "Make Illidan more powerfull"` - -Then you can create a patch with + -`$ git format-patch HEAD^ --stdout > IllidanFix.patch` + -which will create a patch for the top-most commit into the file IllidanFix.patch - -You can also create a patch with + -`$ git format-patch HEAD~n --stdout > IllidanFix.patch` + -`HEAD^ == HEAD~1` and is the previous commit, `HEAD~n` is the n-th commit before the current - -A very usefull way to create a patch is based on clean ScriptDev2, with + -`$ git format-patch origin/master --stdout > IllidanFix.patch` - -Branching projects, and tests ------------------------------ - -This is actually the part, where Git has its power. If you don't use branches, you prevent yourself from using the best within Git! - -The main idea is to test patches, to create patches always into special branches, and this way they won't interfere with the main-branch. - -Assuming you are on clean master, you create and checkout into a new branch with + -`$ git checkout -b IlllidanFixes` + -(the -b is for "create", whereas the normal checkout means switching between branches) + -so, you can edit, commit, apply patches as often as you want in your branch. - -To compare what actually happend in this branch relative to ie your master branch, simply do + -`$ git diff master` + -and to create a patch do + -`$ git format-patch master --stdout > IllidanFix.patch` - -And the best thing: You can create as many branches as you wish - which makes separating different projects, tests and so on a piece of cake :) diff --git a/doc/scripts docs/GIT_guide_3_advanced_use.html b/doc/scripts docs/GIT_guide_3_advanced_use.html deleted file mode 100644 index 96c942e..0000000 --- a/doc/scripts docs/GIT_guide_3_advanced_use.html +++ /dev/null @@ -1,1179 +0,0 @@ - - - - - -[Git GUIDE] Advanced use - - - - - -
-
-
-

This guide is meant to help and provide information for those who want dig into the Git depths and explore its mysteries!

-

It is likely very much possible, that many of these things can be done with GUIs, but this topic expects that the command line interfact (Git Bash) is used!

-

Have phun with Git :)

-
-
-
-

1. Setup Git for ScriptDev2

-
-
-

1.1. "Copy" the offical branch to your system

-

Execute this within your <MaNGOS>/src/bindings directory

-

$ git clone git://github.com/scriptdev2/scriptdev2.git ScriptDev2
-and $ cd into it.

-
-
-

1.2. Setup some individual configuration

-
-

1.2.1. Username and Email

-

$ git config --global user.name "Your (Nick)Name"
-$ git config --global user.email "some@email.adress"

-
-
-

1.2.2. Make life more colorful

-

$ git config --global color.ui "auto"

-
-
-

1.2.3. Change the default editor

-

Thanks to DasBlub and Zor for help with this. This is just an example for notepad++, so you might need to adapt to your needs (especially the path)

-

$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"

-
-
-

1.2.4. Lineendings-configuration

-

This is actually fairly dependend from own wishes - if you feel uneasy, stay with default values

-
-
Windows
-

$ git config core.autocrlf true
-$ git config core.eol native

-
-
-
*nix
-

$ git config core.autocrlf input
-$ git config core.eol native

-
-
-
-

1.2.5. Whitespace pre-commit hook

-

This is really nice to force you to not commit code with corrupt whitespace (Needs to be set-up for every repository individually)

-

$ cp .git/hooks/pre-commit.sample .git/hooks/pre-commit
-This activates the default pre-commit hook, if the file doesn’t exist, update your git-version (and after your repo)

-
-
-
-

1.3. Use an external merge-tool

- -
-

1.3.1. KDiff3 (not kdiff or kdiff2)

-

Reasons why to use KDiff3:

-
    -
  • -

    -has a fairly good visual interface and works on both windows and linux -

    -
  • -
  • -

    -you can get it from TODO -

    -
  • -
  • -

    -to make sure git can find it, for example on windows if you installed it to c:/Program Files/KDiff3
    -$ git config mergetool.kdiff3.path "c:/Program Files/KDiff3/kdiff3.exe" ← either that or you could add c:/Program Files/KDiff3 to your path -

    -
  • -
  • -

    -make it the default mergetool:
    -$ git config merge.tool kdiff3 -

    -
  • -
-
-
-

1.3.2. Tortoise(Git) Merge

-

Reasons why to use TortoiseGit:

-
    -
  • -

    -similar to well known TortoiseSVN software (a nice GUI tool for Git anyways) -

    -
  • -
  • -

    -does not require any further configuration to work as default merge tool (provided no other is installed) -

    -
  • -
-
-
-

1.3.3. Tortoise Merge

-

Reasons why to use TortoiseMerge

-
    -
  • -

    -Good visual interface, only works on windows -

    -
  • -
  • -

    -Download and install TortoiseSVN -

    -
  • -
  • -

    -In C:\Program Files\TortoiseSVN\bin create a file named TortMer.bat and add the following: -

    -
    -
    -
    @ECHO OFF
    -TortoiseMerge.exe /base:"%PWD%/%1" /theirs:"%PWD%/%2" /mine:"%PWD%/%3" /merged:"%PWD%/%4"
    -
    -
  • -
  • -

    -add a custom merge tool to git that runs this batch file
    -$ git config mergetool.tortoise.cmd ' "cmd.exe" "/CTortMer.bat" "$BASE" "$REMOTE" "$LOCAL" "$MERGED" ' -

    -
  • -
  • -

    -make it the default mergetool
    -$ git config merge.tool tortoise -

    -
  • -
-
-
-
-
-
- -
-

http://git-scm.com/ - Contains nearly everything one might want :)

-
-

2.1. Obtaining Git

-

For *nix you should get Git from your distribution software repository.

-

For Windows yout can get mysysgit - you would probably want Git-w.x.y.z.previewYYYYMMDD.exe

-
-
-

2.2. Some Graphical User-Interfaces

-

(Not recommanded, but might make you happy)

-

TortoiseGit - Similar to TortoiseSVN Shell-Extention based GUI

-

SmartGit - More classical GUI, looks nice

-
-
- - -

http://git-scm.com/course/svn.html - SVN Crash Course, especially for *nix user

-

http://book.git-scm.com/ - Very nice, including flash videos about most topics

-

http://progit.org/book/ - A bit more detailed

- -
- -
-
-
-

3. Most important Git-commands

-
-

Based on Freghar's Thread

-

Remark that all these commands display a very exhaustive help page with ` --help`

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-$ git clone -
-
-

-downloads a fresh repo. -

-
-$ git pull -
-
-

-is a shortcut for fetch and merge. -

-
-$ git log -
-
-

-displays the history -

-
-$ git show -
-
-

-shows the most recent commit -

-
-$ git commit -
-
-

-commits your changes (always local) -

-
-$ git checkout -
-
-

-switches the source to a specific version (local branch or commit) -

-
-$ git merge -
-
-

-merges changes from one point into current branch -

-
-$ git reset -
-
-

-leaves you on the current branch but changes what the branch "points to". -

-
-
-
-
-

4. Workflow with Git

-
-

Commit early, commit often

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-$ git pull -
-
-

-to be on recent version -

-
-$ git checkout -b <NewBranchName> -
-
-

-create a new branch for the work -

-
-Suggestion -
-
-

-Create for every project an own branch, this makes maintaining way easier! -

-
-<edit some files> -
-
-
-$ git diff -
-
-

-see what is done since last commit -

-
-$ git commit -a -m "Some Commit Message" -
-
-

-this is only locally -

-
-<edit and commit more> -
-
-
-$ git diff master -
-
-

-see what is done compared to master branch -

-
-$ git checkout master -
-
-

-change to master branch -

-
-$ git pull -
-
-

-there was an update in master, now we pulled this, tested it, and now we want to get our working branch up-to-date -

-
-$ git checkout <BranchName> -
-
-

-switch back to our working branch -

-
-$ git rebase master -
-
-

-set to state of master and rebase the own commits on top -

-
-$ git format-patch master --stdout > fileName.patch -
-
-

-Creates a nice formated patch into file "fileName.patch" -

-
-
-
-
-

5. Create and apply patches

-
-
-

5.1. Create patches

-

$ git format-patch master - creates a patchfile for every commit that diffs from master (includes author information)

-

$ git format-patch master --std.out > someFilename.patch - creates an incremental patchfile, containing information of each individual commit

-
-
-

5.2. Apply patches

-

$ patch -X -d. < someFilename.patch - applies a patch in Git(X = 1) or SVN (X = 0) format to current workspace

-

$ git apply someFilename.patch - applies a Git-patch to current workspace

-

$ git am someFilename.patch - applies and commits a Git-patch with commit information (created by format-patch)

-
-
-
-
-

- - - diff --git a/doc/scripts docs/GIT_guide_3_advanced_use.txt b/doc/scripts docs/GIT_guide_3_advanced_use.txt deleted file mode 100644 index a783c9b..0000000 --- a/doc/scripts docs/GIT_guide_3_advanced_use.txt +++ /dev/null @@ -1,211 +0,0 @@ -[Git GUIDE] Advanced use -======================== - -This guide is meant to help and provide information for those who want dig into the Git depths and explore its mysteries! - -It is likely very much possible, that many of these things can be done with GUIs, but this topic expects that the command line interfact (Git Bash) is used! - -Have phun with Git :) - -Setup Git for ScriptDev2 ------------------------- - -"Copy" the offical branch to your system -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Execute this within your /src/bindings directory - -`$ git clone git://github.com/scriptdev2/scriptdev2.git ScriptDev2` + -and `$ cd` into it. - -Setup some individual configuration -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Username and Email -^^^^^^^^^^^^^^^^^^ - -`$ git config --global user.name "Your (Nick)Name"` + -`$ git config --global user.email "some@email.adress"` - -Make life more colorful -^^^^^^^^^^^^^^^^^^^^^^^ - -`$ git config --global color.ui "auto"` - -Change the default editor -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Thanks to DasBlub and Zor for help with this. This is just an example for notepad++, so you might need to adapt to your needs (especially the path) - -`$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"` - -Lineendings-configuration -^^^^^^^^^^^^^^^^^^^^^^^^^ - -This is actually fairly dependend from own wishes - if you feel uneasy, stay with default values - -Windows -+++++++ - -`$ git config core.autocrlf true` + -`$ git config core.eol native` - -*nix -++++ - -`$ git config core.autocrlf input` + -`$ git config core.eol native` - -Whitespace pre-commit hook -^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This is really nice to force you to not commit code with corrupt whitespace (Needs to be set-up for every repository individually) - -`$ cp .git/hooks/pre-commit.sample .git/hooks/pre-commit` + -This activates the default pre-commit hook, if the file doesn't exist, update your git-version (and after your repo) - -Use an external merge-tool -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -see http://getmangos.com/community/forum/27/source-code-management/TODOTODO[_Freghar_'s Thread] - -KDiff3 (not kdiff or kdiff2) -^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Reasons why to use http://kdiff3.sourceforge.net/doc/merging.html[KDiff3]: - -- has a fairly good visual interface and works on both windows and linux -- you can get it from http://sourceforge.net/project/showf...ease_id=501369[TODO] -- to make sure git can find it, for example on windows if you installed it to `c:/Program Files/KDiff3` + -`$ git config mergetool.kdiff3.path "c:/Program Files/KDiff3/kdiff3.exe"` <- either that or you could add `c:/Program Files/KDiff3` to your path -- make it the default mergetool: + -`$ git config merge.tool kdiff3` - -Tortoise(Git) Merge -^^^^^^^^^^^^^^^^^^^ - -Reasons why to use http://code.google.com/p/tortoisegit/[TortoiseGit]: - -- similar to well known TortoiseSVN software (a nice GUI tool for Git anyways) -- does not require any further configuration to work as default merge tool (provided no other is installed) - -Tortoise Merge -^^^^^^^^^^^^^^ - -Reasons why to use http://tortoisesvn.tigris.org/TortoiseMerge.html[TortoiseMerge] - -- Good visual interface, only works on windows -- Download and install http://tortoisesvn.net/downloads[TortoiseSVN] -- In `C:\Program Files\TortoiseSVN\bin` create a file named TortMer.bat and add the following: -+ ----- -@ECHO OFF -TortoiseMerge.exe /base:"%PWD%/%1" /theirs:"%PWD%/%2" /mine:"%PWD%/%3" /merged:"%PWD%/%4" ----- -+ -- add a custom merge tool to git that runs this batch file + -`$ git config mergetool.tortoise.cmd ' "cmd.exe" "/CTortMer.bat" "$BASE" "$REMOTE" "$LOCAL" "$MERGED" '` -- make it the default mergetool + -`$ git config merge.tool tortoise` - -Some Links ----------- - -http://git-scm.com/ - Contains nearly everything one might want :) - -Obtaining Git -~~~~~~~~~~~~~ - -For *nix you should get Git from your distribution software repository. - -For Windows yout can get http://code.google.com/p/msysgit/downloads/list[mysysgit] - you would probably want Git-w.x.y.z.previewYYYYMMDD.exe - -Some Graphical User-Interfaces -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -(Not recommanded, but might make you happy) - -http://code.google.com/p/tortoisegit/[TortoiseGit] - Similar to TortoiseSVN Shell-Extention based GUI - -http://www.syntevo.com/smartgit/index.html[SmartGit] - More classical GUI, looks nice - -Documentation-Links -~~~~~~~~~~~~~~~~~~~ - -http://www.kernel.org/pub/software/scm/git/docs/everyday.html - Small overview of common commands - -http://git-scm.com/course/svn.html - SVN Crash Course, especially for *nix user - -http://book.git-scm.com/ - Very nice, including flash videos about most topics - -http://progit.org/book/ - A bit more detailed - - -http://getmangos.com/community/forum/27/source-code-management/ - Collection of various topics on MaNGOS - -What is this Git about? -~~~~~~~~~~~~~~~~~~~~~~ - -http://www.youtube.com/watch?v=4XpnKHJAok8[Google TechTalk by _L. Torvalds_] - -http://www.youtube.com/watch?v=8dhZ9BXQgc4[Google TechTalk by _R. Schwartz_] - -https://git.wiki.kernel.org/index.php/GitSvnComparison[Compate Git vs. SVN] - -Most important Git-commands ---------------------------- - -Based on _Freghar_'s Thread - -Remark that all these commands display a very exhaustive help page with ` --help` - -[horizontal] -`$ git clone` :: downloads a fresh repo. -`$ git pull` :: is a shortcut for fetch and merge. -`$ git log` :: displays the history -`$ git show` :: shows the most recent commit -`$ git commit` :: commits your changes (always local) -`$ git checkout` :: switches the source to a specific version (local branch or commit) -`$ git merge` :: merges changes from one point into current branch -`$ git reset` :: leaves you on the current branch but changes what the branch "points to". - -Workflow with Git ------------------ - -*Commit early, commit often* - -[horizontal] -`$ git pull` :: to be on recent version -`$ git checkout -b ` :: create a new branch for the work -Suggestion:: Create for _every_ project an own branch, this makes maintaining way easier! - :: -+ -`$ git diff` :: see what is done since last commit -`$ git commit -a -m "Some Commit Message"` :: this is only locally - :: -+ -`$ git diff master` :: see what is done compared to master branch -`$ git checkout master` :: change to master branch -`$ git pull` :: there was an update in master, now we pulled this, tested it, and now we want to get our working branch up-to-date -`$ git checkout ` :: switch back to our working branch -`$ git rebase master` :: set to state of master and rebase the own commits on top -`$ git format-patch master --stdout > fileName.patch` :: Creates a nice formated patch into file "fileName.patch" - -Create and apply patches ------------------------- - -Create patches -~~~~~~~~~~~~~~ - -`$ git format-patch master` - creates a patchfile for every commit that diffs from master (includes author information) - -`$ git format-patch master --std.out > someFilename.patch` - creates an incremental patchfile, containing information of each individual commit - -Apply patches -~~~~~~~~~~~~~ - -`$ patch -X -d. < someFilename.patch` - applies a patch in Git(X = 1) or SVN (X = 0) format to current workspace - -`$ git apply someFilename.patch` - applies a Git-patch to current workspace - -`$ git am someFilename.patch` - applies and commits a Git-patch with commit information (created by format-patch) diff --git a/doc/scripts docs/How_to_install.html b/doc/scripts docs/How_to_install.html deleted file mode 100644 index 070960a..0000000 --- a/doc/scripts docs/How_to_install.html +++ /dev/null @@ -1,855 +0,0 @@ - - - - - -Installation Instructions - - - - - -
-
-

1. Clean install of ScriptDev2 (for Classic)

-
-
-

1.1. Download C-MaNGOS (using git clone)

-

See their forum or wiki for more details

-
-
-

1.2. Get the sources

-

Clone ScriptDev2 git clone git://github.com/scriptdev2/scriptdev2-classic.git ScriptDev2 - execute from within src/bindings directory

-

MS Windows:
-Compile ScriptDev2 using the scriptVC80, scriptVC90 or scriptVC100 Solution within the ScriptDev2 folder (this will overwrite the Mangoscript dll in the output directory)

-

GNU/Linux or CMake:
-When running CMake on MaNGOS, make sure to set -D INCLUDE_BINDINGS_DIR=ScriptDev2
-Compile MaNGOS (ScriptDev2 will automatically be built when compiling Mangos from here on)

-
-
-

1.3. Handle the databases

-
-
-Create ScriptDev2-Database -
-
-

-Execute sql\scriptdev2_create_database.sql , then execute
-sql\scriptdev2_create_structure.sql on that database. -

-
-
-Add content to ScriptDev2-Database -
-
-

-Execute sql\scriptdev2_script_full.sql on scriptdev2 databse -

-
-
-Update ScriptNames -
-
-

-Execute sql\mangos_scriptname_full.sql on your MaNGOS world Database -

-
-
-
-
-

1.4. Configuration files

-

Place the included "scriptdev2.conf" file within the directory containing your "mangosd.conf" and "realmd.conf" files.

-

You may need to change this file to match the database you created and any custom settings you wish to use.

-

Note this file will be differently created for Unix based systems.

-
-
-

1.5. Run mangosd

-

Run mangosd from your output directory. If you use another directory to run mangos, you need (on windows) copy the mangosscript.dll to that directory before starting mangosd.

-
-
-
-
-

2. How to Update ScriptDev2

-
-
    -
  1. -

    -Enter src/bindings/ScriptDev2 directory (with git-bash) -

    -
  2. -
  3. -

    -Update ScriptDev2 with git pull -

    -
  4. -
  5. -

    -Compile ScriptDev2
    - On windows you must still compile MaNGOS before ScriptDev2 -

    -
  6. -
  7. -

    -Update your Database with new Scriptdev2 SQL changes. For this you can either: -

    -
      -
    • -

      -apply only the changes that were made during that revision by looking in the sql\update folder or (files named rXXX_scriptdev2.sql should be executed on the scriptdev2 db while rXXX_mangos.sql should be executed on your mangos db) -

      -
    • -
    • -

      -reapply "mangos_scriptname_full.sql" to your MaNGOS database. - WARNING this will NOT include removed script names! -

      -
    • -
    -
  8. -
-
-
-
-

3. ScriptDev2 Change Log

-
-

You can view the ScriptDev2 change log on the ScriptDev2 Github Repository. -You can view the ScriptDev2-classic change log on the ScriptDev2 (Classic) Github Repository.

-

Or of course locally with your Git GUI tools or with git log (Note that it should be up to date before looking into your local log)

-
-
-
-

- - - diff --git a/doc/scripts docs/How_to_install.txt b/doc/scripts docs/How_to_install.txt deleted file mode 100644 index 3c1bb7f..0000000 --- a/doc/scripts docs/How_to_install.txt +++ /dev/null @@ -1,68 +0,0 @@ -Installation Instructions -========================= - -Clean install of ScriptDev2 (for Classic) ------------------------------------------ - -Download C-MaNGOS (using git clone) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -See their http://www.ru-mangos.ru/[forum] or https://github.com/cmangos/mangos-classic/wiki[wiki] for more details - -Get the sources -~~~~~~~~~~~~~~~ - -Clone ScriptDev2 `git clone git://github.com/scriptdev2/scriptdev2-classic.git ScriptDev2` - execute from within src/bindings directory - -*MS Windows:* + -Compile ScriptDev2 using the scriptVC80, scriptVC90 or scriptVC100 Solution within the ScriptDev2 folder (this will overwrite the Mangoscript dll in the output directory) - -*GNU/Linux or CMake:* + -When running CMake on MaNGOS, make sure to set `-D INCLUDE_BINDINGS_DIR=ScriptDev2` -Compile MaNGOS (ScriptDev2 will automatically be built when compiling Mangos from here on) - - -Handle the databases -~~~~~~~~~~~~~~~~~~~~ - -Create ScriptDev2-Database:: -Execute `sql\scriptdev2_create_database.sql` , then execute + -`sql\scriptdev2_create_structure.sql` on that database. -Add content to ScriptDev2-Database:: -Execute `sql\scriptdev2_script_full.sql` on scriptdev2 databse -Update ScriptNames:: -Execute `sql\mangos_scriptname_full.sql` on your MaNGOS world Database - -Configuration files -~~~~~~~~~~~~~~~~~~~ - -Place the included "scriptdev2.conf" file within the directory containing your "mangosd.conf" and "realmd.conf" files. - -You may need to change this file to match the database you created and any custom settings you wish to use. - -Note this file will be differently created for Unix based systems. - -Run mangosd -~~~~~~~~~~~ - -Run mangosd from your output directory. If you use another directory to run mangos, you need (on windows) copy the mangosscript.dll to that directory before starting mangosd. - - -How to Update ScriptDev2 ------------------------- - -. Enter src/bindings/ScriptDev2 directory (with git-bash) -. Update ScriptDev2 with `git pull` -. Compile ScriptDev2 + - On _windows_ you must still compile MaNGOS before ScriptDev2 -. Update your Database with new Scriptdev2 SQL changes. For this you can either: - * apply only the changes that were made during that revision by looking in the sql\update folder or (files named rXXX_scriptdev2.sql should be executed on the scriptdev2 db while rXXX_mangos.sql should be executed on your mangos db) - * reapply "mangos_scriptname_full.sql" to your MaNGOS database. - WARNING this will NOT include removed script names! - -ScriptDev2 Change Log ---------------------- - -You can view the ScriptDev2 change log on the https://github.com/scriptdev2/scriptdev2/commits/master[ScriptDev2 Github Repository]. -You can view the ScriptDev2-classic change log on the https://github.com/scriptdev2/scriptdev2-classic/commits/master[ScriptDev2 (Classic) Github Repository]. - -Or of course locally with your Git GUI tools or with `git log` (Note that it should be up to date before looking into your local log) diff --git a/doc/scripts docs/LICENSE.txt b/doc/scripts docs/LICENSE.txt deleted file mode 100644 index 69cd8a1..0000000 --- a/doc/scripts docs/LICENSE.txt +++ /dev/null @@ -1,280 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS \ No newline at end of file diff --git a/doc/scripts docs/SQL_guide.html b/doc/scripts docs/SQL_guide.html deleted file mode 100644 index bc52852..0000000 --- a/doc/scripts docs/SQL_guide.html +++ /dev/null @@ -1,1154 +0,0 @@ - - - - - -[GUIDE] Introduction to Database content for SD2 - - - - - -
-
-
-

This guide is intended to help people

-
    -
  • -

    -to understand which information of the database is used with SD2 -

    -
  • -
  • -

    -who want to contribute their patches as complete as possible -

    -
  • -
-

All sql-related files are located in the ScriptDev2/sql and subsequent directories.

-
-
-
-

1. SQL-Files

-
-
-

1.1. Files that contain full SD2-Database content

-

For a script we usually have to take care of these files:

-
    -
  • -

    -mangos_scriptname_full.sql -

    -

    This file is applied to the world database (default: mangos), and contains the ScriptNames

    -
  • -
  • -

    -scriptdev2_script_full.sql -

    -

    This file is applied to the sd2 database (default: scriptdev2), and contains texts, gossip-items and waypoints

    -
  • -
-
-
-

1.2. Patchfiles for incremental Updates

-

Patches for the databases are stored in the files:

-
    -
  • -

    -Updates/rXXXX_mangos.sql -

    -

    This file contains the changes that should be done with the patch to the world-databse

    -
  • -
  • -

    -Updates/rXXXX_scriptdev2.sql -

    -

    This file contains the changes that should be done with the patch to the scriptdev2-database

    -
  • -
-
-
-
-
-

2. World-Database

-
-
-

2.1. ScriptNames of NPCs:

-

If we need to assign a ScriptName to a NPC (GameObject-Scripts are similar) the statement is:

-
-
-
UPDATE creature_template SET ScriptName='npc_and_his_name' WHERE entry=XYZ;
-
-

or

-
-
-
UPDATE creature_template SET ScriptName='npc_something_identifying' WHERE entry IN (XYZ, ZYX);
-
-

Remark: For creatures with many difficulty entries, only the one for normal difficulty needs the ScriptName.

-
-
-

2.2. ScriptNames for scripted_areatrigger:

-

For Areatriggers (or scripted_event_id) we usally cannot use UPDATE, hence we need to DELETE possible old entries first:

-
-
-
DELETE FROM scripted_areatrigger WHERE entry=XYZ;
-INSERT INTO scripted_areatrigger VALUES (XYZ, at_some_place);
-
-
-
-
-
-

3. ScriptDev2-Database

-
-
-

3.1. entry-Format for texts and for gossip-texts:

-

The to be used entry is a combination of the number depending on the map and a counter.

-
    -
  • -

    -This is for texts: -1<MapId><three-digit-counter> -

    -
  • -
  • -

    -For gossip-texts: -3<MapId><three-digit-counter> -

    -

    where <MapId> is the ID of the map for instances, or 000 for all other maps.

    -
  • -
-
-

3.1.1. Example: Text on WorldMap

-

Let’s say we want to add a new text to a NPC on Kalimdor (no instance), -then we need to look which is the last text entry of the format -1000XYZ -(this one can be found in scriptdev2_script_full.sql).

-

On the moment where I write this guide this is:

-
-
-
(-1000589,'Kroshius live? Kroshius crush!',0,1,0,0,'SAY_KROSHIUS_REVIVE');
-
-

so our first text entry will be -1000590.

-
-
-

3.1.2. Example: Gossip-Item in Instance

-

Let’s say we want to add a new gossip item to a NPC in Culling of Stratholme, this map has the ID 595. -At this moment there is already some gossip_text, and the last one is

-
-
-
(-3595005,'So how does the Infinite Dragonflight plan to interfere?','chromie GOSSIP_ITEM_INN_3');
-
-

so our first gossip-text entry will be -3595006.

-
-
-
-

3.2. Format for texts

-

The format is (entry,content_default,sound,type,language,emote,comment) with these meanings:

-
-
-entry -
-
-

-should now be clear ;) -

-
-
-content_default -
-
-

-is the text (in english) enclosed with '.
- There are a few placeholders that can be used: -
-

-
- - - - - - - - - - - - - - - - - - - - -
-%s -
-
-

-self, is the name of the Unit saying the text
-The $-placeholders work only if you use DoScriptText with a target. -

-
-$N, $n -
-
-

-the [N, n]ame of the target -

-
-$C, $c -
-
-

-the [C, c]lass of the target -

-
-$R, $r -
-
-

-the [R, r]ace of the target -

-
-$GA:B; -
-
-

-if the target is male then A else B is displayed, Example: -

-
-
-
'Time to teach you a lesson in manners, little $Gboy:girl;!'
-
-

Remember to escape ' with \', Example:

-
-
-
'That \'s my favourite chocolate bar'.
-
-
-
-
-sound -
-
-

-is the sound ID that shall be played on saying, they are stored in SoundEntries.dbc -

-
-
-

Sound Ids are stored within the SoundEntries.dbc file. Within that dbc file you will find a reference to the actual file that is played. We cannot help you with reading these files so please do not ask how.

-
-
-— Ntsc -
-
-
-type -
-
-

-is the type of the text, there are these possibilities: -

-
-
-
0 CHAT_TYPE_SAY - 'white' text
-1 CHAT_TYPE_YELL - 'red' text
-2 CHAT_TYPE_TEXT_EMOTE - 'yellow' emote-text (no <Name>... )
-3 CHAT_TYPE_BOSS_EMOTE - 'big yellow' emote-text displayed in the center of the screen
-4 CHAT_TYPE_WHISPER - whisper, needs a target
-5 CHAT_TYPE_BOSS_WHISPER - whipser, needs a target
-6 CHAT_TYPE_ZONE_YELL - 'red' text, displayed to everyone in the zone
-
-
-
-language -
-
-

-is the language of the text (like LANG_GNOMISH), see enum Language in game/SharedDefines.h — usually zero (LANG_UNIVERSAL) -

-
-
-emote -
-
-

-is the emote the npc shall perform on saying the text, can be found in enum Emote in game/SharedDefines.h -

-
-
-comment -
-
-

-is a comment to this text, usually the used enum of the script, like SAY_KROSHIUS_REVIVE, if this enum is not identifying the npc, then the name of the npc is put before. -

-
-
-
-
-

3.3. Format for gossip-texts

-

The format for gossip texts is (entry,content_default,comment)
-The fields have the same meaning as for script-texts.

-
-
-

3.4. Format for waypoints

-

The format for waypoints is (entry,pointid,location_x,location_y,location_z,waittime,point_comment) with these meanings:

-
-
-entry -
-
-

-is the entry of the scripted NPC -

-
-
-pointid -
-
-

-is the ID of the point, usally starting with 01, and increasing -

-
-
-location_* -
-
-

-describes the position of the waypoint -

-
-
-waittime -
-
-

-is the time, the mob will wait after reaching this waypoint, before he continues to go to the next -

-
-
-point_comment -
-
-

-is used to note if something special is happening at this point, like quest credit -

-
-
-
-
-
-
-

4. Creating the Patch

-
-

There are different ways to get to a patch, I prefer this workflow:

-
-

4.1. For the scriptdev2 database (patch files):

-

Open scriptdev2_script_full.txt
-scroll to the right place for the needed SQL-statements, to note the entry.
-(for texts depending on mapId, and to the last counter, for waypoints behind the last inserted waypoint)

-
-

4.1.1. Example for normal world text:

-

Assume the last entry in your map (here world-map) was:

-
-
-
(-1000589,'Kroshius live? Kroshius crush!',0,1,0,0,'SAY_KROSHIUS_REVIVE');
-
-

Now create a new file: Updates/r0000_scriptdev2.sql -Add there:

-
-
-
DELETE FROM script_texts WHERE entry=-1000590;
-INSERT INTO script_texts (entry,content_default,sound,type,language,emote,comment) VALUES
-(-1000590,'My fancy aggro-text',0,1,0,0,'boss_hogger SAY_AGGRO');
-
-

or

-
-
-
DELETE FROM script_texts WHERE entry BETWEEN -1000592 AND -1000590;
-INSERT INTO script_texts (entry,content_default,sound,type,language,emote,comment) VALUES
-(-1000590,'My fancy aggro-text1',0,1,0,0,'boss_hogger SAY_AGGRO1'),
-(-1000591,'My fancy aggro-text2',0,1,0,0,'boss_hogger SAY_AGGRO2'),
-(-1000592,'My fancy aggro-text3',0,1,0,0,'boss_hogger SAY_AGGRO3');
-
-

Hint: the INSERT statements can also be copied from the scriptdev2_script_full.sql

-
-
-

4.1.2. Example for waypoints:

-

The required SQL code to add a waypoint is:

-
-
-
DELETE FROM script_waypoint WHERE entry=<MyNpcEntry>;
-INSERT INTO script_waypoint VALUES
-(<MyNpcEntry>, 1, 4013.51,6390.33, 29.970, 0, '<MyNPCName> - start escort'),
-(<MyNpcEntry>, 2, 4060.51,6400.33, 20.970, 0, '<MyNPCName> - finish escort');
-
-

When the Update file is done, append an additional empty line
-And test these lines for correctness!

-
-
-
-

4.2. For the scriptdev2 database (full files):

-

If everything works alright, and you finally intend to prepare the full-patch, copy the SQL-Code that is needed to the proper place in scriptdev2_script_full.sql, -(for a new npc add an empty line), and change the semicolon to a comma:

-
-

4.2.1. Example for world text:

-
-
-
(-1000589,'Kroshius live? Kroshius crush!',0,1,0,0,'SAY_KROSHIUS_REVIVE'),
-
-(-1000590,'My fancy aggro-text',0,1,0,0,'boss_hogger SAY_AGGRO');
-
-

The waypoints are added behind the last waypoint, after an empty line.

-
-
-
-

4.3. For the world database:

-

Create a new file: Updates/r0000_mangos.sql
-In this file put the needed statements for your ScriptNames, append an empty line, convert lineendings to Unix, and then test it for correctness.

-

If everything is alright, open mangos_scriptname_full.sql and go to the right place (this is usally sorted alphabetically by zone).
-Insert the needed statement where it fits (usally again ordered alphabetically)

-

After this is done, Create a patch including the (untracked) files in Update/
-then you have all information in the created patch, and anyone who wants to test your patch just needs to apply the created files from Updates/

-
-
-
-
-

- - - diff --git a/doc/scripts docs/SQL_guide.txt b/doc/scripts docs/SQL_guide.txt deleted file mode 100644 index 3e27507..0000000 --- a/doc/scripts docs/SQL_guide.txt +++ /dev/null @@ -1,257 +0,0 @@ -[GUIDE] Introduction to Database content for SD2 -================================================ - -This guide is intended to help people - -* to understand which information of the database is used with SD2 -* who want to contribute their patches as complete as possible - -All sql-related files are located in the ScriptDev2/sql and subsequent directories. - -SQL-Files ---------- - -Files that contain full SD2-Database content -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For a script we usually have to take care of these files: - -* mangos_scriptname_full.sql -+ -This file is applied to the world database (default: mangos), and contains the ScriptNames -+ -* scriptdev2_script_full.sql -+ -This file is applied to the sd2 database (default: scriptdev2), and contains texts, gossip-items and waypoints - -Patchfiles for incremental Updates -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Patches for the databases are stored in the files: - -* Updates/rXXXX_mangos.sql -+ -This file contains the changes that should be done with the patch to the world-databse -+ -* Updates/rXXXX_scriptdev2.sql -+ -This file contains the changes that should be done with the patch to the scriptdev2-database - -World-Database --------------- - -ScriptNames of NPCs: -~~~~~~~~~~~~~~~~~~~~ - -If we need to assign a ScriptName to a NPC (GameObject-Scripts are similar) the statement is: - ------------ -UPDATE creature_template SET ScriptName='npc_and_his_name' WHERE entry=XYZ; ------------ -or ------------ -UPDATE creature_template SET ScriptName='npc_something_identifying' WHERE entry IN (XYZ, ZYX); ------------ - -'Remark:' For creatures with many difficulty entries, only the one for normal difficulty needs the ScriptName. - -ScriptNames for scripted_areatrigger: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For Areatriggers (or scripted_event_id) we usally cannot use UPDATE, hence we need to DELETE possible old entries first: - ------------ -DELETE FROM scripted_areatrigger WHERE entry=XYZ; -INSERT INTO scripted_areatrigger VALUES (XYZ, at_some_place); ------------ - -ScriptDev2-Database -------------------- - -entry-Format for texts and for gossip-texts: -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The to be used entry is a combination of the number depending on the map and a counter. - -* This is for texts: -1 -* For gossip-texts: -3 -+ -where is the ID of the map for instances, or 000 for all other maps. - -Example: Text on WorldMap -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Let's say we want to add a new text to a NPC on Kalimdor (no instance), -then we need to look which is the last text entry of the format -1000XYZ -(this one can be found in scriptdev2_script_full.sql). - -On the moment where I write this guide this is: - ----------- -(-1000589,'Kroshius live? Kroshius crush!',0,1,0,0,'SAY_KROSHIUS_REVIVE'); ----------- - -so our first text entry will be -1000590. - -Example: Gossip-Item in Instance -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Let's say we want to add a new gossip item to a NPC in Culling of Stratholme, this map has the ID 595. -At this moment there is already some gossip_text, and the last one is - ------------- -(-3595005,'So how does the Infinite Dragonflight plan to interfere?','chromie GOSSIP_ITEM_INN_3'); ------------- - -so our first gossip-text entry will be -3595006. - -Format for texts -~~~~~~~~~~~~~~~~ - -The format is `(entry,content_default,sound,type,language,emote,comment)` with these meanings: - -entry:: should now be clear ;) -content_default:: is the text (in english) enclosed with '. + - There are a few placeholders that can be used: - + -[horizontal] -%s;; self, is the name of the Unit saying the text + -The $-placeholders work only if you use DoScriptText with a 'target'. -$N, $n;; the [N, n]ame of the target -$C, $c;; the [C, c]lass of the target -$R, $r;; the [R, r]ace of the target -$GA:B; ;; if the target is male then A else B is displayed, Example: -+ --------------------------------- -'Time to teach you a lesson in manners, little $Gboy:girl;!' --------------------------------- -+ -Remember to escape [red]#\'# with [red]#\'#, Example: -+ --------------------------------- -'That \'s my favourite chocolate bar'. --------------------------------- -sound:: is the sound ID that shall be played on saying, they are stored in SoundEntries.dbc -+ -[quote, Ntsc] -_____________________________ -Sound Ids are stored within the SoundEntries.dbc file. Within that dbc file you will find a reference to the actual file that is played. We cannot help you with reading these files so please do not ask how. -_____________________________ -+ -type:: is the type of the text, there are these possibilities: -+ -------------- -0 CHAT_TYPE_SAY - 'white' text -1 CHAT_TYPE_YELL - 'red' text -2 CHAT_TYPE_TEXT_EMOTE - 'yellow' emote-text (no ... ) -3 CHAT_TYPE_BOSS_EMOTE - 'big yellow' emote-text displayed in the center of the screen -4 CHAT_TYPE_WHISPER - whisper, needs a target -5 CHAT_TYPE_BOSS_WHISPER - whipser, needs a target -6 CHAT_TYPE_ZONE_YELL - 'red' text, displayed to everyone in the zone --------------- -+ -language:: is the language of the text (like LANG_GNOMISH), see +enum Language+ in `game/SharedDefines.h` -- usually zero (LANG_UNIVERSAL) -emote:: is the emote the npc shall perform on saying the text, can be found in +enum Emote+ in `game/SharedDefines.h` -comment:: is a comment to this text, usually the used enum of the script, like SAY_KROSHIUS_REVIVE, if this enum is not identifying the npc, then the name of the npc is put before. - -Format for gossip-texts -~~~~~~~~~~~~~~~~~~~~~~~ - -The format for gossip texts is `(entry,content_default,comment)` + -The fields have the same meaning as for script-texts. - -Format for waypoints -~~~~~~~~~~~~~~~~~~~~ - -The format for waypoints is `(entry,pointid,location_x,location_y,location_z,waittime,point_comment)` with these meanings: - -entry:: is the entry of the scripted NPC -pointid:: is the ID of the point, usally starting with 01, and increasing -location_*:: describes the position of the waypoint -waittime:: is the time, the mob will wait after reaching _this_ waypoint, before he continues to go to the next -point_comment:: is used to note if something special is happening at this point, like quest credit - - -Creating the Patch ------------------- - -There are different ways to get to a patch, I prefer this workflow: - -For the scriptdev2 database (patch files): -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Open scriptdev2_script_full.txt + -scroll to the right place for the needed SQL-statements, to note the entry. + -(for texts depending on mapId, and to the last counter, for waypoints behind the last inserted waypoint) - -Example for normal world text: -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Assume the last entry in your map (here world-map) was: - --------------- -(-1000589,'Kroshius live? Kroshius crush!',0,1,0,0,'SAY_KROSHIUS_REVIVE'); --------------- - -Now create a new file: Updates/r0000_scriptdev2.sql -Add there: - ------------ -DELETE FROM script_texts WHERE entry=-1000590; -INSERT INTO script_texts (entry,content_default,sound,type,language,emote,comment) VALUES -(-1000590,'My fancy aggro-text',0,1,0,0,'boss_hogger SAY_AGGRO'); ------------ -or ------------ -DELETE FROM script_texts WHERE entry BETWEEN -1000592 AND -1000590; -INSERT INTO script_texts (entry,content_default,sound,type,language,emote,comment) VALUES -(-1000590,'My fancy aggro-text1',0,1,0,0,'boss_hogger SAY_AGGRO1'), -(-1000591,'My fancy aggro-text2',0,1,0,0,'boss_hogger SAY_AGGRO2'), -(-1000592,'My fancy aggro-text3',0,1,0,0,'boss_hogger SAY_AGGRO3'); ------------ - -Hint: the INSERT statements can also be copied from the scriptdev2_script_full.sql - -Example for waypoints: -^^^^^^^^^^^^^^^^^^^^^^ - -The required SQL code to add a waypoint is: - ----------- -DELETE FROM script_waypoint WHERE entry=; -INSERT INTO script_waypoint VALUES -(, 1, 4013.51,6390.33, 29.970, 0, ' - start escort'), -(, 2, 4060.51,6400.33, 20.970, 0, ' - finish escort'); ----------- - -When the Update file is done, append an additional empty line + -And test these lines for correctness! - -For the scriptdev2 database (full files): -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -If everything works alright, and you finally intend to prepare the full-patch, copy the SQL-Code that is needed to the proper place in scriptdev2_script_full.sql, -(for a new npc add an empty line), and change the semicolon to a comma: - -Example for world text: -^^^^^^^^^^^^^^^^^^^^^^ - ------------ -(-1000589,'Kroshius live? Kroshius crush!',0,1,0,0,'SAY_KROSHIUS_REVIVE'), - -(-1000590,'My fancy aggro-text',0,1,0,0,'boss_hogger SAY_AGGRO'); ------------ - -The waypoints are added behind the last waypoint, after an empty line. - -For the world database: -~~~~~~~~~~~~~~~~~~~~~~~ - -Create a new file: Updates/r0000_mangos.sql + -In this file put the needed statements for your ScriptNames, append an empty line, convert lineendings to Unix, and then test it for correctness. - -If everything is alright, open mangos_scriptname_full.sql and go to the right place (this is usally sorted alphabetically by zone). + -Insert the needed statement where it fits (usally again ordered alphabetically) - -After this is done, Create a patch including the (untracked) files in Update/ + -then you have all information in the created patch, and anyone who wants to test your patch just needs to apply the created files from Updates/ diff --git a/doc/scripts docs/Script_Layout.txt b/doc/scripts docs/Script_Layout.txt deleted file mode 100644 index 53cfadd..0000000 --- a/doc/scripts docs/Script_Layout.txt +++ /dev/null @@ -1,22 +0,0 @@ ---- Script Layout --- -A quick explanation of the layout I hope everyone will follow for scriptdev2. - ---- Sub Folders --- - -battlegrounds - Contains scripts for npcs in Battlegrounds - -custom - Intentionally empty folder from SVN. If you make a custom script please put it here. - -examples - Contains a couple of example scripts showing the most commonly used functions within SD2 - -eastern_kingdoms, kalimdor, northrend, outland - Contain scripts for anything related to npcs or instances on the corresponding continent. -Instances are grouped to subfolders, the normal continent-maps are divided into zones - -world - Contains scripts for anything that is not related to a specified zone. -This includes item_scripts, areatrigger_scripts, some npcs that can be found at many places, go_scripts and spell_scripts - ---- Naming Conventions --- - -Please keep file names to "type_objectname.cpp" where type is replaced by the type of object and objectname is replaced by the name of the object, creature, item, or area that this script will be used by. - -AddSC functions should follow "void AddSC_filename(void);" format. Do not append AI or anything else. diff --git a/doc/scripts docs/Text-tables.txt b/doc/scripts docs/Text-tables.txt deleted file mode 100644 index 75188ec..0000000 --- a/doc/scripts docs/Text-tables.txt +++ /dev/null @@ -1,89 +0,0 @@ -========================================= -Texts Documentation -========================================= - -Scriptdev2 Revision 695 introduces a new format for using texts in EventAI and SD2 Scripts. -This information relates to the *_texts tables located in the ScriptDev Database. - -Any script can at any time access and use text from any of the three text tables, as long as the entry does in fact exist. -Custom scripters are advised to store their text data in custom_texts. - -The different tables has ranges of entries allowed for that table. -Reserved EventAI in Mangos entry -1 -> -999999 -script_texts: entry -1000000 -> -1999999 -custom_texts: entry -2000000 -> -2999999 -gossip_texts: entry -3000000 -> -3999999 -Any entry out of range for that table will display a start-up error. - - -========================================= -Basic Structure of script_texts, custom_texts and gossip_texts -========================================= -Below is a the list of current fields within the texts tables. - -Field_Name Description ------------------------------------------------------------ -entry This value is mearly an NEGATIVE identifier of the current text number. Required for sql queries. -content_default This is the actual text presented in the default language (English). - -content_loc1 This is the actual text presented in the Localization #1 Clients (Korean) -content_loc2 This is the actual text presented in the Localization #2 Clients (French) -content_loc3 This is the actual text presented in the Localization #3 Clients (German) -content_loc4 This is the actual text presented in the Localization #4 Clients (Chinese) -content_loc5 This is the actual text presented in the Localization #5 Clients (Taiwanese) -content_loc6 This is the actual text presented in the Localization #6 Clients (Spanish) -content_loc7 This is the actual text presented in the Localization #7 Clients (Spanish Mexico) -content_loc8 This is the actual text presented in the Localization #8 Clients (Russian) - -sound This value is the Sound ID that corresponds to the actual text used (Defined in SoundEntries.dbc). -type Variables used to define type of text (Say/Yell/Textemote/Whisper). -language This value is the Language that the text is native in (Defined in Languages.dbc). -emote Value from enum Emote (defined in Emotes.dbc). Only source of text will play this emote (not target, if target are defined in DoScriptText) - -comment This is a comment regarding the text entry (For ACID, accepted format is to use Creature ID of NPC using it). - -Note: sound, type, language and emote exist only in tables script_texts and custom_texts -Note: Fields `content_loc1` to `content_loc8` are NULL values by default and are handled by separate localization projects. - - -========================================= -Text Types (type) -========================================= -Below is the list of current Text types that texts tables can handle. These were previously separate Actions in ACID. - -# Internal Name Description ------------------------------------------------------------ -0 CHAT_TYPE_SAY This type sets the text to be displayed as a Say (Speech Bubble). -1 CHAT_TYPE_YELL This type sets the text to be displayed as a Yell (Red Speech Bubble) and usually has a matching Sound ID. -2 CHAT_TYPE_TEXT_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log. -3 CHAT_TYPE_BOSS_EMOTE This type sets the text to be displayed as a text emote in orange in the chat log (Used only for specific Bosses). -4 CHAT_TYPE_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log. -5 CHAT_TYPE_BOSS_WHISPER This type sets the text to be displayed as a whisper to the player in the chat log (Used only for specific Bosses). -6 CHAT_TYPE_ZONE_YELL Same as CHAT_TYPE_YELL but will display to all players in current zone. - -========================================= -Language Types (language) -========================================= -Below is the list of current Language types that are allowed. -This is the Race Language that the text is native to (So it will display properly) - -# Internal Name Description ------------------------------------------------------------ -0 UNIVERSAL Text in this language is understood by ALL Races. -1 ORCISH Text in this language is understood ONLY by Horde Races. -2 DARNASSIAN Text in this language is understood ONLY by the Night Elf Race. -3 TAURAHE Text in this language is understood ONLY by the Tauren Race. -6 DWARVISH Text in this language is understood ONLY by the Dwarf Race. -7 COMMON Text in this language is understood ONLY by Alliance Races. -8 DEMONIC Text in this language is understood ONLY by the Demon Race (Not Implemented). -9 TITAN This language was used by Sargeras to speak with other Titians (Not Implemented). -10 THALASSIAN Text in this language is understood ONLY by the Blood Elf Race. -11 DRACONIC Text in this language is understood ONLY by the Dragon Race. -12 KALIMAG Text will display as Kalimag (not readable by players, language of all elementals) -13 GNOMISH Text in this language is understood ONLY by the Gnome Race. -14 TROLL Text in this language is understood ONLY by the Troll Race. -33 GUTTERSPEAK Text in this language is understood ONLY by the Undead Race. -35 DRAENEI Text in this language is understood ONLY by the Draenai Race. -36 ZOMBIE (not currently used?) -37 GNOMISH BINARY Binary language used by Alliance when drinking Binary Brew -38 GOBLIN BINARY Binary language used by Horde when drinking Binary Brew diff --git a/doc/scripts docs/ToDo.html b/doc/scripts docs/ToDo.html deleted file mode 100644 index 6f6a2be..0000000 --- a/doc/scripts docs/ToDo.html +++ /dev/null @@ -1,761 +0,0 @@ - - - - - -ScriptDev2 TODO Points - - - - - -
-
-

1. Classic content

-
-
    -
  • -

    -Various quests which still require script (examples: 5721) -

    -
  • -
-
-
-
-

- - - diff --git a/doc/scripts docs/ToDo.txt b/doc/scripts docs/ToDo.txt deleted file mode 100644 index e1e296c..0000000 --- a/doc/scripts docs/ToDo.txt +++ /dev/null @@ -1,4 +0,0 @@ -= ScriptDev2 TODO Points = - -== Classic content == -* Various quests which still require script (examples: 5721) diff --git a/doc/scripts docs/aaa_Overview.html b/doc/scripts docs/aaa_Overview.html deleted file mode 100644 index c8f68e4..0000000 --- a/doc/scripts docs/aaa_Overview.html +++ /dev/null @@ -1,806 +0,0 @@ - - - - - -Overview of ScriptDev2 Documentation Section - - - - - -
-
-

1. License

-
-

ScriptDev2 is GPL Software, you can find the GNU General Public License here.

-
-
-
-

2. Basic Installation instructions

-
-

See How to install for basic instructions

-
-
-
-

3. ScriptDev2 ChangeLog and TODO list

-
-

See Changelog for basic points reached with the last milestones

-

See TODO List for rough points that the SD2-Team wants to be adressed in the next milestones

-
-
-
- -
-

Easy use of Git - Look here if you are new to Git

-

Normal use of Git - Look here if you want to do basic work with Git

-

Advanced use of Git - Look here if you want to dig deeper into Git, this also contains some configuration settings for Git

-
-
-
-

5. Database content used with SD2

-
-

Guide for SD2 SQL-Files - Look here for an overview how to manipulate the database content in SD2

-

Text-tables.txt - Manual like documentation for the tables `script_texts` and `custom_texts`

-
-
-
-

6. Old documentation files

-
-
-
-Script_Layout.txt -
-
-

-Information about the subfolders of the scripts directory -

-
-
-Text-tables.txt -
-
-

-Documentation of the layout of the tables `script_texts`, `custom_texts` and `gossip_texts` -

-
-
-
-
-
-

- - - diff --git a/doc/scripts docs/aaa_Overview.txt b/doc/scripts docs/aaa_Overview.txt deleted file mode 100644 index a9c6180..0000000 --- a/doc/scripts docs/aaa_Overview.txt +++ /dev/null @@ -1,42 +0,0 @@ -Overview of ScriptDev2 Documentation Section -============================================ - -License -------- - -ScriptDev2 is GPL Software, you can find the link:LICENSE.txt[GNU General Public License] here. - - -Basic Installation instructions -------------------------------- - -See link:How_to_install.html[How to install] for basic instructions - -ScriptDev2 ChangeLog and TODO list ----------------------------------- -See link:ChangeLog.html[Changelog] for basic points reached with the last milestones - -See link:ToDo.html[TODO List] for rough points that the SD2-Team wants to be adressed in the next milestones - -Various Guides related to Git ------------------------------ - -link:GIT_guide_1_easy_use.html[Easy use of Git] - Look here if you are new to Git - -link:GIT_guide_2_normal_use.html[Normal use of Git] - Look here if you want to do basic work with Git - -link:GIT_guide_3_advanced_use.html[Advanced use of Git] - Look here if you want to dig deeper into Git, this also contains some configuration settings for Git - -Database content used with SD2 ------------------------------- - -link:SQL_guide.html[Guide for SD2 SQL-Files] - Look here for an overview how to manipulate the database content in SD2 - -link:Text-tables.txt[] - Manual like documentation for the tables \`script_texts` and \`custom_texts` - -Old documentation files ------------------------ - -link:Script_Layout.txt[] :: Information about the subfolders of the `scripts` directory - -link:Text-tables.txt[] :: Documentation of the layout of the tables \`script_texts`, \`custom_texts` and \`gossip_texts` diff --git a/alipay_zhifubao.png b/doc/sponsor/alipay_zhifubao.png similarity index 100% rename from alipay_zhifubao.png rename to doc/sponsor/alipay_zhifubao.png diff --git a/release.md b/release.md index 9034d9b..c640c77 100644 --- a/release.md +++ b/release.md @@ -1,6 +1,14 @@ Thy-core Release Notes ------------------------ +# 开发计划 +``` +计划2023年出一版基于CentOS7.9的发布版本 +计划2023年下半年开发一个网站,专门介绍这个项目的使用文档 +``` + +# 发布记录 + ### 2020/3/1: version 1.1 - release version for CentOS6.5