Ir para conteúdo

JcA

Membro
  • Registro em

  • Última visita

Tudo que JcA postou

  1. @PedroSTT Bro, deu esse erro:
  2. JcA postou uma resposta no tópico em Monsters, NPC, Raids & Mounts
    Esse sistema de reset, tem como fazer para voltarem para hp normal de cada vocação no level 8?
  3. 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
  4. @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.
  5. 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" />
  6. Me desculpe, erro meu memso na hora de por as posições. Mas e esse?
  7. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    http://www.tibiaking.com/forum/forums/topic/35473-anunciar-morte-fulano-acabou-de-morrer-para-ciclano/
  8. 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
  9. 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
  10. 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} }
  11. 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
  12. JcA postou uma resposta no tópico em Sistemas, Mods & Funções .lua
    Aqui deu erro, o que eu faço? Error while executing query: Cannot add a NOT NULL column with default value NULL
  13. 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?
  14. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    Não deu certo, acho que ja era mesmo
  15. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    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.
  16. Bro, você podia fazer um para 6 storage e teleportar para um local se tiver as 6?
  17. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    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
  18. Ainda não funcionou, o player ainda continua acessando
  19. 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
  20. Obrigado meu querido! Funcionaram perfeitamente!
  21. JcA postou uma resposta no tópico em Suporte Tibia OTServer
    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>

Informação Importante

Confirmação de Termo