ZO

[7.9] Decorar As Paredes Com Items De Natal

Por Zorzin, 19 de dez. de 2006 em Linguagens de Programação

otserv
tibia
30
4.9k
ZorzinZ
19 de dezembro de 2006 às 00:46

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:

feliznatalfb7.jpg

merrychristmasov9.jpg

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"... :bigsmile:

É isso ae :D

Espero que tenham gostado =D

Qualquer coisa se quiser algum code, podem pedir pra mim :D

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

Editado Dezembro 21 por Zorzin

tibiaa4eT
19 de dezembro de 2006 às 00:59

o0

belo code

se num sabe faze party system ou bed :p ?

seria mto util :D

flws :bye:

AblankA
19 de dezembro de 2006 às 01:56

cara code muito loko mt obrigado ae :)

ZorzinZ
19 de dezembro de 2006 às 02:28

@tibia4e

Sei sim =)

Com o tempo vou criando codes e postando eles aqui...

Vou ver se faço o próximo code: Bed System pra New SVN ;D

@Todos

Muito Obrigado pelos comments e que vocês tenham um FELIZ NATAL! Ho Ho HO ehuasiehoehe =)

Obrigado,

Zorzin

korear IIIK
19 de dezembro de 2006 às 03:02

Show de bola porem meio complicado se tivesse uma ss ja seria bem melhor hehe

nem vo tentar por aki senao sei la da um bug ainda eheh

laduxituL
19 de dezembro de 2006 às 12:52

Em q ot c colokou esse code???

AblankA
19 de dezembro de 2006 às 14:30

@up

Este code só funciona em Otservers 7.9, da nov SVN.

No XikeOts ele funciona.

ZorzinZ
19 de dezembro de 2006 às 15:31
Show de bola porem meio complicado se tivesse uma ss ja seria bem melhor hehe

nem vo tentar por aki senao sei la da um bug ainda eheh

 

 

 

Oi, tipo... Tem 2 Screenshots lá emcima do post, depois você da uma olhada lá.. =)

E outra... o code num tem bug nenhum ;D

Ah uma coisa.... Esse codigo funciona soh em Ots 7.9, por exemplo: XikeOTS, New SVN, etc... =)

@Todos,

Obrigado pelos comments, depois irei criar mais alguns codes e postar aqui pra vocês x)

Obrigado,

Zorzin

KélvynK
19 de dezembro de 2006 às 16:00

belo code zorzin (=, continua assim hehehe... achei muito legal

Flws

laduxituL
19 de dezembro de 2006 às 17:52

Muito bom o code mamow ja ta add aki...continue assim =p

shipdestroiS
20 de dezembro de 2006 às 04:54

isso ae cara, espirito natalino ^^

parabens code muito util, assim torna os ot mais parecidos com tibia rl ^^

feliz natal pra vc ae cara.

flw

denilson6D
20 de dezembro de 2006 às 19:17

vc tem o dom kara... vo enfeita meu ot ae thx

Feliz Natal !!! HoHoHoHoHoHo

velokitV
20 de dezembro de 2006 às 19:18

Aew que legal.

Vamos esfeitar os ots com enfeites de natal.

Parábens mano Rox a lot

bolsaB
22 de dezembro de 2006 às 13:20

AEw COdE 10 ~~~ † "COntInUe aSsIm" .....

c tEM Um DOm ashsuhauishSIUN XD

fLws ~~~~~

lithiumL
23 de dezembro de 2006 às 23:34

ae esse funcionou agora do randomoutfit não funcionou direito :/