Skip to content

About

Inspired by AzerothShard Smartstone

Resources

Stars

5 stars

Watchers

3 watching

Forks

Latest commit

 

History

222 Commits

Folders and files

Repository files navigation

Chromiecraft's Smartstone Module

About

This module was inspired by Azerothshard's Smartstone module.

The Smartstone is a versatile item that offers a wide range of gossip options, enabling you to provide various services and entertaining features to players.

This module makes use of Azerothcore's subscription system (from acore-cms intregated subscription system.)

Note

You may get a worldserver error STORAGE: Can't equip or store initial item 32547 for race X class Y, error msg = 17 you may ignore the error.

How to use this?

Warning

This module changes an existing Item Tier 5 Mage Test Gear (32547) to be named Smartstone and use the smartstone scripts.

Note

This module requires you to have EnablePlayerSettings = 1 in your worldserver.conf to work, the information gets stored in character_settings in your acore_characters.

Category ID Catergory Name Catergory Range Command Value Database Table
0 (PetID) Pets / Companions 80001 - 89999 PetID minus 80000 smartstone_pets
1 (CombatPetID) Combat Pets 90001 - 99999 CombatPetID minus 90000 smartstone_pets
2 (CostumeID) Costumes 20001 - 29999 CostumeID minus 20000 smartstone_costumes

The command usage in-game or via the worldserver:

.smartstone unlock service $characterName (or $characterGUID) $categoryID $petOrCostumeID $true # (to add, or $false to remove)

# Unlocks (Pet) Amani'shi Groundbreaker
.smartstone unlock service Nyeriah 0 80001 true

# Unlocks (Combat Pet) Winterveil Helper
.smartstone unlock service Nyeriah 1 90001 true

# Unlocks (Costume) Edwin VanCleef
.smartstone unlock service Nyeriah 2 20001 true

Note

Some of the existing pets as example Summon Hyjal Wisp, will not work if you haven't completed their required raids in mythic from mod-zone-difficulty.

Tokens

Tokens are one-shot, account-wide grants of a character service: a name change, faction change, race change, or appearance (customize) change. A moderator grants a token to an account; any character on that account can then claim it. Claiming sets the matching at-login flag, so the actual change happens at the character selection screen the next time the player logs out to it.

Tokens are stored in acore_auth (smartstone_account_tokens), so a granted token is available on every realm and to every character on the account until claimed. Claimed tokens are kept (not deleted) as an audit record.

Token types

Type Service At-login effect
1 Name Change AT_LOGIN_RENAME
2 Faction Change AT_LOGIN_CHANGE_FACTION
3 Race Change AT_LOGIN_CHANGE_RACE
4 Appearance Change AT_LOGIN_CUSTOMIZE

Commands

Moderator commands (also usable from the worldserver console). The account can be given by name or account id:

# Grant a Faction Change (type 2) token to an account
.smartstone token grant Nyeriah 2

# List an account's unclaimed tokens and their ids
.smartstone token list Nyeriah

# List all tokens including claimed ones (who claimed each, and when)
.smartstone token list Nyeriah all

# Remove an unclaimed token by id (claimed tokens are preserved)
.smartstone token revoke 42

Player command:

# Claim token id 42 on the current character
.smartstone token claim 42

Players can also claim from the Smartstone menu under Character > Tokens (the category only appears while the account has unclaimed tokens). On login, a reminder lists any unclaimed tokens and the command to claim each one.

Announcements

The Smartstone exposes the core per-character announcer settings (the same ones as the .settings announcer command) under Character > Announcements. Each entry is a toggle whose label reflects its current state, letting a player silence or restore an announcer type without a command:

  • Battleground queue announcements
  • Arena queue announcements
  • PvP start announcements
  • Server broadcasts (autobroadcast)

These are stored as the core ac_default character settings, so they require PlayerSettings.Enable to be on in the core config.

New characters are created with PvP announcements (battleground queue, arena queue, and PvP start) disabled by default, as if .settings announcer pvpall off had been run. Server broadcasts are left on. Players can re-enable any of them from the menu or the command at any time.

Two config options control this feature:

  • ModChromiecraftSmartstone.QueueAnnouncer.Enable (default 1) — shows the Announcements menu. When 0, the category is hidden.
  • ModChromiecraftSmartstone.QueueAnnouncer.DisablePvpOnCreate (default 1) — sets PvP announcements off on character creation. When 0, new characters keep the core defaults.

SQL File Prefixes

All SQL files should have a numeric prefix to indicate their purpose and order of execution. The prefixes are as follows:

  • 0 -> creation of the table
  • 1 -> updates to the table
  • 2 -> add data to the table
  • 3 -> used by other modules to add data to the tables

How to make your own?

Pet

Requires creature_template, creature_template_model and smartstone_pets.

Example for Amani'shi Groundbreaker here.

Combat Pet

Requires creature_template, creature_template_model, creature_template_spell and smartstone_pets.

Example for Winterveil Helper here.

Costumes

Requires only smartstone_costumes.

Example for Edwin VanCleef here.

Documentation

smartstone_pets (acore_world)

CreatureId Category SubscriptionLevel Duration Description Enabled
80001 to 99999 0 or 1 1 to 3 In Unix Timestamp Gossip Text 1 (Show) or 0 (Hide)

smartstone_costumes (acore_world)

Id DisplayId Category SubscriptionLevel Duration Description Enabled
20001 to 29999 ModelID smartstone_categories.id 1 to 3 In seconds Gossip Text 1 (Show) or 0 (Hide)

smartstone_categories (acore_world)

Id CategoryType Title SubscriptionLevel NPCTextId Enabled
Unique Identifier 0 Title that shows a sub-menu? 1 to 3 npc_text.id 1 (Show) or 0 (Hide)

smartstone_account_tokens (acore_auth)

One row per granted token. Populated by .smartstone token grant; rows are marked consumed (not deleted) when claimed.

Column Meaning
Id Auto-increment; the id used to claim/revoke the token
AccountId Owning account
TokenType 1-4 (see Tokens)
GrantedBy Granting account id (0 = console)
GrantedTime Unix timestamp of the grant
ConsumedByGUID Character GUID that claimed it (0 = unclaimed)
ConsumedTime Unix timestamp of the claim (0 = unclaimed)

About

Inspired by AzerothShard Smartstone

Resources

Stars

5 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors

Languages