Skip to content

Commit

Permalink
Merge pull request jprzimba#33 from jprzimba/data-crystal
Browse files Browse the repository at this point in the history
[FEATURE] Data crystal
  • Loading branch information
jprzimba authored Feb 5, 2025
2 parents f4ac807 + da8d1c5 commit 73d2514
Show file tree
Hide file tree
Showing 1,624 changed files with 158,757 additions and 1 deletion.
2 changes: 1 addition & 1 deletion config.lua.dist
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ maxItem = 5000
maxContainer = 500
maxContainerDepth = 200

-- Animus Mastery - SoulPit (Get more info in: https://github.com/opentibiabr/canary/pull/3230)
-- Animus Mastery - SoulPit
-- NOTE: animusMasteryMaxMonsterXpMultiplier is the maximum experience the multiplier can be.
-- NOTE: animusMasteryMonsterXpMultiplier is the monster experience multiplier that has the animus mastery unlocked.
-- NOTE: animusMasteryMonstersXpMultiplier is the multiplier for each 'animusMasteryMonstersToIncreaseXpMultiplier' monsters that
Expand Down
51 changes: 51 additions & 0 deletions data-crystal/ACTION_IDS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Lista de Action e Unique IDs

## ACTION IDS
**`Training Room`**

* NORTH = 2017
* SOUTH = 2018
* WEST = 2019
* EAST = 2020

## UNIQUE IDS
**`Citizen`**
* Desert City = 9056
* Inferno = 9057
* Venore = 9058
* Karmia = 9059
* Tiquanda = 9060
* Premium Island = 9061
* Folda = 9062,
* Liberty Bay = 9063

**`Hydras Camp`**
* 14030

**`Under Water`**

* [4550] = Position(265, 396, 8),
* [4551] = Position(265, 396, 8),

* [4552] = Position(344, 429, 8),
* [4553] = Position(344, 429, 8),

* [4554] = Position(538, 559, 8),
* [4555] = Position(538, 559, 8),

* [4556] = Position(627, 676, 8),
* [4557] = Position(627, 676, 8),


**`Behemoth Quest`**
* Guardian Halberd = 5006
* Demon Shield = 5007
* Golden Armor = 5008

**`Demon Helmet Quest`**
* Lever = 14031
* Steel Boots = 5003
* Demon Helmet = 5004
* Demon Shield = 5005

This acuin/unique ids for Crystal Server map (SadSoul).
2 changes: 2 additions & 0 deletions data-crystal/lib/core/load.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
dofile(DATA_DIRECTORY .. "/lib/core/storages.lua")
dofile(DATA_DIRECTORY .. "/lib/core/quests.lua")
19 changes: 19 additions & 0 deletions data-crystal/lib/core/quests.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
if not Quests then
Quests = {
[1] = {
name = "Example",
startStorageId = Storage.Quest.ExampleQuest.Example,
startStorageValue = 1,
missions = {
[1] = {
name = "The Hidden Seal",
storageId = Storage.Quest.ExampleQuest.Example,
missionId = 1,
startValue = 1,
endValue = 1,
description = "You broke the first seal.",
},
},
},
}
end
110 changes: 110 additions & 0 deletions data-crystal/lib/core/storages.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
--[[
Reserved player action storage key ranges (const.hpp)
It is possible to place the storage in a quest door, so the player who has that storage will go through the door
Reserved player action storage key ranges (const.hpp at the source)
[10000000 - 20000000]
[1000 - 1500]
[2001 - 2011]
Others reserved player action/storages
[100] = unmovable/untrade/unusable items
[101] = use pick floor
[102] = well down action
[103-120] = others keys action
[103] = key 0010
[303] = key 0303
[1000] = level door. Here 1 must be used followed by the level.
Example: 1010 = level 10,
1100 = level 100]
Questline = Storage through the Quest
]]

Storage = {
-- Crystal Server storages
-- Tiquanda
CrystalServer = {
Citizen = {
DesertCity = 9056,
Inferno = 9057,
Venore = 9058,
Karmia = 9059,
Tiquanda = 9060,
PremiumIsland = 9061,
Folda = 9062,
LibertyBay = 9063,
},
AdventurersGuild = {
Stone = 52130,
FreeStone = 52131,
},
Quests = {
Behemoth = {
GuardianHalberd = 5006,
DemonShield = 5007,
GoldenArmor = 5008,
},
CobraBastion = {
Questline = 52311,
},
DemonHelmet = {
Lever = 14031,
SteelBoots = 5003,
DH = 5004,
DemonShield = 5005,
},
Rookgaard = {
Mace = 5000,
ChainHelmet = 5001,
ChainArmor = 5002,
},
WelcomeToCrystalServer = {
Start = 40000,
Mission = 40001,
},
},
HydrasCampLever = 14030,
TrainingRoom = {
NORTH = 2017,
SOUTH = 2018,
WEST = 2019,
EAST = 2020,
},
UnderWater = {
S1 = 4550,
S2 = 4551,
S3 = 4552,
S4 = 4553,
S5 = 4554,
S6 = 4555,
S7 = 4556,
S8 = 4557,
},
Portals = {
S1 = 4558,
S2 = 4559,
},
},

Quest = {
Key = {
ID1000 = 103,
},
ExampleQuest = {
Example = 9000,
Door = 9001,
},
},

Imbuement = 30004,
}

GlobalStorage = {
ExampleQuest = {
Example = 60000,
},
KeysUpdate = 40000, -- Reserved storage from 40000 - 40000
}

startupGlobalStorages = {}
11 changes: 11 additions & 0 deletions data-crystal/lib/core/town.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
TOWNS_LIST = {
KARMIA = 1,
DESERT_CITY = 2,
TIQUANDA = 3,
INFERNO = 4,
VENORE = 5,
PREMIUM_ISLAND = 6,
FOLDA = 7,
LIBERTY_BAY = 8,
ROOKGAARD = 9,
}
8 changes: 8 additions & 0 deletions data-crystal/lib/lib.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
-- Core API functions implemented in Lua
dofile(DATA_DIRECTORY .. "/lib/core/load.lua")

-- Quests library
dofile(DATA_DIRECTORY .. "/lib/quests/quest.lua")

-- Tables library
dofile(DATA_DIRECTORY .. "/lib/tables/load.lua")
4 changes: 4 additions & 0 deletions data-crystal/lib/quests/demon_oak.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
DEMON_OAK_POSITION = Position(429, 296, 7)
DEMON_OAK_KICK_POSITION = Position(439, 286, 7)
DEMON_OAK_ENTER_POSITION = Position(429, 288, 7)
DEMON_OAK_REWARDROOM_POSITION = Position(370, 285, 7)
1 change: 1 addition & 0 deletions data-crystal/lib/quests/quest.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dofile(DATA_DIRECTORY .. "/lib/quests/demon_oak.lua")
1 change: 1 addition & 0 deletions data-crystal/lib/tables/load.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dofile(DATA_DIRECTORY .. "/lib/tables/town.lua")
11 changes: 11 additions & 0 deletions data-crystal/lib/tables/town.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
TOWNS_LIST = {
KARMIA = 1,
DESERT_CITY = 2,
TIQUANDA = 3,
INFERNO = 4,
VENORE = 5,
PREMIUM_ISLAND = 6,
FOLDA = 7,
LIBERTY_BAY = 8,
ROOKGAARD = 9,
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
111 changes: 111 additions & 0 deletions data-crystal/monster/amphibics/azure_frog.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
local mType = Game.createMonsterType("Azure Frog")
local monster = {}

monster.description = "an azure frog"
monster.experience = 20
monster.outfit = {
lookType = 226,
lookHead = 69,
lookBody = 66,
lookLegs = 69,
lookFeet = 66,
lookAddons = 0,
lookMount = 0,
}

monster.raceId = 268
monster.Bestiary = {
class = "Amphibic",
race = BESTY_RACE_AMPHIBIC,
toKill = 500,
FirstUnlock = 25,
SecondUnlock = 250,
CharmsPoints = 15,
Stars = 2,
Occurrence = 0,
Locations = "Meriana, Laguna Islands, and other Shattered Isles.",
}

monster.health = 60
monster.maxHealth = 60
monster.race = "blood"
monster.corpse = 6079
monster.speed = 160
monster.manaCost = 305

monster.changeTarget = {
interval = 4000,
chance = 0,
}

monster.strategiesTarget = {
nearest = 100,
}

monster.flags = {
summonable = true,
attackable = true,
hostile = true,
convinceable = true,
pushable = false,
rewardBoss = false,
illusionable = false,
canPushItems = false,
canPushCreatures = false,
staticAttackChance = 90,
targetDistance = 1,
runHealth = 0,
healthHidden = false,
isBlockable = false,
canWalkOnEnergy = false,
canWalkOnFire = false,
canWalkOnPoison = false,
}

monster.light = {
level = 0,
color = 0,
}

monster.voices = {
interval = 5000,
chance = 10,
{ text = "Ribbit! Ribbit!", yell = false },
{ text = "Ribbit!", yell = false },
}

monster.loot = {
{ name = "gold coin", chance = 74230, maxCount = 10 },
{ name = "worm", chance = 9240 },
}

monster.attacks = {
{ name = "melee", interval = 2000, chance = 100, minDamage = 0, maxDamage = -24, effect = CONST_ME_DRAWBLOOD },
}

monster.defenses = {
defense = 5,
armor = 8,
}

monster.elements = {
{ type = COMBAT_PHYSICALDAMAGE, percent = 0 },
{ type = COMBAT_ENERGYDAMAGE, percent = 0 },
{ type = COMBAT_EARTHDAMAGE, percent = 0 },
{ type = COMBAT_FIREDAMAGE, percent = -10 },
{ type = COMBAT_LIFEDRAIN, percent = 0 },
{ type = COMBAT_MANADRAIN, percent = 0 },
{ type = COMBAT_DROWNDAMAGE, percent = 0 },
{ type = COMBAT_ICEDAMAGE, percent = 10 },
{ type = COMBAT_HOLYDAMAGE, percent = 0 },
{ type = COMBAT_DEATHDAMAGE, percent = 0 },
}

monster.immunities = {
{ type = "paralyze", condition = false },
{ type = "outfit", condition = false },
{ type = "invisible", condition = false },
{ type = "bleed", condition = false },
}

mType:register(monster)
Loading

0 comments on commit 73d2514

Please sign in to comment.