Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que jhon992 postou

  1. Vlw pela dica, @JeDiAN + esses quotes são contra min, ficava dando que não era possivel pq a quantidade de quotes abertos era diferente das de fechado dae dechei assim msm. sahdua Vlw aew.
  2. vai em data/talkactions/talkaction.xml e procura por /b, quando achar é só mudar o access para ="1"
  3. Vai em data/npc/scripts, duplica um arquivo nomeio para "teleport" sem as aspas e cole: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local pos = {x=966, y=1029, z=7} local efectTel = 28 -- efeito do teleport 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') and getPlayerLevel(cid) == 20) then doTeleportThing(cid, pos) doSendMagicEffect(pos, efectTel) return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora, data/npc, duplica um arquivo desses e nomei-a para "nome do npc", abra-o e cole: <?xml version="1.0" encoding="UTF-8"?> <npc name="nome do npc" script="teleport.lua" walkinterval="2000" floorchange="0"> <health now="999999" max="999999"/> <look type="300" corpse="2212"/> <parameters> <parameter key="message_greet" value="Você quer ser teleportado?."/> </parameters> </npc> Em vermelho ta as partes que vc deve mudar!
  4. O do @xotserv ta correto. só vai em data/talkaction/script, suplica um arquivo e nomeia para "broadcast" sem as aspas e nele cole: local config= { id = 2421, -- id do item que precisa count = 1, -- qntos items precisa Remove = false -- true para remover o item depois de usar e false para não remover } function onSay(cid, words, param) if getPlayerItemCount(cid, config.id) < config.count then return doPlayerSendTextMessage(cid, 27, "Você precisa de "..config.count.." "..getItemNameById(config.id).." para usar este comando.") end if not param or param == "" then return doPlayerSendTextMessage(cid, 27, "Invalid param.") end doBroadcastMessage(getCreatureName(cid).." says: "..param) if config.Remove then doPlayerRemoveItem(cid, config.id, config.count) end return true end Agora abre, data/talkactions/talkactions.xml e cole a tag: <talkaction words="!broadcast" event="script" value="broadcast.lua"/> Deu, só n esquece de mudar o id do item que precisa pra usar no broadcast.lua! Obs: Créditos pro @xotservx.
  5. jhon992

    Vip Brilhante

    data/creaturescripts/scripts, duplica um arquivo, nomeia para "brilhovip", abre e cole: function onLogin(cid) effectVip(cid) return TRUE end function effectVip(cid) local storage = 1234 -- storage vip local efeito = 3 -- numero do efeito local delay = 5 -- tempo em segundos if isCreature(cid) == TRUE then if (getPlayerStorageValue(cid, storage) > 0) then doSendMagicEffect(getCreaturePosition(cid), efeito) addEvent(effectVip, delay*1000, cid) end end return TRUE end Agora em data/creaturescripts/creaturescripts.xml abra-o e cole a tag: <event type="login" name="BrilhoVip" event="script" value="brilhovip.lua"/> Pronto, não esquece de configurar o storage vip, no brilhovip.lua!
  6. jhon992

    Erros Ajuda

    na magia, tenta isso: local scom1 = createCombatObject() local scom2 = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 255) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WEAPONTYPE) setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 3.1, -360, 4.6, -600) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 0) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_WEAPONTYPE) setCombatFormula(combat2, COMBAT_FORMULA_SKILL, 3.2, -360, 4.9, -600) arr1 = { {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0} } arr2 = { {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0}, {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0}, {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0}, {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0}, {0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0} } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(scom1, area1) setCombatArea(scom2, area2) function onTargetTile(cid, pos) doCombat(cid,combat1,positionToVariant(pos)) end function onTargetTile2(cid, pos) doCombat(cid,combat2,positionToVariant(pos)) end setCombatCallback(scom1, CALLBACK_PARAM_TARGETTILE, "onTargetTile") setCombatCallback(scom2, CALLBACK_PARAM_TARGETTILE, "onTargetTile2") local function onCastSpell1(parameters) if (isCreature(cid) == TRUE) then doCombat(parameters.cid, scom1, parameters.var) end end local function onCastSpell2(parameters) if (isCreature(cid) == TRUE) then doCombat(parameters.cid, scom2, parameters.var) end end function onCastSpell(cid, var) local parameters = { cid = cid, var = var} addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 200, parameters) return TRUE end
  7. jhon992

    Ajuda Fast

    Pra fazer com efeito de sd, onde tem o numero 55 no script é sóh mudar por 17. Ta aew uma lista dos efeitos que quiser alterar novamente: http://www.xtibia.com/forum/topic/129140-lista-de-efeitos-854-e-como-usa-los/ E o erro não sei oque é, tenta almentar um pouco o interval e vê se continua.
  8. http://www.xtibia.com/forum/topic/174645-for-intable/
  9. Sim!, se tiver dúvida testa pra conferir.
  10. Vai em data/actions/scripts, duplica um arquivo, renomeia para "cardrat" sem as aspas e nele cole: function onUse(cid, item, fromPosition, itemEx, toPosition) if (item.uid == 2226) then if (getPlayerStorageValue(cid, 2226) <= 0) then doPlayerSendTextMessage(cid,22,"Você achou um Card Rat") item_uid = doPlayerAddItem(cid, 4854, 1) setItemName(item_uid, "Card Rat") doSetItemText(item_uid, "Essa é uma card rat.") setPlayerStorageValue(cid, 2226, 1) else doPlayerSendTextMessage(cid, 22, "O baú está vazio.") end else return 0 end return 1 end Agora vai em data/actions/actions.xml, abra-o e cole a tag: <action uniqueid="2226" script="cardrat.lua" /> Pronto, agora sóh colocar o uniqueid no seu baú!
  11. t é um array, array é uma variavel que guarda varios valores, nomes e etc. Guarda várias informações. val é uma variavel qualquer, por exemplo um nome. isInTable(t, val) = É uma função que verifica se o "val" esta dentro do array, se estiver retorna true se não estiver retorna false. Este "for" é uma repetição, que é utilizada para pegar posição por posição do array. Acho que é isso!
  12. vai em data/movements/movements.xml procura o id do item e remove as tags que tiver com esse id.
  13. 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.
  14. 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.
  15. jhon992

    Action

    data/actions/scripts/liquids
  16. 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.
  17. 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 =)
  18. 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" />
  19. 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.
  20. 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.
  21. jhon992

    Ajuda Fast

    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.
  22. 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!
  23. 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!
  24. 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>
  25. 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>
  • Quem Está Navegando   0 membros estão online

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