Ir para conteúdo
  • Cadastre-se

(Resolvido) [Pedido] Lua - Aprender ! Scripters ajudem !


Posts Recomendados

Olá galerinha TKbiana !

Estou aqui, para pedir ajuda dos Scripter, pois eu gostaria muito de aprender...

Eu tenho um básico muito básico, queria me tornar uma scripter avançada !

Agradeceria muito se alguem me ajudar diante desse tópico, pois aqui, postárei todas as minhas dúvidas diariamente, e quem souber me ajude porfavor !

Se não souber ajudar vou puxar tua perna tudo bem xD

1ª Dúvida :

local targetlist, ret = {{"Hitdoll"},{"Marskman Target"}}, true


function onPush(cid, target, ground, position)

    if(isInArray(targetlist, getCreatureTarget(target):lower())) then

        ret = RETURNVALUE_NOTPOSSIBLE

    end


    return ret

end

Diante desse scripter, o que significa :

getCreatureTarget(target):lower() ?

-----------

Esse tipo de "local" é diferente :

local targetlist, ret = {{"Hitdoll"},{"Marskman Target"}}, true

O unico que eu conheço é :

"local aprendendo = getPlayerName (cid)"

Me expliquem esse tipo de "local" que eu não conheço.

Muito obrigada !

Att. Huziwara no Mokou

bXEB9.jpg
Link para o post
Compartilhar em outros sites

Local = definir uma variavel.

Dpa eu posto o resto, ..

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Link para o post
Compartilhar em outros sites

Local = definir uma variavel.

Dpa eu posto o resto, ..

Eu sei disso, só que eu não entendo quando tem virgula, etc...

Obrigada pela ajuda, estou aguardando !

Att. Huziwara no Mokou

bXEB9.jpg
Link para o post
Compartilhar em outros sites

Ochi.. Em vez de fazer em 2 linhas faz em 1.

Ex:

Local a = 1

local b = 2

------

Local a,b = 1,2

Viu ..

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Link para o post
Compartilhar em outros sites

Hahahahaha, não pensei =/

Muito obrigada !

Rep + :accept:

Se souber me explicar os outros me avisa !

Att. Huziwara no Mokou

Editado por Huziwara (veja o histórico de edições)
bXEB9.jpg
Link para o post
Compartilhar em outros sites

Não entendi o "vai retornar demon"

@edit

Oque é lower case ? hehehe '-'

Att. Huziwara no Mokou

Editado por Huziwara (veja o histórico de edições)
bXEB9.jpg
Link para o post
Compartilhar em outros sites

Oque é lower case?

Transforma strings em strings minusculas.

Ex: "SKYDANGEROUS" - "skydangerous"

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Link para o post
Compartilhar em outros sites

Strings são.... ?

Letras ?

Att. Huziwara no Mokou

Editado por Huziwara (veja o histórico de edições)
bXEB9.jpg
Link para o post
Compartilhar em outros sites

tipo, eu não sei explicar direito o que é retornar, mas é mais ou menos assim

local var = "renato"

se usarmos var, irá retornar renato.

if var == "renato" then

como var retorna renato, vai ficar

if "renato" == "renato" then

expliquei meio estranho mas dá pra entender

outro exemplo

local soma = 6 + 5

soma vai retornar 11

é isso

flw

---

edit

string é um tipo de dado, uma cadeia de caracteres.

int é outro tipo de dado, que engloba os números inteiros

bool é outro tipo de dado, float outro etc

Link para o post
Compartilhar em outros sites

Renato obrigada ! REP + :accept:

Me ajudem com isso aqui...

Tentei fazer esse script. Como ele deve funcionar : Quando a mana do player estiver full e o player estiver de target ele vai perder 70% de mana ! Mas aqui ele só faz isso uma vez, sendo que era pra fazer sempre que ele tiver com mana full...

Alguem me ajuda ?

function onTarget(cid, target)

if  (getCreatureName(target) == "Hitdoll" or getCreatureName(target) == "Marksman Target") then

SendEffect(cid)

end

return TRUE

end


function SendEffect(cid, target)

local tempo = 1 -- Tempo em segundos

local mpdown = (getCreatureMaxMana(cid) / 100) * 70


if isMonster(target) then

if ((getPlayerMana(cid)) == (getCreatureMaxMana(cid))) then

    doPlayerAddMana(cid, -mpdown)

    doPlayerAddSpentMana(cid, mpdown)

    doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)

    doCreatureSay(cid, "Automana...", TALKTYPE_ORANGE_1)

addEvent(SendEffect, cid)

end

return TRUE

end

end

Att. Huziwara no Mokou

bXEB9.jpg
Link para o post
Compartilhar em outros sites

onTarget seria tipo ao possuir um target

Então a lógica tá errada ai...

Procure aprender sobre a função onThink, e lá você checa se tem target, e se, o target é hitdoll etc.

Link para o post
Compartilhar em outros sites

Tentei com Think, mas tambem nada...

Com think nem tira a mana na primeira vez !

Att. Huziwara no Mokou

bXEB9.jpg
Link para o post
Compartilhar em outros sites

Estou sem OTserver para criar um script, então editei o seu.


function onTarget(cid, target)

if  (getCreatureName(target) == "Hitdoll" or getCreatureName(target) == "Marksman Target") then

SendEffect(cid)

end

return TRUE

end


function SendEffect(cid, target)

local tempo = 1 -- Tempo em segundos

local mpdown = (getCreatureMaxMana(cid) / 100) * 70


if (isMonster(target) and (getPlayerMana(cid) == getCreatureMaxMana(cid))) then

	registerCreatureEvent(cid, "Targets")

	doPlayerAddMana(cid, -mpdown)

	doPlayerAddSpentMana(cid, mpdown)

	doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)

	doCreatureSay(cid, "Automana...", TALKTYPE_ORANGE_1)

addEvent(SendEffect, cid)

end

return TRUE

end

Link para o post
Compartilhar em outros sites

Kimoszin, o seu não funcionou, but

Esse aqui que eu fiz :

function onTarget(cid, target)

local mpdown = (getCreatureMaxMana(cid) / 100) * 70

if (getCreatureName(target) == "Hitdoll" or getCreatureName(target) == "Marksman Target") and ((getPlayerMana(cid)) == (getCreatureMaxMana(cid))) then

    doPlayerAddMana(cid, -mpdown)

    doPlayerAddSpentMana(cid, mpdown)

    doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)

    doCreatureSay(cid, "Automana...", TALKTYPE_ORANGE_1)

end

return true

end

Funcionou, só que ele só funciona uma vez, só quando eu to target em alguem e não funciona mais :/

Att. Huziwara no Mokou

bXEB9.jpg
Link para o post
Compartilhar em outros sites

Tenta isso

data/creaturescripts/scripts


function onThink(cid, interval)
local mpdown = (getCreatureMaxMana(cid) / 100) * 70
if (getCreatureName(target) == "Hitdoll" or getCreatureName(target) == "Marksman Target") and ((getPlayerMana(cid)) == (getCreatureMaxMana(cid))) then
doPlayerAddMana(cid, -mpdown)
doPlayerAddSpentMana(cid, mpdown)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
doCreatureSay(cid, "Automana...", TALKTYPE_ORANGE_1)
end
return true
end
[/code] [b]data/creaturescripts/scripts -> login.lua [/b]
[code]
registerCreatureEvent(cid, "ManaTrain")
data/creaturescripts -> creaturescripts.xml:

<event type="think" interval="1000" name="ManaTrain" event="script" value="manatrain.lua"/>
[/code]

Link para o post
Compartilhar em outros sites

Não funcionou, e apareceu esse erro :

....scripts/manatrain.lua:onThink

Description :

(luaGetCreatureName) Creature not found

E no meu hitdoll.xml ta assim ó :

<monster name="Hitdoll" nameDescription="a hitdoll" race="undead" experience="200" speed="0" manacost="60000">

...não sei se estou pedindo demais, mas me ajude porfavor !

Att. Huziwara no Mokou

bXEB9.jpg
Link para o post
Compartilhar em outros sites

Estou sem OTserver, apenas fazendo de cabeça.

function onThink(cid, interval)

local mpdown = (getCreatureMaxMana(cid) / 100) * 70

if (string.lower(getCreatureName(target) == "Hitdoll") or string.lower(getCreatureName(target) == "Marksman Target")) and ((getPlayerMana(cid)) == (getCreatureMaxMana(cid))) then

        doPlayerAddMana(cid, -mpdown)

        doPlayerAddSpentMana(cid, mpdown)

        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)

        doCreatureSay(cid, "Automana...", TALKTYPE_ORANGE_1)

end

return true

end

Link para o post
Compartilhar em outros sites

Estárei testando !

@edit

[0:33:42.093] [C]: in function 'lower'

[0:33:42.093] data/creaturescripts/scripts/automana.lua:3: in function <data/creaturescripts/script/automana.lua:1>

Att. Huziwara no Mokou

Editado por Huziwara (veja o histórico de edições)
bXEB9.jpg
Link para o post
Compartilhar em outros sites

tenta isso aqui, rs


function onThink(cid, interval)
local mpdown = (getCreatureMaxMana(cid) / 100) * 70
if getCreatureTarget(cid) then
if (getCreatureName(getCreatureTarget(cid)) == "Hitdoll" or getCreatureName(getCreatureTarget(cid)) == "Marksman Target") and ((getPlayerMana(cid)) == (getCreatureMaxMana(cid))) then
doPlayerAddMana(cid, -mpdown)
doPlayerAddSpentMana(cid, mpdown)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_MAGIC_BLUE)
doCreatureSay(cid, "Automana...", TALKTYPE_ORANGE_1)
end
end
return true
end
[/code]

onThink não tem parametro Target né Renato, burrinho, rs

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo