Oi gente... Esse código é o seguinte... No config.lua, vc escolhe se quer abilitar a decoração de Natal ou não, e escolhe quantos % vai ser decorado... Ele funciona desta forma:
Quando vc liga o ot, as PAREDES são decoradas com items de Natal de acordo com o config.lua... :icon1:
---------
Screenshots:
Nesses dois casos eu usei 40% de decoracao pelo config.lua ;]
--------
Bom.. Vamos começar?!
Configmanager.cpp
Antes de:
m_confString[LOGIN_MSG] = getGlobalString(L, "loginmsg", "Welcome.");
Adicione:
#ifdef ZORZIN_CHRISTMAS m_confString[CHRISTMAS_DECO] = getGlobalString(L, "christmas_deco", "yes"); m_confInteger[CHRISTMAS_PERCENT] = getGlobalNumber(L, "christmas_percent", 50); #endif
----------------------------------------------
Configmanager.h
Depois de:
CONFIG_FILE = 0,
Aficione:
#ifdef ZORZIN_CHRISTMAS CHRISTMAS_DECO, #endif
---
Depois de:
LOGIN_TRIES = 0,
Adicione:
#ifdef ZORZIN_CHRISTMAS CHRISTMAS_PERCENT, #endif
----------------------------------------------
No final do Game.cpp adicione:
#ifdef ZORZIN_CHRISTMASint Game::IsWall(int ItemID){if(ItemID == 1025 || ItemID == 1030 || ItemID == 1032 || ItemID == 1036 || ItemID == 1041 || ItemID == 1043 || ItemID == 1049 || ItemID == 1054 || ItemID == 1056 || ItemID == 1060 || ItemID == 1065 || ItemID == 1067 || ItemID == 1100 || ItemID == 1105 || ItemID == 1107 || ItemID == 1111 || ItemID == 1116 || ItemID == 5010 || ItemID == 3463)return 1;else if(ItemID == 1026 || ItemID == 1028 || ItemID == 1034 || ItemID == 1037 || ItemID == 1039 || ItemID == 1045 || ItemID == 1050 || ItemID == 1052 || ItemID == 1058 || ItemID == 1061 || ItemID == 1063 || ItemID == 1069 || ItemID == 1101 || ItemID == 1103 || ItemID == 1109 || ItemID == 1112 || ItemID == 1114 || ItemID == 1118 || ItemID == 3454)return 2;elsereturn 0;}#endif
----------------------------------------------
Game.h
Depois de:
int loadMap(std::string filename, std::string filekind);
Adicione:
#ifdef ZORZIN_CHRISTMAS int IsWall(int ItemID); #endif
----------------------------------------------
IOMapOtbm.cpp
Depois de:
#include "house.h"
Adicione:
#include "configmanager.h"extern ConfigManager g_config;
---
Depois de:
if(!item){ map->setLastError(LOADMAPERROR_FAILEDTOCREATEITEM, nodeItem); return false; }
Adicione:
#ifdef ZORZIN_CHRISTMAS short iswall = g_game.IsWall(item->getID()); if(g_config.getString(ConfigManager::CHRISTMAS_DECO) == "yes" && (iswall == 1 || iswall == 2)) addChristmasDecoration(iswall, tile); #endif
---
No final do IOMapOtbm.cpp adicione:
#ifdef ZORZIN_CHRISTMASvoid IOMapOTBM::addChristmasDecoration(short IsWALL, Tile* tile){ int percent = 100/g_config.getNumber(ConfigManager::CHRISTMAS_PERCENT); int x = random_range(1,percent); short itemtype = random_range(1,3); int item_id = 0; switch(IsWALL) { case 1: if(x == 1 && itemtype == 1) item_id = 6517; else if(x == 1 && itemtype == 2) item_id = 6518; else if(x == 1 && itemtype == 3) item_id = 6519; break; case 2: if(x == 1 && itemtype == 1) item_id = 6513; else if(x == 1 && itemtype == 2) item_id = 6514; else if(x == 1 && itemtype == 3) item_id = 6515; break; default: break; } if(item_id != 0) tile->__internalAddThing(Item::CreateItem(item_id)); }#endif
----------------------------------------------
IoMapOtbm.h
Depois de:
~IOMapOTBM(){};
Adicione:
#ifdef ZORZIN_CHRISTMAS void addChristmasDecoration(short IsWALL, Tile* tile); #endif
----------------------------------------------
Vai em Project Options(Alt+P) e em Parameters -> C++ Compiler adiciona:
-DZORZIN_CHRISTMAS
----------------------------------------------
Por último, adicione isso no config.lua:
--------------------------------------------- Decoração de Natal by Zorzin ----------------------------------------------- Decorar as paredes com items de natal? christmas_deco = "yes"-- Quantos % decorar? (pode ser de 1 a 100)christmas_percent = 20-----------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Credits: Zorzin
Se quiserem que as paredes sejam decoradas 100% (todas) coloque christmas_percent = 100, e por ai vai....
Se quiser desativar a decoração, coloque christmas_deco = "no"...
É isso ae
Espero que tenham gostado =D
Qualquer coisa se quiser algum code, podem pedir pra mim
OBS: Vocês precisam de um items.otb do tibia 7.9 e de um ot 7.9 pra funcionar esse código.. Caso precisarem do items.otb pra 7.9, ai vai o link:
http://rapidshare.com/files/8080914/items_otb.zip.html
Obrigado,
Zorzin