login.lua pasta data/scripts/creaturescripts/others pra quem quizer copia ai as quests ja liberadas.
function Player.sendTibiaTime(self, hours, minutes)
-- TODO: Migrate to protocolgame.cpp
local msg = NetworkMessage()
msg:addByte(0xEF)
msg:addByte(hours)
msg:addByte(minutes)
msg:sendToPlayer(self)
msg:delete()
return true
end
local function onMovementRemoveProtection(cid, oldPos, time)
local player = Player(cid)
if not player then
return true
end
local playerPos = player:getPosition()
if (playerPos.x ~= oldPos.x or playerPos.y ~= oldPos.y or playerPos.z ~= oldPos.z) or player:getTarget() then
player:setStorageValue(Storage.combatProtectionStorage, 0)
return true
end
addEvent(onMovementRemoveProtection, 1000, cid, oldPos, time - 1)
end
local playerLogin = CreatureEvent("PlayerLogin")
function playerLogin.onLogin(player)
local items = {
{2120, 1},
{2148, 3}
}
if player:getLastLoginSaved() == 0 then
local backpack = player:addItem(1988)
if backpack then
for i = 1, #items do
backpack:addItem(items[i][1], items[i][2])
end
end
player:addItem(2050, 1, true, 1, CONST_SLOT_AMMO)
else
player:sendTextMessage(MESSAGE_STATUS_DEFAULT, string.format("Your last visit in ".. SERVER_NAME ..": %s.", os.date("%d. %b %Y %X", player:getLastLoginSaved())))
end
--In Service of Yalahar
player:setStorageValue(Storage.InServiceofYalahar.Questline, 5)
player:setStorageValue(Storage.InServiceofYalahar.Mission01, 6)
player:setStorageValue(Storage.InServiceofYalahar.Mission02, ?
player:setStorageValue(Storage.InServiceofYalahar.Mission03, 6)
player:setStorageValue(Storage.InServiceofYalahar.Mission04, 6)
player:setStorageValue(Storage.InServiceofYalahar.Mission05, ?
player:setStorageValue(Storage.InServiceofYalahar.Mission06, 5)
player:setStorageValue(Storage.InServiceofYalahar.Mission07, 5)
player:setStorageValue(Storage.InServiceofYalahar.Mission08, 4)
player:setStorageValue(Storage.InServiceofYalahar.Mission09, 2)
player:setStorageValue(Storage.InServiceofYalahar.Mission10, 1)
--zao
player:setStorageValue(Storage.TheNewFrontier.Questline, 1)
player:setStorageValue(Storage.TheNewFrontier.Mission01, 3)
player:setStorageValue(Storage.TheNewFrontier.Mission02, 6)
player:setStorageValue(Storage.TheNewFrontier.Mission03, 3)
player:setStorageValue(Storage.TheNewFrontier.Mission04, 2)
player:setStorageValue(Storage.TheNewFrontier.Mission05, 7)
player:setStorageValue(Storage.TheNewFrontier.Mission06, 3)
player:setStorageValue(Storage.TheNewFrontier.Mission07, 3)
player:setStorageValue(Storage.TheNewFrontier.Mission08, 2)
player:setStorageValue(Storage.TheNewFrontier.Mission09, 3)
player:setStorageValue(Storage.TheNewFrontier.Mission10, 1)
player:setStorageValue(Storage.TheNewFrontier.TomeofKnowledge, 12)
--Djin
player:setStorageValue(Storage.DjinnWar.MaridFaction.Start, 1)
player:setStorageValue(Storage.DjinnWar.MaridFaction.Mission01, 2)
player:setStorageValue(Storage.DjinnWar.MaridFaction.Mission02, 2)
player:setStorageValue(Storage.DjinnWar.MaridFaction.RataMari, 2)
player:setStorageValue(Storage.DjinnWar.MaridFaction.Mission03, 3)
--djin
player:setStorageValue(Storage.DjinnWar.EfreetFaction.Start, 1)
player:setStorageValue(Storage.DjinnWar.EfreetFaction.Mission01, 3)
player:setStorageValue(Storage.DjinnWar.EfreetFaction.Mission02, 3)
player:setStorageValue(Storage.DjinnWar.EfreetFaction.Mission03, 3)
--Feryst
player:setStorageValue(Storage.ThreatenedDreams.Start, 1)
player:setStorageValue(Storage.ThreatenedDreams.TroubledMission01, 17)
player:setStorageValue(Storage.ThreatenedDreams.TroubledMission02, 1)
--Rashid
player:setStorageValue(Storage.TravellingTrader.Mission01, 1)
player:setStorageValue(Storage.TravellingTrader.Mission01, 2)
player:setStorageValue(Storage.TravellingTrader.Mission02, 5)
player:setStorageValue(Storage.TravellingTrader.Mission03, 3)
player:setStorageValue(Storage.TravellingTrader.Mission04, 3)
player:setStorageValue(Storage.TravellingTrader.Mission05, 3)
player:setStorageValue(Storage.TravellingTrader.Mission06, 2)
player:setStorageValue(Storage.TravellingTrader.Mission07, 1)
--Iquin
player:setStorageValue(Storage.TheInquisition.Questline, 2)
player:setStorageValue(Storage.TheInquisition.Mission01, 7)
player:setStorageValue(Storage.TheInquisition.Mission02, 3)
player:setStorageValue(Storage.TheInquisition.Mission03, 6)
player:setStorageValue(Storage.TheInquisition.Mission04, 3)
player:setStorageValue(Storage.TheInquisition.Mission05, 3)
player:setStorageValue(Storage.TheInquisition.Mission06, 3)
player:setStorageValue(Storage.TheInquisition.Mission07, 1)
--WOTE
player:setStorageValue(Storage.WrathoftheEmperor.Questline, 1)
player:setStorageValue(Storage.WrathoftheEmperor.Mission01, 3)
player:setStorageValue(Storage.WrathoftheEmperor.Mission02, 3)
player:setStorageValue(Storage.WrathoftheEmperor.Mission03, 3)
player:setStorageValue(Storage.WrathoftheEmperor.Mission04, 3)
player:setStorageValue(Storage.WrathoftheEmperor.Mission05, 3)
player:setStorageValue(Storage.WrathoftheEmperor.Mission06, 4)
player:setStorageValue(Storage.WrathoftheEmperor.Mission07, 6)
player:setStorageValue(Storage.WrathoftheEmperor.Mission08, 2)
player:setStorageValue(Storage.WrathoftheEmperor.Mission09, 2)
player:setStorageValue(Storage.WrathoftheEmperor.Mission10, 6)
--Imbuiment
player:setStorageValue(Storage.ForgottenKnowledge.Tomes, 1)
player:setStorageValue(Storage.ForgottenKnowledge.LastLoreKilled, 1)
player:setStorageValue(Storage.ForgottenKnowledge.TimeGuardianKilled, 1)
player:setStorageValue(Storage.ForgottenKnowledge.HorrorKilled, 1)
player:setStorageValue(Storage.ForgottenKnowledge.DragonkingKilled, 1)
player:setStorageValue(Storage.ForgottenKnowledge.ThornKnightKilled, 1)
player:setStorageValue(Storage.ForgottenKnowledge.LloydKilled, 1)
player:setStorageValue(Storage.ForgottenKnowledge.LadyTenebrisKilled, 1)
player:setStorageValue(Storage.ForgottenKnowledge.AccessMachine, 1)
--SearoutsYalahar
player:setStorageValue(Storage.SearoutesAroundYalahar.Darashia, 1)
player:setStorageValue(Storage.SearoutesAroundYalahar.AbDendriel, 1)
player:setStorageValue(Storage.SearoutesAroundYalahar.Venore, 1)
player:setStorageValue(Storage.SearoutesAroundYalahar.Ankrahmun, 1)
player:setStorageValue(Storage.SearoutesAroundYalahar.PortHope, 1)
player:setStorageValue(Storage.SearoutesAroundYalahar.Thais, 1)
player:setStorageValue(Storage.SearoutesAroundYalahar.LibertyBay, 1)
player:setStorageValue(Storage.SearoutesAroundYalahar.Carlin, 1)
local playerId = player:getId()
DailyReward.init(playerId)
player:loadSpecialStorage()
if player:getGroup():getId() >= 4 then
player:setGhostMode(true)
end
-- Boosted creature
player:sendTextMessage(MESSAGE_LOOT, "Today's boosted creature: " .. BoostedCreature.name .. " \
Boosted creatures yield more experience points, carry more loot than usual and respawn at a faster rate.")
-- Bestiary tracker
player:refreshBestiaryTracker()
-- Stamina
nextUseStaminaTime[playerId] = 1
-- EXP Stamina
nextUseXpStamina[playerId] = 1
-- Prey Small Window
for slot = CONST_PREY_SLOT_FIRST, CONST_PREY_SLOT_THIRD do
player:sendPreyData(slot)
end
-- New prey
nextPreyTime[playerId] = {
[CONST_PREY_SLOT_FIRST] = 1,
[CONST_PREY_SLOT_SECOND] = 1,
[CONST_PREY_SLOT_THIRD] = 1
}
if (player:getAccountType() == ACCOUNT_TYPE_TUTOR) then
local msg = [[:: Tutor Rules
1 *> 3 Warnings you lose the job.
2 *> Without parallel conversations with players in Help, if the player starts offending, you simply mute it.
3 *> Be educated with the players in Help and especially in the Private, try to help as much as possible.
4 *> Always be on time, if you do not have a justification you will be removed from the staff.
5 *> Help is only allowed to ask questions related to tibia.
6 *> It is not allowed to divulge time up or to help in quest.
7 *> You are not allowed to sell items in the Help.
8 *> If the player encounters a bug, ask to go to the website to send a ticket and explain in detail.
9 *> Always keep the Tutors Chat open. (required).
10 *> You have finished your schedule, you have no tutor online, you communicate with some CM in-game
or ts and stay in the help until someone logs in, if you can.
11 *> Always keep a good Portuguese in the Help, we want tutors who support, not that they speak a satanic ritual.
12 *> If you see a tutor doing something that violates the rules, take a print and send it to your superiors. "
- Commands -
Mute Player: /mute nick, 90 (90 seconds)
Unmute Player: /unmute nick.
- Commands -]]
player:popupFYI(msg)
end
-- Open channels
if table.contains({TOWNS_LIST.DAWNPORT, TOWNS_LIST.DAWNPORT_TUTORIAL}, player:getTown():getId())then
player:openChannel(3) -- World chat
else
player:openChannel(3) -- World chat
player:openChannel(5) -- Advertsing main
end
-- Rewards
local rewards = #player:getRewardList()
if(rewards > 0) then
player:sendTextMessage(MESSAGE_INFO_DESCR, string.format("You have %d %s in your reward chest.",
rewards, rewards > 1 and "rewards" or "reward"))
end
-- Update player id
local stats = player:inBossFight()
if stats then
stats.playerId = player:getId()
end
if player:getStorageValue(Storage.combatProtectionStorage) < 1 then
player:setStorageValue(Storage.combatProtectionStorage, 1)
onMovementRemoveProtection(playerId, player:getPosition(), 10)
end
-- Set Client XP Gain Rate
local baseExp = 100
if Game.getStorageValue(GlobalStorage.XpDisplayMode) > 0 then
baseExp = getRateFromTable(experienceStages, player:getLevel(), configManager.getNumber(configKeys.RATE_EXP))
end
local staminaMinutes = player:getStamina()
local doubleExp = false --Can change to true if you have double exp on the server
local staminaBonus = (staminaMinutes > 2400) and 150 or ((staminaMinutes < 840) and 50 or 100)
if doubleExp then
baseExp = baseExp * 2
end
player:setStaminaXpBoost(staminaBonus)
player:setBaseXpGain(baseExp)
local worldTime = getWorldTime()
local hours = math.floor(worldTime / 60)
local minutes = worldTime % 60
player:sendTibiaTime(hours, minutes)
if player:getStorageValue(Storage.isTraining) == 1 then --Reset exercise weapon storage
player:setStorageValue(Storage.isTraining,0)
end
return true
end
playerLogin:register()