-
Total de itens
631 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que jhon992 postou
-
vai em data/movements/movements.xml procura o id do item e remove as tags que tiver com esse id.
-
Faiz assim pra min, vai na pasta "data/creaturescripts/creaturescripts.xml" procura por event type="death" ou "preparedeath" ou qualquer coisa que tenha a ver com "death", dae corre com mouse até a final da tag e marca os value que serão os nomes dos scripts correspondentes. Agora abra "data/creturescripts/scripts" e abre todos os arquivos que eram do event type que voces procuram anteriormente e colem esses scripts aqui pra min da uma olhada.
-
não sei como funciona esse tipo de ot que troca mapa, mais tenta da uma olhada no arquivo "data/globalevents/globalevents.xml" e vê se tem algum com o interval de 1200 e troca o interval por 600.
-
data/actions/scripts/liquids
-
data/talkactions/scripts, duplica um arquivo, nomeie para "msg" sem as aspas e cole: function onSay(cid, words, param) if (param == "") then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Param Invalid") return TRUE end if (param == "stop") then setPlayerStorageValue(cid, 102055, 1) return TRUE end if (getPlayerStorageValue(cid, 102055) == 0) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Use '!msg stop', antes de usar outra menssagem!") return TRUE end addEvent(doSendAutoMessage, 1, cid, param) setPlayerStorageValue(cid, 102055, 0) return TRUE end function doSendAutoMessage(cid, param) if (getPlayerStorageValue(cid, 102055) ~= 1) then if (isCreature(cid) == TRUE) then doPlayerSendChannelMessage(cid, getCreatureName(cid), param, TALKTYPE_CHANNEL_Y, CHANNEL_TRADE) addEvent(doSendAutoMessage, 120000, cid, param) end end end Agora em data/talkactions/talkactions.xml, abra-o e cole a tag: <talkaction words="!msg" event="script" value="msg.lua"/> O talkaction vai funcionar da seguinte maneira, quando você fala "!msg Sell Demon Armor(30k), Mpa (150k) and [buy Soft Boots (200k)] ele começa a soltar essa msg no trade: Sell Demon Armor(30k), Mpa (150k) and [buy Soft Boots (200k)] E se você quiser parar a mensagem ou mudar ela use o comando "!msg stop" e após escreva outra msg como quiser.
-
Eu sinceramente até hoje não sei pra que serve um sistema vip. Todo otserv vem com sistema de premmium account é sóh usar ele como sistema vip. E como ele ja esta pronto e tem todas as funções fica mais facil de trabalhar. Ta aew minha dica =)
-
Não exclui então, só poem ele para não dar mais ml. Procura pelo item no items.xml e remove a tag: <attribute key="magiclevelpoints" value="ml que ganha" />
-
os.date([format [, time]]) Retorna a data baseada no formato 'format'. os.time([table]) Retorna um número correspondente à hora atual. string.lower(s) Retorna a string 's' com as letras em minúsculas. tonumber(value [, base]) Transforma um valor em número. Se não for possível converter, retorna 'nil'. --------------------------------------------------------------------------------- Dei uma pesquisada e achei isso aew, espero ter ajudado a dar uma clareada.
-
Se seu ot pode ser resetado, troque o arquivo de database do seu ot por outro! Esse erro aew ta dizendo que não tem a coluna frag_all na tabela. E para o outro erro da uma olhada nos seus globalevents e vê se n tem nada desnecessário que pode estar causando esse erro.
-
Vou te dar o script um pouco editado para voce ajeitar da sua maneira, primeiro vai em data/globalevents/script, duplica um arquivo e renomeia para "effectpos" sem as aspas e nele cole: function onThink(interval, lastExecution) pos = {x = 113, y = 56, z = 7} -- posições em que o nome e os efects vaum sair! pos1 = {x = 113, y = 54, z = 7} pos2 = {x = 113, y = 52, z = 7} pos3 = {x = 113, y = 50, z = 7} pos4 = {x = 113, y = 48, z = 7} doSendAnimatedText(pos, 'Teleport', 140) -- 140 é a cor, voce pode escolher uma cor mais adequada logando seu ot e usando /y doSendMagicEffect(pos, 55) -- 55 é o magic effect que ira soltar na posição, para escolher outro use /z no seu ot e escolha um diferente doSendAnimatedText(pos1, 'SORCERER', 140) doSendMagicEffect(pos1, 55) doSendAnimatedText(pos2, 'KNIGHT', 130) doSendMagicEffect(pos2, 55) doSendAnimatedText(pos3, 'DRUID', 130) doSendMagicEffect(pos3, 55) doSendAnimatedText(pos4, 'PALADIN', 130) doSendMagicEffect(pos4, 55) end Voce pode adicionar mais posições como quiser no script acima, exemplo: pos5 = {x = numeronomapa, y = numeronomapa, z = numeronomapa} doSendAnimatedText(pos5, 'texto', cor) doSendMagicEffect(pos5, effect) Agora para fazer o script funcionar vai em data/globalevents/globalevests.xml, abra-o e cole a tag: <globalevent name="effectpos" interval="5" event="script" value="effectpos.lua"/> O iterval ali em cima é em segundos, dae você configura como quiser.
-
Sim esta é a função certa que seu npc deve usar se você estiver utilizando Premmium Time como Sistema de Vip, e assim provavelmente aparecerão os dias no cilente!
- 6 respostas
-
- vip não aparece nos status.
- tibia
- (e 1 mais)
-
Pra segunda vai em data/movements/scripts duplica um arquivo renomeia para "tpcity" sem as aspas e nele cola: local townId = 9 -- id da cidade function onStepIn(cid, item, position, fromPosition) doPlayerSetTown(cid, townId) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Agora voce e morador da cidade "..getTownName(townId).." .") end Depois em data/movements/movements.xml abre e cola a tag: <movevent type="StepIn" actionid="13000" event="script" value="tpcity.lua"/> E por último abre o seu ot e vai no teleport e coloque o actionid 13000 nele e deu!
- 6 respostas
-
- dou + reeep
- otserv
-
(e 2 mais)
Tags:
-
Na pasta, data/npc/scripts duplica um arquivo renomeia pra "promnew" sem as aspas e nele cole: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local preco = 10000 -- preço em golds local efectVoc = 28 -- efeito ao ganhar vocação local voc = 9 -- numero da vocação 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, 'yes')) then if (isPremium(cid) == true and getPlayerVocation(cid) ~= voc and doPlayerRemoveMoney(cid, preco) == true) then doPlayerSetVocation(cid, voc) selfSay('Você gonseguiu sua nova vocacao.', cid) doSendMagicEffect(getCreaturePosition(cid), efectVoc) return true else selfSay('Você nao e premium account.', cid) return true end end if (msgcontains(msg, 'no')) then return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora em data/npc, duplica um arquivo desses nomeia para "nome do npc que voce quiser" e dentro dele poem: <?xml version="1.0" encoding="UTF-8"?> <npc name="nome do npc que voce quiser" script="promnew.lua" walkinterval="2000" floorchange="0"> <health now="999999" max="999999"/> <look type="407" corpse="2212"/> <parameters> <parameter key="message_greet" value="Você deseja usar a nova promotion?"/> </parameters> </npc>
-
O primeiro script, vai em data/creaturescripts/scripts duplica um arquivo e nomeia para "telelvl" sem as aspas e nele cole: local townPos = {x=100, y=203, z=7} -- cidade para qual vai ser teleportado local efeitoTP = 30 -- efeito que você quer ao teleporte local townId = 5 -- colaca o id da tua cidade function onAdvance(cid, skill, oldlevel, newlevel) if (getPlayerLevel(cid) == 100) then doTeleportThing(cid, townPos) doPlayerSetTown(cid, townId) doSendMagicEffect(townPos, efeitoTP) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Agora voce e morador da cidade "..getTownName(townId).." .") end return TRUE end Agora em data/creaturescripts/creaturescripts.xml abra e cole: <event type="advance" name="TeleLvl" event="script" value="telelvl.lua"> Por último na pasta, data/creaturescripts/scripts procure por login.lua abra-o e cole a tag: registerCreatureEvent(cid, "TeleLvl") </event>
- 6 respostas
-
- dou + reeep
- otserv
-
(e 2 mais)
Tags:
-
É mesmo lordbug99, ja concertei valeu ae por ajudar. Ta 100% funcional agora, pelo menos espero que esteja
-
Vai nos seu "data/movements/scripts" duplica um arquivo e nomeia para "tptrainer" sem as aspas, nele cole: local posTemple = {x=2456, y=2465, z=7} -- posição do templo local hras = 1 -- quantidade maxima de hras function onStepIn(cid, item, position, fromPosition) parameters = {cid = cid, item = item, pos = getCreaturePosition(cid)} addEvent(tpTemple, 3600000*hras, parameters) end function tpTemple(parameters) if isPlayer(parameters.cid) then if (parameters.pos.x == getCreaturePosition(parameters.cid).x and parameters.pos.y == getCreaturePosition(parameters.cid).y and parameters.pos.z == getCreaturePosition(parameters.cid).z) then doTeleportThing(parameters.cid, posTemple) doSendMagicEffect(posTemple, CONST_ME_MAGIC_BLUE) doPlayerSendTextMessage(parameters.cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce ultrapassou o tempo máximo estipulado de "..hras.." nos Trainers.") end end end Agora abra, "data/movements/movements.xml" e cole a tag: <movevent type="StepIn" actionid="14000" event="script" value="tptrainer.lua"/> Último passo, vai nos tiles do seu trainer e coloca o actionid 14000 em todos!
-
Primeiro vai em "data/actions/scripts" duplique um arquivo e nomeie para "addtutor" sem aspas e nele cole: function onUse(cid, item, fromPosition, itemEx, toPosition) local days = 7 -- dias que durarão o tutor local effect = 30 -- effect ao receber tutor local storage = 34537 -- não mexa doRemoveItem(item.uid, 1) doSendMagicEffect(getPlayerPosition(cid), effect) setPlayerGroupId(cid, 2) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Agora você é Tutor por "..days.." dias.") exhaustion.set(cid, storage, days * 86400) setPlayerStorageValue(cid, 102076,1) return TRUE end E em "data/actions/actions.xml" cole a tag: <action itemid="id do item" script="addtutor.lua"/> Agora para finalizar, vai em "data/creaturescripts/scripts/login" abra-o e cole a tag: if ((exhaustion.check(cid, 34537) == FALSE) and (getPlayerStorageValue(cid, 102076) == 1)) then setPlayerGroupId(cid, 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Seu dias de Tutor acabaram.") setPlayerStorageValue(cid, 102076, 0) end
-
Assim tu vai entender melhor: redSkullLength = 30 * 24 * 60 * 60 blackSkullLength = 45 * 24 * 60 * 60 No redSkullLength e no blackSkullLength muda apenas a primeira parte se quiser apenas alterar os dias, 30 = 30 dias. Muda como desejar. Ou seja, no script acima o red dura 30 dias e o black 45 dias. Se quiser 24 hras ou menos usa assim: redSkullLength = 24 * 60 * 60 blackSkullLength = 22 * 60 * 60 E muda o 24 como quiser. Ou seja, no script acima o red dura 24 hras e o black 22 hras. É isso aew, acho que esta bem explicado. Créditos pro @Epyrus!
-
@All, valeu pelos elogios e criticas. Nem quero me aprofundar no ramo de spriter, só precisei de sprites de armas, procurei por tudo e não encontrei dae criei minhas próprias, então resolvi disponibilizar para se alguém tiver procurando também e quiser usar e editar ficar avontade.
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
Desculpe @Trivelatos é que tinha dado um bug na edição, então tive e editar tudo denovo e tinha esquecido a última parte mais ja corrigi. Para funcionar o comando adiciona a última tag do script no seus talkactions. Desculpa aew! -
vai na pasta "data/npc/scripts" e duplica um arquivo aew nomeia para "passDoor" sem aspas, abre e cola: 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 function onCreatureSayCallback(cid, type, msg) local storageDoor = 7234 -- storage que vai ser utilizado na door if not npcHandler:isFocused(cid) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, "yes")) then selfSay("Muito bem, para isso você terá que me responder qual é a linguagem dos Orcs!", cid) talkState[talkUser] = 1 end if (msgcontains(msg, "kruga") and talkState[talkUser] == 1) then selfSay("Voce acertou, muito bem, agora voce poderá passar pela porta!", cid) setPlayerStorageValue(cid, storageDoor, 1) return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora em "data/npc" duplique um arquivo xml desses, nomeie para "nome do npc" e cole: <?xml version="1.0" encoding="UTF-8"?> <npc name="nome do npc" script="passDoor.lua" walkinterval="2000" floorchange="0"> <health now="999999" max="999999"/> <look type="407" corpse="2212"/> <parameters> <parameter key="message_greet" value="Oh, Eu sabia que voce viria |PLAYERNAME|. Voce quer encontrar os Elfos correto?"/> </parameters> </npc> Agora vai com seu mapa editor crie uma porta no local desejado "id da porta : 1225" e coloque o action id : 7234 nela.
-
deve ter onlogin sim. Vai na pasta "data/creaturescripts/scripts/login.lua" abre e verifica se tem: doPlayerAddPremiumDays Sóh remover dae. Se não tiver abre seu "data/creaturescripts/creaturescripts.xml" procura se tem mais algum arquivo que seja do type="login", então encontre o arquivo correspondente na pasta scripts denovo e verifica se tem: doPlayerAddPremiumDays Se tiver remove e pronto! créditos pro lordbug99.
-
[Creaturescript] Simple Reputation System !
tópico respondeu ao jhon992 de jhon992 em Globalevents e Spells
Valeu a e @Vodkart pelo elogio e a dica. Nem percebi que não precisava dos dois if, porque a primeira vez que fiz o script não usei isPlayer(target), dae fui testar e reparei que qualquer monstro concedia rep+ asjida. Então fui e adicionei nas duas parte da configuração que precisava verificar se era player. Valeu pela dica tambem @lordbug99 nem tinha estudado o getCreatureSkullType, tinha deduzido que quem tivesse skull era pk então desculpa pelo erro ao galera. -
[23:57:36.844] (Luadoplayeradditem) Player Not Found
tópico respondeu ao pounkan de jhon992 em Lixeira Pública
Ta aew: local arena = { frompos = {x=32499, y=32369, z=7}, topos = {x=32567, y=32418, z=7}, exit = {x=32370, y=32231, z=5} } function onKill(cid, target, lastHit) if (isPlayer(cid) == TRUE) then if (isInArea(getPlayerPosition(target), arena.frompos, arena.topos)) then doPlayerAddItem(cid, 2160,10) end end return TRUE end -
Vai na pasta "data/npc/" duplica um arquivo aew e renomeia para Changer, e nele cole: <?xml version="1.0" encoding="UTF-8"?> <npc name="Changer" script="changer.lua" walkinterval="2000" floorchange="0"> <health now="999999" max="999999"/> <look type="301" corpse="2212"/> <parameters> <parameter key="message_greet" value="Você pode trocar 10 life crystal por {1 item de refinar} com chance de falha. Pode trocar 7 itens de refinar com falha por {1 item de refinar 100%}. E 5 itens de refinar 100% por {1 item que consede atributos}."/> </parameters> </npc> Agora abre a pasta "data/npc/scripts" duplica um arquivo e nomeia para changer, e nele cola: --<Script by jhon992>-- local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local pos = {x=2456, y=2462, z=7} -- Posição que player sera teleportado ao terminar consulta. local efectHeal = 28 -- efeito do heal 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 function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if (msgcontains(msg, '1 item de refinar') or msgcontains(msg, 'item de refinar') or msgcontains(msg, 'refinar')) then if (doPlayerRemoveItem(cid, 2177, 10)) then doPlayerAddItem(cid, 8304, 1) return TRUE else selfSay('Você não possui 10 life crystals.', cid) return TRUE end return TRUE end if (msgcontains(msg, '1 item de refinar 100%') or msgcontains(msg, 'item de refinar 100%') or msgcontains(msg, 'refinar 100%') or msgcontains(msg, 'refinar 100')) then if (doPlayerRemoveItem(cid, 8304, 7)) then doPlayerAddItem(cid, 8306, 1) return TRUE else selfSay('Você não possui 7 itens de refinar com falha.', cid) return TRUE end return TRUE end if (msgcontains(msg, '1 item que consede atributos') or msgcontains(msg, '1 item que consede atributo') or msgcontains(msg, 'item que consede atributo') or msgcontains(msg, 'item atributo') or msgcontains(msg, 'atributo')) then if (doPlayerRemoveItem(cid, 8306, 5)) then doPlayerAddItem(cid, 8300, 1) return TRUE else selfSay('Você não possui 5 itens de refinar 100%.', cid) return TRUE end return TRUE end if (msgcontains(msg, 'no')) then return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.