Ir para conteúdo
Entre para seguir isso  
iuniX

Arena! Nível Iniciante

Recommended Posts

Willbhor    18
Willbhor
local monstros = {"Rat", "Rotworm"}

local level = 20 -- level minimo pra usar o item
local mana = 50 -- quantidade de mana que o item gasta
local vocation = 1, 2, 5, 6 -- vocações que poderão usar o item


function onUse(cid, item, frompos, item2, topos)
        if getPlayerLevel(cid) >= level and getPlayerVocation(cid) == vocation and getPlayerMana(cid) >= mana then
                   doCreateMonster(monstros[math.random(#monstros)-1], getPosByDir(frompos, south))
                  doCreatureAddMana(cid, -(mana))
                  doSendMagicEffect(frompos, 37)
           return true
        end
        return doPlayerSendCancel(cid, "Você nao pode usar este item.") and doSendMagicEffect(frompos, 2)
end

 

Além do vocation, que já foi dito pelo dalvo, tem mais um detalhezinho.

 

 

monstros[math.random(#monstros)-1]

O valor de monstros[0] é nil. Sendo o -1 desnecessário.

 

 

Pelo que vi da maioria dos scripts, acho que a qualidade melhoraria muito se de fato fossem testados. Desta maneira erros bobos como estes não estariam aqui.

 

Concordo com você, da próxima vez irei testar meus scripts.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Elwyn    106
Elwyn

Se quiserem posso ser juiz, eu entro todo dia a noite.

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano

Sistema de incendio de florestas

 

Desafiado: Will Oliveira

function Verificar(posa)
if getGlobalStorageValue(1578) == 1 then
return true
end
local items = {}

-- é possivel alterar o alcance do fogo: basta alterar as tabelas abaixo, de forma que posx represente a variação relativa de x ao centro da tabela e y a variaçao de y em relaçao ao centro
--ex: alcance de 2 sqm
--local posx = {
--{-2, -1, 0, 1, 2},
--{-2, -1, 0, 1, 2},
--{-2, -1, 0, 1, 2},
--{-2, -1, 0, 1, 2},
--{-2, -1, 0, 1, 2},
--}
--local posy = {
--{-2, -2, -2, -2, -2},
--{-1, -1, -1, -1, -1},
--{0, 0, 0, 0, 0},
--{1, 1, 1, 1, 1},
--{2, 2, 2, 2, 2}
--}
local posx = {
{-1, 0, 1},
{-1, 0, 1},
{-1, 0, 1}
}
local posy = {
{-1, -1, -1},
{0, 0, 0},
{1, 1, 1}
}
for s = 1, 7 do
for i = 1, #posx do
for c = 1, #posy do
local itemu = getThingFromPos({x = posa.x+posx[i][c], y = posa.y+posy[i][c], z = posa.z, stackpos = s})
if itemu.uid > 0 then
	table.insert(items, itemu)
end
end
end
end
if #items == 0 then
print("SEM ITENS") 
return true
end

if getGlobalStorageValue(1578) == 0 then
for c = 1, #items do
	if isInArray({2767, 2768, 2702, 6216, 2701}, items[c].itemid) then
		print("FOGUEAR") 
		setGlobalStorageValue(1578, 1)
		addEvent(Foguear, 1000, getThingPosition(items[c].uid))
	end
end
end

end

function Foguear(positem)
if getGlobalStorageValue(1578) == 2 then
return true
end
if getGlobalStorageValue(1578) == 1 then
doSendMagicEffect(positem, 28)
print("FOGO") 
addEvent(Verificar, 1000, positem)
end
setGlobalStorageValue(1578, 0)
local itam = getThingFromPosition(positem)
doItemSetAttribute(itam.uid, "queimadas", 1)
addEvent(ManterFogo, 1000, positem)
print("MANTER FOGO")
end

function ManterFogo(positem)
local itam = getThingFromPosition(positem)
if getThing(itam.uid) then
if getItemAttribute(itam.uid, "queimadas") < 4 then
	doSendMagicEffect(getThingPosition(itam.uid), 28)
	doItemSetAttribute(itam.uid, "queimadas", getItemAttribute(itam.uid, "queimadas")+1)
	addEvent(ManterFogo, 1500, positem)
	print("MANTER FOGO REPETIÇAO")
	print(getItemAttribute(itam.uid, "queimadas"))
else
	doTransformItem(itam.uid, 2709)
end
else
print("ARVORE NAO EXISTE")
stopEvent(ManterFogo)
end

end

function onUse(cid, item, fromPosition, itemEx, toPosition)
if isInArray({2767, 2768, 2702, 6216, 2701}, itemEx.itemid) then
	if not getItemAttribute(itemEx.uid, "queimadas") then
		setGlobalStorageValue(1578, 0)
		doSendMagicEffect(getThingPosition(itemEx.uid), 28)
		print("INICIO")
		addEvent(Verificar, 1000, getThingPosition(itemEx.uid))
	else
		doItemSetAttribute(itemEx.uid, "queimadas", 15)
		stopEvent(ManterFogo)
		print("APAGOU INCENDIO")
	end
end
end

 

sim, o console recebe vários prints de controle, pra ver o que está acontecendo quando

código completamente feito!

e sim, foi feito usando métodos avançados de gambiarra

 

obs: funçao manterfogo foi feita com auxilio de dalvo

Editado por LoManoMano

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

@gugalol Já temos um juiz, mas ter um juiz a mais seria melhor. Obrigado!

@LolManoMano O intuito da arena é que os scripters batalhem, então desafie alguém!

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano
@gugalol Já temos um juiz, mas ter um juiz a mais seria melhor. Obrigado!

@LolManoMano O intuito da arena é que os scripters batalhem, então desafie alguém!

 

pensei q eu tinha dito q o desafio era pra vc, will oliveira

pesquisei nos posts e parece que nao...

mas começa agora: o desafio do sistema de incendio é pra você!

(se seu script utilizar qualquer método igual ao meu (como por exemplo o sistema de detectar itens proximos, da minha função getNearbyItems), será ripping e você será banido)

meu script já foi postado, falta o seu

 

O sistema de incendio deve contar com o uso em um árvore, que inicia o incendio

como é um incendio, o fogo (efeito) deve se espalhar para as arvores mais proximas (distancia de até 1 sqm, ou seja, somente os 8 quadrados ao redor da primeira arvore, já que fogo nao pula) [isso pra facilitar, mas se quiser fazer de uma forma que se configure a distancia maxima, vai ficar bem maneiro]

e como se trata de fogo, ele deve se manter na arvore por algum tempo ou quantidade de vezes

além disso, deve conter um sistema que 'apague' o fogo em qualquer uma das arvores

depois de completamente queimada, a arvore ou deve ser transformada para outra ou ser removida

Editado por LoManoMano

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

@LoManoMano Recuso seu desafio, não considero um script de nível iniciante de acordo com o intuito do tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano

beleza!

dei 7 dias pra você fazer o desafio e te lembrei algumas vezes no seu perfil pra vc nao dizer que "nao sabia"

além disso, acho uma atitude um tanto quanto hipócrita de sua parte recusar um desafio e ser ao mesmo tempo autor desse tópico: http://forums.otserv.com.br/showthread.php?206283-Arena-de-Scripters-para-Iniciantes

se realmente queria a arena, então que duele de verdade, saia dos scripts babacas de 7 linhas que nada mais são do que aplicação sucessiva de funções de adição e remoção de vida, mana e itens, seu medíocre

engraçado você não ter capacidade de criar um script e já tirar o seu da reta com a prerrogativa de que meu "desafio não é para iniciantes"

então que buscasse auxilio com outras pessoas

eu falei com o dalvo e juntos fizemos uma função do meu script

 

bom, já que o desafiado amarelou, o desafio ta aí pra quem quiser aceitar

e meu script também

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

Cara, primeiramente (pode pensar que to dando desculpas, pode pensar o que quiser), essas duas ultimas duas semanas foram muito turbulentas, nem tive tempo direito de entrar no fórum, jogar os jogos que gosto, fazer scripts, etc, enfim, sem contar que aprendi lua em apenas 3 dias e agora você me manda um script desse e eu como não tenho tanto conhecimento em lua e realmente tava sem tempo tive que rejeitar e você vem falar que eu sou cagão... ok, ok, fale o que quiser cara e além do mais leia direito o título do tópico.

Compartilhar este post


Link para o post
Compartilhar em outros sites
dalvorsn    46
dalvorsn

Will Oliveira

Te desafio a refazer a função string.find, usando apenas a sintaxe lua. (como é para iniciante, não precisa entrar patterns, apenas a busca por caracteres )

Assim que postar o seu posto o meu.

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano
Cara, primeiramente (pode pensar que to dando desculpas, pode pensar o que quiser), essas duas ultimas duas semanas foram muito turbulentas, nem tive tempo direito de entrar no fórum, jogar os jogos que gosto, fazer scripts, etc, enfim, sem contar que aprendi lua em apenas 3 dias e agora você me manda um script desse e eu como não tenho tanto conhecimento em lua e realmente tava sem tempo tive que rejeitar e você vem falar que eu sou cagão... ok, ok, fale o que quiser cara e além do mais leia direito o título do tópico.

 

sobre "nem tive tempo direito de entrar no fórum", você está mentindo e sabe disso

e não, você não aprendeu lua em 3 dias

você aprendeu, talvez, lógica de programação e, associado ao seu conhecimento de ingles, juntou frases e criou um pseudo-script

bom, se você sabia que era incapaz de fazer o script, então que postasse logo depois do desafio ter sido proposto que você amarelaria e não faria, já que nao tem capacidade

assim, o desafio iria para outro

cagar depois de 7 dias do desafio mais me parece que você nem sabe o que sabe, o que te torna ridículo

 

se quiser um desafio nivel retardado mental, crie um script de "reset" de personagem igual ao do MU

quero ver como você vai proceder nesse script: ver o quão iniciante é

Editado por LoManoMano

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

@LoManoMano ​Ok, ok.

Compartilhar este post


Link para o post
Compartilhar em outros sites
dalvorsn    46
dalvorsn

bom, já que o desafiado amarelou, o desafio ta aí pra quem quiser aceitar

e meu script também

Ok, então eu aceito.

 

--[[
#######################
# Script by dalvorsn  #
# Don't remove credits#
#######################
]]
local burningTrees = {
-- [TreeId] = BurningTreeId,
-- Examples
[7024] = 2717, -- pine
[2701] = 2719, -- sycamore
[2704] = 2722  -- red maple
}
local delay = 1000 -- delay em ms entre as chamas




local var__ = 0
local function var()
var__ = var__ + 1
return var__
end


function onUse(cid, item, fromPosition, itemEx, toPosition)


if( burningTrees[itemEx.itemid] )then
	burnTree(getThingPosition(itemEx.uid), delay, itemEx.itemid)
end
var__ = 0
return true
end


function getItemsAroundById(ItemIds, pos, rangex, rangey)
local uids = {}
for itemId in pairs(ItemIds) do
	for x = -rangex, rangex do
		for y = -rangey, rangey do
			local posi = {x = pos.x + x, y = pos.y + y, z = pos.z}
			local item = getTileItemById(posi, itemId)
			if item.uid > 0 and not (x == 0 and y == 0) and getItemAttribute(item.uid, "burned") ~= 1 then
				table.insert(uids, {itemid = itemId, pos = posi})
			end
		end
	end
end
return uids
end


local function _doTransformItem(itemid, pos, toid)
local _uid = getTileItemById(pos, itemid).uid
doTransformItem(_uid, toid)
return _uid
end




function burnTree(itemPos, delayFire, itemid)


local smallFire, mediumFire, bigFire = 1489, 1488, 1492


if var__ == 0 then
	doSendMagicEffect(itemPos, 36)
end
doItemSetAttribute(getTileItemById(itemPos, itemid).uid, "burned", 1)


addEvent(doCreateItem, var() * delayFire, smallFire, itemPos)
addEvent(_doTransformItem, var() * delayFire, smallFire, itemPos, mediumFire)
addEvent(_doTransformItem, var() * delayFire, mediumFire, itemPos, bigFire)
addEvent(_doTransformItem, var() * delayFire, itemid, itemPos, burningTrees[itemid])


aroundTrees = getItemsAroundById(burningTrees, itemPos, 1,1)
for _, tree in pairs(aroundTrees) do
	burnTree(tree.pos, delayFire, tree.itemid)
end


return true
end

 

Vou postar na seção também, ficou legal '-'

 

Vou pedir ao guga pra avaliar para nós.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Elwyn    106
Elwyn

dalvorsn ganhou

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano

ganhou de lavada haueahueua

script dele ta bem mais superior q o meu x)

 

agora é a vez do dalvo propor um desafio

Compartilhar este post


Link para o post
Compartilhar em outros sites
dalvorsn    46
dalvorsn
ganhou de lavada haueahueua

script dele ta bem mais superior q o meu x)

 

agora é a vez do dalvo propor um desafio

 

Ok, me de um tempinho pra eu pensar num desafio legal xD

Compartilhar este post


Link para o post
Compartilhar em outros sites
dalvorsn    46
dalvorsn

@loManoMano

Você é o escolhido pro desafio.

Titulo do Script: Carrinho de bate-bate

Descrição: consiste em um cercado onde mais de um player irá jogar por vez, não podendo ser sozinho, e tendo o máximo de cinco participantes. O script deve reproduzir o brinquedo da mesma forma que é em parques, com a direção um pouco lenta para virar, largadas mais reduzidas e aceleração a medida que começa a andar, deve também ter sistema de impacto entre os carrinhos, empurrando-os na posição contraria a que vinham antes da batida. Deve ter um tempo para terminar, para que outros possam jogar também, e deve haver uma especie de fila para que não passem na frente dos outros, o cupom será comprado assim que o player chegar no primeiro lugar da file, tem de haver um npc la vendendo os cupons, e teleportando o player para dentro da "arena". Uma vez dentro da arena o deve se dirigir a um dos carrinhos que devem ficar estacionados (largados, tanto faz) dentro da arena, como ja disse antes tem um limite de players por vez, o carro só ativa quando passa um determinado tempo que acabou a ultima partida, ou quando chega no limite de players da arena, use o bom senso para escolher o tamanho da arena e o numero de caros, de maneira que fique boa a jogabilidade, não há vencedores ou perdedores na partida, a partida só acaba quando esgota o tempo, e quando isso acontece todos os players são mandados para a saida e começa novamente a venda de cupoms.

 

Não é um script simples, por isso acho que é bobagem colocar prazo, mas caso aceite o desafio e queira um prazo tudo bem.

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano

interessante o desafio, tá aceito

mas vou precisar de um bom tempo pra fazê-lo x)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×