Ir para conteúdo

Posts Recomendados

olá galera do xtibia, eu sou muito muito muito novo em script tenho 1 semana ou menos tentando aprender script então o que eu fiz... podem criticar mas funcionou perfeitamente aqui sei que os profissionais fariam em 10 9 linhas eu sou meio desastrado,

 

https://www.youtube.com/watch?v=hFd_loGAy44&feature=youtu.be

 

uma demonstração de como funciona o sistema

 

vamos lá em action/scripts/copie um arquivo.lua e abra apague tudo dentro dele e cole o seguinte sistema e renomeei para o nome que quiser eu coloquei summom

 

 

  Mostrar conteúdo oculto

 

 

em action.xml adicione seguinte tag

<action itemid="IDITEM" event="script" value="summom.lua"/>

não mim pergunte a se tu é iniciante como tu fez isso, tudo se resume em um baita esforço,

 

não se julga pelo tamanho do desafio mas sim pela experiencia ganha por ela

 

então quem mim desafio a fazer isso foi gabriel txu.. ele que mim da umas dica mas ele n mexeu em nada só está mim dando inspiração pra fazer script..

 

galera pra por como spells basta troca a function

 

para

function onCastSpell(cid, var)

galera criticas bem vindas eu estarei tentando melhorar é meu primeiro script fico muito feliz em ter conseguido faze-lo

 

Editado por Dbko
Link para o comentário
https://xtibia.com/forum/topic/239629-summom-gamabunta-portecentual/
Compartilhar em outros sites

também sou iniciante e me pergunto muito sobre as linhas...

fui fazer um script semelhante a este de invocar monstros com determinada chance ( a unica diferença é que eu fiz para variar por ml).

HAHAHA deu mais de 200 linhas, mas, funcionando é o que conta. ( pelo menos por agora ).

Parabéns pelo script, se for mesmo o primeiro deve ter dado um trabalho maligno.

reputado.

Link para o comentário
https://xtibia.com/forum/topic/239629-summom-gamabunta-portecentual/#findComment-1687101
Compartilhar em outros sites

  Em 26/02/2016 em 23:31, Dbko disse:

galera criticas bem vindas eu estarei tentando melhorar é meu primeiro script fico muito feliz em ter conseguido faze-lo

 

 

Parabéns haha, ficou legal.

é assim que se começa :D

Obrigado por me mencionar no vídeo :lolz:, a escolinha tá demorando mesmo, mas não tem o que eu possa fazer :sad: , depois quando for possível disponibilizar ela, vou explicar o porque...

 

 

Sobre o script:

 

if exhaustion.check(cid, 40501) == false then

essa verificação é inútil, pois se é == false, quer dizer que é false, então não precisa por comparação ==

você pode simplesmente deixar assim:

if exhaustion.check(cid, 40501) then

 

Eu vi esse erro:

actions/scripts/testando.lua:11 attempt to concatenate a boolean value

por isso que eu indiquei o benefício de aprender o inglês no meu tópico do anúncio da escolinha, na hora de programar Lua!

 

Esse erro mostra exatamente em que arquivo e linha o erro acontece, e que tipo de erro.

actions/scripts/testando.lua:11 -> Linha 11 do arquivo testando.lua 
attempt to concatenate a boolean value -> Tentativa de concatenar um valor booleano

Sinais de concatenação no lua são " . . " dois pontos finais (Em outras linguagens são como " + " ou " . " e etc... ) , eles ficam entre dois pedaços strings é usado para transformar um valor não string em string, ou uma variável string.

 

no seu caso, exhaustion.check está dando true e pula pro else, e mesmo o check dando true, o get dá false, não sei porque, pois você alterou o script, talvez tava fazendo o script com um God, ou player sem flag de exhaustion (permite não ter exhaust)

 

Nessa parte e em outras que você usa a função: getPlayerPosition(cid)

pos = getCreaturePosition(cid)
    local position1 = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y+1, z=getPlayerPosition(cid).z}
    local position2 = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}

você pode usar a variável para economizar:

pos = getCreaturePosition(cid)
local position1, position2 = {x=pos.x+1, y=pos.y+1, z=pos.z}, {x=pos.x, y=pos.y, z=pos.z}

Veja também como declarei as duas variáveis e a vírgula na linha 2 acima.

em todos os lugares que você precisa da posição do cid, você pode usar a variável pos.x, pos.y, pos.z ou pos.stackpos

 

Agora sobre as chances, me corrija se estiver errado, você não conseguiu sumonar o Gamakichi né?

isso acontece porque math.random(1) vai gerar um número entre 1 e 1, por isso nunca vai ser menor que a chance, e nunca vai sumonar.

Gamaguren = 20% 
Gamakichi = 0%
Gamatatsu = 20%

Gamatatsu é 20% porque math.random que não é entre 0 e 1 , dá número inteiro...

você podia multiplicar por 10 e dividir por 10 , assim:

math.random(0, 50) / 10  = math.random(0, 5) só que com números com vírgulas

veja alguns resultados:

 

  Mostrar conteúdo oculto

 

 

Eu fiz o script aqui para te mostrar, fiz ele dar 50% para cada monstro, assim:

 

  Mostrar conteúdo oculto

 

 

Uma pergunta, é opção o jutsu não funcionar? porque se não funcionar ele vai dar exhaust sem sumonar...

 

 

Aaaa quase esqueci, existem valores que não podem ser concatenados, como boolean, table, nil...

@@Dbko, Tente identar o código, não use o auto indent ainda, tente aprender a identar para depois usar ele...

Link para o comentário
https://xtibia.com/forum/topic/239629-summom-gamabunta-portecentual/#findComment-1687129
Compartilhar em outros sites

  Em 29/02/2016 em 17:59, Caronte disse:

 

 

Parabéns haha, ficou legal.

é assim que se começa :D

Obrigado por me mencionar no vídeo :lolz:, a escolinha tá demorando mesmo, mas não tem o que eu possa fazer :sad: , depois quando for possível disponibilizar ela, vou explicar o porque...

 

 

Sobre o script:

 

if exhaustion.check(cid, 40501) == false then

essa verificação é inútil, pois se é == false, quer dizer que é false, então não precisa por comparação ==

você pode simplesmente deixar assim:

if exhaustion.check(cid, 40501) then

 

Eu vi esse erro:

actions/scripts/testando.lua:11 attempt to concatenate a boolean value

por isso que eu indiquei o benefício de aprender o inglês no meu tópico do anúncio da escolinha, na hora de programar Lua!

 

Esse erro mostra exatamente em que arquivo e linha o erro acontece, e que tipo de erro.

actions/scripts/testando.lua:11 -> Linha 11 do arquivo testando.lua 
attempt to concatenate a boolean value -> Tentativa de concatenar um valor booleano

Sinais de concatenação no lua são " . . " dois pontos finais (Em outras linguagens são como " + " ou " . " e etc... ) , eles ficam entre dois pedaços strings é usado para transformar um valor não string em string, ou uma variável string.

 

no seu caso, exhaustion.check está dando true e pula pro else, e mesmo o check dando true, o get dá false, não sei porque, pois você alterou o script, talvez tava fazendo o script com um God, ou player sem flag de exhaustion (permite não ter exhaust)

 

Nessa parte e em outras que você usa a função: getPlayerPosition(cid)

pos = getCreaturePosition(cid)
    local position1 = {x=getPlayerPosition(cid).x+1, y=getPlayerPosition(cid).y+1, z=getPlayerPosition(cid).z}
    local position2 = {x=getPlayerPosition(cid).x, y=getPlayerPosition(cid).y, z=getPlayerPosition(cid).z}

você pode usar a variável para economizar:

pos = getCreaturePosition(cid)
local position1, position2 = {x=pos.x+1, y=pos.y+1, z=pos.z}, {x=pos.x, y=pos.y, z=pos.z}

Veja também como declarei as duas variáveis e a vírgula na linha 2 acima.

em todos os lugares que você precisa da posição do cid, você pode usar a variável pos.x, pos.y, pos.z ou pos.stackpos

 

Agora sobre as chances, me corrija se estiver errado, você não conseguiu sumonar o Gamakichi né?

isso acontece porque math.random(1) vai gerar um número entre 1 e 1, por isso nunca vai ser menor que a chance, e nunca vai sumonar.

Gamaguren = 20% 
Gamakichi = 0%
Gamatatsu = 20%

Gamatatsu é 20% porque math.random que não é entre 0 e 1 , dá número inteiro...

você podia multiplicar por 10 e dividir por 10 , assim:

math.random(0, 50) / 10  = math.random(0, 5) só que com números com vírgulas

veja alguns resultados:

 

  Mostrar conteúdo oculto

 

 

Eu fiz o script aqui para te mostrar, fiz ele dar 50% para cada monstro, assim:

 

  Mostrar conteúdo oculto

 

 

Uma pergunta, é opção o jutsu não funcionar? porque se não funcionar ele vai dar exhaust sem sumonar...

 

 

Aaaa quase esqueci, existem valores que não podem ser concatenados, como boolean, table, nil...

@@Dbko, Tente identar o código, não use o auto indent ainda, tente aprender a identar para depois usar ele...

 

obrigado mano... vou tentar uns scripter simples com as dicas que você mim deu e ver mas algumas aulas, valeu :3 esperando pela aula =x

Link para o comentário
https://xtibia.com/forum/topic/239629-summom-gamabunta-portecentual/#findComment-1687150
Compartilhar em outros sites

Po, numa boa legal seu esforço, legal o resultado, enfim, parabens por isso.

Mas, na moral, aprende a escrever, vai te ajudar pra caralho nos scripts e na vida.

 

Abraços,

Link para o comentário
https://xtibia.com/forum/topic/239629-summom-gamabunta-portecentual/#findComment-1687191
Compartilhar em outros sites

×
×
  • Criar Novo...