Ir para conteúdo
  • 0

Sistema troca de Moedas


kaizy536

Pergunta

Gente, estou com um erro aqui no meu script, primeiro vou falar do que eu to tentando fazer, depois vou falar do erro..

 

Eu to tentando fazer com que possa transformar por exemplo 100 moedas verde, em 1 moeda prata, e vice versa, igual o sistema de troca de gold coins>platinum coins>crystal coins.. Enfim, pra fazer esse script eu basicamente peguei o script do server que é changegold.lua e tentei adicionar somente o que eu queria fazer, abaixo segue o script:

 

 

 

 

local coins = {

[iTEM_GOLD_COIN] = {
to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW
},
[iTEM_PLATINUM_COIN] = {
from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
},
[iTEM_CRYSTAL_COIN] = {
from = ITEM_PLATINUM_COIN, to = ITEM_MOEDA_VERDE, effect = TEXTCOLOR_TEAL
}
[iTEM_MOEDA_VERDE] = {
from = ITEM_CRYSTAL_COIN, to = ITEM_MOEDA_DE_OURO, effect = TEXTCOLOR_RED
}
[iTEM_MOEDA_DE_OURO] = {
from = ITEM_MOEDA_VERDE, effect = TEXTCOLOR_GREEN
}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
return false
end
local coin = coins[item.itemid]
if(not coin) then
return false
end
if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then
doChangeTypeItem(item.uid, item.type - item.type)
doPlayerAddItem(cid, coin.to, 1)
doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)
elseif(coin.from ~= nil) then
doChangeTypeItem(item.uid, item.type - 1)
doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)
doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)
end
return true
end
Em vermelho é a parte que eu adicionei ao script.

 

Agora o erro:

 

 

 

[28/11/2013 22:18:06] [Error - LuaScriptInterface::loadFile] data/actions/scripts/other/changegold.lua:11: '}' expected (to close '{' at line 1) near '['

[28/11/2013 22:18:06] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/other/changegold.lua)
[28/11/2013 22:18:06] data/actions/scripts/other/changegold.lua:11: '}' expected (to close '{' at line 1) near '['
[28/11/2013 22:18:06] [Error - LuaScriptInterface::loadFile] data/actions/scripts/other/changegold.lua:11: '}' expected (to close '{' at line 1) near '['
[28/11/2013 22:18:06] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/other/changegold.lua)
[28/11/2013 22:18:06] data/actions/scripts/other/changegold.lua:11: '}' expected (to close '{' at line 1) near '['
[28/11/2013 22:18:06] [Error - LuaScriptInterface::loadFile] data/actions/scripts/other/changegold.lua:11: '}' expected (to close '{' at line 1) near '['
[28/11/2013 22:18:06] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/other/changegold.lua)
[28/11/2013 22:18:07] data/actions/scripts/other/changegold.lua:11: '}' expected (to close '{' at line 1) near '['

 

 

 

Por favor, se alguem puder me ajudar nisso faz ai :). Obrigado

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

8 respostass a esta questão

Posts Recomendados

  • 0

Vc esqueceu de 2 virgulas e, alem disso, acho que o script nao vai reconhecer "ITEM_MOEDA_VERDE" entao eu transformei isso em uma variavel


local ITEM_MOEDA_VERDE = 123 -- Bota o id da moeda verde
local ITEM_MOEDA_DE_OURO = 123 -- Bota o id da moeda de ouro

local coins = {
[ITEM_GOLD_COIN] = {
to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW
},
[ITEM_PLATINUM_COIN] = {
from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE
},
[ITEM_CRYSTAL_COIN] = {
from = ITEM_PLATINUM_COIN, to = ITEM_MOEDA_VERDE, effect = TEXTCOLOR_TEAL
},
[ITEM_MOEDA_VERDE] = {
from = ITEM_CRYSTAL_COIN, to = ITEM_MOEDA_DE_OURO, effect = TEXTCOLOR_RED
},
[ITEM_MOEDA_DE_OURO] = {
from = ITEM_MOEDA_VERDE, effect = TEXTCOLOR_GREEN
}
}
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
return false
end
 
local coin = coins[item.itemid]
if(not coin) then
return false
end
 
if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then
doChangeTypeItem(item.uid, item.type - item.type)
doPlayerAddItem(cid, coin.to, 1)
doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect)
elseif(coin.from ~= nil) then
doChangeTypeItem(item.uid, item.type - 1)
doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX)
doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect)
end
return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

vlw amoeba xD, vou testar aqui.. zipter98 kkkk xd


mano, so tem um problema aqui, eu consigo transforma as crysta coin em moeda verde, mais nao consigo voltar a transformaçao da moeda verde em crystal coin, e outro problema tambem é o mesmo com a moeda de ouro, mesmo com 100 moedas verde eu nao consigo transforma-la em 1 moeda de ouro, e nem voltar a transformaçao x.x

Link para o comentário
Compartilhar em outros sites

  • 0

coloca isso no actions.xml

 

<action itemid="ID" event="script" value="other/changegold.lua"/>

<action itemid="ID" event="script" value="other/changegold.lua"/>

 

no lugar do ID vc coloca o id da moeda verde e no outro, o da moeda de ouro

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...