Bom, fiz 5 spells novas, aconselho que sejam utilizadas por lvls 400+ para ot não muito bugado... mas qualquer coisa so vocês arrumarem 1° magia e de Mages a 2° e 5° e para pally a 3° e 4° são para bloker's
1° exevo gran mix triplese
2° enchanted triplese
3° exori triple bash
4° exevo gran mas bash
5° exevo san condition
Se quiserem postar em outro lugar fiquem sussa so não esqueção dos meus creditos!!! gostou curte ae!
Saudações meus jovens, durante um bom tempo estudei Lua e usei meus conhecimentos para ajudár-los e até mesmo para trabalhar. Nisto, gostaria de repassar meus conhecimentos para todos vocês, assim podendo criar seus próprios códigos em Lua.
Aprender novas linguagens de programação, no caso Lua, nos abre muitas portas e estou disposto a ser um bom professor aos inscritos.
Neste tópico faremos uma avaliação entre os candidatos, e entre eles, apenas 10 serão escolhidos para participar desta primeira Turma da Escolinha de Scripting. Os critérios de avaliação serão:
- Idade;
- Ter uma conta no Skype;
- Conhecimento em Lua.
Os interessados a se candidatar deverão preencher as seguintes informações abaixo e postá-las no tópico:
Nome:
Idade:
Skype:
Cidade aonde moro:
Conhecimento em Lua:
Quanto tempo fico disponível / online:
Por que quero aprender Lua:
Algum scripter que você procura se inspirar:
Ao preencher, poste no tópico e boa sorte. Neste tópico se aplicam as regras gerais do fórum, favor não floodar, utilizem o mesmo apenas para se inscrever.
Antes de tudo o primeiro sistema de TPs falantes foi eu que fiz em um server chamado limao server, em seguida postei usando addEvent. Depois fiz com globalevent igual a um cara de outro topico. ai depois disso espalharam-se rippings e versoes melhoradas. entao lancei a final bem melhor que dessa vez vc nao é limitado a 9 letras por TP, dessa vez vc pode por seu texto, (ocorre algumas pequenas falhas no texto espaços amais mais é so editar)
Bem essa é a versão 3.0 do meu script que mais fem sucesso e mais foi ripado, depois de uma leve discução em otro forum por causa de umas 5 versoes dele ripado (a 1.0 e a 2.0) decidi lançar logo a 3.0 para calar a boca desse povo ._.'
A diferença desse para o outro que este pode rodar em qualquer vsersao, de otservers 8.1 a otserver de hoje, usando globalevent ou nao. e tambem pode-se rodar funções, existe a possibilidade de por chance em cada efeito para nao sair sempre, tambem a possibilidade de mandar efeitos de texto com mais de 9 letras assim:
Vou dividir o topico em 2 partes, a primeira para servidores com globalevent, e a segunda para os que nao tem, e no final ensino a configurar.
Com globalevent
Bom ja que seu servidor tem globalevest adcione esta tag no globalevents.xml:
<globalevent name="show" interval="1" script="show.lua"/>
Feito isso crie o arquivo show.lua e nele ponha isso:
----------------------------
--------Talkting TPS 3.0 ---
---------- By mock ---------
--dont remove the credists--
----------------------------
clolortypes = {
{kind=2,chance=100,{x=100,y=100,z=7},'Haha i can say ma ny words with this script ;D ---By mock ',255}, -- kind (text), chance 100%,pos,Text,color
{kind=3,chance=98,{x=100,y=100,z=7},{x=102,y=102,z=7},CONST_ANI_SPEAR}, -- kind(distance), chance 98%, frompos, topos, distance
{kind=4,chance=10,function() --- kind(function), chance 10%, function
local pos = {x=110,y=110,z=7,stackpos=255}
local a = getThingfromPos(pos)
if isPlayer(a.uid) == TRUE then
doTeleportThing(a.uid, {x=100,y=100,z=7})
end
end},
{kind=1,chance=20,{x=100,y=100,z=7},CONST_ME_WATERCREATURE}, -- kind (effect), chance 20%, pos, effecttype
}
function animatedTextBig(pos,letters,color)-- by Mock
local pos2 = {x=pos.x,y=pos.y,z=pos.z}
local m = 10
local c = math.floor(#letters/m)
local ac = 0
for i=1,c+1 do
ac = i
local l1 = ((i-1)*m)
local l2 = (m*(i))-1
doSendAnimatedText(pos2,letters:sub(l1,l2), color)
pos2.x = pos2.x+1
end
return ac
end
function run_it()
for i=1,#clolortypes do
if clolortypes[i].kind == 1 then
if clolortypes[i].chance >= math.random(1,100) then
doSendMagicEffect(clolortypes[i][1],clolortypes[i][2])
end
elseif clolortypes[i].kind == 2 then
if clolortypes[i].chance >= math.random(1,100) then
animatedTextBig(clolortypes[i][1],clolortypes[i][2],clolortypes[i][3])
end
elseif clolortypes[i].kind == 3 then
if clolortypes[i].chance >= math.random(1,100) then
doSendDistanceShoot(clolortypes[i][1],clolortypes[i][2],clolortypes[i][3])
end
elseif clolortypes[i].kind == 4 then
if clolortypes[i].chance >= math.random(1,100) then
xpcall(clolortypes[i][1](),false) --- para nao parar o evento
end
end
end
end
function onThink(interval, lastExecution)
run_it()
return TRUE
end
Terminado? entao pronto ^^
siga para a tutorial de configuação no final do topico.
--------------------------------------------------------------
Sem globalevent -open tibia
Ja que seu server nao tem globalevent temos que criar algo como ele ^^
entao vamo usar uma coisa chamada recursividade que é isso:
function f()
return f()
end
f()
a função se chama e nao para de executar, mais para isso ela deve ser chamada uma vez. entao vamos chama-la uma vez usando talkactions? pode-se usar actions basta chamr ela assim:
run_it()
Mais em fim vamos ensinar a fazer por talk.
Va em talkactions.xml e adcione esta tag
(note que a tag esta na versao antiga pois servers sem globalevent ainda tem esse sistema padrão)
<talkaction words="!show" script="show.lua"/>
Agora em talkactions crie o show.lua e ponha isso:
----------------------------
--------Talkting TPS 3.0 ---
---------- By mock ---------
--dont remove the credists--
----------------------------
clolortypes = {
{kind=2,chance=100,{x=100,y=100,z=7},'Haha i can say ma ny words with this script ;D ---By mock ',255}, -- kind (text), chance 100%,pos,Text,color
{kind=3,chance=98,{x=100,y=100,z=7},{x=102,y=102,z=7},CONST_ANI_SPEAR}, -- kind(distance), chance 98%, frompos, topos, distance
{kind=4,chance=10,function() --- kind(function), chance 10%, function
local pos = {x=110,y=110,z=7,stackpos=255}
local a = getThingfromPos(pos)
if isPlayer(a.uid) == TRUE then
doTeleportThing(a.uid, {x=100,y=100,z=7})
end
end},
{kind=1,chance=20,{x=100,y=100,z=7},CONST_ME_WATERCREATURE}, -- kind (effect), chance 20%, pos, effecttype
}
function animatedTextBig(pos,letters,color)-- by Mock
local pos2 = {x=pos.x,y=pos.y,z=pos.z}
local m = 10
local c = math.floor(#letters/m)
local ac = 0
for i=1,c+1 do
ac = i
local l1 = ((i-1)*m)
local l2 = (m*(i))-1
doSendAnimatedText(pos2,letters:sub(l1,l2), color)
pos2.x = pos2.x+1
end
return ac
end
function run_it()
local delay = 1 -- seconds
for i=1,#clolortypes do
if clolortypes[i].kind == 1 then
if clolortypes[i].chance >= math.random(1,100) then
doSendMagicEffect(clolortypes[i][1],clolortypes[i][2])
end
elseif clolortypes[i].kind == 2 then
if clolortypes[i].chance >= math.random(1,100) then
animatedTextBig(clolortypes[i][1],clolortypes[i][2],clolortypes[i][3])
end
elseif clolortypes[i].kind == 3 then
if clolortypes[i].chance >= math.random(1,100) then
doSendDistanceShoot(clolortypes[i][1],clolortypes[i][2],clolortypes[i][3])
end
elseif clolortypes[i].kind == 4 then
if clolortypes[i].chance >= math.random(1,100) then
xpcall(clolortypes[i][1](),false) --- para nao parar o evento
end
end
end
addEvent(run_it,1000*delay,false)
end
function onSay(cid, words, param)
run_it()
return TRUE
end
Pronto
Configuarando
E facil d++++++++ configurar
--- Config animatex text.
você deve adcionar uma estrutura de tabela como esse na tabela clolortypes:
{kind=[color="Red"]2[/color],chance=%,pos,text,color},
2 é uma constante do script, se vc mudar e deixar esses parametros vai dar problemas.
Chance vai de 1 a 100
pos: {x=...}
Text = 'OMG eu posso falar coisas grandes com esse script --- by mock '
Color = TEXTCOLOR_YELLOW ou 210 (0-255)
--- Config magic effect.
você deve adcionar uma estrutura de tabela como esse na tabela clolortypes:
{kind=1,chance=%,pos,type},
2 é uma constante do script, se vc mudar e deixar esses parametros vai dar problemas.
Chance vai de 1 a 100
pos: {x=...}
type = CONST_ME_WATERCREATURE
--- Config distance shoot.
você deve adcionar uma estrutura de tabela como esse na tabela clolortypes:
{kind=[color="Red"]3[/color],chance=%,frompos,topos,type},
3 é uma constante do script, se vc mudar e deixar esses parametros vai dar problemas.
Chance vai de 1 a 100
frompos: {x=...}
topos: {x=...}
type: CONST_ANI_SPEAR (ou o numero no caso 1)
--- Config functions.
você deve adcionar uma estrutura de tabela como esse na tabela clolortypes:
{kind=[color="Red"]4[/color],chance=10,function},
4 é uma constante do script, se vc mudar e deixar esses parametros vai dar problemas.
Chance vai de 1 a 100
deve ser +/- assim na tabela:
function() print('hail') end
Ou ja pronto assim:
{kind=4,chance=10,function()
local pos = {x=110,y=110,z=7,stackpos=255}
local a = getThingfromPos(pos)
if isPlayer(a.uid) == TRUE then
doTeleportThing(a.uid, {x=100,y=100,z=7})
end
end},
Eu tentei fazer bem explicado.
Acho que é um bom tutorial e tinha que ser aprovado xD
Ainda não sei como colocar cores.
me adicione e explique para eu aprender =)
colocarei tutoriais quase todos os dias
(Sou novo aqui)
Tutorial Atualizado!
Quem Está Navegando
0 membros estão online
Nenhum usuário registrado visualizando esta página.