O systema é muito bom mas,não acho que server muito para OT-Server,só se for RPG
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- Woodcutting Sistem V1.0 by PsyMcKenzie
Woodcutting Sistem V1.0 by PsyMcKenzie
Por PsyMcKenzie, 07 de abr. de 2013 em Mods, funções e outros
info
Grupo: Infante
Registrado: 27/01/13
Posts: 1.7k
Reputação: +104
Gênero: Masculino

info
Grupo: Marquês
Registrado: 18/05/11
Posts: 1.1k
Reputação: +150
Gênero: Masculino

Isso mesmo, é um sistema voltado mais para a parte de RPG para os servidores.
info
Grupo: Visconde
Registrado: 12/09/10
Posts: 416
Reputação: +160
Char no Tibia: Draky Lucas

dica: utilize CODE e nao quote, e copie com a identação.. fica mais facil de ler o script.
info
Grupo: Marquês
Registrado: 18/05/11
Posts: 1.1k
Reputação: +150
Gênero: Masculino

Estou usando CODE e nao quote ![]()
O que é identação?
info
Grupo: Visconde
Registrado: 12/09/10
Posts: 416
Reputação: +160
Char no Tibia: Draky Lucas

identação é tipo o espaço que fica entre cada linha (entre ifs diferentes, etc)
exemplo:
function onUse(cid, item, frompos, item2, topos)
local chance = 80 -- chance de cortar
local madeiras = {5941, 5901} -- item que o player irá ganhar
local premio = madeiras[math.random(1, #madeiras)]
local transformItem = 8786
local texts = {"Tuc", "Toc", "Trec"}
local random = texts[math.random(1,#texts)]
local vocationUse = 2
local time = 2 -- Minutos para crescer novamente
if getPlayerVocation(cid) == vocationUse then
if item2.itemid == 2708 or item2.itemid == 2700 or item2.itemid == 6218 or item2.itemid == 2701 or item2.itemid == 2707 then
if math.random(1,100) >= chance then
doPlayerAddItem(cid,premio, math.random(1, 2))
doTransformItem(item2.uid, transformItem)
doSendMagicEffect(topos, 16)
doPlayerSendTextMessage(cid,22,"Você cortou uma madeira.")
doSendAnimatedText(topos, ""..random.."", TEXTCOLOR_GREEN)
doDecayItem(item2.uid)
addEvent(doCreateItem, time*60*1000, novaarvore, 1, getThingPos(item2.uid))
else
doSendAnimatedText(topos, ""..random.."", TEXTCOLOR_GREEN)
doPlayerSendTextMessage(cid,22,"Você não conseguiu cortar.")
end
end
end
return true
end
pode ver, é o seu script, porem mais organizado ^^
é que se nao fica dificil de saber onde termina cada if, e em scripts grandes pode dar zebra kk
a ideia é legal.. pra quem ja jogou o bronsonserver, la pode utilizar isso para criar internal bolts.. é só saber adaptar a ideia ^^
info
Grupo: Marquês
Registrado: 18/05/11
Posts: 1.1k
Reputação: +150
Gênero: Masculino

A sim, organização. É que eu tirei quando tava com problema numa parte ai nem arrumei mais ;s
Sim sim, eu já to fazendo isso, mas será por NPC. ![]()
info
Grupo: Herói
Registrado: 14/12/10
Posts: 3.6k
Reputação: +846
Gênero: Masculino

Boa cara, um dos seus primeiros códigos né? Está bom até, parabéns. Obrigado por colaborar com a comunidade ÉksTibiana ![]()
Aqui um tutorial sobre identação e elegância:
info
Grupo: Conde
Registrado: 30/10/11
Posts: 625
Reputação: +101
Gênero: Masculino

cara se esqueceu de colocar a varivel "novaarvore",troque por "item2.itemid"(id da arvore cortada).
nessa parte
if item2.itemid == 2708 or item2.itemid == 2700 or item2.itemid == 6218 or item2.itemid == 2701 or item2.itemid == 2707 then
seria melhor
if isInArray( { 2708, 2700, 6218, 2701, 2707},item2.itemid) then
é se inverteu as bolas nessa parte
if math.random(1,100) >= chance then
dessa forma com 80 na varivel chance so teria 20% de chance
o correto seria
if math.random(1,100) <= chance then
ou
if chance >= math.random(1,100) then
e sobre indendatação, sempre use a mesma quantidade de spaço para indentar.
info
Grupo: Marquês
Registrado: 18/05/11
Posts: 1.1k
Reputação: +150
Gênero: Masculino

Sim sim, um dos primeiros.
Obrigado pela ajuda.
Vou ver o tutorial sim, abraços!
lordbugg, explique melhor essa primeira parte, por favor? ( da novaarvore )
Ah sim, desculpe ;s
info
Grupo: Banidos
Registrado: 11/01/13
Posts: 576
Reputação: +109
Char no Tibia: Darashia del Shee

eu acho melhor ao invés de ficar só esse cotoco de arvore, porque não bota planks? São pedaços de madeira mesmo ![]()
Id's: 5296~5302 e 3873, eu acho mais daora do que esse cotoquinho ai
Bem legal o script seria bom se colocase um sistema baseado em skill sobre storage
acho que fica mais original
parabens pela evolução
info
Grupo: Marquês
Registrado: 18/05/11
Posts: 1.1k
Reputação: +150
Gênero: Masculino

Isso ja esta programado para a versão 2.0 ![]()







info
Grupo: Marquês
Registrado: 18/05/11
Posts: 1.1k
Reputação: +150
Gênero: Masculino
Bom galera, estou começando minha carreira na área de scripts, e estou fazendo o possível para postar 1 por semana.
Semana passada eu postei o Sistema de Fome
E hoje estou postando o Woodcutting Sistem na versão 1.0, em breve updates. Então, vamos lá!
Em data/actions/scripts, crie um arquivo.lua com o nome de wood e coloque isso:
function onUse(cid, item, frompos, item2, topos) local chance = 70 -- chance de cortar local madeiras = {5941, 5901} -- item que o player irá ganhar local premio = madeiras[math.random(1, #madeiras)] local transformItem = 8786 local texts = {"Tuc", "Toc", "Trec"} local random = texts[math.random(1,#texts)] local vocationUse = 2 local time = 2 -- Minutos para crescer novamente if getPlayerVocation(cid) ~= vocationUse then doPlayerSendTextMessage(cid,22,"Você não tem a vocação necessária para cortar.") return true end if item2.itemid == 2708 or item2.itemid == 2700 or item2.itemid == 6218 or item2.itemid == 2701 or item2.itemid == 2707 then if math.random(1,100) >= chance then doPlayerAddItem(cid,premio, math.random(1, 2)) doTransformItem(item2.uid, transformItem) doSendMagicEffect(topos, 16) doPlayerSendTextMessage(cid,22,"Você cortou uma madeira.") doSendAnimatedText(topos, ""..random.."", TEXTCOLOR_GREEN) doDecayItem(item2.uid) addEvent(doCreateItem, time*60*1000, item2.itemid, 1, getThingPos(item2.uid)) else doSendAnimatedText(topos, ""..random.."", TEXTCOLOR_GREEN) doPlayerSendTextMessage(cid,22,"Você não conseguiu cortar.") end end return true endEm data/actions/actions.xml adicione a tag:
4874 é o ID do Dwarven Pickaxe.
Imagens:
É isso ai galera. Obrigado!
Créditos: Roksas, notle2012 e LuckOake por tirarem dúvidas.
Editado Abril 13 por PsyMcKenzie