Ir para conteúdo
  • 0

3 Pedidos - Npc, Spell, Talkaction(System)?


AureaFragorGB

Pergunta

Bom pessoal To Criando um Servidor Mas Vou Precisar Da Ajuda De Vocês :D

Não Deve Ser Muito Difícil :D

 

Primeiro A Spell :

Vou Tentar Deichar Bem Explicadinho.

 

 

Funcionamento :

 

O Player, Usa A Magia "Transmutar Runa De Energia" ( por exemplo ), E A Runa Que Sai

Vai Variar O Tipo E as Cargas Conforme o ML.

 

Explicando Melhor:

 

Exemplo : Um Player Com Magic Level 20 Usa A Runa De Energia, Entrando Em Função :

 

Tem Chance De Sair Uma Runa "X" Com No MAXIMO 20 cargas.

Tem Chance Sair Runa "Y" Com No Maximo 10 cargas.

E Assim Vai, O Numero De Possibilidades Vai Aumentando Conforme O Magic Level,

Pessoal Se Eu Não Tiver Explicado Direitinho Podem Me Perguntar.

De Preferencia Façam O Script Fácil Para Min Editar, Não Gosto De Dar Muito Trabalho Para Vocês.

 

 

 

------------------------------------------------------------------------------------------------------------------------

 

Essa Daqui Provavelmente é a mais difícil, entenderei perfeitamente caso não façam,

mas um pouco de desafio é sempre bem vindo, não?

 

Funcionamento:

A Cada 1 Hora O Player Pode Fazer Uma Oração Para Seu Respectivo "Deus",

Ao Fazer Essa Oração, Ele Ganha Uma Certa Experiencia, E Tem A Chance De Ganhar items

(variados).

 

Dificultando xD :

O Player Terá Uma Skill, De "Orar", Como Eu Sei Que É Muito Hard Colocar Para Aparecer

No Cliente, Não Precisa. Mas Essa Skill Upe Conforme Ele Ore.

 

Explicando melhor :

O Player Pode Upar, A Sua Oração Conforme Ele Ora.

 

Exemplo:

 

Oração lvl1 = 1000 De Exp, E Chance De 5% De Conseguir Um Item.

Oração lvl2 = 2500 De Exp, E chance De 10% De Conseguir Um item.

Oração lvl3 = 5000 De Exp, E Chance De 15% De Conseguir Um Item.

 

O item Que Pode Sair (Seja Configurável )

O Nível De Oração "3" é o máximo.

 

Não Sei Vocês Mas, EU Achei Bem Difícil '-'

----------------------------------------------------------------------------------------------------------------------

 

Talvez Seja O Mais Simples, Um Npc De Vocations, Porem Que Fique Bem Facil de

Editar, Porque Preciso Colocar Umas 30 vocaçoes nele.

 

Dificultando xD :

Este Npc "da" as vocations conforme o gender do player, Por exemplo :

 

Homens podem virar : Guerreiro, Barbaro, knight.

Mulheres Podem Virar : Amazona, Feiticeira.

 

Deu pra Entender?

Caso nao, Só Pedir Uma Explicação Mais Facil.

 

Tava Foleando os pedidos, e vi um bem parecido com o meu

que se nao me engano foi o "demonbeholder" que atendeu.

 

 

 

 

function onCastSpell(cid, var)

 

local rune1 = 2287

local rune2 = 2231

local rune3 = 2315

local rune4 = 2281

local rune5 = 2281

local rune6 = 2281

 

if getPlayerLevel(cid) <= 20 then

doPlayerAddItem(cid, rune1, getPlayerLevel(cid))

elseif getPlayerLevel(cid) > 20 and getPlayerLevel(cid) <= 40 then

doPlayerAddItem(cid, rune2, getPlayerLevel(cid))

elseif getPlayerLevel(cid) > 40 and getPlayerLevel(cid) <= 60 then

doPlayerAddItem(cid, rune3, getPlayerLevel(cid))

elseif getPlayerLevel(cid) > 60 and getPlayerLevel(cid) <= 80 then

doPlayerAddItem(cid, rune4, getPlayerLevel(cid))

elseif getPlayerLevel(cid) > 80 and getPlayerLevel(cid) <= 100 then

doPlayerAddItem(cid, rune5, getPlayerLevel(cid))

elseif getPlayerLevel(cid) > 100 then

doPlayerAddItem(cid, rune6, getPlayerLevel(cid))

end

end

acho que da pra fazer com ele, com um edit aki e outro ali '-'

nao tenho certeza.

Editado por AureaFragorGB
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

esse negocio da runa, é uma runa que usa e vira outra(variadas posibilidades) ou uma spell que tu fala e cria a runa tipo adori blank?

 

o de oração é facil, mais quais seriam as palavras que presisaria falar pra faze elas?

Link para o comentário
Compartilhar em outros sites

  • 0

A Spell Da Runa é tipo assim, você usa a magia, e tem a chance

de sair uma variedade de runas. e as cargas da runa variam conforme ml.

entendeu?

a oração, Pode Colocar "Orar Para Tytan" qualquer coisa desse tipo :D

 

agradeço desde já, e é claro que ganhará rep com isso :D

Link para o comentário
Compartilhar em outros sites

  • 0

n deu pra testa aki masi ve se funciona, se de alguma erro posta aki

vo posta o que eu fis pra runa

va em spell.xml adicione essa tag,edita ela ao seu gosto

<instant name="nome da magia" words="nome da magia" lvl="10" mana="250" prem="0" exhaustion="2000" needlearn="0" script="runas.lua">
	<vocation name="vocation que usa"/>
</instant>

va em spell/scripts crie uma aquivo lua com nome runas.lua e coloque isto dentro

items = { {idruna, maglevelnesesario}, {idruna, maglevelnesesario}, {idruna, maglevelnesesario} } ---runas
tab = {}

function onCastSpell(cid, var)
x = getPlayerMagLevel(cid)
for i = 1, #items do
if items[i][2] <= x then
table.insert(tab, items[i][1])
end
end
rad = math.random(1, #tab)
rad2 = math.random(1,(15 + math.floor(x/2)))

  doPlayerAddItem(cid, tab[rad], rad2)

return TRUE
end 

Editado por lordbug99
Link para o comentário
Compartilhar em outros sites

  • 0

aew mano, valeu por estar tentando me ajudar.

mas assim, o personagem fala, e a fala dele sai.

mas não acontece nada.

Obs: ocorre este erro no distro

 

 

[29/04/2012 18:37:49] [Error - LuaScriptInterface::loadFile] data/spells/scripts/WakeFier Spells/Transmutar Runa De Energia.lua:6: 'do' expected near 'then'

[29/04/2012 18:37:49] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/WakeFier Spells/Transmutar Runa De Energia.lua)

Editado por AureaFragorGB
Link para o comentário
Compartilhar em outros sites

  • 0

sauhsahuasuh escrvi errado

substitui por isso o script por isso

 items = { {idruna, maglevelnesesario}, {idruna, maglevelnesesario}, {idruna, maglevelnesesario} } ---runas
tab = {}
function onCastSpell(cid, var)
x = getPlayerMagLevel(cid)
for i = 1, #items do
if items[i][2] <= x then
table.insert(tab, items[i][1])
end
end
rad = math.random(1, #tab)
rad2 = math.random(1,(15 + math.floor(x/2)))
  doPlayerAddItem(cid, tab[rad], rad2)
return TRUE
end 

 

sauhsahuasuh escrvi errado

substitui por isso o script por isso

 items = { {idruna, maglevelnesesario}, {idruna, maglevelnesesario}, {idruna, maglevelnesesario} } ---runas
tab = {}
function onCastSpell(cid, var)
x = getPlayerMagLevel(cid)
for i = 1, #items do
if items[i][2] <= x then
table.insert(tab, items[i][1])
end
end
rad = math.random(1, #tab)
rad2 = math.random(1,(15 + math.floor(x/2)))
  doPlayerAddItem(cid, tab[rad], rad2)
return TRUE
end 

 

fis um aki pro de orção, tag é igual a qualquer outra talkaction, mas n testei

va em talkaction/scripts crie um arquivo lua com nome oração.lua e coloque isto dentro

items = {{id,quantidade minima, quantidade max}, {id,quantidade minima, quantidade max}, {id,quantidade minima,quantidade max} } --items lv 0
items1 = {{id,quantidade minima, quantidade max}, {id,quantidade minima, quantidade max}, {id,quantidade minima,quantidade max} } --items lv 1
items2 = {{id,quantidade minima,quantidade max}, {id,quantidade minima,quantidade max}, {id,quantidade minima,quantidade max} } --items lv 2
items3 = {{id,quantidade minima,quantidade max}, {id,quantidade minima,quantidade max}, {id,quantidade minima,quantidade max} } --items lv 3
str = 13424 --storage exp
str1 = 13425 --storage lv
str2 = 13426 --exhaustion
chance = { 2, 5, 10, 15 } --chances de vim algum item

exprate = { 20, 15, 10} exp rate lv 0, 1 e 2(na mesma sequencia), n tem pro lv 3 porqe é maximo que da pra chega logo seria inutil






function onSay(cid, words, param)
if not exhaustion.check(cid, str2) then

if getPlayerStorageValue(cid, str) < 0 then
setPlayerStorageValue(cid, str, 20)
setPlayerStorageValue(cid, str1, 0)
k = math.random(1, 100)
if k <= chance[1] then
z = math.random(1, #items)
doPlayerAddItem(cid, items[z][1], math.random(items[z][2], items[z][3]))
end
retunr true
end
if getPlayerStorageValue(cid, str1) == 0 then
x = getPlayerStorageValue(cid, str)
if x + exprate[1] >= 1000 then
setPlayerStorageValue(cid, str1, 1)
end
setPlayerStorageValue(cid, str, x + exprate[1])
k = math.random(1, 100)
if k <= chance[1] then
z = math.random(1, #items)
doPlayerAddItem(cid, items[z][1], math.random(items[z][2], items[z][3]))

end
retunr true
end
if getPlayerStorageValue(cid, str1) == 1 then
x = getPlayerStorageValue(cid, str)
if x + exprate[2] >= 2500 then
setPlayerStorageValue(cid, str1, 2)
end
setPlayerStorageValue(cid, str, x + exprate[2])
k = math.random(1, 100)
if k <= chance[2] then
y = math.random(1, 100)
if y >= 30 then
z = math.random(1, #items)
doPlayerAddItem(cid, items[z][1], math.random(items[z][2], items[z][3]))
else
z = math.random(1, #items1)
doPlayerAddItem(cid, items1[z][1], math.random(items1[z][2], items1[z][3]))
end
retunr true
end

if getPlayerStorageValue(cid, str1) == 2 then
x = getPlayerStorageValue(cid, str)
if x + exprate[3] >= 5000 then
setPlayerStorageValue(cid, str1, 3)
end
setPlayerStorageValue(cid, str, x + exprate[3])
k = math.random(1, 100)
if k <= chance[3] then
y = math.random(1, 100)
if y >= 50 then
z = math.random(1, #items)
doPlayerAddItem(cid, items[z][1], math.random(items[z][2], items[z][3]))
elseif y >= 20 and < 50 then
z = math.random(1, #items1)
doPlayerAddItem(cid, items1[z][1], math.random(items1[z][2], items1[z][3]))
else
z = math.random(1, #items2)
doPlayerAddItem(cid, items2[z][1], math.random(items2[z][2], items2[z][3]))
end
retunr true
end


if getPlayerStorageValue(cid, str1) == 3 then
k = math.random(1, 100)
if k <= chance[4] then
y = math.random(1, 100)
if y >= 60 then
z = math.random(1, #items)
doPlayerAddItem(cid, items[z][1], math.random(items[z][2], items[z][3]))
elseif y >= 25 and < 60 then
z = math.random(1, #items1)
doPlayerAddItem(cid, items1[z][1], math.random(items1[z][2], items1[z][3]))
elseif y >= 10 and < 25 then
z = math.random(1, #items2)
doPlayerAddItem(cid, items2[z][1], math.random(items2[z][2], items2[z][3]))
else
z = math.random(1, #items3)
doPlayerAddItem(cid, items3[z][1], math.random(items3[z][2], items3[z][3]))
end
retunr true
end
exhaustion.set(cid, str2, 1000*60*60)
else
doPlayerSendCancel(cid, "você tem que esperar 1 hora pra poder orar novamente")
end

return 1
end

Editado por lordbug99
Link para o comentário
Compartilhar em outros sites

  • 0

Perfeito Cara S2.

Só Que Assim, Como Faço Para Almentar O Numero De Runas Que Podem Ser criadas?

Até Aonde Testei Está Perfeito!

 

Pode Enclusive Olhar Porque Já Dei REP+

 

ainda vou testar a oração

 

Até onde eu testei, oração funcionando,

muito obrigado, vai receber mais rep

assim que possivel :D.

 

Vixi, Deu Error.

 

desculpe a ignorância, havia testado em um servidor

na casa de meu amigo, nao me lembro o nome.

hoje fui implantar no meu servidor, e deu um erro.

 

Oração Error :

 

[30/04/2012 15:45:10] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/oracao.lua:1: '}' expected near 'minima'

[30/04/2012 15:45:10] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/oracao.lua)

[30/04/2012 15:45:10] data/talkactions/scripts/oracao.lua:1: '}' expected near 'minima'

 

Desculpe Pelo Inconveniente D:

Editado por Vilden
Retirar cor
Link para o comentário
Compartilhar em outros sites

  • 0

cara se tinha que substituir o "id" pela id do item,"quantidade minima" pela quantidade minima que vai vim e "quantidade max" pela quantia maxima que va vim do item,

n pode deixar palavras la

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...