Não tenho certeza... Mas acredito que por variaveis globais realmente não irá dar certo... Pois estes valores tem que restringir particularmente a cada player...
Sei la
Acho que dá pra fazer isto com storages...
Mas talvez haja uma forma melhor
Não tenho certeza... Mas acredito que por variaveis globais realmente não irá dar certo... Pois estes valores tem que restringir particularmente a cada player...
Sei la
Acho que dá pra fazer isto com storages...
Mas talvez haja uma forma melhor
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

var = {}
var[cid] = {a = a, b = b, c = c}
Acho que é isso ..
'
Editado Janeiro 31 por Byerne
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

Desculpe minha ignorância, mas será que você se importa de me explicar mais detalhadamente, não consegui entender ![]()
Mas de qualquer forma levou meu rep+...
Muito obrigada por tentar ajudar...
Depois de muito quebrar a cabeça... Meu script ficou assim:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local t = {
sign = {{level = {0,9}, percent = 25, itemid = {1293, 1294, 1295}},
{level = {10,14}, percent = 30, itemid = {1293, 1294, 1295, 2150}},
{level = {15,19}, percent = 35, itemid = {1293, 1294, 1295, 2150, 2149}},
{level = {20,24}, percent = 40, itemid = {1293, 1294, 1295, 2150, 2149, 2146}},
{level = {25,29}, percent = 45, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147}},
{level = {30,34}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970}},
{level = {35,39}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145}},
{level = {40,44}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157}},
{level = {45,49}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154}},
{level = {50,54}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156}},
{level = {55,59}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153}},
{level = {60,64}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153, 2155}},
{level = {70, 1000}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153, 2155, 2177}}}
}
if itemEx.actionid == 1515 then
setPlayerStorageValue(cid, 101, getPlayerStorageValue(cid, 101)+1)
print('Skill Try: '.. getPlayerStorageValue(cid, 101) .. ' Skill Level:' .. getPlayerStorageValue(cid,102) .. ' A+B: ' .. getPlayerStorageValue(cid,103) + getPlayerStorageValue(cid,104))
for Q = 1, #t.sign do
if getPlayerStorageValue(cid, 102) >= t.sign[Q].level[1] and getPlayerStorageValue(cid, 102) <= t.sign[Q].level[2] then
percent = t.sign[Q].percent
itemid = t.sign[Q].itemid[math.random(1,#t.sign[Q].itemid)]
break
end
end
doSendMagicEffect(toPosition, CONST_ME_POFF)
if math.random(20,100) <= percent then
doPlayerAddItem(cid, itemid , 1)
else
doSendAnimatedText(toPosition, 'Tick', 210)
end
if getPlayerStorageValue(cid, 101) == getPlayerStorageValue(cid, 103)+getPlayerStorageValue(cid, 104) then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Você avançou sua habilidade em mineração para o nível '.. getPlayerStorageValue(cid, 102)+1 .. '.')
setPlayerStorageValue(cid, 103, getPlayerStorageValue(cid, 103)+getPlayerStorageValue(cid, 104))
setPlayerStorageValue(cid, 104, getPlayerStorageValue(cid, 104)+getPlayerStorageValue(cid, 105))
setPlayerStorageValue(cid, 105, getPlayerStorageValue(cid, 105)+10)
setPlayerStorageValue(cid, 102, getPlayerStorageValue(cid, 102)+1)
end
end
return true
end
Mas sinto que ele esta grotesco e ate ira causar leg quando muitas pessoas estiverem mineirando... E eu adoraria aprender tecnicas mais avançadas ;D
Editado Fevereiro 1 por sabrina9292
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

não entendi o que vc quer fazer exatamente com aquela variável.
assim que o player clicar 10 vezes no item ele sobe 1 skill? isso?
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

Bom pessoal...
Eu estou querendo criar um sistema de mineração com skills...
Só que é a primeira vez que fasso isso e estou com medo de estar fazendo do modo errado, acredito que para isso o mais apropriado nao seja variaveis...
Entao tentei com storages e então o meu script ficou como o postado no meu ultimo post... Porem eu acho que ele ta muito grotesco e até ira causar lag quando muitas pessoas resolverem minerar...
Então gostaria de saber se vocês sabem um metódo mais simples de fazer o que eu quero fazer...
A respeito da fórmula... Acho que a melhor forma de entender e pelo script que criei para poder entende-la:
a=0 b=10 c=0 while a+b <= 1000000 do print(a .. ' + '.. b .. ' = ' .. a+b) a=a+b b=b+c c=c+10 end
É isso ai pessoal... Acho que da pra entender pelo script... Mas qualquer coisa eu tento esplica-la...
Resumindo em poucas palavras... Eu gostaria que vo^ces me ajudassem a "encurtar" o script e torna-lo mais "eficiente"
Editado Janeiro 31 por sabrina9292
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

isso não é uma fórmula, é um monte de soma sem sentido.
vc precisa de uma fórmula pra quando ele tentar usar o item aumentar as chances dele de dar certo ou não, e a cada vez que ele usar o item aumentar o skill dele.
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

isso não é uma fórmula, é um monte de soma sem sentido.
vc precisa de uma fórmula pra quando ele tentar usar o item aumentar as chances dele de dar certo ou não, e a cada vez que ele usar o item aumentar o skill dele.
Primeiramente quero deixar bem claro que sou muito grata a você, afinal de contas, reconheço que você tem um grau de conhecimento muito maior que o meu e ja me ajudou demais ... Muito obrigada
Mas me desculpe, terei que discordar de você... Não sei a definilção exata da palavra "formula" e nem o que você costuma considerar como formula, mas ate onde eu sei, é uma representação simbolica utilizada para encontrar um número, e foi exatamente nisto que este script me ajudou... E se voce analiza-lo e conseguir realmente entende-lo, irá fazer o maior sentido...
Observe:
Serão necessário 10 para o nível 1Serão necessário 20 para o nível 2
Serão necessário 40 para o nível 3
Serão necessário 80 para o nível 4
Serão necessário 150 para o nível 5
Serão necessário 260 para o nível 6
Serão necessário 420 para o nível 7
Serão necessário 640 para o nível 8
Serão necessário 930 para o nível 9
Serão necessário 1300 para o nível 10
Serão necessário 1760 para o nível 11
Serão necessário 2320 para o nível 12
Serão necessário 2990 para o nível 13
Serão necessário 3780 para o nível 14
Serão necessário 4700 para o nível 15
Serão necessário 5760 para o nível 16
Serão necessário 6970 para o nível 17
Serão necessário 8340 para o nível 18
Serão necessário 9880 para o nível 19
Serão necessário 11600 para o nível 20
Serão necessário 13510 para o nível 21
Serão necessário 15620 para o nível 22
Serão necessário 17940 para o nível 23
Serão necessário 20480 para o nível 24
Serão necessário 23250 para o nível 25
Serão necessário 26260 para o nível 26
Serão necessário 29520 para o nível 27
Serão necessário 33040 para o nível 28
Serão necessário 36830 para o nível 29
Serão necessário 40900 para o nível 30
Serão necessário 45260 para o nível 31
Serão necessário 49920 para o nível 32
Serão necessário 54890 para o nível 33
Serão necessário 60180 para o nível 34
Serão necessário 65800 para o nível 35
Serão necessário 71760 para o nível 36
Serão necessário 78070 para o nível 37
Serão necessário 84740 para o nível 38
Serão necessário 91780 para o nível 39
Serão necessário 99200 para o nível 40
Serão necessário 107010 para o nível 41
Serão necessário 115220 para o nível 42
Serão necessário 123840 para o nível 43
Serão necessário 132880 para o nível 44
Serão necessário 142350 para o nível 45
Serão necessário 152260 para o nível 46
Serão necessário 162620 para o nível 47
Serão necessário 173440 para o nível 48
Serão necessário 184730 para o nível 49
Serão necessário 196500 para o nível 50
Observe que a quantidade de pontos necessaria para cada nivel aumenta gradativamente, e alem do mais, todas as quantidades de pontos necessarios são numeros exatos e não são exagerados.
Editado Fevereiro 1 por sabrina9292
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

já entendi seu código, não entendi o problema ainda.
você está usando os storages corretamente.
só não entendi o math.random do seu código.
if math.random(20,100) <= percent then
por que não if math.random(1, 100) <= percent then
não seria o correto?
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

já entendi seu código, não entendi o problema ainda.
você está usando os storages corretamente.
só não entendi o math.random do seu código.
if math.random(20,100) <= percent then
por que não if math.random(1, 100) <= percent then
não seria o correto?
Esta parte eu ainda nao acabei... Eu ainda tenho que rever estes numeros, mas acredito que não irá mudar muita coisa, só ira ficar mais facil de dropar os items...
Eu gostaria de saber se vocês conhecem uma forma melhor e mais eficiente de fazer este script...
Mas muito obrigada pela dica
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

mas por que? seu código não está ruim.
só a tabela la que podia ser assim:
sign = {{level = {0,9}, percent = 25, itemid = {1293, 1294, 1295}},
{level = {10,14}, percent = 30, itemid = {1293, 1294, 1295, 2150}},
{level = {15,19}, percent = 35, itemid = {1293, 1294, 1295, 2150, 2149}},
{level = {20,24}, percent = 40, itemid = {1293, 1294, 1295, 2150, 2149, 2146}},
{level = {25,29}, percent = 45, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147}},
{level = {30,34}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970}},
{level = {35,39}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145}},
{level = {40,44}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157}},
{level = {45,49}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154}},
{level = {50,54}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156}},
{level = {55,59}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153}},
{level = {60,64}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153, 2155}},
{level = {70, 1000}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153, 2155, 2177}}}
Não precisava estar dentro de uma outra table.
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

mas por que? seu código não está ruim.
só a tabela la que podia ser assim:
sign = {{level = {0,9}, percent = 25, itemid = {1293, 1294, 1295}}, {level = {10,14}, percent = 30, itemid = {1293, 1294, 1295, 2150}}, {level = {15,19}, percent = 35, itemid = {1293, 1294, 1295, 2150, 2149}}, {level = {20,24}, percent = 40, itemid = {1293, 1294, 1295, 2150, 2149, 2146}}, {level = {25,29}, percent = 45, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147}}, {level = {30,34}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970}}, {level = {35,39}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145}}, {level = {40,44}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157}}, {level = {45,49}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154}}, {level = {50,54}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156}}, {level = {55,59}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153}}, {level = {60,64}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153, 2155}}, {level = {70, 1000}, percent = 50, itemid = {1293, 1294, 1295, 2150, 2149, 2146, 2147, 9970, 2145, 2157, 2154, 2156, 2153, 2155, 2177}}}
Não precisava estar dentro de uma outra table.
Ahhhh... Muito obrigada...
Eu copiei a estrutura da tabela de outro script e nao havia notado...
Mas por nao conhecer os metodos mais avançados, tenho medo dos meus scripts darem lag, sei la...
Mas muito obrigada, levou meu rep+ xD
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

o que da pra fazer é deixar mais "bonitinho", dar uma orientada a objetos:
Postado no pastebin porque o fórum ta comendo minha identação.
obs: não foi testado
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1

o que da pra fazer é deixar mais "bonitinho", dar uma orientada a objetos:
Postado no pastebin porque o fórum ta comendo minha identação.
Se importa de me ajudar em so mais uma coisinha pititinha
?
Pode me explicar o que significa os dois pontos em lua ":" ?
function sign:new(uid, toPosition) self:setFormule(uid) function sign:setFormule(uid) sign:new(cid, toPosition)
Brigadim ;D
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

da uma olhada nessa pergunta do lua groups: http://groups.google.com/group/lua-br/browse_thread/thread/586df782e62c77fd/7a9778c6b5d0b7c9
depois olha isso pra aprender a orientar a objetos: http://www.xtibia.com/forum/topic/102211-programacao-orientada-a-objetos-lua/
info
Grupo: Campones
Registrado: 02/02/08
Posts: 29
Reputação: +1
Bom pessoal...
Eu comecei a criar meu proprio script de mineraçao...
E neste sistema será possivel avançar skills...
Só que para poder avançar skill eu criei um "formulinha" que esta me dando dor de cabeça, pois não sei qual e o metodo certo de lidar com este problema...
Por enquanto, o script eh este:
E a minha dúvida é em relação as variavéis globais...
Até onde eu sei, não é aconselhavél usa-las, pois se houver duas variaveis com o mesmo nome em scripts diferentes, uma irá interferir na outra, mas em certos casos, você e obrigado a usa-las...
E minha duvida e justamente está... Existe algum modo mais sensato para fazer o que quero fazer?Sei-la, eu não entendo muito bem de funções, na verdade não entendo boa parte de lua
, mas talvez com funções seja melhor...
Bom é isso ai...
Acredito que neste script existam partes que possam ser substituidas por metodos mais "avançados" que complicam menos o script...
Desde já...
Muito obrigada
Editado Janeiro 29 por sabrina9292