Tudo que JcA postou
-
(Resolvido)Ao matar monstro, some item?
- Sistema de Reset 100%
-
(Resolvido)Comprar item de forma diferente? (complexo?)
Esta sim bro
-
(Resolvido)Ao matar monstro, some item?
Então, estou com uma ideia assim, ao matar o boss, desaparece um item que esta em x posição, e libera passagem, alguém ajuda? 8.60 tfs 0.4
-
(Resolvido)Comprar item de forma diferente? (complexo?)
@luangop Foi mal, é a drogas, que maluquice! Bom, agora sim, é um problema real, quando estou em cima do sqm certo, e uso o comando, da essa mensagem, e não acontece nada, nem erros no distro: 15:18 Lugar inadequado para usar o comando.
-
(Resolvido)Comprar item de forma diferente? (complexo?)
local pos1 = {x=932}, y=1039, z=7} local pos2 = {x=933, y=1041, z=7} local pos3 = {x=935, y=1043, z=7} local pos4 = {x=935, y=1045, z=7} local pos5 = {x=933, y=1047, z=7} local config1 = { -- config da pos 1 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2153, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config2 = { -- config da pos 2 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2154, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config3 = { -- config da pos 3 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2155, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config4 = { -- config da pos 4 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2156, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config5 = { -- config da pos 5 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2158, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } function onSay(cid, words, param, channel) if getCreaturePosition(cid) ~= pos1 and getCreaturePosition(cid) ~= pos2 and getCreaturePosition(cid) ~= pos3 and getCreaturePosition(cid) ~= pos4 and getCreaturePosition(cid) ~= pos5 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Lugar inadequado para usar o comando.") return true end if getCreaturePosition(cid) == pos1 then local config = config1 elseif getCreaturePosition(cid) == pos2 then local config = config2 elseif getCreaturePosition(cid) == pos3 then local config = config3 elseif getCreaturePosition(cid) == pos4 then local config = config4 elseif getCreaturePosition(cid) == pos5 then local config = config5 end if getPlayerItemCount(cid, config.need) >= config.price then if getPlayerStorageValue(cid, config.alavancaStr) <= os.time() then doPlayerRemoveItem(cid, config.need, config.price) doPlayerAddItem(cid, config.item, config.count) setPlayerStorageValue(cid, config.alavancaStr, config.time + os.time()) doCreatureSay(cid, "Você comprou ".. config.count .." ".. getItemNameById(config.item) ..".", TALKTYPE_MONSTER) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Espere ".. getPlayerStorageValue(cid, config.alavancaStr) - os.time() .." segundos para comprar novamente.") return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem ".. config.price .." ".. getItemNameById(config.need) ..".") return true end end <talkaction words="!buy" event="script" value="buy.lua" />
-
(Resolvido)Comprar item de forma diferente? (complexo?)
-
Suporte.
http://www.tibiaking.com/forum/forums/topic/35473-anunciar-morte-fulano-acabou-de-morrer-para-ciclano/
-
(Resolvido)Comprar item de forma diferente? (complexo?)
Jhow, acho que faltou esses fechamento, so não sei onde poe, segue o anexo local pos1 = {x=932], y=1039, z=7} local pos2 = {x=933, y=1041, z=7} local pos3 = {x=935, y=1043, z=7} local pos4 = {x=935, y=1045, z=7} local pos5 = {x=933, y=1047, z=7} local config1 = { -- config da pos 1 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2153, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config2 = { -- config da pos 2 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2154, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config3 = { -- config da pos 3 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2155, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config4 = { -- config da pos 4 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2156, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } local config5 = { -- config da pos 5 price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 2158, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente } function onSay(cid, words, param, channel) if getCreaturePosition(cid) ~= pos1 and getCreaturePosition(cid) ~= pos2 and getCreaturePosition(cid) ~= pos3 and getCreaturePosition(cid) ~= pos4 and getCreaturePosition(cid) ~= pos5 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Lugar inadequado para usar o comando.") return true end if getCreaturePosition(cid) == pos1 then local config = config1 elseif getCreaturePosition(cid) == pos2 then local config = config2 elseif getCreaturePosition(cid) == pos3 then local config = config3 elseif getCreaturePosition(cid) == pos4 then local config = config4 elseif getCreaturePosition(cid) == pos5 then local config = config5 end if getPlayerItemCount(cid, config.need) >= config.price then if getPlayerStorageValue(cid, config.alavancaStr) <= os.time() then doPlayerRemoveItem(cid, config.need, config.price) doPlayerAddItem(cid, config.item, config.count) setPlayerStorageValue(cid, config.alavancaStr, config.time + os.time()) doCreatureSay(cid, "Você comprou ".. config.count .." ".. getItemNameById(config.item) ..".", TALKTYPE_MONSTER) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Espere ".. getPlayerStorageValue(cid, config.alavancaStr) - os.time() .." segundos para comprar novamente.") return true end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não tem ".. config.price .." ".. getItemNameById(config.need) ..".") return true end end
-
(Resolvido)Script de Sacrificio
Não consegui encontrar no fórum, então eu gostaria de um script se possível, dessa forma: Um movements, ou action, não sei bem qual é o correto, mas um script que eu possa por uma actionid em um BASIN, e ao jogar X item em cima, aparece um monstro especifico, se o player jogar qualquer outro item diferente do permitido, o item pega fogo, sei la, some. (obs: quando jogar o x item correto, ele some também e aparece o monstro na posição X, ahhh e adiciona uma storage) tfs 0.4 8.60
-
(Resolvido)Comprar item de forma diferente? (complexo?)
tfs 0.4 8.60 É possivel uma talk de !buy se o player estiver parado em determinado sqm? Por exemplo, no server tem 5 sqm espalhado, permitir o uso da talk !buy apenas se tiver em cima destes sqm e em cada sqm, vai vir um item diferente com um preço diferente, vou tentar explicar em forma de variável (KKKKKKKKK SQN, ENTENDO PORRA NENHUMA, mas vao entender) !buy ham local config = { price = 30, -- Quantidade de items necessário para comprar. count = 1, -- Quantidade que irá vender. item = 666, -- ID do item que vai vender. need = 9971, -- ID do item necessário. alavancaStr = 3332, -- Storage para salvar e checar o tempo (tempo para o usar o comando de novo) time = 5 -- Tempo de espera para usar novamente pos = {x=500, y=550, z=7} }
-
(Resolvido)Correção em action script de use
Então, eu tentei só mudar as storages abaixo, porém a contagem do tempo etc... ta todo errada, alguém pode fazer esse favor? Quando uso o item aparece a contagem errada: Se esta 1 dia, esta aparecendo que adicionou 15 minutos, e que tem 10 dias de vip, se não tinha nenhum antes, wtf? 20:29 Were added 15 VIP minutes on your character. 20:29 You have 10 VIP days/minutes remaining. Eu uso o sistema mock 100% function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 1 -- coloque os dias que serão a VIP! local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 55555) local timenow = os.time() if getPlayerStorageValue(cid, 55555) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Were added ".. days .." VIP days on your character.") setPlayerStorageValue(cid, 55555, time) local quantity = math.floor((getPlayerStorageValue(cid, 55555) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have ".. quantity .." VIP days remaining.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) end return TRUE end
-
VIP System by Mock 100%
Aqui deu erro, o que eu faço? Error while executing query: Cannot add a NOT NULL column with default value NULL
-
(Resolvido)Crash ao criar char
Quando vou criar um char, ao escolher a vocação e dar yes, o server crash e fecha, alguém tem uma sugestão do que pode ser?
-
Ja era meu OT? :X
Não deu certo, acho que ja era mesmo
-
Ja era meu OT? :X
Estava mexendo no map ontem, quando caiu a energia em casa e voltou, quando liguei o computador me deparei que o server não abria mais, e o mapa também não, fica só carregando e trava no 77% no rme, e da esse erro no distro. Acho eu que ja era, não deve ter solução pra isso. Segue o anexo.
- [NPC] npc que responde com certa storage
-
Talk de prisão fail
Fala galera, se puder dar uma ajuda, quando uso o comando /jail, o jogador vai pra prisão, porém em seguida volta pro templo, qual e o erro do script? Se o time esta 999999999 -- Sistema adaptado por FreaksOT -- -- Tempo em segundos que alguém ficará na prisão -- default_jail = 99999999999999999999999 -- O group ID da permissão para alguém manda o outro para a cadeia. -- grouprequired = 2 -- StorageValue that the player gets -- jailedstoragevalue_time = 1338 jailedstoragevalue_bool = 1339 -- POSICAO DA CADEIA: -- jailpos = { x = 1131, y = 1236, z = 7 } -- POSICAO DO LUGAR QUE ELE VOLTARÁ (RECOMENDADO TEMPO): -- unjailpos = { x = 1023, y = 1027, z = 7 } -- auto kicker, dont edit jail_list = {} jail_list_work = 0 function checkJailList(param) addEvent(checkJailList, 1000, {}) for targetID,player in ipairs(jail_list) do if isPlayer(player) == TRUE then if getPlayerStorageValue(player, jailedstoragevalue_time) < os.time() then doTeleportThing(player, unjailpos, TRUE) setPlayerStorageValue(player, jailedstoragevalue_time, 0) setPlayerStorageValue(player, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(player,MESSAGE_STATUS_CONSOLE_ORANGE,'Você foi chutado da prisão! Até logo') end else table.remove(jail_list,targetID) end end end function onSay(cid, words, param) if jail_list_work == 0 then jail_list_work = addEvent(checkJailList, 1000, {}) end if param == '' and (words == '!unjail' or words == '/unjail') then if getPlayerStorageValue(cid, jailedstoragevalue_time) > os.time() then doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você está preso até ' .. os.date("%H:%M:%S", getPlayerStorageValue(cid, jailedstoragevalue_time)) .. ' (Agora são: ' .. os.date("%H:%M:%S", os.time()) .. ').') else if getPlayerStorageValue(cid, jailedstoragevalue_bool) == 1 then table.insert(jail_list,cid) doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você vai ser expulso da prisão em um segundo.') else doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você não está preso.') end end return TRUE end local jail_time = -1 for word in string.gmatch(tostring(param), "(%w+)") do if tostring(tonumber(word)) == word then jail_time = tonumber(word) end end local isplayer = getPlayerByName(param) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+1)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+2)) if isPlayer(isplayer) ~= TRUE then isplayer = getPlayerByName(string.sub(param, string.len(jail_time)+3)) end end end if jail_time ~= -1 then jail_time = jail_time * 60 else jail_time = default_jail end if words == '!jail' or words == '/jail' then if getPlayerGroupId ( cid ) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, jailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, os.time()+jail_time) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 1) table.insert(jail_list,isplayer) doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Você está preso '.. getCreatureName(isplayer) ..' até ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (Agora são: ' .. os.date("%H:%M:%S", os.time()) .. ').') doPlayerSendTextMessage ( isplayer, MESSAGE_INFO_DESCR, 'Você foi preso por '.. getCreatureName(cid) ..' até ' .. os.date("%H:%M:%S", getPlayerStorageValue(isplayer, jailedstoragevalue_time)) .. ' (Agora sao: ' .. os.date("%H:%M:%S", os.time()) .. ').') return TRUE else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player com este nome não existe ou está offline.") return FALSE end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode libertar outros jogadores.") return FALSE end elseif words == '!unjail' or words == '/unjail' then if getPlayerGroupId ( cid ) >= grouprequired then if isPlayer(isplayer) == TRUE then doTeleportThing(isplayer, unjailpos, TRUE) setPlayerStorageValue(isplayer, jailedstoragevalue_time, 0) setPlayerStorageValue(isplayer, jailedstoragevalue_bool, 0) table.remove(jail_list,targetID) doPlayerSendTextMessage(isplayer,MESSAGE_STATUS_CONSOLE_ORANGE,getCreatureName(cid) .. 'vou deixar você sair da prisão!') doPlayerSendTextMessage ( cid, MESSAGE_INFO_DESCR, 'Voce está solto '.. getCreatureName(isplayer) ..'.') else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "O player com este nome não existe ou está offline.") return FALSE end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você não pode libertar outros jogadores.") return FALSE end end return FALSE end
-
(Resolvido)Bug com script de storage acess
Ainda não funcionou, o player ainda continua acessando
-
(Resolvido)Bug com script de storage acess
sqlite
-
(Resolvido)Bug com script de storage acess
Então, o problema é simples, quando usa a action em um item especifico para adcionar os dias, ocorre tudo certo, o problema é que, quando acaba, a merda da storage não sai do char, e ele continua acessando a vip, e muito menos leva teleporting pro temple. Sera que precisa de algum creaturescript? function onUse(cid, item, fromPosition, itemEx, toPosition) local config={ removeOnUse = "yes" -- remover quando usar ("yes" or "no") } local days = 1 -- coloque os dias que serão a VIP! local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 10102) local timenow = os.time() if getPlayerStorageValue(cid, 10102) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Were added ".. days .." VIP days on your character.") setPlayerStorageValue(cid, 10102, time) local quantity = math.floor((getPlayerStorageValue(cid, 10102) - timenow)/(24 * 60 * 60)) doSendMagicEffect(getPlayerPosition(cid), math.random(28,30)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have ".. quantity .." VIP days remaining.") if (config.removeOnUse == "yes") then doRemoveItem(item.uid, 1) end return TRUE end movements.xml para impossibilitar a entrada do mesmo na vip. local config = { vipStorage = 10102, -- storage VIP kick = { kickPosition = true, -- se for "true" então vai jogar para a posição que o jogador estava, se for false, irá jogar para a posição a baixo. kickPos = {x=1023, y=1018, z=7}, }, newPosition = {x=632, y=737, z=7} -- posição que jogara o jogador caso ele for vip } function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if (getPlayerStorageValue(cid, config.vipStorage) - os.time()) <= 0 then if config.kick.kickPosition then doTeleportThing(cid, fromPosition) else doTeleportThing(cid, config.kick.kickPos) end doPlayerSendTextMessage(cid, 19, "Voce nao possui acesso vip, faça a quest!.") return true end doPlayerSendTextMessage(cid, 19, "Bem Vindo a ViP 1.") doSendMagicEffect(getPlayerPosition(cid), 2) doTeleportThing(cid, config.newPosition) doSendMagicEffect(config.newPosition, 10) return true end
-
DarkSandOTS v2 [Teleports / Quests Rooms]
link off
-
(Resolvido)2 modificações em script
Obrigado meu querido! Funcionaram perfeitamente!
-
(Resolvido)Existe uma limitação no uso de alguns itens?
Suma só de clicar nela.
-
NPC BANK BUGADO
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local moneyTo = {} local playerTo = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function isValidMoney(money) if isNumber(money) == TRUE and money > 0 and money < 999999999 then return TRUE end return FALSE end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'help') or msgcontains(msg, 'offer') then selfSay("You can check the {balance} of your bank account, {deposit} money or {withdraw} it. You can also {transfer} money to other characters, provided that they have a vocation.", cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Balance ---------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'balance') or msgcontains(msg, 'Balance') then selfSay('Your account balance is '..getPlayerBalance(cid)..' gold.', cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Help ------------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'basic functions') then selfSay('You can check the {balance{ of your bank account, Pdeposit{ money or Pwithdraw{ it. You can also {transfer} money to othercharacters, provided that they have a vocation.', cid) talkState[cid] = 0 elseif msgcontains(msg, 'advanced functions') then selfSay('Renting a house has never been this easy. Simply make a bid for an auction. We will check immediately if you haveenough money.', cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Deposit ---------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'deposit all') then moneyTo[cid] = getPlayerMoney(cid) if moneyTo[cid] < 1 then selfSay('You don\'t have any money to deposit in you inventory..', cid) talkState[cid] = 0 else selfSay('Would you really like to deposit '..moneyTo[cid]..' gold?', cid) talkState[cid] = 2 end elseif msgcontains(msg, 'deposit') then selfSay("Please tell me how much gold it is you would like to deposit.", cid) talkState[cid] = 1 elseif talkState[cid] == 1 then moneyTo[cid] = tonumber(msg) if isValidMoney(moneyTo[cid]) == TRUE then selfSay('Would you really like to deposit '..moneyTo[cid]..' gold?', cid) talkState[cid] = 2 else selfSay('Is isnt valid amount of gold to deposit.', cid) talkState[cid] = 0 end elseif talkState[cid] == 2 then if msgcontains(msg, 'yes') then if doPlayerDepositMoney(cid, moneyTo[cid], 1) ~= TRUE then selfSay('You do not have enough gold.', cid) else selfSay('Alright, we have added the amount of '..moneyTo[cid]..' gold to your balance. You can withdraw your money anytime you want to. Your account balance is ' .. getPlayerBalance(cid) .. '.', cid) end elseif msgcontains(msg, 'no') then selfSay('As you wish. Is there something else I can do for you?', cid) end talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Withdraw --------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'withdraw') then selfSay("Please tell me how much gold you would like to withdraw.", cid) talkState[cid] = 6 elseif talkState[cid] == 6 then moneyTo[cid] = tonumber(msg) if isValidMoney(moneyTo[cid]) == TRUE then selfSay('Are you sure you wish to withdraw '..moneyTo[cid]..' gold from your bank account?', cid) talkState[cid] = 7 else selfSay('Is isnt valid amount of gold to withdraw.', cid) talkState[cid] = 0 end elseif talkState[cid] == 7 then if msgcontains(msg, 'yes') then if doPlayerWithdrawMoney(cid, moneyTo[cid]) ~= TRUE then selfSay('There is not enough gold on your account. Your account balance is '..getPlayerBalance(cid)..'. Please tell me the amount of gold coins you would like to withdraw.', cid) else selfSay('Here you are, ' .. moneyTo[cid] .. ' gold. Please let me know if there is something else I can do for you.', cid) talkState[cid] = 0 end elseif msgcontains(msg, 'no') then selfSay('As you wish. Is there something else I can do for you?', cid) talkState[cid] = 0 end ----------------------------------------------------------------- ---------------------------- Transfer --------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'transfer') then selfSay("Please tell me the amount of gold you would like to transfer.", cid) talkState[cid] = 11 elseif talkState[cid] == 11 then moneyTo[cid] = tonumber(msg) if isValidMoney(moneyTo[cid]) == TRUE then selfSay('Who would you like transfer '..moneyTo[cid]..' gold to?', cid) talkState[cid] = 12 else selfSay('Is isnt valid amount of gold to transfer.', cid) talkState[cid] = 0 end elseif talkState[cid] == 12 then playerTo[cid] = msg if getCreatureName(cid) == playerTo[cid] then selfSay('Ehm, You want transfer money to yourself? Its impossible!', cid) talkState[cid] = 0 return TRUE end if playerExists(playerTo[cid]) then selfSay('So you would like to transfer ' .. moneyTo[cid] .. ' gold to "' .. playerTo[cid] .. '" ?', cid) talkState[cid] = 13 else selfSay('Player with name "' .. playerTo[cid] .. '" doesnt exist.', cid) talkState[cid] = 0 end elseif talkState[cid] == 13 then if msgcontains(msg, 'yes') then if getPlayerBalance(cid) < moneyTo[cid] then selfSay('You dont have enought money on your bank account.', cid) return TRUE end if doPlayerTransferMoneyTo(cid, playerTo[cid], moneyTo[cid]) ~= TRUE then selfSay('This player does not exist on this world or have no vocation.', cid) else selfSay('You have transferred ' .. moneyTo[cid] .. ' gold to "' .. playerTo[cid] ..' ".', cid) playerTo[cid] = nil end elseif msgcontains(msg, 'no') then selfSay('As you wish. Is there something else I can do for you?', cid) end talkState[cid] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) e <?xml version="1.0" encoding="UTF-8"?> <npc name="Bankman" script="data/npc/scripts/bankeiro.lua" walkinterval="2000" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="151" head="115" body="0" legs="114" feet="0" addons="3" corpse="2212"/> <parameters> <parameter key="message_greet" value="Welcome |PLAYERNAME|! Here, you can {deposit}, {withdraw} or {transfer} your money from your bank account. I can change your coins too."/> <parameter key="message_alreadyfocused" value="You are drunked ? I talk with you."/> <parameter key="message_farewell" value="Goodbye. I wanna see your money... oh you again."/> </parameters> </npc>