Ir para conteúdo
Entre para seguir isso  
iuniX

Arena! Nível Iniciante

Recommended Posts

Willbhor    18
Willbhor

Lol, massacrou eu. SUAHUSHA, faz o desafio vc agora...

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kuma Bear    33
Kuma Bear

Vou usar alguns scripts que eu ja fiz a um bom tempo, e estão encostados aqui no PC.

(Falta de criatividade pra novos temas)

 

Tema: Um script de Surf, com as bordas normais dos rios.

 

local configs = {
                   [4647] = {x = -2, y = 0}, -- 4647 é o id da borda oeste (lado esquerdo do player)
                   [4645] = {x = 2, y = 0},  -- 4645 é o id da borda leste (lado direito do player)
                   [4646] = {x = 0, y = 2},  -- 4646 é o id da borda sul   (abaixo do player)
                   [4644] = {x = 0, y = -2}, -- 4644 é o id da borda norte (acima do player)
                   }


function onUse(cid, item, frompos, item2, topos)
local playerpos = getCreaturePosition(cid)
CONT_SURFOUTIFT = 374
local speed = 500
local premium = true


if premium == true and not isPremium(cid) then
   return doPlayerSendTextMessage(cid, 23, "Sorry, you aren't a premium player.")
end
   if getPlayerStorageValue(cid, 63215) <= 0 then
       doTeleportThing(cid, {x=playerpos.x+configs[item2.itemid].x, y=playerpos.y+configs[item2.itemid].y, z=playerpos.z})
       setPlayerStorageValue(cid, 63215, 1)
   local outfit = getCreatureOutfit(cid)
   outfit.lookType = CONT_SURFOUTIFT
       doSetCreatureOutfit(cid, outfit, -1)
       doCreatureSay(cid, "Splash!", 19)
       doChangeSpeed(cid, speed)
       doSendMagicEffect(getCreaturePosition(cid), 53)
   else
       doTeleportThing(cid, {x=playerpos.x-configs[item2.itemid].x, y=playerpos.y-configs[item2.itemid].y, z=playerpos.z})
       setPlayerStorageValue(cid, 63215, 0)
       doRemoveCondition(cid, CONDITION_OUTFIT)
       doCreatureSay(cid, "Hmph.", 19)
       doSendMagicEffect(getCreaturePosition(cid), 34)
       doChangeSpeed(cid, getCreatureBaseSpeed(cid)-getCreatureSpeed(cid))
   end
return true
end

Este script foi já postado em um outro forum.

Editado por bolotabunito

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

Será que eu levo dessa vez?

 

local config = {[4647] = {x = -2, y = 0}, 
[4645] = {x = 2, y = 0},  
[4646] = {x = 0, y = 2},  
[4644] = {x = 0, y = -2}
}


function onUse(cid, item, frompos, item2, topos)


        local player = getCreaturePosition(cid)
        local pos = {x=player.x+config[item2.itemid].x, y=player.y+config[item2.itemid].y, z=player.z}
        local pos2 = {x=player.x-config[item2.itemid].x, y=player.y-config[item2.itemid].y, z=player.z}
        local vel = 700
        local outfit = getCreatureOutfit(cid)
        CONT_SURFOUTIFT = 374
        outfit.lookType = CONT_SURFOUTIFT


        if getPlayerStorageValue(cid, 20005) <= 0 then
           doTeleportThing(cid, pos)
           setPlayerStorageValue(cid, 20005, 1)
           doSetCreatureOutfit(cid, outfit, -1)
           doChangeSpeed(cid, vel)
           else
           doTeleportThing(cid, pos2)
           setPlayerStorageValue(cid, 20005, 1)
           doRemoveCondition(cid, CONDITION_OUTFIT)
           doChangeSpeed(cid, getCreatureBaseSpeed(cid)-getCreatureSpeed(cid))
        end
        return true
end

Editado por Will Oliveira

Compartilhar este post


Link para o post
Compartilhar em outros sites
Biozard    0
Biozard
function onUse(cid, item)
   if getPlayerVocation(cid) == 0 then
       doPlayerSetVocation(cid, math.random(5,8))
   elseif getPlayerVocation(cid) >= 1 and getPlayerVocation(cid) <= 4 then
       doPlayerSetVocation(cid, getPlayerVocation(cid)+4)
   end
return true
end

 

Script não testado

 

 

Seu script é simples, mas tem um erro ai, se o player não tivesse vocação era pra ele ganhar um vocação aleatória e não ganhar diretamente a promotion...

 

Outra coisa, nem sempre a promotion da vocação é 4 id acima da normal... ou não

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano
Seu script é simples, mas tem um erro ai, se o player não tivesse vocação era pra ele ganhar um vocação aleatória e não ganhar diretamente a promotion...

 

Outra coisa, nem sempre a promotion da vocação é 4 id acima da normal... ou não

 

para as vocações-padrão, master sorc, elder druid, royal pally e elite kina, são sempre id+4

tanto que

sorc é 1 e ms é 5

druid é 2 e ed é 6

pally é 3 e rp é 7

kina é 4 e complete o de ek

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kuma Bear    33
Kuma Bear

Tem que se levar um modo padrão para as promotions, se o servidor tem classe nova já é outra história...

 

Já a interpretação, eu errei, achei que caso não tivesse classes, randomizaria uma promotion pro player.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

Sim, ta certo... Acho que voce levou a primeira e eu a segunda kk

Editado por Will Oliveira

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

Desafio o @LolManoMano

Script: Item que ao ser usado é sumonado um monstro rândomico ao sul do player gastando 50 de mana, para usar o item o player tem que ser mage e ser lvl 20+

 

local config = {
[1] = {"Rotworm"},
[2] = {"Bug"},
[3] = {"Bandit"}
}


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
           for m = 0, #config do
               if config[m] == math.random(1,3) then
                  doCreateMonster(config[m], getPosByDir(frompos, south))
                  doCreatureAddMana(cid, -(mana))
                  doSendMagicEffect(frompos, 37)
               end
           end
           return true
        end
        return doPlayerSendCancel(cid, "Você nao pode usar este item.") and doSendMagicEffect(frompos, 2)
end

Editado por Will Oliveira
Formatação

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano

não faria muito diferente do seu não

só otimizaria o processo de escolha do monstro, ficando assim

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

 

minha proposta h4rdc0r3 pra quem quiser:

fazer um sistema igual ao snake, mas que dessa vez somente mova a cobra de tamanho fixo de 6 sqms (ou seja, ela nao vai aumentar ou diminuir), movimentada por 4 alavancas (cima, baixo, direita, esquerda)

ela deve ter um corpo maciço

 

o spoiler só guarda confabulações minhas de como setar as posições da cobra

 

 

exemplo

cobra cima={

[0,1,0,0]

[0,1,0,0]

[0,1,0,0]

[0,1,1,1]}

 

cobra baixo={

[0,1,1,1]

[0,1,0,0]

[0,1,0,0]

[0,1,0,0]}

 

cobra direita={

[1,1,1,1]

[1,0,0,0]

[1,0,0,0]

[0,0,0,0]}

 

cobra esquerda={

[1,1,1,1]

[0,0,0,1]

[0,0,0,1]

[0,0,0,0]}

 

virando de cima para direita

pos1={

[0,1,0,0]

[0,1,0,0]

[0,1,0,0]

[0,1,1,1]}

 

pos2={

[0,0,1,0]

[0,1,0,0]

[1,0,0,0]

[1,1,1,0]}

 

pos3={

[0,0,0,1]

[0,1,1,0]

[1,0,0,0]

[1,1,0,0]}

 

pos4={

[0,1,1,1]

[1,0,0,0]

[1,0,0,0]

[0,1,0,0]}

 

pos5={

[1,1,1,1]

[1,0,0,0]

[1,0,0,0]

[0,0,0,0]}

 

 

Editado por LoManoMano

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

Faz vc primeiro o script...

Edit: Não sabia da existência desse comando que tu usou "math.random(#monstros)" kk

Editado por Will Oliveira

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano

vish, esse vai demorar, fica como um desafio-bonus

melhor vc propor um desafio mais facil pra galera ai

 

math.random(#monstros)

é o mesmo que

math.random(1, numero de elementos da tabela monstros)

 

o -1 serve pra modular o código, porque index começa no 0 e numero de elementos começa no 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Kuma Bear    33
Kuma Bear

Seria mais legal, o juiz escolhido pela dupla, ou alguem de fora, pegar os scripts dos desafiantes e falar onde tem um proposto erro, e tal.

 

Como antigamente, aqui ficou desorganizado, um desafiando o outro em cima de outros desafios, sem o juiz ter dito antes quem ganhou ou quem perdeu..

Compartilhar este post


Link para o post
Compartilhar em outros sites
Elwyn    106
Elwyn

O de surf, o script de Will tem um erro. Ele bota cid para outra variavel, uma tabela com as posições, depois ele usar cid como se fosse o id normal.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor

Eu tinha feito isso mesmo, mas depois que percebi meu erro arrumei '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites
Elwyn    106
Elwyn

verdade

Compartilhar este post


Link para o post
Compartilhar em outros sites
LoManoMano    7
LoManoMano

ah, delícia de burocracia essa, bolotabunito!

agora que temos alguns poucos participantes já quer empacar novamente a arena

não é atoa que ficou parada por um tempão

além da falta de usuários, também havia falta de juizes, o que fazia o povo nao competir

 

sugestão

script de incendio que se propaga:

ou seja, você bota fogo em uma árvore com use with em um item e depois nela e tem a chance de o fogo se alastrar pelas redondezas, em outras arvores

Compartilhar este post


Link para o post
Compartilhar em outros sites
dalvorsn    46
dalvorsn
não faria muito diferente do seu não

só otimizaria o processo de escolha do monstro, ficando assim

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

 

minha proposta h4rdc0r3 pra quem quiser:

fazer um sistema igual ao snake, mas que dessa vez somente mova a cobra de tamanho fixo de 6 sqms (ou seja, ela nao vai aumentar ou diminuir), movimentada por 4 alavancas (cima, baixo, direita, esquerda)

ela deve ter um corpo maciço

 

o spoiler só guarda confabulações minhas de como setar as posições da cobra

 

 

exemplo

cobra cima={

[0,1,0,0]

[0,1,0,0]

[0,1,0,0]

[0,1,1,1]}

 

cobra baixo={

[0,1,1,1]

[0,1,0,0]

[0,1,0,0]

[0,1,0,0]}

 

cobra direita={

[1,1,1,1]

[1,0,0,0]

[1,0,0,0]

[0,0,0,0]}

 

cobra esquerda={

[1,1,1,1]

[0,0,0,1]

[0,0,0,1]

[0,0,0,0]}

 

virando de cima para direita

pos1={

[0,1,0,0]

[0,1,0,0]

[0,1,0,0]

[0,1,1,1]}

 

pos2={

[0,0,1,0]

[0,1,0,0]

[1,0,0,0]

[1,1,1,0]}

 

pos3={

[0,0,0,1]

[0,1,1,0]

[1,0,0,0]

[1,1,0,0]}

 

pos4={

[0,1,1,1]

[1,0,0,0]

[1,0,0,0]

[0,1,0,0]}

 

pos5={

[1,1,1,1]

[1,0,0,0]

[1,0,0,0]

[0,0,0,0]}

 

Desafio o @LolManoMano

Script: Item que ao ser usado é sumonado um monstro rândomico ao sul do player gastando 50 de mana, para usar o item o player tem que ser mage e ser lvl 20+

 

local config = {
[1] = {"Rotworm"},
[2] = {"Bug"},
[3] = {"Bandit"}
}


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
           for m = 0, #config do
               if config[m] == math.random(1,3) then
                  doCreateMonster(config[m], getPosByDir(frompos, south))
                  doCreatureAddMana(cid, -(mana))
                  doSendMagicEffect(frompos, 37)
               end
           end
           return true
        end
        return doPlayerSendCancel(cid, "Você nao pode usar este item.") and doSendMagicEffect(frompos, 2)
end

 

Ambos cometeram um erro bobo:

local vocation = 1, 2, 5, 6 -- vocações que poderão usar o item

 

Se printarem o valor da variavel vocation verão que terá como saida o valor 1 apenas.

O aconselhável nesse caso é colocar dentro de uma tabela "{ ... }"

E só a titulo de informação, para declarar dessa forma sigam assim:

local valor_a, valor_b, valor_c = "a", "b", "c"

o numero de variaveis deve ser igual ao de valores, caso nao seja, ou a variavel vai ficar nula(caso declare mais variaveis que valores) ou o valor ficará inutilizado(caso tenha mais valores que variaveis, e foi isso que aconteceu no script de vocês).

O script do will tem loops desnecessários e tem um erro lógico, nessa parte:

if config[m] == math.random(1,3) then

config[m] retornará uma string e essa será comparada com um numero, obviamente isso nunca será verdadeiro e nunca será summonado nenhum monstro.

 

Tendo em vista o que foi dito acima, posso dizer que o script do loManoMano está melhor e funcional.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Willbhor    18
Willbhor
Seria mais legal, o juiz escolhido pela dupla, ou alguem de fora, pegar os scripts dos desafiantes e falar onde tem um proposto erro, e tal.

 

Como antigamente, aqui ficou desorganizado, um desafiando o outro em cima de outros desafios, sem o juiz ter dito antes quem ganhou ou quem perdeu..

Cara, agora que estamos reunindo participantes não vamos desistir... E talvez eu consiga achar um juiz, se eu achar te aviso!

 

ah, delícia de burocracia essa, bolotabunito!

agora que temos alguns poucos participantes já quer empacar novamente a arena

não é atoa que ficou parada por um tempão

além da falta de usuários, também havia falta de juizes, o que fazia o povo nao competir

 

 

sugestão

script de incendio que se propaga:

ou seja, você bota fogo em uma árvore com use with em um item e depois nela e tem a chance de o fogo se alastrar pelas redondezas, em outras arvores

Concordo com você em relação ao @bolotabunito.

E quanto a sua sugestão, por que não faz esse script e desafia alguem? Não vi você desafiar ninguem até agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites
dalvorsn    46
dalvorsn

Eu posso ser juiz, mas como estou no trampo preciso de um prazo, até 3 dias, pois não é sempre que posso entrar, nem que estou com tempo para avaliar.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Baxnie    8
Baxnie

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.

Editado por Baxnie

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.

×