

roriscrave
-
Posts
545 -
Joined
-
Last visited
Reputation Activity
-
roriscrave reacted to Administrador in [Resolvido] Qual melhor base para começar?
Confere ai: http://www.xtibia.com/forum/topic/233829-pacotao-otservers-76/
Também recomendo este:
http://www.xtibia.com/forum/topic/232996-76-tibia-old-full/
-
roriscrave got a reaction from euller15 in Scripting Treinando ML
vai em data/movements/scripts e cria um arquivo chamado treinarmana.lua coloque isso dentro
function onStepIn(cid, item, position, fromPosition) local mana = getCreatureMana(cid) if doCreatureAddMana(cid, -mana) then if doPlayerAddSpentMana(cid, mana) then doSendMagicEffect(getCreaturePosition(cid), 1) return false else doCreatureAddMana(cid, mana) end end doSendMagicEffect(getCreaturePosition(cid), 2) return true end agora no movements,xml coloque assim
<movevent type="StepIn" actionid="9191" event="script" value="treinarmana.lua"/> agora por fim coloque actionid 9191 em todos tiles que vao treinar mana.
-
roriscrave got a reaction from Imperatriz in [Resolvido] Distro para de responder
mude para linux, pode ajudar. é melhor que windows em caso de proteçao
-
roriscrave reacted to Night Wolf in Tibia Guitar Hero [0.36~0.4]
Fala pessoal do XT, hoje vim trazer pra vocês um sistema que eu desenvolvi nessa última semana e inclusive fiz um tópico na seção de show off (confira o tópico aqui) numa tentativa de agitar um pouco e prover uma certa especulação em relação ao sistema. Bom, eu to aqui hoje pra informar que deu mais que certo e que meu tópico humilde (que eu realmente acreditava que seria ignorado, ainda mais numa seção morta como aquela) teve uma repercursão enorme (inclusive indo parar no portal do XT )
Bom, toda pessoa quando faz um código espera que ele agrade aos demais e tenha um certo valor, e bem, vocês superaram minhas expectativas.. com isso nada mais justo do que compartilhar com essa comunidade que me recebeu tão bem .
Chega de falatório e vamos direto aos negócios:
Introdução: O sistema em si é uma cópia dos jogos de ritmo (GuitarFreaks, Band Hero, Rocksmith e o próprio Guitar Hero). Neste jogo pequenas notas irão cair pela tela até atingir um local especial, onde você poderá usar as teclas (Shift + 7, Shift + 8, Shift + 9, ou apenas 7, 9 e 9 [com Num Lock desativado]) para escolher as direções que as notas estão afim de "ativá-las". Uma vez ativada a nota ela será "queimada" e será considerado 1 acerto. Caso você não consiga ativar a nota e ela passar direto, um efeito de fumaça indicará o "Miss", o mesmo vale para se você tentar ativar uma região sem notas.
Sistema de pontuação: Haverão 3 classificadores estatísticos para cada música tocada, sendo eles:
Notas acertadas: O principal fator de ponto, ele que definirá seu recorde e o valor máximo q ele pode assumir será o número de notas da música.
Movimentos errados: Quantidade de movimentos que você fez para alguma região que não possuia notas, conta como pontuação punitiva.
Notas passadas/erradas: Quantidade de notas que você deixou escapar, note que as notas acertadas + notas passadas compõe o número total de notas da música.
Por enquanto o sistema não possui nenhum preço para se jogar mas também não possui nenhuma recompensa, fiz com o intuito de ser apenas um mini game divertido dentro do Tibia. Porém o código é livre e está disponibilizado aqui embaixo pra qualquer um modificar como desejar.
Video explicativo:
Dificuldades: O mini game possui 3 dificuldades, porém essa quantidade é tão configurável quanto as pré definições de cada dificuldade. Além da quantidade de notas ser diferente, a velocidade com que elas descem e consequentemente o tempo que você tem pra acertá-las fica diminuido.
Diferenciais: Um forte diferencial desse sistema é que ele foi feito seguindo todas as regras possíveis pra melhorar seu desempenho, desde funções recursivas leves até separação em funções encapsuladas que carregam apenas as informações necessárias. O sistema contém também algumas seguranças que serão explicadas mais abaixo juntamente com o código para prevenir bugs e garantir diversão sem dores de cabeça!
Instalação (Map Editor): Primeiramente faça uma área parecida com essa daqui:
Não precisa ser igualzinha, apenas seguir a mesma proporção
Agora use a ferramenta de No-Logout para setar os quadradinhos que contém UID e UID2 escritos como No-Logout, isso vai impedir que players desloguem e fiquem presos dentro da sala (se eles derem exit, quando eles relogarem estarão do lado de fora da sala)
Ainda olhando a foto acima, coloque 42320 nos pisos que estão escritos UID, e 42319 no piso que contém UID2.
Nas alavancas, coloque uid 2819 em todas elas e coloque actionid 101 para a alavanca do fácil, 102 na alavanca do médio e 103 na do dificil;
A regra é sempre 100 + dificuldade, como nós estamos utilizando apenas 3 será do 101 ao 103.
Note que se você esquecer ou colocar uma dificuldade não existente o sistema adotará a dificuldade 1 como padrão para aquela alavanca.
Se chegou até aqui, meus parabéns. Muito provável que você tenha feito tudo certo. Agora vamos à parte do código.
Instalação (scripts): Em actions.xml insira essa linha
<action uniqueid="2819" event="script" value="GHtest.lua"/> Agora em data/actions/scripts crie um arquivo com extensão.lua e chameo de GHtest. Insira o seguinte bloco de instruções dentro dele:
Aproveite e já configure as posições npos, startPos e finalPos de acordo com as posições do seu map editor (olhe na segunda imagem para ver onde deve ser cada uma das posições com base na sala)
Feito isso crie um arquivo em data/lib com nome qualquer, aqui em casa eu utilizei o nome 120 - Guitar Hero Lib e a extensão.lua.
Coloque isto dentro desse arquivo e salve:
Agora adicione a seguinte tag em data/movements/movements.xml:
<movevent type="StepIn" uniqueid="42320;42319" event="script" value="GHTestmov.lua"/> Por fim crie um arquivo chamado GHTestmov.lua em data/movements/scripts e preencha seu conteúdo com as linhas abaixo:
Aproveite para deixar a npos idêntica à npos que você configurou lá no actions se baseando na posição da sua sala no map editor.
------------------------ FIM ------------------
O sistema já deve funcionar como foi planejado, se você não manja de código ou quer o sistema exatamente como foi mostrado no vídeo você pode ignorar a parte abaixo.
Configurando seu sistema (básico):
Para as pessoas que querem configurar apenas as coisas básicas, você pode fazê-lo nas primeiras linhas de cada script (actions/movements) ou alterando diretamente na lib, irei ensinar passo a passo aqui oque significa cada coisa.
Alterando a lib As coisas básicas que podem ser alteradas na lib são as seguintes:
dif = { -- [dificuldade] = notas que serao tocadas (nil = vazio, 0 = primeira posicao, 1 = segunda e 2 = terceira) [1] = {nil,nil,0,1,2,nil,nil,2,1,1,0,0,2,0,1}, [2] = {nil,nil,0,1,1,2,1,1,0,0,2,0,1,nil,1,2,1,1,0,0,2,0,1}, [3] = {nil,nil,0,nil,1,nil,1,1,0,0,2,0,1,1,1,nil,0,2,1,1,0,0,2,1,1,0,nil,2,2,1,1,1,1,2} } delay = { -- delay entre cada nota de acordo com a dificuldade [dificuldade] = delay [1] = 500, [2] = 400, [3] = 300 } recorde = { -- salva os recordes de cada dificuldade separadamente [1] = 12724, [2] = 12725, [3] = 12726 } dif separa como será cada música de cada dificuldade, as notas sempre serão nesse exato formato. nil significa que não estarei usando posição nenhuma naquela linha, 0 significa a primeira posição (nota verde), 1 significa segunda opção (nota vermelha) e 2 significa terceira opção (nota azul). Eu aconselho a começar todas as músicas com 2 ou mais 'nil' para dar tempo de o player entender que vai começar. A distribuição que eu usei foi meio que aleatória então sinta-se a vontade pra mudar tanto o tamanho das musicas quanto a variedade de notas.
delay é a tabela que oganiza os delays de cada dificuldade, isso significa que para a dificuldade 1(fácil) nós temos 500 milisegundos para cada mudança de nota (1000 milisegundos = 1 segundo), ou seja, a cada 2 passadas de nota temos 1 segundo dentro da sala. No modo hard a cada 300 milisegundos mudamos a nota, deixando o jogo muito mais rápido e dificil.
recorde é a tabela que possui os storages que irão salvar os recordes nas respectivas dificuldades.
Alterando actions
local storage_point = 12721 -- storage que salva os pontos local storage_erradas = 12722 -- storage que salva as notas erradas local storage_passadas = 12723 -- storage que salva as notas que passaram Apenas mude os storages
Alterando movements
local itemid = 1680 --- coloque o id da nota do meio local npos = {x = 141, y = 51, z = 7} -- posicao que ira nascer a primeira nota local storage_point = 12721 -- storage que salva os pontos local storage_erradas = 12722 -- storage que salva as notas erradas local storage_passadas = 12723 -- storage que salva as notas que passaram aconselho mexer somente nos storages, mantendo igual à action.
Só abra o spoiler abaixo se você estiver descontente com a forma que seu código roda e tiver certeza absoluta de que você tem o conhecimento necessário para alterar as coisas que vou explicar.
Espero que vocês tenham curtido, façam um bom uso e qualquer dúvida postem nos comentários abaixo.
Agradecimento ao @dalvorsn pela função que limpa a sala antes de começar o jogo e ao pessoal do servidor Refugia que fez um script de guitar hero lá e me deu a idéia. Abraços do Lobo.
-
roriscrave reacted to Deadpool in [Encerrado]Pokémon Open Source *ShowOff* *Atualizado*
Bom tarde galera, venho por meio deste tópico, anuncar que, estou terminando de desenvolver um ATS derivado de Tibia.. Um pokémon server.. Bom, vou postar ShowOff, apenas dos sistemas no qual tem no servidor.. Irei resolvendo os Bugs, e então, quando achar que está bom, liberarei o Download do servidor, junto com as devidas sources.
Eu tambem, colocarei uma lista do que foi feito no servidor.. Desde bugs, até novos sistemas. enfim..
Bom, como todos sabem, esse servidor contem os sistemas básicos.. Mas ainda não parei para mexer nos sistemas mais simples..
Changelog:
Adicionado nas sources:
- DoCreatureSetNick
- AutoStacking
- Modificado a função AddItem (estava bugando por causa do autostacking..)
- Adicionado todas as races pokémons.
- Modificado a cor da fala dos groups nos channels.
- Adicionado Passive e Agressive, igual o PokeXGames.
- Adicionado OnSpawn
- Adicionado Pokémon Ghost System
- Adicionado GetCreaturePathTo
- Adicionado CastSpell
Adicionado no servidor:
- Novo NPC de mudança de Nick do pokémon;
- Peguei função do PDA para alterar nomes dos pokémons shinys, e deixado normal. Ex: Antes: Shiny Tangela. Agora: Tangela.
- Adptado/Adicionado sistema de vantagem e desvantagem do PDA.
- Copiei as passives do PDA e adpatei para o servidor.
- Copiei sistema de vantagem e desvantagem do PDA e adpatei para o servidor.
- Adptado/Adicionado o Clan System do PDA. - Sistema de Icon (acabei de adicionar só adicionei 1 icon pra testar mesmo) ^^ - Retirados o S no final dos pokémons selvagens. - Ao morrer, aparece descrição no corpse, indicando o monstro que matou e o nome de quem morreu. - Sistemas basicos (surf, ride, blink etc.) por order Mudanças nas configurações do servidor:
-Adicionar/fazer moves, basta fazer igual o PDA. Porem, se você baixar um servidor PDA e pegar a script de "pokémon moves" da LIB, e jogar nesse servidor, não irá funcionar ^^
-Adicionar pokémons, tambem é só adicionar como se fosse um PDA.
-Adicionarfazer novas evoluções igual o PDA.
-Adicionar/fazer novas passives igual o PDA.
Otclient:
Peguei OTClient na versão 0.6.5;
- Fiz a barrinha de moves funcionar..
- Não vou adicionar pokebar
- Transparency funcionando
Obs: O Old cliente ainda está usavel, pois não extendi o cliente, nem pretendo extender..
Faltando/Em andamento:
Arrumar alguns moves
Refazer nurse joy
Configurar todos os pokémons e balancear
Configurar o Clan Sistema
Configurar Spells
Confgurar sistema de ovos
Retirar uns duplicad Itens
Arrumar os sistemas basicos(hoje ainda deixo 100%)
OBSERVAÇÕES:
Eu não irei postar ainda, pois o mesmo está em andamento, tem muitos bugs na qual estou resolvendo.
***Se alguem quiser me ajudar, basta deixar seu contato.
** Não me precionem plis.
* Sou lindo
- Irei atualizar todos os dias, e colocar prints e atualizações e modificar o nome do topico com a data de atualização.
- NÃO irei mexer no mapa, se alguma alma quiser ajudar, pois bem, deixe seu contato e.e
- NÃO tem level sistema.
e NÃO é PDA.
CREDITOS:
Zipter
OrochiElf
Arkz
Elwyn
GabrielTxu
Sobre os creditos, *Eu peguei um ou mais sistemas, alguns destes me tiraram duvidas e sou grato*.
PRINTS:
Estou desenvolvendo esse servidor exclusivamente para o XTIBIA, e tambem porque quero ver a galera sair da mermisse do PDA..Durante muito tempo, vi gente criando topicos, pra geral juntar e fazer os sistemas do PDA, ou fazer um servidor que chegue no rastro do PDA.. Então, se alguem quiser me ajudar.. Basta me comunicar..
OBS: Sempre verifiquem as atualizações abaixo, que é onde eu irei editar sempre e postar atualizações, abram os spoilers.
ATUALIZAÇÕES:
11/10/2015 00:16
Parei para mexer no Design do Client.
novo entergame:
Atualização *11/10/2015*
Atualização *12/10/2015*
*Vou upar os Prints das atualizações e colocar no tópico*
-
roriscrave reacted to caotic in Sound System [Injection]
Eae galera xtibiana hoje irei disponbilizar um novo sistema de audio.
Ou melhor 2 sistemas de audios rs acho que alguns viram o sistema de som AFL que disponiblizei para o xtibia.
Mais ele erá muito limitado e alem de alguns bugs.
Então eu comecei um projeto pokemon(que ainda está em pé) e a primeira coisa que veio na cabeça e um sistema de som completo que não travesse e que funcione no client da cipsoft.
Então vamos la:
Vamos escolher qual sistema de som vamos usar primeiramente vou explicar cada ponto:
Dll Audio - A dll e compacta e super eficiente mais tem uma instalação um pouco mais dificil e requer conhecimento
*Junto vem um dll com o ip(127.0.0.1) mais não se preocupe coloquei o projeto do Visual C++ para você mudar o ip e recompilar.
Ela está disponivel aki:
Audio Dll+Project VC++.rar
Prontinho agora vamos a instalação:
Primeiro execute o server de audio junto ao seu otserv:
Server Audio Dll or Vb Form.rar
Instale a blibioteca lua socket no seu otserv:
http://w3.impa.br/~diego/software/luasocket/
Agora coloque está funcão na sua lib:
function sendAudio(cid, audio)require('socket') local ip = "127.0.0.1" -- Seu ip Akilocal client = socket.connect(ip, 1234)local t = "Send,"..doConvertIntegerToIp(getPlayerIp(cid))..","..audio.."" client:send(t.."\n") client:settimeout(0.1)client:close()end Pronto quando quiser executar um som basta usar a função sendAudio(cid, "id audio")
Se tiver usando a dll todos o sons devem ser guardados junto a ela.
Todos os formatos de audio devem ser ".wav" e todos precisam ser enumerados de 000 a 999 se não seguir tal regra terá varios problemas.
Agora vou passar um codigo em vb que fiz para você injentar a dll antes que o seu client inicie:
E NECESSARIO EXECUTAR DENTRO DE UM THEARED QUANDO FOR FAZER O SEU LAUNCHER.
Audio Dll+Project VC++.rar
Server Audio Dll or Vb Form.rar
-
roriscrave reacted to Luga03 in Faço Scripts Para Todos
ei man eu consegui fazer isto ae 90% doque vc pediu, os outros 10% era a parte de apenas um player entrar na quest, fora isto o resto tudo eu consegui kk vou deixar o code aq pra se alguem quiser terminar:
local config = { storage = 242134, message1 = "Você já entrou nesta quest!", message2 = "Já tem um player nesta quest, espere ele sair!", notlevel = "Você não tem level Suficiente Para entrar na quest!", level = 10 } local pos = {x = 0, y = 0, z = 0} function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, config.storage) <= 0 then if getPlayerLevel >= level then doTeleportThing(cid, pos) setPlayerStorageValue(cid, config.storage) else doPlayerSendTextMessage(cid, 22, config.notlevel) end else doPlayerSendTextMessage(cid, 22, config.message1) end return true end
qual quer coisa eu tento terminar a noite, pq agora vou ter que sair
-
roriscrave reacted to zipter98 in Rank storage de guilds é possivel?
Instale o AGS criado pelo Omega e use as seguintes funções para manipulação de guild storages:
setGuildStorageValue(guild_id, key, value) getGuildStorageValue(guild_id, key) -
roriscrave reacted to SkyLigh in Rank storage de guilds é possivel?
local s = 13695 -- storage if (getPlayerStorageValue(s) ~= getPlayerGuildName(cid)) then doPlayerSendTextMessage(cid, 20, "[GUILD-EVENT] Você e sua guild ganharam o evento!") setPlayerStorageValue(cid, s, getPlayerGuildName(cid)) end vê se é isso
-
roriscrave reacted to christopher17288 in Stamina chegar a 0, receber uma mensagem
Bom dia Roriscrave.. Blz?
Bom, sou novo na área, então.. Não sei se vou conseguir lhe ajudar, mas..
vamos lá:
Arquivo.Lua
Actions.XML
Essa action, tem a seguinte função: se você der use nela, ela lhe envia uma mensagem dizendo sua stamina, (não acho mt utíl, mas se quiser.. tá aew.)
Só mude o id do item.. para qual quiser.
Ps: a mensagem vai chegar em hrs . minutos.
Mas se você quiser que eu deixe só em minutos, só falar.. E se você souber, só fazer deixa-lo em minutos.. rs'
(Acho melhor só em minutos, mas vamos seguir o padrão)
Também, tem a opção de colocar no "creaturescript" uma checagem para isso.
Vá em data/creaturescript/scripts/advancesave.lua
E adiciona esse script:
Oque vai acontecer? Sempre que o player avançar um skill//level e se a stamina dele for igual a 0, ele vai receber um BroadCast (Mensagem em red na sua tela) informando da sua stamina 0.. Pedindo pra renovar e tal.
Caso ainda não esteja satisfeito com o processo (de receber a mensagem somente após um avanço no level//skill) você também tem a opção de por esse script em data/creaturescript/scripts/Idle.lua ..
Ponha em baixo do último end antes do return true..
Oque vai acontecer?
Se o player pegar stamina 0 em qualquer lugar, seja upando, ou matando bixos em eventos, ou em qualquer lugar mesmo, o BroadCast vai aparecer para ele.. rs'
Então, é isso !
Espero ter lhe ajudado, vlw !
Resolvido ?
-
roriscrave reacted to RigBy in Dúvidas com global storage
faz um globalevent com onStartup() que resolve
-
roriscrave reacted to zipter98 in [Resolvido] Gostaria de um Script
Ah, me lembrei de uma coisa. O número da outfit em configuration.lua deve ser o valor do Dat Editor subtraído por 351.
PS: Certifique-se que está pegando o valor correto. Se não funcionar, você fez algo errado (ou pegou o valor errado).
-
roriscrave reacted to Benny in Queria fazer algumas letras igual as do gesior
http://imgur.com/a/MTGrE
Abraços,
Benny
-
roriscrave reacted to Sakegari in .SPR e .DAT PXG 22/03/2015 - DESCOMPILADO
Categoria: Download de SPRITES
Créditos: PokeXGames - PXG
Conteúdo:
Cliente da PXG referente a data 22/03/2015 descompilado.
OBSERVAÇÕES:
O cliente deve ser aberto utilizando o OBJECT BUILDER, onde as opções EXTENDED e TRANSPARENCY devem estar marcadas.
FOTOS:
-
DOWNLOAD:
MediaFire
SCAN:
Virustotal
-
roriscrave reacted to RigBy in Limite de player por sala
Limite de player por sala
Introdução:
Esse script pode ser bem útil para baiak onde as salas tão sempre cheia de player upando ou então para eventos.
O script simplesmente checa a quantidade de player que tem dentro da sala, caso não tenha atingido o limite o player pode entrar caso não, manda uma mensagem falando que a sala esta lotada.
Exemplo de uso: pode servir até para a anihilator ou demon aok, invitando que um segundo time entre na sala antes que o primeiro acabe.
Caso a sala esteja lotada.
Caso não.
Em data/movement/script, crie
LimiteArea.lua e adicione.
Em movement/movement.xml Adicione essa tag
E depois adicionar o actionid no piso ou teleport pelo mapa editor. O script é fácil de se configurar mas caso tenha algum problema pode posta ai que eu vou ajuda. Caso você adicione mais locais você terá que adicione na tag também.
-
roriscrave reacted to zipter98 in Monstro não acertar hit em outro monstro (selvagem)
function onStatsChange(cid, attacker, type, combat, value)
if isMonster(attacker) and isMonster(cid) then
return false
end
return true
end
Entretanto, você terá que registrar o evento no arquivo .XML de todos os monstros.
Ou, caso não queira realizar a cansativa tarefa acima, você pode tentar:
Nas sources do servidor, monster.cpp:
Abaixo de:
if(isSummon()) isMasterInRange = canSee(getMaster()->getPosition());
coloque:
std::string event = "NOME_DO_EVENT0"; //Nome do evento configurado em creaturescripts.xml. creature->registerCreatureEvent(event);
-
roriscrave reacted to zipter98 in Qual script sobrecarrega MENOS o server?
O primeiro, que eu também particularmente escolheria por ter um processo menos cansativo de configuração.
-
roriscrave reacted to RigBy in Porta Só passa um player por vez
Eu fiz isso porque caso o player deslogue la dentro e o tempo acaba-se o script ia buga e ele poderia fica la pra sempre.
desculpa, muda o valor de 1 para -1 no setPlayerSto....
Da uma olhada nessa parte:
addEvent(function() if not isPlayer(cid) then return false end if getPlayerStorageValue(cid, 21321321) == 1 then doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, -1) end end, tempo * 60 * 1000) -
roriscrave got a reaction from RigBy in Porta Só passa um player por vez
mano, ele ja postou seu script completo, é so ver acima.
o erro que deu é pq tu não prestou atenção direito
29/07/2015 16:51:20] cannot open data/actions/scripts/doorsquest.lua: No such file or directory nao foi encontrado o arquivo chamado doorsquest.lua na sua pasta data/actions/scripts. voce colocou o nome dele errado!
-
roriscrave reacted to RigBy in Porta Só passa um player por vez
substitui o movement por esse:
-- Do not remove the credits -- -- [MOVEEVENT] Limite de player por sala -- -- Developed by Rigby -- -- Especially for the Xtibia.com -- function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local pos = {x = 1073, y = 1031, z = 7} -- quando o tempo acaba para onde ele ira ser teleportado local tempo = 10 -- tempo que pode fica em minutos local config = { [5555] = {area = getPlayersInArea({x = 1030, y = 1020, z = 7}, {x = 1040, y = 1030, z = 7}), amountOfPlayers = 1, teleport = {x = 1037, y = 1025, z = 7}}, } if config[item.actionid] then if #config[item.actionid].area < config[item.actionid].amountOfPlayers then doTeleportThing(cid, config[item.actionid].teleport, false) doPlayerSendTextMessage(cid, 25, "Welcome") setPlayerStorageValue(cid, 21321321, 1) addEvent(function() if not isPlayer(cid) then return false end if getPlayerStorageValue(cid, 21321321) == 1 then doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, -1) end end, tempo * 60 * 1000) else doPlayerSendTextMessage(cid, 25, "The room already reached its limit "..config[item.actionid].amountOfPlayers.." player 's wait someone out .") doTeleportThing(cid, fromPosition) end end return true end function getPlayersInArea(fromPos, toPos) -- Function made by Vodkart local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end e para que ele quando desloga volta pro templo adicione isso. em creaturescript, dentro do Login.lua antes do ultimo return true. .lua if getPlayerStorageValue(cid, 21321321) == 1 then local pos = {x = 1073, y = 1031, z = 7} -- posição para onde ele vai doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, 1) end -
roriscrave reacted to DeCarvalho in [8.54] Servidor + Client Naruto B&W [EXCLUSIVO]
E pelas imagens deu para perceber que 'a' 'muintos' erros de português.. quem pegar, se for querer fazer algo 'serto' vai ter que corrigir isso..
Mas o que vale é a intenção
-
roriscrave reacted to Mudrock in [8.6 ~ 9.x ] Gesior WebGesiorMudrocK 100%
Opa pessoal do XTIBIA tudo bem, tava editando um Gesior para o meu servidor a um tempo mais o projeto acabo dando errado por problemas técnicos, e eu fiquei com meu gesior pronto porem sem utilidade
então resolvi trazer para vocês
OBSERVAÇÃO : esse gesior erá de um projeto meu, finalizei ele hoje quando peguei uma base que um amigo meu me passo para ajuda-lo, e acabei implementando alguns sistemas e funções, ESSE GESIOR FOI FEITO APARTIR DOS MEUS GOSTOS, ESTOU SOMENTE DISPONIBILIZANDO-O PARA VOCÊS, PORTANTO FIQUEM A VONTADE PARA EDITAR NOMES, IMAGENS, CORES.
Bugs arrumados
Compatibilidade
TFS 0.3 TFS 0.3.8 TFS 0.4
Download em anexo
DATABASE : http://www.mediafire.com/download/w3n1nnw0gtmc2k0/mudrock.sql
GESIOR : http://www.mediafire.com/download/frfgq96jawas214/mudrockwebgesior.rar
Créditos
MudrocK
Archez
Aleh
Hollister
Matheus ( for top level )
-
-
roriscrave reacted to Bruno in Source Linux vs Windows
Tem vários tutoriais ensinando a como fazer man...quando você abre o arquivo no dev, ele já tem algumas libs, as que não tem, precisa baixar, tudo você acha naquela parte de downloads, nas funcionalidades do próprio dev.
-
roriscrave got a reaction from MonsterB0SS in NPC que troca vocation
tente
Aqui, vá em npcs/script e crie um arquivo chamado vocacao.lua e coloque isso dentro
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} 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 choose = {} local cancel = {} local available = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_PRIVATE and 0 or cid if(msgcontains(msg, "info")) then selfSay("Olá "..getCreatureName(cid)..", Você quer trocar de vocação, digite o nome da sua proxima vocação. Temos Sorcerer, Druid, Knight e Paladin.", cid) talkState[talkUser] = 1 elseif msgcontains(msg, "sorcerer") or msgcontains(msg, "SORCERER") and talk_state == 1 then doPlayerSetVocation(cid, 1) selfSay("Parabéns, você virou um Sorcerer", cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um Sorcerer") elseif msgcontains(msg, "druid") or msgcontains(msg, "DRUID") and talk_state == 1 then doPlayerSetVocation(cid, 2) selfSay("Parabéns, você virou um Druid", cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um Druid") elseif msgcontains(msg, "paladin") or msgcontains(msg, "PALADIN") and talk_state == 1 then doPlayerSetVocation(cid, 3) selfSay("Parabéns, você virou um Paladin", cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um Paladin") elseif msgcontains(msg, "KNIGHT") or msgcontains(msg, "KNIGHT") and talk_state == 1 then doPlayerSetVocation(cid, 4) selfSay("Parabéns, você virou um Knight", cid) broadcastMessage("O jogador "..getCreatureName(cid).." virou um Knight") elseif(msgcontains(msg, "bye") or msgcontains(msg, "goodbye") or msgcontains(msg, "cya")) then selfSay("cya!", cid, TRUE) closeShopWindow(cid) removeFocus(cid) end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) e depois volte uma pasta, onde fica os xmls dos npc e crie um novo arquivo chamado vocacao.xml e coloque isso dentro
<?xml version="1.0" encoding="UTF-8"?> <npc name="Vocation Changer" script="data/npc/scripts/vocacao.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="131" head="95" body="95" legs="95" feet="95" corpse="6080"/> </npc>
-
Recently Browsing 0 members
- No registered users viewing this page.