Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 05/26/10 em todas áreas
-
Eae XTibianos... Andei procurando wallpapers na net para fazer efeitos e juntei 51 deles, fazendo um pack... Irei compartilhar o pack com vcs do XTibia, espero qe gostem. Preview: Download: Clique aqui para fazer o download Abraços.1 ponto
-
Introdução À Programação Lua
MichelHelmer reagiu a joaohd por um tópico no fórum
Introdução à programação LUA e lógica de programação Assim como todas as linguagens de programação, LUA tem suas particularidades e sua estrutura lógica própria, a qual envolve suas funções, operadores e engines. Para começarmos a programação em LUA, devemos conhecer sua lógica, para que possamos aplicá-la em nossos códigos. Abaixo, você encontra os operadores da linguagem e sua explicação: • “Local” = É usado para a definição de variáveis. Pode ser encontrado também destacando uma função. Neste último caso, seu uso pode ser dispensado quando a função não se encontra embutida na função principal. Exemplo de uso: ► local a = 1 ► function onUse(cid, item, fromPosition, itemEx, toPosition) local function helloWorld() print("Hello World") return TRUE end return helloWorld() end ► function helloWorld() print("Hello World") return TRUE end function onUse(cid, item, fromPosition, itemEx, toPosition) return helloWorld() end Note a diferença entre o segundo e o terceiro exemplos. Em ambos, a função principal é a “onUse”, porém, em um dos casos foi usado o operador “local” destacando a função secundária, que se encontrava embutida na função principal, ou seja, “abaixo” da função principal. • “If” = É usado para definir condições. Ele é bastante usado para tornar o script restrito ao uso não programado. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then print("O jogador possui level maior que 10") end return TRUE end Neste exemplo, o código só poderá ser usado para jogadores com level maior que 10 e retornará a mensagem “O jogador possui level maior que 10”. • “Elseif” = Assim como o “if”, é usado para definir condições, porém, seu uso deve estar obrigatoriamente associado ao “if”. Este operador define outras condições para que o código entre em vigor. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then print("O jogador possui level maior que 10") elseif getPlayerLevel(cid) == 10 then print("O jogador possui level 10") end return TRUE end Neste exemplo, caso o jogador tenha level maior que 10, o código retornará a mensagem “O jogador possui level maior que 10”, mas se o jogador tiver level 10, o código retornará a mensagem “O jogador possui level 10”. Note que para usar o “elseif”, antes tive de usar um “if”. • “For” = É usado para fazer loops no código, executando várias ações ao mesmo tempo. Seu uso é indicado para encurtamento de scripts, fazendo com que leve menos tempo para o código ser processado e economizando memória. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = { {x=1, y=2, z=3}, {x=4, y=5, z=6} } for a = 1,2 do doSummonCreature("rat", pos[a]) end return TRUE end Neste exemplo, uma tabela indica as posições onde serão sumonados os monstros. O “for” foi usado para indicar que deveriam ser sumonados 1 rat em cada uma das posições especificadas na tabela. • “While” = É usado para fazer loops no código, porém, diferente do “for”, este executa a ação até ser interrompido. Não é muito usado em OpenTibia pelo fato de usar muita memória para ser executado. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) local i = 0 while i < 10 do print (i) i = i + 1 end return TRUE end No caso acima, a variável “i” foi definida inicialmente como sendo zero. Quando o código é executado, os valores assumidos por “i” são retornados até que “i” chegue ao valor nove, que é quando o código se encerra. • “Else” = É usado para definir o que será feito caso a condição definida anteriormente seja falsa ou verdadeira, de acordo com o código e com o que se deseja. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) >= 10 then print("O jogador possui level 10 ou mais") else print("O jogador possui level 9 ou menos") end return TRUE end Note que foi usado anteriormente um “if” para a definição da condição. Neste exemplo, caso o jogador tenha level 10 ou mais, será retornada a mensagem “O jogador possui level 10 ou mais”. Mas se o jogador não tiver atingido level 10, será retornado “O jogador possui level 9 ou menos”. Operadores matemáticos em LUA Após entender a função de cada operador de linguagem acima, podemos passar aos operadores matemáticos ou “Operadores relacionais”. São usados para fazer a comparação numérica ou de uma string. Veja abaixo: • “<” = É usado para dizer que algo é “menor que” outro. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) < 8 then print("O jogador não possui vocação, pois seu level é menor que oito") end return TRUE end A comparação feita mostra se o jogador possui vocação de acordo com seu level, mostrando se ele tem level mínimo para ter vocação, visto que no Tíbia, jogadores abaixo do level 8 não possuem vocação. • “>” = O inverso de seu antecessor. É usado para dizer que algo é “maior que” outro. Exemplo de uso: ►function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 8 then print("O jogador pode posuir vocação") end return TRUE end Neste caso, o código retornará que o jogador pode possuir alguma vocação pois possui level maior que 8. •“<=” = Este operador faz a comparação que algo é “menor ou igual” que/a outro. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) <= 8 then print("O jogador não pode usar exura") end return TRUE end Neste exemplo, o código verifica se o jogador possui level 8 ou menos para dizer se ele pode ou não usar exura, visto que no Tíbia o jogador só pode usar exura se tiver level 9 ou maior. • “>=” = Este operador faz a comparação que algo é “maior ou igual” que/a outro. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) >= 9 then print("O jogador pode usar exura") end return TRUE end Neste caso, o código verifica se o jogador possui level 9 ou mais para dizer se ele pode ou não usar exura. • “==” = Este operador faz a comparação de igualdade. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) == 8 then print("O jogador já pode abandonar rookgaard") end return TRUE end A comparação feita mostra se o level do jogador é ou não 8. Se for 8, o código retorna a mensagem “O jogador já pode abandonar rookgaard”. • “~=” = Este operador faz a comparação de diferença. Exemplo de uso: ► function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) ~= 10 then print("Somente jogadores com level 10 podem usar") end return TRUE end O exemplo restringe o uso apenas a jogadores com level 10. Se o jogador não possuir level 10, o código retorna a mensagem “Somente jogadores com level 10 podem usar”. _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. Bom, é isso. Tentei fazer um tutorial completo e que ajudasse quem quisesse aprender a linguagem. Tutorial feito totalmente por mim. Espero que esteja bom e espero comentários também. @Editado Editado a fim de corrigir alguns erros de ortografia e nos scripts. Será que ganho um ponto de reputação?1 ponto -
Primeiramente, este tuto eu estou recuperando do XTibia, ele deu problema, e muita gente usa, então só estou botando denovo, ele é totalemente do King CPI, eu só mudei as fontes, arrumei erros gramaticais, tirei coisas desnecessárias, deixei cores mais visíveis, etc.. Vamos lá: Apartir de agora é ele que fala: Sistema de Mineração By KingCPI v0.1 Como funciona?? Você precisa de uma dwarven pickaxe(id:4874). (Clique na pick e clique na parede da caverna.) As paredes são os item2.itemid. Ao conseguir 1 item ele fala um som diferente de quando não consegue nada. Pro exhausted funcionar nessecita do OtScript.lib 0.1 ou superior. 1º passo: Crie um arquivo na pasta data/actions/scripts com o nome de minerando.lua Vá até o arquivo actions.xml e adicione isto:[/size] Obs: em vermelho é o id da dwarven pickaxe. Depois de: [/color] 2º passo: Volte ao arquivo mineracao.lua. Abra-o, delete TUDO que tem dentro e coloque isto: *Altere como quiser* Em azul: dificuldade Em rosa: o storage value do skill Em vermelho: itens que serão dados como prêmio Em roxo: chance de dar os referidos itens.[/color] Gostaram??? Espero que sim!! Lembrando que esta é apenas a 1ª versão da mineração, qualquer dúvida, sugestão, ou critica POSTEM! Até + :hi: Agora sou eu XJhoow Eu gostei do script, espero que gostem também.. valeu1 ponto
-
Mudar A Forma Do Seu Monstro
WOLFBAD reagiu a MatheusGlad por um tópico no fórum
Mudar a Forma do seu monstro Para mudar a forma de seu monstro va na pasta data/monster e ache seu monstro, depois edite esta linha. Vermelho O visual do monstro (Mude o numero para algum da lista abaixo para obter o respectivo outfit do monstro) Azul Cores de cabeça,corpo,pernas,pe,e id do corpo (As vezes mudando as cores nao muda em nada) Agora uma lista dos numeros de looktypes e nome dos monstros: Lembre-se, se for tentar fazer /newtype e um numero da lista de 8.54 voce nao ira consiguir, pois a maioria dos otservers nao configurao ate esse numero. Configurando /newtype (SOMENTE PARA 8.54, NAO FAÇA ISSO EM 8.53): Obs: Em breve, estarei editando o topico e tera fotos de cada outfit Sugeito a sugestões,dicas,elogios e erros.1 ponto -
Fazia tempo que eu não andava pelo portal tibia, agóra ja da pra da umas olhadas la nesse artigo que você postou! dahóra ^^ PS: curti a do ferumbras!1 ponto
-
Ia por a fonte pro final da matéria, mas ta aae. Valew! Tem muitos mas não vou por todos porque não são todos interessantes como estes, que bom que vocês ja viram lá, ai fica mais facil pra vocês verem o résto! Pra quem quisér conferir o résto! acesse o site Aqui1 ponto
-
New Subwat 8.54-8.57 [V.10]8.60 Link.
vitimdumau reagiu a Subwat por um tópico no fórum
thanks buddy. to meio off,meu pc ta fods...quando eu arrumar posto novidades. bye1 ponto -
Descrição De Ambiente
Snooz reagiu a moskitinho por um tópico no fórum
Olá amiguinhos :positive: Bom meu projeto Em Meio aos Anjos está parado mais eu continuo escrevendo algumas coisas e hoje quero trazer a vocês a descrição sobra ambiente roleplay, fazendo um gancho com os artigos do tio do doce val. Antes de mais nada leia os artigos dele ou ele vai pegar você! Ele é ousado há! Artigo #1 - Introdução e Apresentação Artigo #2 - Criação de História Artigo #3 - Ambientação Técnica Os três são bem legais e importantes pra você que quer ser um bom RPG Maker. Bom eu gosto da parte pratica da coisa, a descrição de ambiente é sem sombra de duvidas um dos fatores mais importantes, ele pode ajudar em quests, os mappers a desenvolver o projeto e a toda equipe entender aonde você quer chegar. O importante disso tudo é você ter coêrencia e saber aonde colocar as coisas. Como foi citado pelo nosso amigo val, a ambientação começa com lapís e papel e um tanto de criatividade, no caso eu usei o mapa da Alemanha (de novo) e um conjunto de idéias até o vulcão do amor e da magia está nele Kuinue, by me se roubar te mato! Por falta de um recurso simples (uma câmera digital descente) a foto está sem qualidade e vocês não verão quase nada mais o importante é ter a idéia! Até tentei melhorar no ps mais não rolou... Bom voltando a explicação, para fazer o desenho você pode usar de qualquer merda coisa que tenha em mente, desde que seja coerente com as idéias. Eu peguei como base um mapa no google simples não é? Depois aconselho a fazer rios a não ser que seja um deserto e mesmo que seja faça o nilo nele :rimbuk:(Y) Depois em algum lugar coloque sua cidade principal no meu já lasquei três de uma vez só, apartir da cidade você decide o relevo com riscos basicamente, use legenda pra não se perder depois. Pronto você fez um esboço do que imagina sobre o seu mapa, sem sombra de duvidas o desenho é a melhor forma de você mostrar o que realmente quer. Tendo o seu mapa em mãos você pode dar inicio a um par de outros desenhos você pode fazer a Ambientação Geral ou Detalhada (se não sabe o que vai ler o tópico do Val porra!) Eu particularmente uso a detalhada apenas para quests realmente dificeis mais você que sabe se quiser fazer uma cave pequena com ambianteção detalhada fica a seu critério ali fizemos o geral para bolar uma história que é o você precisa. A introdução: Como não começar: Pra começar eu odeio aquelas coisas do tipo "O deus Xicamanolo estava em guerra contra as trevas e derrepente explodiu e pá saiu a cidade de Giravenjia" Realmente a cidade deve ter cido o intestino grosso ou talvez o figado dele né?! não não e não! Se você quer que os membros ao menos te respeitem não coloque o nome de um deus de Xicamanolo e não começe assim é horrivel. Outro começo tipico de idiotas, digo iniciantes é o famoso "Era uma vez Ribunéia a cidade maravilhosa dos Elfo liderados pela Flora filha de..." Aonde você quer chegar com isso? Eu até hoje não intendo e sim muitas histórias começam assim. áh meus deus olha o que ele escreveu Como sim começar: Agora é a nossa vez hahá! Para começar enquanto desenvolveu o seu desenho provavelmente já pensou em alguma coisa bacana pra contar, se não eu vou te ajudar. Começe pela descrição basica da cidade depois passe aos moradores e ai aos arredores mais não va muito longe você pode perde outras histórias mais legais se sair atropelando tudo. Hãn que tal? Não ta perfeito mais muito melhor que o "era uma vez" não é?! Á intensão é sempre expressar da forma mais profunda que puder pra não precisar gastar linhas e linhas de baboseiras. A descrição é peça chave para o desenvolvimento de quests juntamente com o mapa e o andamento todo do projeto. Espero ter ajudado um pouco vocês, qualquer duvida mande mp e se quiser idéias ou ambientação posso até ajudar se tiver tempo, o texto esta meia boca porque preciso voltar a estudar mais acho que serve pra ajudar muita gente que não tem noção da coisa. Espero lógo postar algo sobre desenvolvimento escrito e planejamento de quests. Se você quer ler algo realmente bom leia: Sign of the Cross Quest Aqui você pode rever alguns conceitos basicos sobre descrição de personagens e muitas outras coisas. Abraços e até, se gostou Rep+ ne mim. Edit# Correção Ortográfica.1 ponto -
Ações bancárias Sistema desenvolvido por mim (apocarai), idéia e correções por matheusMkalo. Como funciona: Você deposita uma quantia e, dependendo da cotação, você pode ganhar ou perder dinheiro. Então, mãos à obra: Primeiramente, crie um arquivo com o nome BankSharesEvent.lua em seu diretório globalevents/scripts, colocando o script abaixo: --Script por apocarai, matheusMkalo-- s = {} y = {} function countAuctions() return #s end function chance() -- função para balanceamento das ações. if math.random(1,10) <= 2 then x = (math.random(1,3)*10/100) elseif math.random(1,10) >= 3 and math.random(1,10) <= 5 then x = (math.random(2,5)*10/100) elseif math.random(1,10) >= 6 and math.random(1,10) <= 8 then x = (math.random(3,7)*10/100) elseif math.random(1,10) == 9 then x = (math.random(4,8)*10/100) elseif math.random(1,10) == 10 then x = (math.random(5,9)*10/100) end return table.insert(y, 1, x) end function doExecuteBankShares(cid) if math.random(1,10) >= 6 then return chance(), doPlayerSetBalance(cid, (getPlayerBalance(cid))*(1+tonumber(y[1]))), doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "As a\ç\õ\es bancárias est\ã\o em alta. Seu saldo teve acréscimo de " .. (tonumber(y[1])*100) .. "'\%\'. Agora seu saldo é de: " .. getPlayerBalance(cid) .. " gp's. Hoje tivemos: " .. countAuctions() .. " movimenta\ç\õ\es financeiras."), table.remove(y,1) elseif math.random(1,10) == 10 then return doPlayerSetBalance(cid, 0), doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "Os bancos faliram. Voc\ê\ perdeu todo seu investimento. Seu saldo atual é de: " .. getPlayerBalance(cid) .. " gp's. Hoje tivemos: " .. countAuctions() .. " movimenta\ç\\õ\es financeiras.") else return chance(), doPlayerSetBalance(cid, (getPlayerBalance(cid))*(tonumber(y[1]))), doPlayerSendTextMessage(cid, TALKTYPE_ORANGE_1, "As a\ç\õ\es bancárias estão sofrendo quedas. Seu saldo teve queda de " .. (tonumber(y[1])*100) .. "'\%\' gp's . Seu saldo atual é de: " .. getPlayerBalance(cid) .. " gp's. Hoje tivemos: " .. countAuctions() .. " movimenta\ç\õ\es financeiras."), table.remove(y,1) end return TRUE end function onThink(interval, lastExecution) table.insert(s,"Bank shares: Ok!") for i = 1, #getOnlinePlayers() do if getPlayerStorageValue(getCreatureByName(getOnlinePlayers()[i]),99889) >= 1 then if getPlayerBalance(getCreatureByName(getOnlinePlayers()[i])) ~= 0 then doExecuteBankShares(getCreatureByName(getOnlinePlayers()[i])) print("[bank Shares System:: Executado com sucesso.]") end end end return TRUE end Salve e feche. Agora, adicione a seguinte tag em seu globalevents.xml: <globalevent name="BankShares" interval="3600" event="script" value="BankSharesEvent.lua"/> Caso queira alterar o tempo entre as execuções, modifique o interval. Caso contrário, somente salve e feche. Em seu diretório npc/scripts, crie um arquivo com o nome BankShares.lua, colocando o script abaixo: 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(cid, money) if isNumber(money) == TRUE and money > 0 and money < 999999999 and money <= getPlayerMoney(cid) then return TRUE end return FALSE end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end if msgcontains(msg, 'ajuda') or msgcontains(msg, 'ofertas') then selfSay("Voce pode checar seu {saldo} da sua conta, {depositar} dinheiro ou {extrair} para retirar. Voce tambem pode {transferir} dinheiro para outros players, tambem pode entrar nas {açoes}, diga {informaçoes} para saber sobre as açoes.", cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Balance ---------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'saldo') or msgcontains(msg, 'Saldo') then selfSay('Seu saldo é '..getPlayerBalance(cid)..' gold.', cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Help ------------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'basic functions') then selfSay('Voce pode checar seu {balance} da sua conta, {deposit} dinheiro ou {withdraw} para extrair. Voce tambem pode {transfer} dinheiro para outros players, tambem pode entrar nas {açoes}.', cid) talkState[cid] = 0 elseif msgcontains(msg, 'informaçoes') then selfSay('Açoes, voce tem uma chance de ganhar ou de perder de 10% a 90% do valor total do balance da sua conta.', cid) talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Deposit ---------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'depositar tudo') then moneyTo[cid] = getPlayerMoney(cid) if moneyTo[cid] < 1 then selfSay('Voce nao tem dinheiro.', cid) talkState[cid] = 0 else selfSay('Voce realmente quer adicionar '..moneyTo[cid]..' gold?', cid) talkState[cid] = 2 end elseif msgcontains(msg, 'depositar') then selfSay("Porfavor me diga quanto voce quer depositar.", cid) talkState[cid] = 1 elseif talkState[cid] == 1 then moneyTo[cid] = tonumber(msg) if isValidMoney(cid, moneyTo[cid]) == TRUE then selfSay('Voce realmente quer depositar '..moneyTo[cid]..' gold?', cid) talkState[cid] = 2 else selfSay('Nao é uma quantia valida para deposito.', cid) talkState[cid] = 0 end elseif talkState[cid] == 2 then if msgcontains(msg, 'sim') then if doPlayerDepositMoney(cid, moneyTo[cid], 1) ~= TRUE then selfSay('Voce nao tem esse dinheiro.', cid) else selfSay('Tudo bem, nos adicionamos '..moneyTo[cid]..' gold para seu saldo. Voce pode extrair seu dinheiro quando quiser. Seu saldo é ' .. getPlayerBalance(cid) .. '.', cid) end elseif msgcontains(msg, 'nao') then selfSay('Como desejar. Posso fazer mais alguma coisa por voce?', cid) end talkState[cid] = 0 ----------------------------------------------------------------- ---------------------------- Withdraw --------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'extrair') then selfSay("Porfavor, diga-me quanto voce deseja extrair.", cid) talkState[cid] = 6 elseif talkState[cid] == 6 then moneyTo[cid] = tonumber(msg) if isValidMoney(cid, moneyTo[cid]) == TRUE then selfSay('Voce esta certo que quer extrair '..moneyTo[cid]..' gold de sua conta de banco?', cid) talkState[cid] = 7 else selfSay('Nao é uma quantia valida para extraçao.', cid) talkState[cid] = 0 end elseif talkState[cid] == 7 then if msgcontains(msg, 'sim') then if doPlayerWithdrawMoney(cid, moneyTo[cid]) ~= TRUE then selfSay('Voce nao tem essa quantia em sua conta. Seu saldo é '..getPlayerBalance(cid)..'. Por favor, diga-me quanto quer extrair.', cid) else selfSay('Aqui esta, ' .. moneyTo[cid] .. ' gold. Porfavor, digame se quizer mais alguma coisa.', cid) talkState[cid] = 0 end elseif msgcontains(msg, 'nao') then selfSay('Como desejar. Posso fazer mais algo?', cid) talkState[cid] = 0 end ----------------------------------------------------------------- ---------------------------- Transfer --------------------------- ----------------------------------------------------------------- elseif msgcontains(msg, 'transferir') then selfSay("Por favor, digame quanto de dinheiro voce quer transferir.", cid) talkState[cid] = 11 elseif talkState[cid] == 11 then moneyTo[cid] = tonumber(msg) if isValidMoney(cid, moneyTo[cid]) == TRUE then selfSay('Voce gostaria de transferir '..moneyTo[cid]..' gold para?', cid) talkState[cid] = 12 else selfSay('Nao é uma quantia valida para deposito.', cid) talkState[cid] = 0 end elseif talkState[cid] == 12 then playerTo[cid] = msg if getCreatureName(cid) == playerTo[cid] then selfSay('Voce deseja transferir dinheiro para voce mesmo? Isto e impossivel!', cid) talkState[cid] = 0 return TRUE end if playerExists(playerTo[cid]) then selfSay('Voce deseja transferir ' .. moneyTo[cid] .. ' gold para "' .. playerTo[cid] .. '" ?', cid) talkState[cid] = 13 else selfSay('O player "' .. playerTo[cid] .. '" nao existe.', cid) talkState[cid] = 0 end elseif talkState[cid] == 13 then if msgcontains(msg, 'sim') then if getPlayerBalance(cid) < moneyTo[cid] then selfSay('Voce nao tem dinheiro em sua conta.', cid) return TRUE end if doPlayerTransferMoneyTo(cid, playerTo[cid], moneyTo[cid]) ~= TRUE then selfSay('Esse player nao existe ou ainda nao tem vocaçao.', cid) else selfSay('Voce transferiu ' .. moneyTo[cid] .. ' gold tpara "' .. playerTo[cid] ..' ".', cid) playerTo[cid] = nil end elseif msgcontains(msg, 'nao') then selfSay('Como deseja. Posso fazer mais alguma coisa para voce?', cid) end talkState[cid] = 0 -------------------------------------------------------------------------------- -------------------------Bank shares-------------------------------------------- -------------------------------------------------------------------------------- elseif msgcontains(msg, "açoes") then selfSay('Açoes, deseja {entrar} ou {sair}?', cid) talkState[cid] = 14 elseif msgcontains(msg, 'entrar') and talkState[cid] == 14 then if getPlayerStorageValue(cid, 99889) <= 0 then if getPlayerBalance(cid) == 0 then selfSay('Okay. Mas, estou vendo seu saldo e ele é 0 gold coins. Quanto voce quer depositar?', cid) talkState[cid] = 15 else selfSay('Parabens. Agora, fique preparado para as açoes. Pode acontecer a qualquer hora.', cid) setPlayerStorageValue(cid, 99889, 1) talkState[cid] = 0 end else selfSay('Voce ja esta nas açoes. Verifique seu saldo.', cid) talkState[cid] = 0 end elseif talkState[cid] == 15 then moneyTo[cid] = tonumber(msg) if isValidMoney(cid, moneyTo[cid]) == TRUE then selfSay('Voce realmente quer depositar '..moneyTo[cid]..' gold?', cid) talkState[cid] = 16 else selfSay('Voce nao tem esse dinheiro para depositar.', cid) talkState[cid] = 0 end elseif talkState[cid] == 16 then if msgcontains(msg, 'sim') then if doPlayerDepositMoney(cid, moneyTo[cid], 1) ~= TRUE then selfSay('Voce nao tem nenhum dinheiro.', cid) talkState[cid] = 0 else selfSay('Tudo bem, nos adicionamos '..moneyTo[cid]..' gold para seu saldo. A partir de agora você está apto a participar das a\ç\ões do banco. Seu saldo é ' .. getPlayerBalance(cid) .. '.', cid) setPlayerStorageValue(cid, 99889, 1) end end elseif msgcontains(msg, 'nao') then selfSay('Como quiser. Posso fazer mais alguma coisa por voce?', cid) talkState[cid] = 0 elseif msg == 'sair' and talkState[cid] == 14 then if getPlayerStorageValue(cid, 99889) == 1 then selfSay('Feito. Obrigado por usar nossos servicos.', cid) setPlayerStorageValue(cid, 99889, -1) talkState[cid] = 0 else selfSay('Voce nao esta em nossos registros.', cid) talkState[cid] = 0 end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Salve e feche. Agora, crie um arquivo com o nome Bank.xml em seu diretório npc, adicionando o código abaixo: <npc name="Bank" script="data/npc/scripts/BankShares.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="134" head="78" body="88" legs="0" feet="88" addons="3"/> <parameters> <parameter key="message_greet" value="Ola. Para mais informacoes de meus servicos diga {ajuda}." /> <parameter key="message_farewell" value="Tchau." /> <parameter key="message_walkaway" value="Tchau." /> </parameters> </npc> Salve e feche. Agora, abra seu config.lua e localize: bankSystem = false ou também: bankSystem = "no" E substitua por true,em caso de estar false; e yes, em caso de estar no. Sistema implantado. Agora, simplesmente adicione um respawn do npc bank em seu mapa e negocie as açoes com ele, dizendo hi;açoes;entrar (caso tenha algum dinheiro depositado), ou hi;açoes;entrar;(quantidade que deseja depositar);sim. Favor não postar em outros fóruns. Caso tenham algum problema com o sistema, poste sua dúvida para que possa saná-la. flw Obs: O npc que usei, é do servidor do alissow, modifiquei e matheusMkalo traduziu (não gostei).1 ponto
-
-1 pontos
Líderes está configurado para São Paulo/GMT-03:00