Ir para conteúdo

Conde Sapo

Visconde
  • Total de itens

    322
  • Registro em

  • Última visita

Tudo que Conde Sapo postou

  1. Conde Sapo

    8 Bichos

    EXCLUSIVO PARA XTIBIA Favor denunciar se encontrar em outro forum Dúvida do usuário : Incluir esta linha em data\talkactions\talkactions.xml : <talkaction words="8bichos" script="8bichos.lua" /> Agora o script em data\talkactions\scripts\8bichos.lua : -- Sumona 8 bichos em volta do player (By Conde Sapo) function onSay(cid, words, param) PlayerPos = getCreaturePosition(cid) XX = PlayerPos.x YY = PlayerPos.y ZZ = PlayerPos.z mana = -100 -- (By NeroStell) Pos1 = {x=XX-1, y=YY-1, z=ZZ} Pos2 = {x=XX-1, y=YY, z=ZZ} Pos3 = {x=XX-1, y=YY+1, z=ZZ} Pos4 = {x=XX, y=YY-1, z=ZZ} Pos5 = {x=XX, y=YY+1, z=ZZ} Pos6 = {x=XX+1, y=YY-1, z=ZZ} Pos7 = {x=XX+1, y=YY, z=ZZ} Pos8 = {x=XX+1, y=YY+1, z=ZZ} Bichos = {[1]="slime", [2]="minotaur", [3]="cyclops", [4]="rotworm", [5]="amazon", [6]="dwarf", [7]="scarab", [8]="bandit"} rand1 = math.random(1, 8) Bicho1 = Bichos[rand1] rand2 = math.random(1, 8) Bicho2 = Bichos[rand2] rand3 = math.random(1, 8) Bicho3 = Bichos[rand3] rand4 = math.random(1, 8) Bicho4 = Bichos[rand4] rand5 = math.random(1, 8) Bicho5 = Bichos[rand5] rand6 = math.random(1, 8) Bicho6 = Bichos[rand6] rand7 = math.random(1, 8) Bicho7 = Bichos[rand7] rand8 = math.random(1, 8) Bicho8 = Bichos[rand8] doSummonCreature(Bicho1, Pos1) doSummonCreature(Bicho2, Pos2) doSummonCreature(Bicho3, Pos3) doSummonCreature(Bicho4, Pos4) doSummonCreature(Bicho5, Pos5) doSummonCreature(Bicho6, Pos6) doSummonCreature(Bicho7, Pos7) doSummonCreature(Bicho8, Pos8) doSendMagicEffect(PlayerPos,2) doPlayerAddMana(cid,mana) doSendMagicEffect(Pos1,rand1) doSendMagicEffect(Pos2,rand2) doSendMagicEffect(Pos3,rand3) doSendMagicEffect(Pos4,rand4) doSendMagicEffect(Pos5,rand5) doSendMagicEffect(Pos6,rand6) doSendMagicEffect(Pos7,rand7) doSendMagicEffect(Pos8,rand8) return 1 end ------------------------ Explicando ------------------------ (mas não muito) A tabela de bichos esta aqui : Bichos = {[1]="slime", [2]="minotaur", [3]="cyclops", [4]="rotworm", [5]="amazon", [6]="dwarf", [7]="scarab", [8]="bandit"} Mudar a vontade. Se errar na escrita vai dar erro. Ex.: rotworn (com n) vai dar erro randX = math.random(1, 8) Vai pegar um número aleatório entre 1 e 8 BichoX = Bichos[randX] Cria um bicho conforme o número randônico e pega da tabela de bichos doSendMagicEffect(PosX,randX) o mesmo número aleatório (randX) vai gerar um EFFECT o X vai de 1 a 8 8 Bichos 8 Posições 8 Effects 8 randônicos Brigadúúúú pela dica. Acho que resolvi o problema gastando MANA mana = -100 --> Alterar a gosto. (Brigadúúú NeroStell) doPlayerAddMana(cid,mana) Chega de explicar...... Vou no meu OT usar a nova magia.
  2. Super Verdade isso. @NeroStell Se o tutorial não for seu , não tem problema. basta ir no outro forum e ver o nome do dono Gostei do tutorial Alguem ae TESTOU ??? (não testo magias e/ou spells)
  3. Te amuuuuuuuuuuuu
  4. Acertei algumas coisas -- Pedra some e sumona OrchaBall -- Script original (By Caneco e -mexican) -- Acertos (By XTibia) -- Complemento em movements\scripts\voltapedra.lua function onUse(cid, item, frompos, item2, topos) random = math.random(1,5) if getPlayerLevel(cid) >= 8 then if item2.itemid == 1355 and random == 1 then doTransformItem(item2.uid,468) doPlayerSay(cid,'You discharged a Orshabaal!',16) doSummonCreature('Orshabaal', topos) doSendMagicEffect(topos,13) elseif item2.itemid == 1355 and random > 1 then doSendMagicEffect(topos,2) else doPlayerSendCancel(cid,"Try again.") end end return 1 end Mas ae eu percebi que a PEDRA não volta mais. Então bolei um script que faz a PEDRA voltar pra outro Player poder clicar nela também No SQM logo abaixo do buraco , marcar um UNIQUEID (usei UID 1323) e a ação de Pisar (onStepIn) em data\movements\movements.xml acrescentar esta linha <movevent event="StepIn" uniqueid="1323" script="voltapedra.lua" /> criar data\movements\scripts\voltapedra.lua : -- Volta a pedra do OrchaBall (By XTibia) -- Complemento em actions\scripts\sumonapedra.lua function onStepIn(cid, item, frompos, item2, topos) Pedrapos = {x=XXXX, y=YYYY, z=ZZZZ, stackpos=1} Pedra = getThingfromPos(Pedrapos) doTransformItem(Pedra.uid,1355) return 1 end Pronto.... Assim que o Player descer , já vai pisar nesse SQM , e a PEDRA volta no andar de cima. O próximo Player vai poder clicar na PEDRA também e sumonar o ORCHA
  5. Roubou de outro forum e tentou ganhar créditos. GODFakezin deve ter muitos amigos RL. (amigo assim eu quero distância) Mas ainda que roubado , é um tutorial interessante. GOSTEI Acho que vale APROVAR Amado Metre JV se encarrega de mudar os créditos ??? Duas pessoas responderam isso no outro.Vou investigar.
  6. Isso que dá lidar com criança.Mas ele recebeu um presente merecido. (não tive nada com isso) Seu tutorial tá ÓTIMO ,mas ficaria PERFEITO se você puzesse uma SS com a "Meleca Verde" dentro dessa arena.
  7. ######ça
    Você é ###### mas é meu amigo.
    Bju na (_Y_)
  8. Valeu Amado Mestre JVpor colocar o créditos ao verdadeiro autor do tutorial.
  9. @Conde Sapo Veremos. Pode deixa. Vlw mais uma vez. Cya. ANteciosamente: GoD Fakezin Claro que ele não vai arrumar. Ele não sabe COMO fazer
  10. ele deve ser RL de muita gente [ ]s
  11. @Jovial @Palmares_ Legal ver vocês aqui. Tomara que queiram fazer parte da familia XTibia Ótimo tutorial SUPER APROVADO Ps.: Se tiverem contato com PLX... peçam pra ele vir aqui no XTibia também
  12. OK Você não é obrigado a acertar os erros do script. Deicha errado. Eu não mandei você concertar. eu só MENCIONEI que tava errado. (repare que meu post não foi editado pra remover alguma linha "suspeita") Eu não errei quando disse que o script não era seu. Você que ERROU por omitir esse detalhe do seu suposto amigo Conde Deveria ter posto algo como : Eu e meu RL Conde que fizemos o script As regras sobre créditos são bem claras. Leia as regras do forum. Não fui eu que fiz as regras. Eu só as faço cumprir. Passar bem =) GODFakezin
  13. Essa explicação , náo deveria ser dada a mim.Você devia ter posto isso no TOPICO INICIAL pros iniciantes verem e saberem oque é estagio. Não havia necessidade de ofender. Essa foi sem motivo. Só to tentando melhorar seu tutorial. Quando os cooperadores põe um tutorial aqui eu testo aqui em casa. Se apresenta algum erro eu alerto do erro pra ser corrigido.Neste seu tutorial não tem oque testar. Então eu me puz no lugar de um iniciante. Outro detalhe... eu NUNCA TE OFENDI... eu CRITICO seu trabalho... se tá SEM ERROS eu elogio... senão eu mostro os erros. (nunca mandei você acerta-los) Foi oque eu fiz.eu AVALIEI seu trabalho. E não MANDEI você fazer nada do meu jeito. Só achei que tava incompleto e MENCIONEI a falha. ou mandei ??? Cola um QUOTE aqui (de qualquer TUTO seu) que eu mandei você fazer DO MEU JEITO [ ]s
  14. O sript não é seu.até os erros você trouxe de lá. <movevent event="StepOut" itemid="2019" script="agua.lua" /> TOTALMENTE desnecessario porque o script não faz nada com isso : function onStepOut(cid, item, pos) end Alias , pode REMOVER essas linhas. Sem mais comentários.
  15. Não vim comentar sobre o tutorial. (me nego a comentar algo assim) Só vim pra encinar como usar os botões : pra colocar LINK (é só colar o endereço na janela que vai abrir) pra colocar IMAGEM (é só colar o endereço na janela que vai abrir) pra colocar seu EMAIL (é só colar o endereço na janela que vai abrir) pra colocar QUOTE (é só colar o texto entre o [quote] e [/quote]) pra colocar CODE (é só colar o texto entre o [code] e [/code]) Boa Sorte.
  16. Gente... muito importante isso. Vivo corrigindo erros de português dos membros (só os erros realmente graves) Mas é na melhor das boas intenções. Um erro grave numa PROVA pode anular a questão Essa fraze EU TE AMO VOCÊ (da música) PelaMorDeDeus Não me usem isso na RL Eu te amo (2ª pessoa) ou Eu amo você (3ª pessoa) Eu Te Amo Você é um erro imperdoavel.
  17. @ViniThecrazzy Acredito que você tenha feito um cenario pra testar isso (você tem coordenadas no script) Ficaria muito melhor se você puzesse uma SS desse cenario Aproveita e corrige os erros de português (varios) e completa os dados da sua ficha também (idade, sexo, cidade, etc)
  18. AhuheUahuE Brigadúúúú pelo carinho. Quem tem cargo , tem que manter a postura. Sem cargo eu posso falar mal dos outros. Prefiro poder falar mal dos outros. Aewwwwwwww. Falei isto em outro tópico Não quero levar esta Cruz. É muito pesada.........
  19. Não testei aqui. Um passarinho verde me disse que : isso só vai funcionar em OT 8.0 e meu instinto sapo me disse que : (homem aranha tem o instinto aranha) Não adianta acrescentar isso tudo se o OT não vai dar suporte a esses números. CONST_ANI_WHIRLWINDSWORD (por exemplo) tá associado a ação 24 como o OT vai saber qual é essa ação 24 ??? (se é anterior a 8.0) Fora esse detalhe minúsculo , gostei do tuto. Se alguém testar e falar que funcionou eu APROVO (todos aprovaram mas ninguém disse se testou)
  20. meninas chega de briga depois de muitos arranhões e puchões de cabelo (vi até um absorvente voando ali) Faltou abordar estes assuntos.materiais Info do ID Jump MiniMapa (com fotos também) Faltou falar de algumas letras que não estão no menú (teclas + e - pra subir e descer andares) (teclas Q e W pra zoom) etc Ainda assim achei o tópico PERFEITO (mas ainda dá pra melhorar) Se não foi o melhor tutorial que já vi , tá muito perto disso.
  21. Adorei a ideia.Você tem NIVEL pra fazer isso. Pra cada número , seria uma situação Pode até teleportar o player (como no filme) Não tem teleport pra sair, o player fica preso até alguem tirar a situação "liberar o amigo" Rolando 2 dados , teremos 12 situações Invasóes da sala Teleporta 1 ou todos (se todos , só volta quando matar todos bichos , ou todos morrerem ) Uma sala pequena que precisa ter X pessoas. 2 dados (com UID pra não serem movidos, só pode clicar) Mãos a obra GODFakezin
  22. esse é um dos temas mais complexos do jogo e ainda não tá bem explicado. e principalmente : OQUE É ESTAGIO ???? você ainda não disse. melhora a explicação fio. A onde está minlevel="1", significa o level de inicio do estágio de multiplicação de Exp. Você acha mesmo que um iniciante vai saber do que você tá falando nisso ae ??? (sem antes saber oque é estagio) Adoro seus trabalhos , mas acho que um tema desses precisa ser melhor explicado.
  23. Levei uma bronca do ADDICT e não tinha entendido porque
    eu o tratei como MULHER
    pq tá escrito SEXO-FEMININO
    a culpa não foi minha.
  24. Se o POVO achasse isso , todos usariam,mas ninguém usa... só você. AHUhueaE Pelo jeito vai ser uma eterna briga nossa. --------------------------- Correções ---------------------------------- organização posters é uma imagem que se pendura na parede aqui tem POST se eu VIR com certeza (é separado) ------------------------------------------------------------------------- Ps.: A linha inútil ainda tá lá. Não fique chateado por corrigir sua escrita PLX é pro seu bem (se eu não gostasse de você eu simplesmente diria fo**-se)
  25. O inicio deste meu tutorial era assim : Descobri que esse NPC é do COLEXDescula COLEX por dar créditos errados. COLEX <-- Vejam quem é COLEX ---------------------------------------------------------------------------------------------------------------------------------- Exclusivo para XTibia favor não postar em outro forum ---------------------------------------------------------------------------------------------------------------------------------- Vai ae um NPC Banqueiro que não usa comandos especiais. data\npc\scripts\Palmares.lua local focus = 0 local talk_start = 0 function onThingMove(creature, thing, oldpos, oldstackpos) end function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Good bye then.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and focus == 0) and getDistanceToCreature(cid) < 4 then selfSay('Hello ' .. creatureGetName(cid) .. '! wellcome to OT Bank System.') focus = cid talk_start = os.clock() elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.') elseif focus == cid then if msgcontains(msg, 'balance') then balance(cid) talk_state = 0 talk_start = os.clock() elseif msgcontains(msg, 'deposit') and getCount(msg) > 0 then value = getCount(msg) selfSay('Would you really like to deposit '..value..' gold?') talk_state = 2 talk_start = os.clock() elseif msgcontains(msg, 'deposit') then selfSay('Please tell me how much gold it is you would like to deposit.') talk_state = 1 talk_start = os.clock() elseif talk_state == 1 then value = getCount(msg) if value > 0 then selfSay('Would you really like to deposit '..value..' gold?') talk_state = 2 else talk_state = 0 end elseif msgcontains(msg, 'yes') and talk_state == 2 then deposit(cid, value) talk_state = 0 elseif msgcontains(msg, 'transfer') and getCount(msg) > 0 then value = getCount(msg) selfSay('What Player NAME you want to Transfer '..value..' gold?') talk_state = 5 talk_start = os.clock() elseif talk_state == 5 then xid = getPlayerByName(msg) if xid == 0 then selfSay('Player "'..msg..'" not found!!!') talk_state = 0 elseif xid == cid then selfSay('You canot transfer money to yourself!!!') talk_state = 0 else NomeDele = getPlayerName(xid) selfSay('Are you sure you wish to transfer '..value..' gold from your bank to '..NomeDele..' bank?') talk_state = 8 end elseif msgcontains(msg, 'transfer') then selfSay('Please tell me how much gold you would like to transfer?') talk_state = 7 talk_start = os.clock() elseif talk_state == 7 then value = getCount(msg) if value > 0 then selfSay('What Player NAME you want to Transfer '..value..' gold?') talk_state = 5 talk_start = os.clock() else talk_state = 0 end elseif msgcontains(msg, 'yes') and talk_state == 8 then transfer(cid, value, xid) talk_state = 0 elseif msgcontains(msg, 'withdraw') and getCount(msg) > 0 then value = getCount(msg) selfSay('Are you sure you wish to withdraw '..value..' gold from your bank account?') talk_state = 3 talk_start = os.clock() elseif msgcontains(msg, 'withdraw') then talk_state = 4 selfSay('Please tell me how much gold you would like to withdraw.') talk_start = os.clock() elseif talk_state == 4 then value = getCount(msg) if value > 0 then selfSay('Are you sure you wish to withdraw '..value..' gold from your bank account?') talk_state = 3 else talk_state = 0 end elseif msgcontains(msg, 'yes') and talk_state == 3 then withdraw(cid, value) talk_state = 0 elseif msgcontains(msg, 'no') and talk_state == 2 then selfSay('As you wish. Is there something else I can do for you?') talk_state = 0 elseif msgcontains(msg, 'no') and talk_state == 3 then selfSay('The customer is king! Come back anytime you want to if you wish to withdraw your money.') talk_state = 0 elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Bye bye ' .. creatureGetName(cid) .. ', come back anytime you want talk about money.') focus = 0 talk_start = 0 elseif msg ~= "" then selfSay('You are in a Bank! Talk about Bank thinks.') talk_state = 0 end end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Next money owner Please...') end focus = 0 talk_start = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('Good bye then. Good talk with you about money.') focus = 0 talk_start = 0 end end end Palmares é um amiguinho que pediu pra acertar este NPC Em sua homenagem fiz com o nome dele. Agora precisa a identificação do NPC data\npc\Palmares.xml <npc name="Palmares" script="data/npc/scripts/Banco.lua" access="3" lookdir="1" autowalk="200" speed="200"> <health now="100" max="100"/> <look type="134" head="57" body="59" legs="40" feet="76" corpse="2212"/> <parameters/> </npc> Este NPC usa funções pré-estabelecidas que ficam no arquivo data\npc\scripts\lib\npc.lua -- Funçoes de BANCO function getCount(msg) b, e = string.find(msg, "%d+") if b == nil or e == nil then count = 1 else count = tonumber(string.sub(msg, b, e)) end if count > 100000 then count = 100000 elseif count == 0 then count = 1 end return count end function balance(cid) local storage = 666 local value = getPlayerStorageValue(cid, storage) if value > 0 then selfSay('Your account balance is '..value..' gold.') else setPlayerStorageValue(cid, storage, 0) selfSay('You don\'t have money in your bank account.') end end function withdraw(cid, value) local storage = 666 local balance = getPlayerStorageValue(cid, storage) if balance == -1 then -- Não tinha depositos ainda -> Iniciar com 0 setPlayerStorageValue(cid, storage, 0) end if value <= 0 then selfSay('You cannot withdraw invalid values.') elseif balance < value then selfSay('There is not enough gold on your account.') else selfSay('Here you are, '..value..' gold. Please let me know if there is something else I can do for you.') setPlayerStorageValue(cid, storage, balance-value) doPlayerAddMoney(cid,value) end end function deposit(cid, value) local storage = 666 local balance = getPlayerStorageValue(cid, storage) if balance == -1 then -- Não tinha depositos ainda -> Iniciar com 0 setPlayerStorageValue(cid, storage, 0) end if value < 0 then selfSay('You cannot deposit negative values.') elseif doPlayerRemoveMoney(cid,value) == TRUE then selfSay('Alright, we have added the amount of '..value..' gold to your balance. You can withdraw your money anytime you want to.') setPlayerStorageValue(cid, storage, balance + value) else selfSay('You do not have enough gold.') end end function transfer(cid, value, xid) local storage = 666 local balanceEu = getPlayerStorageValue(cid, storage) local balanceEle = getPlayerStorageValue(xid, storage) if value <= 0 then selfSay('You cannot transfer illegal values.') elseif balanceEu >= value then setPlayerStorageValue(cid, storage, balanceEu - value) setPlayerStorageValue(xid, storage, balanceEle + value) selfSay('Alright, we have transfered the amount of '..value..' gold from your balance to '..NomeDele..' balance.') doPlayerSendTextMessage(xid,4,'OT Bank System : '..getPlayerName(cid)..' transfered the amount of '..value..' gold to your balance.') selfSay(getPlayerName(xid)..' received confirmation about transfer.') else selfSay('You do not have enough gold.') end end function doPlayerGetMoney(cid) local gold = getPlayerItemCount(cid,2148) local platinum = getPlayerItemCount(cid,2152) local crystal = getPlayerItemCount(cid,2160) local total = gold + (platinum*100) + (crystal*10000) return total end Caso não tenha , incluir no FIM do arquivo. A grana fica guardada no Storage 666 Caso esse número já esteja sendo usado , substituir. UpDates Acharam um erro que foge à minha compreensão Numa parte que nem é minha. Eu só usei um recurso que JÁ VEM NO SERVER Aqui : data\npc\scripts\lib\npc.lua <--- Já vem pronto no server Estava assim : elseif doPlayerRemoveMoney(cid,value) then Troquei por : elseif doPlayerRemoveMoney(cid,value) == TRUE then Não entendi porque esse erro, mas o player depositava grana mesmo sem ter o valor. TRANSFER Função TRANSFER adicionada sem os comandos de IO-OPEN só posso fazer TRANSFER pra player on-line o player que ganhou esse TRANFER recebe a mensagem que houve uma transferência da grana para a conta dele.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...