Ir para conteúdo

drakylucas

Visconde
  • Total de itens

    416
  • Registro em

  • Última visita

  • Dias Ganhos

    5

Tudo que drakylucas postou

  1. tipo, ao invez do level 1~20 dar tal runa, ser do ml 1 ao 20? é isso? mude os dois getPlayerLevel(cid) para getPlayerMagLevel(cid) e pronto edit: copia o da resposta do dalvorsn q ta certo (respondi alguns segundinhos depois, num vi q ele tinha respondido kk)
  2. drakylucas

    [VIP] No Nome

    sim.. só seguir o tópico e faze tudo q ele pede, reiniciar o servidor e todos q forem vip,ao logarem, ganharão o name, e qnd acaba a vip será retirado.
  3. drakylucas

    [VIP] No Nome

    n sei qual é seu vip system ¬¬ procura a funçao que verifica se a pessoa é vip e muda na linha if isVip(cid) then ela foi feita atraves do vip system by account do Kydrai.. mas é facilmente alteravel.
  4. nao entendi.. ai ta assim: ele vai randomizar uma das 3 (ou mais, depende de quantas voce colocar) runas da tabela (lado esquerdo da tabela corresponde ao level do jogador) e as cargas da runa q for sorteada é sorteado de 1 até 100.. você pediu isso: o primeiro, vc só precisa colocar as ID's das runas, e o segundo está vindo com cargas variaveis, como o pedido. se vc quer alteração explique melhor, pois nao entendi sua reply.
  5. drakylucas

    [VIP] No Nome

    esse dai nao tira quando acaba a vip.. usa o meu: http://www.xtibia.com/forum/topic/146441-vip-no-nome-removendo-ao-acabar/
  6. teste: function onCastSpell(cid, var) local leveis = { -- [(level_minimo,level_maximo)] = {runas = {ID1,ID2,ID3,....,IDn}}, [{1,20}] = {runas = {2287,2315,2316}}, [{21,40}] = {runas = {2287,2315,2316}}, [{41,99999}] = {runas = {2287,2315,2316}}, } for runa, TABLE in pairs(leveis) do if getPlayerLevel(cid) >= runa[1] and getPlayerLevel(cid) <= runa[2] then doPlayerAddItem(cid,TABLE.runas[math.random(1,#TABLE.runas)],math.random(1,100)) break end end end by me
  7. Olá amiguinhos! Peguei o sistema do Ghandi (de outro fórum, polones) e dei uma limpada nele, adaptando-o a meu gosto e agora vou posta-lo. Créditos: Ghandi e Draky Lucas Como funciona? Apenas digite /msg NicknameDoPlayer, sua mensagem aqui exemplo: /msg Draky Lucas, iae carinha que mora logo ali, blz? saudades brother! ^^ dae o jogador Draky Lucas receberia isso: 14:34 [30.03.2013 14:30:40] Draky: iae carinha que mora logo ali,blz? saudades brother! ^^ (Draky é o nick do char que enviou a mensagem) Instalação: Em Mods, crie um arquivo chamado Msgoffline.xml e nele coloque isso: Depois disso, na pasta Data/Logs crie uma pasta chamada offline_msg Reinicie o servidor e teste! ^^ Gostou? REP+ e COMENTE!
  8. na verdade sua ideia foi só um impulso pra mim criar, eu ja vi o sistema no jogo Wyd ^^ na V 1.0 ainda nãp tem limitação para apenas membros de tal reino passar pelo piso.. mas vou fazer um rapidinho aqui, teste ai que nao vou testar: (do jeito que vc quer é pra um reino especifico passar por um tile especifico neh? ) data/movements/scripts crie reino1.lua e coloque isso: function getReino(guid) -- retorna tabela com reino e nivel do reino da pessoa local qr = db.getResult("SELECT `reino`,`nivelreino` FROM `players` WHERE `id`= ".. guid ..";") reinoid = qr:getDataInt("reino") nivelreino = qr:getDataInt("nivelreino") return {reino = reinoid, nivel = nivelreino} end function getNameReino(id) if id == 0 then return "Sem Reino" end local qr = db.getResult("SELECT `name` FROM `reinos` WHERE `id`= ".. id ..";") name = qr:getDataString("name") return name end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local reinoEspecifico = 1 if not isPlayer(cid) then return true end if getReino(getPlayerGUID(cid)).reino ~= reinoEspecifico then doTeleportThing(cid,fromPosition,false) doPlayerSendCancel(cid,"Voce precisa estar no reino "..getNameReino(reinoeEspecifico).. " para passar aqui!") return false end return true end agora no movements.xml coloque isso <movevent type="StepIn" actionid="2454" event="script" value="reino1.lua"/> Cria um script pra cada reino @topic: Esse script é especifico pro pedido dele, que tem reinos especificos, na v2.0 eu faço algo do genero mais elaborado! No lugar que só o reino 1 (no caso) for passar, coloque a AID 2454.... faça varios scripts mudando a AID para diferentes reinos.. (fiz meio rapido, como pode ver kk foi meio gambiarra pois o script original nao tem que ter isso, mas daqui uns dias eu faço um evento tipo meu castle war de guild, só q pra reino, dae até coloco isso kk)
  9. mude doPlayerSendTextMessage(attacker, 22, "Sua weapon esta quebrada.") para doRemoveItem(getPlayerSlotItem(attacker, slotWeapon).uid)
  10. Permito a publicação em outros fórums, contanto que coloquem meus créditos em um tamanho de fonte grande (algo como 30 basta) Créditos: Draky Lucas -- Desenvolvimento completo do sistema Xampy -- Parte de retirar Frag (copiado do Guild War System 0.3.6 e modificado por mim) LuckOake / Slicer -- Ajudas ao tirar dúvidas na seção de pedidos/duvidas de scripting Testado Com: The Forgotten Server 0.4 rev 3884 - 8.60 Usando MYSQL.. SQLite incompativel com o /install, mas você pode ler a linha e criar a query no sqlite studios manualmente. O que é? é um sistema de reinos, funciona mais ou menos como guild, com poucas diferenças. as pessoas necessitam apenas digitar !reinos e terão todas instruções de como funciona o sistema. Bugs: Está sem promover pessoas (ou seja, patentes intermediarias estão inutilizaveis por enquanto) outros? REPORTE aqui no tópico! Comandos: !reinos !reinos creditos - NAO ALTERAR !reinos criar,Nome do Reino !reinos invitar,Nome do Player !reinos recusar !reinos aceitar !reinos membros !reinos sair !reinos expulsar,Nome do Player Instalação Na pasta Mods do servidor, adicione um arquivo chamado reinos.xml contendo isso: Agora, na pasta data/creaturescripts/scripts crie uma pasta chamada reinos e nela crie três arquivos: look.lua naoAtacarProprioReino.lua reinoMataOutrosReinos.lua no look.lua coloque isso: no naoAtacarProprioReino.lua coloque isso: No reinoMataOutrosReinos.lua (creditos 90% Xampy)coloque isso: Agora em data/creaturescripts abra o creaturescripts.xml e adicione: Agora, abra o servidor (reload não funcionará), entre com um char de groupId acima de 5 e digite !reinos instalar APENAS UMA VEZ! PS: Os creaturescripts estão fora do MOD pois estive tendo problemas com return false no MOD. Confirme no console se o sistema instalou-se corretamente! Enjoy it! SCREENSHOTS: Gostou? REP+ e comente! EDIT 30/03/2013 - Adicionado Spoilers no tópico</event></event></event> EDIT 09/04/2013 - Adicionado Imagens
  11. exercicio basico de lógica de programação quem fez tecnico de informatica ou de informatica p/ internet com certeza vai precisar fazer isso! tem também um exercicio de numeros perfeitos, tbm é legal fazer kk ^^
  12. function onCombat(cid, target) if not isPlayer(target) then return true end if (getPlayerGuildId(cid) ~= getPlayerGuildId(target)) or isPlayer(target) == FALSE or getPlayerGuildId(cid) == nil or getPlayerGuildId(cid) <=0 then return TRUE end doPlayerSendCancel(cid, "Voce nao pode atacar players da mesma guild.") return FALSE end ou function onCombat(cid, target) if not isPlayer(target.uid) then return true end if (getPlayerGuildId(cid) ~= getPlayerGuildId(target.uid)) or isPlayer(target.uid) == FALSE or getPlayerGuildId(cid) == nil or getPlayerGuildId(cid) <=0 then return TRUE end doPlayerSendCancel(cid, "Voce nao pode atacar players da mesma guild.") return FALSE end um desses com certeza vai funcionar.
  13. só uma duvida, porque você quer tirar isso? oO se eu quiser sair da guild, nao vou poder? ... ¬¬ kk mano se ele sair da guild pra matar alguem, é tatica, só que pense q todos da guild tbm vao poder matar ele dps =p
  14. na vdd n foi tão resolvido, mas ja estou com esse pedaço funcionando.. ty kk agora os problemas são outros u.u mas ta ficando foda meu sistema kkk
  15. só vi agora, mas esse script ta errado, nao está? o correto seria os local name,days etc ficar antes do if, porque eles sempre vao ser inexistentes antes de você declarar a variavel
  16. então, nao vai dar para eu testar agora (é q to montando um sistema meio complexo, e isso seria apenas para uma das functions dele) mas pela logica, ao ler, funcionará kk fiz a pergunta no yahoo answers, me disseram que da pra fazer utilizando SUBSTRING exemplo: DELETE FROM sua_tabela WHERE SUBSTRING(campo, 2,7) = 'xx = 31'; porem, no lugar do 7, eu teria que descobrir uma posição antecedente da virgula =x nao manjo mt manipulação de string =/ você saberia me dizer o que posso usar para pegar a posição de um caractere? veja o que estou fazendo +- (é um sistema de reinos, porem bem avançado, mais que o guild system kk) function invitar(cid,name,reinoid,reinonivel) if getReino(getPlayerGUID(cid)).reino <= 0 or getReino(getPlayerGUID(cid)).nivel < patenteMinima then return doPlayerSendTextMessage(cid,22,"Voce precisa pertencer a uma alta patente de um reino para convidar pessoas") end if not isPlayer(getPlayerByNameWildcard(name)) then return doPlayerSendTextMessage(cid,22,"ERRO: Jogador inexistente ou offline.") end if getInvitation(getPlayerByNameWildcard(name)) == false and getReino(getPlayerGUID(getPlayerByNameWildcard(name))).reino == 0 then setPlayerStorageValue(getPlayerByNameWildcard(name), storages.invitation, {reino = reinoid, nivel = reinonivel}) doPlayerSendTextMessage(getPlayerByNameWildcard(name),22,"O Reino " ..getNameReino(reinoid).." quer que voce se torne " .. patentes[reinonivel].nivel) doPlayerSendTextMessage(getPlayerByNameWildcard(name),22,"Digite \"!reinos aceitar\" para entrar no reino, \"!reinos recusar\" para recusar o convite!") doPlayerSendTextMessage(cid,22,"Voce acabou de invitar o jogador "..name.." para o seu reino!") else doPlayerSendTextMessage(cid,22,"O jogador "..name.." ja foi convidado para outro reino! Desculpe") end return true end function excluirReino(ID) db.executeQuery("UPDATE `players` SET reino = 0, nivelreino = 0 where reino = ".. ID ..";") db.executeQuery("DELETE from `reinos` where id = ".. ID ..";") -- arrumar db.executeQuery("UPDATE `player_storage` SET value = -1 where key = ".. ID ..";") return true end basicamente estou utilizando uma storage para invitar a pessoa pro reino, e faze-la aceitar ou recusar.. qnd aceita, a storage dela é removida e ela é modificada no banco pro numero equivalente ao reino, porem se o jogador excluisse o reino eu gostaria que, alem de todas as pessoas que tivessem no reino saissem dela (q ja está feito), as pessoas que forem convidadas (que tem a storage) também fossem desconvidadas... por isso a duvida kkk aaa, e tbm ja te dei um rep+, perdeu tempo trabalhando nisso kk
  17. tipo, eu criei um script onde seto a alguns players uma tabela contendo 2 campos na storage de um player exemplo: setPlayerStorageValue(cid,15455,{xx = 31, yy = 12}) gostaria de um comando que deletasse todas as linhas do banco de dados onde na storage 15455, no campo xx, tivesse com o numero 31, por exemplo, e quero utilizando o db.executequery(query) exemplo: db.executeQuery("Delete * from player_storages where key[xx] == 31") (claro q o exemplo acima nao funcionou, mas é isso q eu quero) obrigado
  18. respondido por MP, autor do topico ja testou... podem fechar
  19. que erro que da no console? qual a distro sua? é para funcionar normal ... vc nao ta esquecendo de arrumar as AID's no map? ou de colocar no xml? tente mudar essa linha doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid))) para essa linha doTeleportThing(cid,{x=32369,y= 32241,z= 7}) e essa linha if getCreaturePosition(cid) == getTownTemplePosition(getPlayerTown(cid)) then para essa linha if getCreaturePosition(cid) == {x=32369,y= 32241,z= 7} then
  20. então, nao tenho agora, mas amanha por volta de meio dia eu faço se quiser.. (agora vou dormir q amanha tenho prova (simulado vestibular) no objetivo kk) é facil fazer, o dificil vai ser vc colocar as posições dos trainers (pq n da pra tratar globalevent com as actionIds kk)
  21. roksas, te mandei uma MP falando alguns erros desse script, de exemplo... ao BrenoNeto, esse script pode apresentar falhas, pois imagina que eu estou PK.. do jeito que está ai, se eu tentar atacar alguem da minha guild, meu PK sairia e minha pz tbm, entao seria mto bugado... tente assim: function onCombat(cid, target) if (getPlayerGuildId(cid) ~= getPlayerGuildId(target)) or isPlayer(target) == FALSE or getPlayerGuildId(cid) == nil or getPlayerGuildId(cid) <=0 then return TRUE end doPlayerSendCancel(cid, "Voce nao pode atacar players da mesma guild.") return FALSE end <event type="combat" name="GUILDMode" event="script" value="guildProtection.lua" /> login.lua: adicionar isso: registerCreatureEvent(cid, "GUILDMode")
  22. PS: se quiser testar com menos tempo, pra nao esperar as 3 horas, mude essa linha: addEvent(temple,60*1000 * 60 * 3,cid) pro tempo que vc quiser (1000 = 1 segundo, 1000*60 = 1 minuto, e por ai vai) ee um conselho, a ideia sua eu acho meio fail... seria melhor colocar um globalevent rodando de hora em hora fazendo todo mundo que ta nos trainers serem teleportados, todos de uma vez.. dae os trainers esvaziam e a pessoa vai te que volta de hora em hora
  23. fiz um aqui, mas nem testei (fiz direto pelo notepad, se der erro me avisa) function onStepIn(cid, item, pos) if isPlayer(cid) then doPlayerSendTextMessage(cid,27,"Daqui há 3 horas você será mandado para o templo!") addEvent(temple,60*1000 * 60 * 3,cid) end return true end function temple(cid) if isCreature(cid) then local pos = getCreaturePosition(cid) pos.stackPos = 0 if getTileThingByPos(pos).actionid == 46399 then doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid))) doShowTextDialog(cid,2160, "Suas 3 horas de treino terminaram. Mexa-se ou será kikado em 15 segundos.") addEvent(function() if isCreature(cid) then if getCreaturePosition(cid) == getTownTemplePosition(getPlayerTown(cid)) then doRemoveCreature(cid) end end return true end,15*1000) end return true end return true end movements.xml <movevent type="StepIn" actionid="46399" event="script" value="steptrainer.lua"/> config.lua -- Limits idleWarningTime = 3* 60 * 50 * 1000 + 30*1000*60 idleKickTime = 3* 60 * 60 * 1000 + 30*1000*60 -- kikar em 3 horas e meia, pro script nao kikar antes Coloque a AID 46399 em todos os tiles que o player fica para treinar... PS: esse nao tem stepOut! , é bem automatico.. Só nao entendi uma coisa, o player só vai poder treinar 3 horas por dia, ou a cada 3 horas ele ser expulso dos trainers, mas poderá voltar normalmente? (tipo bronson server).. [fiz do segundo jeito, mas é facil arrumar pra treinar só 3 horas por dia]
  • Quem Está Navegando   0 membros estão online

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