9.x - 10.x GLOBAL FULL [TFS 1.2 - Reward System, BattleField Event, Seacrest Ground] EXCLUSIVO
-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por Glacial
Boa tarde galera, tudo bem?
Meu nome é Gustavo/Glacial, gostaria de compartilhar com a comunidade meu projeto solo no RME 3.5 /Client 10.98 do Tibia.
Glacial City, com houses, hunts, lojas, quests, bosses e depot.
Os teleportes já estão redirecionados, falta apenas itens nos baús das quests.
Espero que curtam e podem baixar pra colocar no ot de vocês!
Atualização versão 2.0:
- Houses na cidade
- Hive Lair (Lady Bug)
- Silencer & Frazzle/Guzzlemaw Hunt
- Drakens + Demons Hunt (área maior)
Links MediaFire e VirusTotal:
Download Mapas: https://www.mediafire.com/folder/hz0q694t9nk86/Mapas_Glacial
versão 1.0 Virus Total: https://www.virustotal.com/gui/file/b4e94903752e24aba63b291f9929f15f6bd7f4feb44d5a1f42ec3d755ee7977e?nocache=1
versão 2.0 Virus Total: https://www.virustotal.com/gui/file/d88ae087e966bed6e2f2348f31246c1858831c1fb13d4e8613ba98f6ede37503?nocache=1
Segue fotos em anexo.
-
Por Jaurez
Me pediram e aí está, todos juntos em um arquivo.
Atlantyda,
Ethno,
Gengia,
Ghala,
Ghenov,
Oken,
Pyre,
Vikia.
Download:
Scan:
Fotos
Créditos 5mok3 pelo mapa Atlantyda,
Tylik pelos outros mapas.
@Reupload
https://mega.nz/file/JKogHATS#pApVHybjYNOWJ4gNERFVA541axhXzbXSCthzEKORtfY
-
Por Glacial
Boa tarde galera, tudo bem?
Meu nome é Gustavo/Glacial, gostaria de compartilhar com a comunidade meu projeto solo no RME 3.5 /Client 10.98 do Tibia.
Espero que curtam ai e podem baixar pra colocar no OT de vocês caso queiram.
Download Mapas: https://www.mediafire.com/folder/hz0q694t9nk86/Mapas_Glacial
versão 1.0 Virus Total: https://www.virustotal.com/gui/file/b4e94903752e24aba63b291f9929f15f6bd7f4feb44d5a1f42ec3d755ee7977e?nocache=1
versão 2.0 Virus Total: https://www.virustotal.com/gui/file/d88ae087e966bed6e2f2348f31246c1858831c1fb13d4e8613ba98f6ede37503?nocache=1
Fotos e detalhes no post atualizado e continuação do projeto:
Obrigado pela atenção!
Att.
Gustavo Glacial.
-
Por GuiAmaro
,
Download: Clique Aqui
Scan: Clique Aqui
Descrição: Ilha completinha para vocês galera os que quiserem acompanhar o show-off do Mapa segue o video abaixo. Gosto de criar um mapa depois de forjar um RPG curto sobre o local para despertar mais criatividade na hora de criar os locais e nesta cidade eu me baseei na história de Moisés e as 10 pragas do Egito do livro Êxodo da Bíblia onde as caves são locais devastado por um poder Divino que castigou seres que adoravam coisas que não importavam e traziam desgraça aos locais e as pessoas boas que habitavam a Ilha, e o castigo levou tudo isso que danificava o lado bom da ilha ao subsolo dela e o que era bom e gracioso ficou na parte do térreo da Ilha. Eu dei referência a duas das 10 pragas do Egito em um andar e é representada pela praga que torno as águas do Egito em sangue e no andar abaixo o minimap desenha uma Rã que foi uma das pragas que caiu sobre a nação de Ramsés II.
Acompanhem o video, se puderem compartilhem com os amigos de vocês que se interessem por mapas únicos. Fiz o mapa do zero durante 1 mês nas minhas horas vagas. Dentro do canal vocês encontrarão vídeos de como eu mapeio, outra cidade e uma hunt, quem quiser se inscrever para acompanhar meus conteúdos agradeço. Ficaria mais grato ainda se vocês curtirem e compartilharem o video em outras comunidades que não tenho acesso. Mapeio tem 10 anos e quero enriquecer bastante a área de mapping da comunidade.
REPORTEM BUGS
-
Por kk4444
Se eu não poder fazer isso por favor me avisem aqui no tópico que eu retiro. Créditos SOMENTE do: cbrm (OTLand) Tópico Oficial:https://otland.net/threads/reward-chest-boss-reward-tfs-1-2.233397/ Tested on TFS 1.2, 10.77/78
Based on http://www.tibia.com/news/?subtopic=newsarchive&id=2486 Oque tem?
To-do
Changelog
Comentários
Agradecimentos especiais para
Instruções de instalação
Execute a query na database
CREATE TABLE IF NOT EXISTS `player_rewardchest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `player_id` int(11) NOT NULL, `reward` text NOT NULL, `date` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), FOREIGN KEY (`player_id`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB; src/const.h
Abaixo...
ITEM_MARKET = 14405 ...Adicione:
ITEM_REWARD_CHEST = 21584, REWARD_CHEST_DEPOT = 99, src/depotchest.h
Abaixo...
explicit DepotChest(uint16_t _type);
...Adicione:
uint32_t getDepotId() const { return depotId; } void setDepotId(uint32_t id) { depotId = id; }
Abaixo...
uint32_t maxDepotItems; ...Adicione:
uint32_t depotId; src/depotchest.cpp
Abaixo...
maxDepotItems = 1500; ...Adicione:
depotId = 0; Acima...
return Container::queryAdd(index, thing, count, flags, actor); ...Adicione:
if (actor != nullptr && getDepotId() == REWARD_CHEST_DEPOT) { return RETURNVALUE_NOTPOSSIBLE; } src/depotlocker.h
Acima...
//cylinder implementations ...Adicione:
void setMaxLockerItems(uint32_t maxitems) { maxSize = maxitems; } src/luascript.h
Acima...
static int luaContainerGetSize(lua_State* L); ...Adicione:
static int luaContainerGetContentDescription(lua_State* L); src/luascript.cpp
Acima...
registerMethod("Container", "getSize", LuaScriptInterface::luaContainerGetSize); ...Adicione:
registerMethod("Container", "getContentDescription", LuaScriptInterface::luaContainerGetContentDescription); Acima...
int LuaScriptInterface::luaContainerGetSize(lua_State* L) ...Adicione:
int LuaScriptInterface::luaContainerGetContentDescription(lua_State* L) { // container:getContentDescription() Container* container = getUserdata<Container>(L, 1); if (container) { std::ostringstream ss; ss << container->getContentDescription(); pushString(L, ss.str()); } else { lua_pushnil(L); } return 1; } src/actions.cpp
Troque:
//depot container if (DepotLocker* depot = container->getDepotLocker()) { DepotLocker* myDepotLocker = player->getDepotLocker(depot->getDepotId()); myDepotLocker->setParent(depot->getParent()->getTile()); openContainer = myDepotLocker; player->setLastDepotId(depot->getDepotId()); } else { openContainer = container; } Por:
//reward chest and depot container if (item->getID() == ITEM_REWARD_CHEST) { DepotLocker* myRewardChest = player->getRewardChest(); myRewardChest->setParent(item->getTile()); openContainer = myRewardChest; player->setLastDepotId(REWARD_CHEST_DEPOT); } else if (DepotLocker* depot = container->getDepotLocker()) { DepotLocker* myDepotLocker = player->getDepotLocker(depot->getDepotId()); myDepotLocker->setParent(depot->getParent()->getTile()); openContainer = myDepotLocker; player->setLastDepotId(depot->getDepotId()); } else { openContainer = container; } src/player.h
Abaixo...
DepotLocker* getDepotLocker(uint32_t depotId); ...Adicione:
DepotLocker* getRewardChest(); src/player.cpp
Abaixo...
DepotChest* depotChest = new DepotChest(ITEM_DEPOT); ...Adicione:
depotChest->setDepotId(depotId); Acima...
void Player::sendCancelMessage(ReturnValue message) const ...Adicione:
DepotLocker* Player::getRewardChest() { auto it = depotLockerMap.find(REWARD_CHEST_DEPOT); if (it != depotLockerMap.end()) { inbox->setParent(it->second); return it->second; } DepotLocker* rewardChest = new DepotLocker(ITEM_LOCKER1); rewardChest->setDepotId(REWARD_CHEST_DEPOT); rewardChest->setMaxLockerItems(1); rewardChest->internalAddThing(getDepotChest(REWARD_CHEST_DEPOT, true)); depotLockerMap[REWARD_CHEST_DEPOT] = rewardChest; return rewardChest; } On player.cpp, container.cpp, inbox.cpp
Change:
if (!item->isPickupable()) { Por:
if (item->getID() != 21518 && !item->isPickupable()) { Adicione em @ data/actions/actions.xml
<!-- Reward Chest System --> <action itemid="21584" script="reward_chest.lua"/> <action actionid="21584" script="reward_chest.lua"/> Crie @ data/actions/scripts/reward_chest.lua
function onUse(player, item, fromPosition, target, toPosition, isHotkey) --Reward Chest if item:getId() == 21584 then if player:getExhaustion(REWARD_CHEST.STORAGE) > 0 then return player:sendCancelMessage('You need to wait ' .. string.diff(player:getStorageValue(REWARD_CHEST.STORAGE)-os.time()) .. ' before using this chest again.') end player:updateRewardChest() --Boss Corpse elseif item:getActionId() == 21584 then local reward = REWARD_CHEST.LOOT[tonumber(item:getAttribute('text'))][player:getGuid()] if reward ~= nil then local rewardBag = Container(doCreateItemEx(REWARD_CHEST.CONTAINER, 1)) addContainerItems(rewardBag, reward) if player:getCapacity() < rewardBag:getCapacity() then return player:sendCancelMessage(RETURNVALUE_NOTENOUGHCAPACITY) end if player:addItemEx(rewardBag, false) == RETURNVALUE_NOERROR then REWARD_CHEST.LOOT[tonumber(item:getAttribute('text'))][player:getGuid()] = nil player:sendCancelMessage('You have picked up a reward container.') else player:sendCancelMessage(RETURNVALUE_NOTENOUGHROOM) return true end end end return false end Adicione @ data/creaturescripts/creaturescripts.xml
<event type="kill" name="RewardChest" script="reward_chest.lua"/> Registre em @data/creaturescripts/scripts/login.lua
player:registerEvent("RewardChest") Adicione @ data/items/items.xml
<item id="21518" article="a" name="reward container"> <attribute key="weight" value="1800" /> <attribute key="containersize" value="24" /> <attribute key="slotType" value="backpack" /> </item> <item id="21584" article="a" name="reward chest"> <attribute key="type" value="depot" /> <attribute key="containerSize" value="1" /> <attribute key="description" value="This chest contains your rewards earned in battles." /> </item> Add @ data/lib/core/player.lua
function Player.setExhaustion(self, value, time) return self:setStorageValue(value, time + os.time()) end function Player.getExhaustion(self, value) local storage = self:getStorageValue(value) if storage <= 0 then return 0 end return storage - os.time() end Crie em @ data/creaturescripts/scripts/reward_chest.lua
(download anexado nesse post)
Download
RELEMBRANDO CRÉDITOS APENAS DO CBRM DA OTLAND
-
Posts Recomendados
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.