mirror of
https://github.com/webluke/mod-grownup.git
synced 2026-01-13 01:08:39 +00:00
first commit
This commit is contained in:
8
.editorconfig
Normal file
8
.editorconfig
Normal file
@@ -0,0 +1,8 @@
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
tab_width = 4
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
max_line_length = 80
|
||||
105
.gitattributes
vendored
Normal file
105
.gitattributes
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
## AUTO-DETECT
|
||||
## Handle line endings automatically for files detected as
|
||||
## text and leave all files detected as binary untouched.
|
||||
## This will handle all files NOT defined below.
|
||||
* text=auto eol=lf
|
||||
|
||||
# Text
|
||||
*.conf text
|
||||
*.conf.dist text
|
||||
*.cmake text
|
||||
|
||||
## Scripts
|
||||
*.sh text
|
||||
*.fish text
|
||||
*.lua text
|
||||
|
||||
## SQL
|
||||
*.sql text
|
||||
|
||||
## C++
|
||||
*.c text
|
||||
*.cc text
|
||||
*.cxx text
|
||||
*.cpp text
|
||||
*.c++ text
|
||||
*.hpp text
|
||||
*.h text
|
||||
*.h++ text
|
||||
*.hh text
|
||||
|
||||
|
||||
## For documentation
|
||||
|
||||
# Documents
|
||||
*.doc diff=astextplain
|
||||
*.DOC diff=astextplain
|
||||
*.docx diff=astextplain
|
||||
*.DOCX diff=astextplain
|
||||
*.dot diff=astextplain
|
||||
*.DOT diff=astextplain
|
||||
*.pdf diff=astextplain
|
||||
*.PDF diff=astextplain
|
||||
*.rtf diff=astextplain
|
||||
*.RTF diff=astextplain
|
||||
|
||||
## DOCUMENTATION
|
||||
*.markdown text
|
||||
*.md text
|
||||
*.mdwn text
|
||||
*.mdown text
|
||||
*.mkd text
|
||||
*.mkdn text
|
||||
*.mdtxt text
|
||||
*.mdtext text
|
||||
*.txt text
|
||||
AUTHORS text
|
||||
CHANGELOG text
|
||||
CHANGES text
|
||||
CONTRIBUTING text
|
||||
COPYING text
|
||||
copyright text
|
||||
*COPYRIGHT* text
|
||||
INSTALL text
|
||||
license text
|
||||
LICENSE text
|
||||
NEWS text
|
||||
readme text
|
||||
*README* text
|
||||
TODO text
|
||||
|
||||
## GRAPHICS
|
||||
*.ai binary
|
||||
*.bmp binary
|
||||
*.eps binary
|
||||
*.gif binary
|
||||
*.ico binary
|
||||
*.jng binary
|
||||
*.jp2 binary
|
||||
*.jpg binary
|
||||
*.jpeg binary
|
||||
*.jpx binary
|
||||
*.jxr binary
|
||||
*.pdf binary
|
||||
*.png binary
|
||||
*.psb binary
|
||||
*.psd binary
|
||||
*.svg text
|
||||
*.svgz binary
|
||||
*.tif binary
|
||||
*.tiff binary
|
||||
*.wbmp binary
|
||||
*.webp binary
|
||||
|
||||
|
||||
## ARCHIVES
|
||||
*.7z binary
|
||||
*.gz binary
|
||||
*.jar binary
|
||||
*.rar binary
|
||||
*.tar binary
|
||||
*.zip binary
|
||||
|
||||
## EXECUTABLES
|
||||
*.exe binary
|
||||
*.pyc binary
|
||||
48
.gitignore
vendored
Normal file
48
.gitignore
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
!.gitignore
|
||||
|
||||
#
|
||||
#Generic
|
||||
#
|
||||
|
||||
.directory
|
||||
.mailmap
|
||||
*.orig
|
||||
*.rej
|
||||
*.*~
|
||||
.hg/
|
||||
*.kdev*
|
||||
.DS_Store
|
||||
CMakeLists.txt.user
|
||||
*.bak
|
||||
*.patch
|
||||
*.diff
|
||||
*.REMOTE.*
|
||||
*.BACKUP.*
|
||||
*.BASE.*
|
||||
*.LOCAL.*
|
||||
|
||||
#
|
||||
# IDE & other softwares
|
||||
#
|
||||
/.settings/
|
||||
/.externalToolBuilders/*
|
||||
# exclude in all levels
|
||||
nbproject/
|
||||
.sync.ffs_db
|
||||
*.kate-swp
|
||||
|
||||
#
|
||||
# Eclipse
|
||||
#
|
||||
*.pydevproject
|
||||
.metadata
|
||||
.gradle
|
||||
tmp/
|
||||
*.tmp
|
||||
*.swp
|
||||
*~.nib
|
||||
local.properties
|
||||
.settings/
|
||||
.loadpath
|
||||
.project
|
||||
.cproject
|
||||
25
README.md
Normal file
25
README.md
Normal file
@@ -0,0 +1,25 @@
|
||||
#  AzerothCore
|
||||
## mod-grownup
|
||||
### This is a module for [AzerothCore](http://www.azerothcore.org)
|
||||
- Latest build status with azerothcore:
|
||||
|
||||
#### Features:
|
||||
- Changes player size on initial creation, then changes their size as they level up through the first 15 levels to full size. Created for Azerothcore
|
||||
|
||||
### This module currently requires:
|
||||
- AzerothCore vX.X.X+
|
||||
|
||||
|
||||
### How to install
|
||||
1. Simply place the module under the `modules` folder of your AzerothCore source folder.
|
||||
2. Re-run cmake and launch a clean build of AzerothCore
|
||||
3. Copy mod_growup.conf.dist to mod_growup.conf
|
||||
4. Log in game, level up and enjoy.
|
||||
|
||||
|
||||
## Credits
|
||||
* [WebLuke]( https://github.com/WebLuke ): (Author of the module)
|
||||
|
||||
* Looking at other modules, and a little help from GPT-5.
|
||||
|
||||
* AzerothCore: [repository](https://github.com/azerothcore) - [website](http://azerothcore.org/) - [discord chat community](https://discord.gg/PaqQRkd)
|
||||
0
apps/.gitkeep
Normal file
0
apps/.gitkeep
Normal file
0
apps/ci/.gitkeep
Normal file
0
apps/ci/.gitkeep
Normal file
40
apps/ci/ci-codestyle.sh
Normal file
40
apps/ci/ci-codestyle.sh
Normal file
@@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "Codestyle check script:"
|
||||
echo
|
||||
|
||||
declare -A singleLineRegexChecks=(
|
||||
["LOG_.+GetCounter"]="Use ObjectGuid::ToString().c_str() method instead of ObjectGuid::GetCounter() when logging. Check the lines above"
|
||||
["[[:blank:]]$"]="Remove whitespace at the end of the lines above"
|
||||
["\t"]="Replace tabs with 4 spaces in the lines above"
|
||||
)
|
||||
|
||||
for check in ${!singleLineRegexChecks[@]}; do
|
||||
echo " Checking RegEx: '${check}'"
|
||||
|
||||
if grep -P -r -I -n ${check} src; then
|
||||
echo
|
||||
echo "${singleLineRegexChecks[$check]}"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
declare -A multiLineRegexChecks=(
|
||||
["LOG_[^;]+GetCounter"]="Use ObjectGuid::ToString().c_str() method instead of ObjectGuid::GetCounter() when logging. Check the lines above"
|
||||
["\n\n\n"]="Multiple blank lines detected, keep only one. Check the files above"
|
||||
)
|
||||
|
||||
for check in ${!multiLineRegexChecks[@]}; do
|
||||
echo " Checking RegEx: '${check}'"
|
||||
|
||||
if grep -Pzo -r -I ${check} src; then
|
||||
echo
|
||||
echo
|
||||
echo "${multiLineRegexChecks[$check]}"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
echo "Everything looks good"
|
||||
0
conf/.gitkeep
Normal file
0
conf/.gitkeep
Normal file
35
conf/mod_grownup.dist
Normal file
35
conf/mod_grownup.dist
Normal file
@@ -0,0 +1,35 @@
|
||||
#
|
||||
# Copyright (C) 2016+ AzerothCore <www.azerothcore.org>, released under GNU AGPL v3 license: https://github.com/azerothcore/azerothcore-wotlk/blob/master/LICENSE-AGPL3
|
||||
#
|
||||
|
||||
[worldserver]
|
||||
|
||||
########################################
|
||||
# Grown Up configuration
|
||||
########################################
|
||||
#
|
||||
# GrownUp.Enable
|
||||
# Description: Enable model that shrinks players on character creation and slowly increases them to normal size by level 15.
|
||||
# Default: 0 - Disabled
|
||||
# 1 - Enabled
|
||||
#
|
||||
|
||||
GrownUp.Enable = 1
|
||||
|
||||
#
|
||||
# GrownUp.Enable
|
||||
# Description: Check if player size is correct on login.
|
||||
# Default: 0 - Disabled
|
||||
# 1 - Enabled
|
||||
#
|
||||
|
||||
GrownUp.LoginCheck = 1
|
||||
|
||||
#
|
||||
# GrownUp.Announce
|
||||
# Description: Announce mod enabled on login.
|
||||
# Default: 0 - Disabled
|
||||
# 1 - Enabled
|
||||
#
|
||||
|
||||
GrownUp.Announce = 1
|
||||
0
data/.gitkeep
Normal file
0
data/.gitkeep
Normal file
0
data/sql/db-auth/.gitkeep
Normal file
0
data/sql/db-auth/.gitkeep
Normal file
0
data/sql/db-characters/.gitkeep
Normal file
0
data/sql/db-characters/.gitkeep
Normal file
0
data/sql/db-world/.gitkeep
Normal file
0
data/sql/db-world/.gitkeep
Normal file
0
include.sh
Normal file
0
include.sh
Normal file
25
pull_request_template.md
Normal file
25
pull_request_template.md
Normal file
@@ -0,0 +1,25 @@
|
||||
<!-- First of all, THANK YOU for your contribution. -->
|
||||
|
||||
## Changes Proposed:
|
||||
-
|
||||
-
|
||||
|
||||
## Issues Addressed:
|
||||
<!-- If your fix has a relating issue, link it below -->
|
||||
- Closes
|
||||
|
||||
## SOURCE:
|
||||
<!-- If you can, include a source that can strengthen your claim -->
|
||||
|
||||
## Tests Performed:
|
||||
<!-- Does it build without errors? Did you test in-game? What did you test? On which OS did you test? Describe any other tests performed -->
|
||||
-
|
||||
-
|
||||
|
||||
|
||||
## How to Test the Changes:
|
||||
<!-- Describe in a detailed step-by-step order how to test the changes -->
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
11
src/GU_loader.cpp
Normal file
11
src/GU_loader.cpp
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
void AddGrowUpScripts();
|
||||
|
||||
// Add all
|
||||
// cf. the naming convention https://github.com/azerothcore/azerothcore-wotlk/blob/master/doc/changelog/master.md#how-to-upgrade-4
|
||||
// additionally replace all '-' in the module folder name with '_' here
|
||||
void Addmod_grownupScripts()
|
||||
{
|
||||
AddGrowUpScripts();
|
||||
}
|
||||
|
||||
77
src/GrownUp.cpp
Normal file
77
src/GrownUp.cpp
Normal file
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
* Created by WebLuke <https://github.com/WebLuke>
|
||||
*/
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "Player.h"
|
||||
#include "Config.h"
|
||||
#include "Chat.h"
|
||||
|
||||
|
||||
// Add player scripts
|
||||
class GrowUp : public PlayerScript
|
||||
{
|
||||
public:
|
||||
GrowUp() : PlayerScript("GrowUp") {
|
||||
PLAYERHOOK_ON_LOGIN,
|
||||
PLAYERHOOK_ON_FIRST_LOGIN,
|
||||
PLAYERHOOK_ON_LEVEL_CHANGED
|
||||
}
|
||||
|
||||
void OnPlayerLogin(Player* player) override
|
||||
{
|
||||
if (sConfigMgr->GetOption<bool>("GrownUp.Enable", false) && sConfigMgr->GetOption<bool>("GrownUp.LoginCheck", false))
|
||||
{
|
||||
uint8 level = player->getLevel();
|
||||
float newScale = 1.0f;
|
||||
|
||||
if (level < 5)
|
||||
newScale = 0.5f;
|
||||
else if (level < 10)
|
||||
newScale = 0.65f;
|
||||
else if (level < 15)
|
||||
newScale = 0.85f;
|
||||
else
|
||||
newScale = 1.0f;
|
||||
|
||||
player->SetObjectScale(newScale);
|
||||
}
|
||||
}
|
||||
|
||||
void OnFirstLogin(Player* player) override
|
||||
{
|
||||
if (sConfigMgr->GetOption<bool>("GrownUp.Enable", false))
|
||||
{
|
||||
player->SetObjectScale(0.5f);
|
||||
ChatHandler(player->GetSession()).SendSysMessage("Your adventure begins young one!");
|
||||
}
|
||||
}
|
||||
|
||||
void OnLevelChanged(Player* player, uint8 /*oldLevel*/) override
|
||||
{
|
||||
if (sConfigMgr->GetOption<bool>("GrownUp.Enable", false))
|
||||
{
|
||||
uint8 newLevel = player->getLevel();
|
||||
float newScale = 1.0f; // default full size
|
||||
|
||||
if (newLevel < 5)
|
||||
newScale = 0.5f;
|
||||
else if (newLevel < 10)
|
||||
newScale = 0.65f;
|
||||
else if (newLevel < 15)
|
||||
newScale = 0.85f;
|
||||
else
|
||||
newScale = 1.0f;
|
||||
|
||||
player->SetObjectScale(newScale);
|
||||
ChatHandler(player->GetSession())
|
||||
.PSendSysMessage("Your adventure has grown to %.0f%%!", newScale * 100.0f);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Add all scripts in one
|
||||
void AddGrowUpScripts()
|
||||
{
|
||||
new GrowUp();
|
||||
}
|
||||
Reference in New Issue
Block a user