- Add new DB table `skill_perfect_item_template` that holds information about "perfect" crafts that replace the normal result
- Implement this new DB table into core (SkillExtraItems.cpp, SkillExtraItems.h, SpellEffects.cpp)
- Add data about perfect crafts to new DB table (2015_09_11_00_world.sql)
- Add reload capability to this new table (latch onto skill_extra_item_template to avoid changing command IDs)
Random other change because I stumbled across it and it annoyed me:
- npc_professions.cpp no longer uses magic numbers for quest IDs and creature IDs.
Fix a factual error in the /contrib/check_updates.sh error message text,
Best shown in an example from the latest travis build error:
```
$ ./contrib/check_updates.sh auth auth
Database Updater check script:
Checking database 'auth' for missing filenames in tables...
- "sql/updates/2015_10_09_00_auth.sql" is missing in table 'auth'.'updates'
Fatal error:
The Database Updater is broken for database 'auth
due to applied update which are missing in the 'auth'.'updates' table.
How to fix:
Insert the missing names of sql updates which were applied already to
the 'updates' table of the 'auth' base dump ('sql/base/auth_database.sql').
The command "./contrib/check_updates.sh auth auth" exited with 1.
```
Main fix: `\"sql/updates/${file}\"` -> `\"sql/updates/${name}/${file}\"`
Before this change, the error message claims that the updated SQL file was placed
directly in the `/sql/updates/` directory and not in the subdirectory based on its DB name.
All the other changes are improvements in English grammar and more precise description.
This PR solves the following say text issues:
In quest ID 12733, Death's Challenge, the creature script npc_death_knight_initiate is supposed to target the player and refer to the player character's name in the following 2 lines from `creature_text`.`entry` 28406:
- "You don't stand a chance, $n." (`BroadcastTextId` 29267)
- "Remember this day, $n, for it is the day that you will be thoroughly owned." (`BroadcastTextId` 29270)
In quest ID 12848, The Endless Hunger, the creature script npc_unworthy_initiate is supposed to target the player and refer to the player character's race in the following 2 lines from `creature_text`.`entry` 29519, 29520, 29565, 29566 and 29567:
- "You are hopelessly outmatched, $r." (`BroadcastTextId` 30212)
- "Sate your hunger on cold steel, $r!" (`BroadcastTextId` 30214)
The untargeted variables $r and $n appear in the say lines because the existing script assigns the text to the player character instead of the creatures. This does not produce any race or name information in /say or chat.
This Pull Request closes issue #14700 and replaces PR #15678.