Fala Galera! =D
Bem, depois de longos meses com o mesmo visual e uma super desorganização no Blog chegou a hora de anunciar mudanças, organização e o por último mas não menos importante atualização.
Em breve o Blog vai receber novo visual e organização do seu conteúdo, assim que sobrar um tempo eu começo a mexer no Blog, algumas alterações estão previstas para hoje, como o novo layout. A nossa equipe quer trazer mais conteúdo e qualidade para o Blog que está praticamente abandonado e cheio de erros de português e bugs, as atualizações também vão servir para corrigir essas coisas.
Atualização
O novo Layout já foi aplicado.
O artigo "Criando seu OT Serv" já foi refeito
A partir de hoje a maioria dos posts será feito no Fórum.
Declaro hoje, 06 de Setembro de 2008 ás 17:50 Hrs finalizadas as manutenções no Mundo Tibia Br OT Serv.
Aguardem, essas e outras novidades estão chagando!
Sua Equipe Mundo Tibia Br Ot Serv
terça-feira, 26 de agosto de 2008
quarta-feira, 6 de agosto de 2008
Criando Spells perfeitas!
Vamos supor que você queira fazer uma spell diferente, tipo o do Banshe sonar e tambem queria com as areas da ultimate explosion!
1 Passo localize a magia banshe sonnar:

2 Passo copie a magia exevo gran mas vis e cole na mesma pasta e renomeie ele para o que você quizer eu renomiei para exevo gran mas sonar!

3 Passo abra a magia banshe sonnar e exevo gran mas sonar no bloco de notas.Depois você substitui o ATTACK_PHYSICAL pelo ATTACK_FIRE o NM_ME_EXPLOSION_AREA pelo NM_ME_SOUND e o NM_ME_DRAW_BLOOD pelo NM_ME_SOUND

A parte da criação da magia está acabada. Você tambem pode mudar o hit minimo e maximo da magia em Mingdamage e Maxdamage.
Agora você vai colocar a magia em seus spells.xml!

Agora você da CTRL+C na magia Ultimate Explosion:

Agora você ira no final das spells para player se não me engano a ultima é utana vid embaxo de utana vid você cola a magia ultimate explosion e renomeia para Ultimate Sonar ou para qual você preferir ai você coloca em words"exevo gran mas sonar" que é o nome da magia e ai você substitui o quando de mana que vai gasta o ml isso é do seu gosto depois feche e de OK!!

Sua spell está feita.
1 Passo localize a magia banshe sonnar:

2 Passo copie a magia exevo gran mas vis e cole na mesma pasta e renomeie ele para o que você quizer eu renomiei para exevo gran mas sonar!

3 Passo abra a magia banshe sonnar e exevo gran mas sonar no bloco de notas.Depois você substitui o ATTACK_PHYSICAL pelo ATTACK_FIRE o NM_ME_EXPLOSION_AREA pelo NM_ME_SOUND e o NM_ME_DRAW_BLOOD pelo NM_ME_SOUND

A parte da criação da magia está acabada. Você tambem pode mudar o hit minimo e maximo da magia em Mingdamage e Maxdamage.
Agora você vai colocar a magia em seus spells.xml!

Agora você da CTRL+C na magia Ultimate Explosion:

Agora você ira no final das spells para player se não me engano a ultima é utana vid embaxo de utana vid você cola a magia ultimate explosion e renomeia para Ultimate Sonar ou para qual você preferir ai você coloca em words"exevo gran mas sonar" que é o nome da magia e ai você substitui o quando de mana que vai gasta o ml isso é do seu gosto depois feche e de OK!!

Sua spell está feita.
Svn, Saiba Tudo Sobre
1 - O que é SVN, Distros?
SVN quer dizer SubVersion, não passa apenas do sistema que o grupo oficial que
desenvolve o OTServ utiliza para lançar e controlar suas versões, a partir deste sistema é
possivel fazer o download de uma versão especifica, antiga, ou até de versões
BETA dos sistemas. O termo Distro é utilizado para chamar as sources de terceiros,
baseadas no código principal da SVN, normalmente esses grupos adicionam vários códigos
feitos pela comunidade, corrigem erros, e lançam para o publico.


Após isso clique em OK, Pronto, você esta baixando as Sources do seu futuro OT Serv.
SVN quer dizer SubVersion, não passa apenas do sistema que o grupo oficial que
desenvolve o OTServ utiliza para lançar e controlar suas versões, a partir deste sistema é
possivel fazer o download de uma versão especifica, antiga, ou até de versões
BETA dos sistemas. O termo Distro é utilizado para chamar as sources de terceiros,
baseadas no código principal da SVN, normalmente esses grupos adicionam vários códigos
feitos pela comunidade, corrigem erros, e lançam para o publico.
2.1 - Instalação do TortoiseSVN
Instalar o TortoiseSVN é como se você estivesse instalando qualquer outro aplicativo.
Após o termino da instalação é pedido para que você reinicie o seu computador, eu acho
desnecessário, apenas fazer um logoff do seu usuário e entrar denovo já resolve, afinal,
ele precisa apenas recarregar o 'explorer.exe'.

2.2 - Configuração do TortoiseSVN
Clique com o botão direito do mouse em uma área livre da sua área de trabalho, vá no menu
'TortoiseSVN' e após em Settings, logo de cara você pode trocar o idioma do seu TortoiseSVN para Português.
Desmarque a caixa logo abaixo desta opção, para que não fique aparecendo mensagens de update
toda semana. Pronto, o básico está configurado, sinta-se livre para mexer em outra coisa se quiser.
Após o termino da instalação é pedido para que você reinicie o seu computador, eu acho
desnecessário, apenas fazer um logoff do seu usuário e entrar denovo já resolve, afinal,
ele precisa apenas recarregar o 'explorer.exe'.

2.2 - Configuração do TortoiseSVN
Clique com o botão direito do mouse em uma área livre da sua área de trabalho, vá no menu
'TortoiseSVN' e após em Settings, logo de cara você pode trocar o idioma do seu TortoiseSVN para Português.
Desmarque a caixa logo abaixo desta opção, para que não fique aparecendo mensagens de update
toda semana. Pronto, o básico está configurado, sinta-se livre para mexer em outra coisa se quiser.

2.3 - Download das Sources
Vá à pasta do seu futuro Servidor, crie uma pasta chamada "Sources", uma chamada "Objetos"
e outra "Servidor", clique com o botão direito na pasta "Sources", e após clique em "SVN Checkout".
No dialogo que aparece, no primeiro campo você deve colocar o seguinte endereço:
"https://opentibia.svn.sourceforge.net/svnroot/opentibia/otserv/trunk"
Vá à pasta do seu futuro Servidor, crie uma pasta chamada "Sources", uma chamada "Objetos"
e outra "Servidor", clique com o botão direito na pasta "Sources", e após clique em "SVN Checkout".
No dialogo que aparece, no primeiro campo você deve colocar o seguinte endereço:
"https://opentibia.svn.sourceforge.net/svnroot/opentibia/otserv/trunk"

Após isso clique em OK, Pronto, você esta baixando as Sources do seu futuro OT Serv.

Aprenda a fazer novas Quests
Primeiro, você vai na pasta de seu OT, data, actions, scripts, e vai no chest.lua, manda editar e vai aparecer isso:
function onUse(cid, item, frompos, item2, topos)
[SIZE=7]-- bright sword quest
if item.uid == 5001 then
queststatus = getPlayerStorageValue(cid,5001)
if queststatus == -1 then
if getPlayerLevel(cid) >= 20 then
doPlayerSendTextMessage(cid,22,"You have found Bright Sword.")
doPlayerAddItem(cid,3233,1)
setPlayerStorageValue(cid,5001,1)
else
doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.")
end
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
Isso eh uma quest, a da bright sword, tem muitas quests lah, vc vai na ultima e copia, da enter e cola, ai vai aparece lah uns negocio q vc tem q mudar,eh muito importante!
Exemplo: -- 10k quest
elseif item.uid == 5026 then(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999)
queststatus = getPlayerStorageValue(cid,5026)(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999, muda isso tbm
if queststatus == -1 then(Dexa assim)
if getPlayerLevel(cid) >= 15 then(Level requerido para pegar o prêmio) doPlayerSendTextMessage(cid,22,"You have found 10k.")(Mensagem que aparece na tela quando o player completa a quest) doPlayerAddItem(cid,2981,1)(2981, id do item que vai ganhar na questsoh ir no itens.xmle editar e procurar com ctrl+f) setPlayerStorageValue(cid,5026,1) (5026,novamente o numero da quest) else
doPlayerSendTextMessage(cid,22,"You need level 15 to get prize.") (Mensagem que aparece quando o player naum tem o level necessário para completar a quest) end
else
doPlayerSendTextMessage(cid,22,"Its empty.") (Mensagem que aparece quando o player ja completou a quest) end
end
return 1
end (O Primeiro End,eh o final da quest, mas kada vez q vc criar uma nova quest tem q deletar os proximos end e o return 1 e colocar na ordem no final dessa quest)
Bom, depois disso, abra o mapeditor, colokeos respawms dos bixos desejados pra quest, e o bau, clike com o botao direito no baú, e vai em poperties, coloca lah:
Action id: 5025 (ou o numero da quest)
Unique id: 5025 (ou o numero da quest)
Entao feche, e salve, abra seu server e va no baú e pegue o item, depois de matar os bixos eh claro
/smile.gif" onload="resize('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif')" src="http://www.xtibia.com/forum/style_emoticons/%3C#EMO_DIR#%3E/smile.gif" title="Clique para ampliar" onclick="fullScreen('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif')"> ,
Bom, espero ter ajudado
Atenciosamente, Rafix
/biggrin.gif" onload="resize('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/biggrin.gif')" src="http://www.xtibia.com/forum/style_emoticons/%3C#EMO_DIR#%3E/biggrin.gif" title="Clique para ampliar" onclick="fullScreen('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/biggrin.gif')">
Qualquer duvida posta ae!
----------------------Edit---------------------
Como fazer quest de escolha (OPCIONAL)
Agora para quem quier aprender como faz baus estilo o da annihilator, 2 baus ou mais, e vc só pode pegar um item, irei ensinar agora. (a pedidos)
é bem simples, vou tentar explicar como funfa e vou postar exemplo.
nao tem o script inicial postado aqui? pronto, se for 2 baus vc junta 2 scripts em um só, se for 4, 4 scripts em um só, sendo que quando se faz isso se adiciona else antes dos outros if.
vou fazer um exemplo com 3 baus ok?
/smile.gif" onload="resize('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif')" src="http://www.xtibia.com/forum/style_emoticons/%3C#EMO_DIR#%3E/smile.gif" title="Clique para ampliar" onclick="fullScreen('http://www.xtibia.com/forum/style_emoticons/<#EMO_DIR#>/smile.gif')">
vamos lá.
-- Tutorial de Quest by Neto =] --
function onUse(cid, item, frompos, item2, topos)
if item.uid == X¹ then --primeiro bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z¹")
item_uid = doPlayerAddItem(cid,ID¹,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
elseif item.uid == X² then --segundo bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z²")
item_uid = doPlayerAddItem(cid,ID²,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
elseif item.uid == X³ then --terceiro bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z³")
item_uid = doPlayerAddItem(cid,ID³,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
else
return 0
end
return 1
end
Para configurar é bem simples, é igual a um script normal, vc tem que preencher as variaves normalmente.
nota: vc vai notar uma diferença neste script, alem do elseif, vc pode ver que tem variaves diferentes assim: X¹, X² e X³.
vou ensinar como vc vai configurar.
o X é unique id, vc vai configurar como em um script normal, só que x¹ é diferente de x² que é diferente de x³.
O mesmo se aplica aos Z's, aos ID's, note que nao tem varios "Y", ou seja, o Y do primeiro bau é = ao do segundo e = ao do terceiro.
--Partindo para o exemplo pratico--
eu aconselho vc a fazer os UNIQUEIDS seguidos como no exemplo pratico.
X¹ = 3000
X² = 3001
X³ = 3002
Y = 3000.
Z¹ e ID¹ = Magic Sword (2400)
Z² e ID² = SCA (2431)
Z³ e ID³ = TH (2421)
PS: todos estes ids sao para 7.4, nao sei os de 7.5 decorados.
--Substituindo as variaveis--
-- Tutorial de Quest by Kinho =] --
function onUse(cid, item, frompos, item2, topos)
if item.uid == 3000 then --primeiro bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword")
item_uid = doPlayerAddItem(cid,2400,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
elseif item.uid == 3001 then --segundo bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Stonecutter Axe")
item_uid = doPlayerAddItem(cid,2431,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
elseif item.uid == 3002 then --terceiro bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Thunder Hammer")
item_uid = doPlayerAddItem(cid,2421,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
else
return 0
end
return 1
end
Boa Sorte!
function onUse(cid, item, frompos, item2, topos)
[SIZE=7]-- bright sword quest
if item.uid == 5001 then
queststatus = getPlayerStorageValue(cid,5001)
if queststatus == -1 then
if getPlayerLevel(cid) >= 20 then
doPlayerSendTextMessage(cid,22,"You have found Bright Sword.")
doPlayerAddItem(cid,3233,1)
setPlayerStorageValue(cid,5001,1)
else
doPlayerSendTextMessage(cid,22,"You need level 20 to get prize.")
end
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
Isso eh uma quest, a da bright sword, tem muitas quests lah, vc vai na ultima e copia, da enter e cola, ai vai aparece lah uns negocio q vc tem q mudar,eh muito importante!
Exemplo: -- 10k quest
elseif item.uid == 5026 then(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999)
queststatus = getPlayerStorageValue(cid,5026)(5026=numero da quest,tipo se a ultima foi 5024, a proxima eh 5025, lembrando q eh ateh 5999, muda isso tbm
if queststatus == -1 then(Dexa assim)
if getPlayerLevel(cid) >= 15 then(Level requerido para pegar o prêmio) doPlayerSendTextMessage(cid,22,"You have found 10k.")(Mensagem que aparece na tela quando o player completa a quest) doPlayerAddItem(cid,2981,1)(2981, id do item que vai ganhar na questsoh ir no itens.xmle editar e procurar com ctrl+f) setPlayerStorageValue(cid,5026,1) (5026,novamente o numero da quest) else
doPlayerSendTextMessage(cid,22,"You need level 15 to get prize.") (Mensagem que aparece quando o player naum tem o level necessário para completar a quest) end
else
doPlayerSendTextMessage(cid,22,"Its empty.") (Mensagem que aparece quando o player ja completou a quest) end
end
return 1
end (O Primeiro End,eh o final da quest, mas kada vez q vc criar uma nova quest tem q deletar os proximos end e o return 1 e colocar na ordem no final dessa quest)
Bom, depois disso, abra o mapeditor, colokeos respawms dos bixos desejados pra quest, e o bau, clike com o botao direito no baú, e vai em poperties, coloca lah:
Action id: 5025 (ou o numero da quest)
Unique id: 5025 (ou o numero da quest)
Entao feche, e salve, abra seu server e va no baú e pegue o item, depois de matar os bixos eh claro
Bom, espero ter ajudado
Atenciosamente, Rafix
Qualquer duvida posta ae!
----------------------Edit---------------------
Como fazer quest de escolha (OPCIONAL)
Agora para quem quier aprender como faz baus estilo o da annihilator, 2 baus ou mais, e vc só pode pegar um item, irei ensinar agora. (a pedidos)
é bem simples, vou tentar explicar como funfa e vou postar exemplo.
nao tem o script inicial postado aqui? pronto, se for 2 baus vc junta 2 scripts em um só, se for 4, 4 scripts em um só, sendo que quando se faz isso se adiciona else antes dos outros if.
vou fazer um exemplo com 3 baus ok?
vamos lá.
-- Tutorial de Quest by Neto =] --
function onUse(cid, item, frompos, item2, topos)
if item.uid == X¹ then --primeiro bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z¹")
item_uid = doPlayerAddItem(cid,ID¹,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
elseif item.uid == X² then --segundo bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z²")
item_uid = doPlayerAddItem(cid,ID²,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
elseif item.uid == X³ then --terceiro bau--
queststatus = getPlayerStorageValue(cid,Y)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Z³")
item_uid = doPlayerAddItem(cid,ID³,Q)
setPlayerStorageValue(cid,Y,1)
else
doPlayerSendTextMessage(cid,22,"O baú está vazio.")
end
else
return 0
end
return 1
end
Para configurar é bem simples, é igual a um script normal, vc tem que preencher as variaves normalmente.
nota: vc vai notar uma diferença neste script, alem do elseif, vc pode ver que tem variaves diferentes assim: X¹, X² e X³.
vou ensinar como vc vai configurar.
o X é unique id, vc vai configurar como em um script normal, só que x¹ é diferente de x² que é diferente de x³.
O mesmo se aplica aos Z's, aos ID's, note que nao tem varios "Y", ou seja, o Y do primeiro bau é = ao do segundo e = ao do terceiro.
--Partindo para o exemplo pratico--
eu aconselho vc a fazer os UNIQUEIDS seguidos como no exemplo pratico.
X¹ = 3000
X² = 3001
X³ = 3002
Y = 3000.
Z¹ e ID¹ = Magic Sword (2400)
Z² e ID² = SCA (2431)
Z³ e ID³ = TH (2421)
PS: todos estes ids sao para 7.4, nao sei os de 7.5 decorados.
--Substituindo as variaveis--
-- Tutorial de Quest by Kinho =] --
function onUse(cid, item, frompos, item2, topos)
if item.uid == 3000 then --primeiro bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Magic Sword")
item_uid = doPlayerAddItem(cid,2400,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
elseif item.uid == 3001 then --segundo bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Stonecutter Axe")
item_uid = doPlayerAddItem(cid,2431,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
elseif item.uid == 3002 then --terceiro bau--
queststatus = getPlayerStorageValue(cid,3000)
if queststatus == -1 or queststatus == 0 then
doPlayerSendTextMessage(cid,22,"Você achou um(a) Thunder Hammer")
item_uid = doPlayerAddItem(cid,2421,1)
setPlayerStorageValue(cid,3000,1)
else
doPlayerSendTextMessage(cid,22,"Vc ja pegou um dos 3 items.")
end
else
return 0
end
return 1
end
Boa Sorte!
Assinar:
Postagens (Atom)