Ir para conteúdo

jhon992

Conde
  • Total de itens

    631
  • Registro em

  • Última visita

  • Dias Ganhos

    13

Tudo que jhon992 postou

  1. Para banir usar: /ban nomedoplayer, dias, comentario Sóh substitui pelo seu código. function onSay(cid, words, param, channel) local t = param:explode(",") local name, days, coments = t[1], tonumber(t[2]), t[3] local player = getPlayerByName(name) if name then if days then local acc = getAccountIdByName(name) if acc ~= 0 then local tempo = days * 24 * 3600 doAddAccountBanishment(acc, player, os.time() + tempo, 12, 2, t[3], 0) doRemoveCreature(player) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player não existe.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode adicionar essa quantidade de dia(s) de dias de banimento.") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "esse player nao existe.") end return TRUE end
  2. Ta aprendendo em @Vilden O correto seria assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) function onCastSpell(cid, var) local minimo = 9000 local maximo = 11000 doCreatureAddHealth(cid, math.random(minimo,maximo)) doCreatureAddMana(cid, math.random(minimo,maximo)) return doCombat(cid, combat, var) end Créditos @Vilden.
  3. jhon992

    [Resolvido] Tillevip

    @Kanazakki, esse último script que voce postou é um script de tile para vips, basta você pegar o actionid que ativa o script e colocar no tile que voce quiser.
  4. duplica um arquivo em globalevents/scripts, nomeia para "tptime" sem as aspas e nele cole: function onThink(interval, lastExecution) local pos = {x = 155, y = 50, z = 7} --posição que surge o tp local topos = {x=160, y=51, z=7} -- o player é teletransportado pra essa posição local timer = 3 -- tempo em minutos pro tp sumir pid = doCreateTeleport(1387, topos, pos) addEvent(deleteTp, timer*60*1000, pid) return true end function deleteTp(pid) doRemoveItem(pid) end agora em globalevents.xml a tag: <globalevent name="tptime" interval="10800" event="script" value="tptime.lua"/>
  5. Faiz assim, quem sabe resolve o seu problema: function onUse(cid, item, frompos, item2, topos) local storage = 304392 -- coloque o storage aqui if getPlayerStorageValue(cid, storage) > 0 then doTeleportThing(cid, topos) doSendMagicEffect(topos, 10) else doPlayerSendTextMessage(cid, 22, "Você não possui o storage para entrar na porta!") end return TRUE end #Edited - Nem vi que vc postou @Vilden, malz aew.
  6. A seu script ficou muito paracido com o do @SkyDangerous. A parte de configuração é identica, você não tomou como exemplo o script do Sky? Procure pesquisar um pouco antes de postar um novo script, porque esse script pode não ser tão novo. Mais se o créditos são todos seus e isso não é ripping, parabéns. Ótimo script.
  7. jhon992

    [Pedido] Ant Mc

    Duplica um arquivo na pasta data/creaturescripts/scripts e nomeia para "antmc" sem as aspas e nele cole: -- [( XTibia.com )] -- local maximo = 0 -- Maximo de IP's iguais permitidos. function remove(r) if #getPlayersByIp(getPlayerIp(r.pid)) >= r.maximo then addEvent(doRemoveCreature, 100, r.pid) end return TRUE end function onLogin(cid) if getPlayerGroupId(cid) <= 1 then if isInArray(getPlayerIp(cid)) == FALSE then addEvent(remove, 300, {pid = cid, maximo = maximo+1}) addEvent(doPlayerSendTextMessage, 2*1000, cid, 23, "Remember, Multi-Clients is not permited!") end end return TRUE end Agora em creaturescripts.xml cole a tag: <event type="login" name="AntMc" event="script" value="antmc.lua"/> ------------------- Explicadinho agora, Créditos da postagem para @AnneMotta.
  8. Ta aew: function onSay(cid, words, param) local vipcoin = 12602 local quant = 100 -- quantidade de vips coin que devera remover if doPlayerRemoveItem(cid, vipcoin, quant) then local days = 15 local s = 29000 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, s) local timenow = os.time() if getPlayerStorageValue(cid, s) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, s, time) local quantity = math.floor((getPlayerStorageValue(cid, s) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de ".. quant .." ".. getItemNameById(vipcoin) .." para colocar vip.") end return TRUE end
  9. Primeiramente: #Reportado, area errada. Como você msm diz "quero pedir um Script". Area certa é Pedidos de Script. Agora você precisa me dizer qual seu sistema vip, pra min poder fazer esse script pra voce. E se o seu ot jah possui esse comando !buyvip passa o script correspondente a ele.
  10. #Reportado, moverem para Pedidos Atendidos.
  11. Era pra estar funcionado, não vejo mais nenhum erro aparente.
  12. Sim, alim aparecera o nome do player. Provavelmente o nome do player que recebeu. No cabeçalho da função ela recebe alguns parametros e "cid", creio que seja o creatureid do player que recebeu e o "sender" o do que enviou. Aprendi scripts .lua a partir da minha necessidade de criação para meu otserv, jah tinha logica de programação razoavel e foi de facil entendimento essa lingaguem pra min pois jah tinha base em outra linguagem. Nunca li em toturial, aprendi pegando scripts prontos, vasculhando, modificando e testando.
  13. Não fiz nada, sóh tirei um } que n erra pra tar aew. Testa: local days = { ["Thursday"] = { ["02:46"] = {nome = "Prepare-se foi visto um Demodras ao oeste de Telara nas caves dos dragons, cuidado!", pos = {x=1292, y=1120, z=8}, monster = {"1 Demodras"}}, ["21:00"] = {nome = "Dragon Invasões", pos = {x=185, y=54, z=7}, monster = {"100 Dragon"}} } } function onThink(interval, lastExecution) function getDayName() local days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"} return days[os.date("*t")["wday"]] end hours = tostring(os.date("%X")):sub(1, 5) tb = days[getDayName()][hours] if tb then doBroadcastMessage(hours .. " - " .. tb.nome .. " Iníciou.") for _,x in pairs(tb.monster) do for s = 1, tonumber(x:match("%d+")) do doSummonCreature(x:match("%s(.+)"), tb.pos) end end end return true end
  14. Passa esse script: "tenho outro script e ele da certo ele da ban na conta do char so que o motivo ele nao poen certo no site e nem quando o chr é banido ele num mostra o motivo que escrevo e sim o motivo que está no script" Que eu tento dar uma configurada pra você.
  15. data/creaturescripts/scripts, duplica um arquivo e nomeia para "battlelogout" nele cole: function onLogout(cid) if (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"Você não pode deslogar com battle.") return false end return true end agora em creaturescripts.xml cole a tag: <event type="logout" name="BattleLogout" event="script" value="battlelogout.lua"/> e no arquivo login.lua: registerCreatureEvent(cid, "BattleLogout")
  16. Meu tuto como referencia, que bom. Nunca usei essa função, mais vou tentar criar algo aqui sem testar; Dae tu testa. data/creaturescripts/scripts, duplica uma arquivo e nomeia para "receive" e nele cole: function onReceiveMail(cid, sender, item, openBox) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(cid) .." você recebeu alguma coisa em seu depot (DP), vá verificar rapidamente.") return true end em creaturescripts.xml <event type="receivemail" name="Receive" event="script" value="receive.lua"/> no login.lua antes do último return true: registerCreatureEvent(cid, "Receive") Bem simples néh, só não sei se ta funcional.
  17. Primeiramente instala corretamente esse "Sistema De Owner Para Equips". Depois no bau da quest, na hora de usar essa função para adicionar o item no player: doPlayerAddItem(cid, itemid, quant) Tu vai colocar isso: pid = doPlayerAddItem(cid, itemid, quant) setItemOwner(pid, cid)
  18. O tempo que o @Lucaswc15 falou, é tempo em segundos de exausted. Uma dica pro script ficar mais elaborado é usar isso pra checkar o exausted: if(exhaustion.check(cid, config.storage) == TRUE) then if (exhaustion.get(cid, storage) >= 60) then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. math.floor(exhaustion.get(cid, storage) / 60 + 1) .."] minutos.") end if (exhaustion.get(cid, storage) <= 60) then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, storage).."] segundos.") end return TRUE end Vou usar o script dele para exemplificar a função acima: Todos os créditos para @Lucaswc15.
  19. Passa o seu arquivo de Rad, que é melhor pra gente identificar o erro e até testar até ficar funcional.
  20. Acho que me confundi, no spellName poem "light healing", pra testar. @XxJapanxX, com storage da pra fazer tbm, mais seria mais complicado colocar storage em todas as spells. Não é tão complicado, mais é mais complicado que colocar para receber a spell com a função doPlayerLearnInstantSpell(cid, spellName) .
  21. Digamos que não seja imposivel, mais é extremamente complicado. Primeiro ocê precisa de todas as sprites de montarias do tibia 9.1, depois precisa colocar todas essas sprites no seu client 8.6, vou calcular +ou- por cima quantas sprites são: cada outfit tem 12 sprites, são 10 outfits, então vaum ser 120 sprites de outfits montados nos monstros mais umas 120 sprites de monstros de montaria. Depois de adicionar todas você vai ter que criar muitos scripts de funções, para criação de comandos, adicionar e remover montarias e varios outros scripts.
  22. Ta arrumado la emcima jah, para lvl.
  23. @Subwat, reportado por flood. Não é a primeira vez que vejo tu floodando topicos dessa maneira para ganhar mais posts, sendo que qualquer um pode entender oque esse usuario quer, e mesmo depois do usuario explicar melhor você não atende seu pedido. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- @leonvenigor, o script do npc vai ficar assim: local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local itemNeed = { -- itens que precisa para completar a troca {itemid = 1234, quant = 10}, -- id do item, quantidade } local spellName = "Light" -- nome da spell que aprendera, os nomes das spells se encontrar no arquivo spells.xml local lvlNeed = 8 -- lvl necessario para fazer a quest. 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, 'trocar') then selfSay('Você deseja trocar '.. itemNeed[1].quant ..''.. getItemNameById(itemNeed[1].itemid) ..', pela spell' .. spellName ..'.', cid) talkState[talkUser] = 2 elseif talkState[talkUser] == 2 then if msgcontains(msg, 'yes') then if getPlayerLevel(cid) < lvlNeed then selfSay('Você não possui level necessario.', cid) return true end for i=1, #itemNeed do if getPlayerItemCount(cid, itemNeed[i].itemid) < itemNeed[i].quant then selfSay('Você não possui os item necessarios para troca.', cid) return true end end for i=1, #itemNeed do doPlayerRemoveItem(cid, itemNeed[i].itemid, itemNeed[i].quant) end doPlayerLearnInstantSpell(cid, spellName) selfSay('Você aprendeu a spell'.. spellName ..'.', cid) else selfSay('Você não deseja {trocar}?', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  24. #Repotado area errada e double tópico, essa area é para divulgação de equipe, não divulgação de otserv.
  25. Isso resolvera seu problema. Em data/movements/movements.xml cole as tags: <movevent type="StepIn" actionid="25000" event="script" value="tiledance.lua"/> <movevent type="StepOut" actionid="25000" event="script" value="tiledance.lua"/> Duplica um arquivo em data/movements/scripts e nomeia para "tiledance" sem as aspas e nele cole: function onStepIn(cid, item, pos) if (getPlayerStorageValue(cid, 302124) > 0) then doPlayerSendTextMessage(cid, 22, "Você não pode subir com dancing system ativado.") return false end setPlayerStorageValue(cid, 302123, 1) return TRUE end function onStepOut(cid, item, pos) setPlayerStorageValue(cid, 302123, 0) return TRUE end Agora em talkactions/scripts, troque seu arquivo "dancing.lua" por esse: local conf = {} -- // config // --- conf.danceTexts = {"GO GO DANCE!", "DANCE NOW!", "DANCE IS FUNY!"} conf.textSpeed = 1500 -- how fast animated texts is sending? conf.danceSpeed = 100 -- dance speed conf.outfitSpeed = 250 -- outfit changer speed conf.outfitMale = {128, 129, 130, 131, 132, 133, 134, 143, 144, 145, 146, 151, 152, 153, 154, 251, 268, 273, 278, 289, 325} -- all male outfits conf.outfitFemale = {136, 137, 138, 139, 140, 141, 142, 147, 148, 149, 150, 155, 156, 157, 158, 252, 269, 270, 279, 288, 324} -- all female outfits -- // end // -- function dancer(tab) if isPlayer(tab[1]) then local dirs = {[0] = {1,3},[1] = {0,2},[2] = {1,3},[3] = {0,2}} local look = dirs[getCreatureLookDirection(tab[1])] doCreatureSetLookDir(tab[1], look[math.random(1,2)]) tab[2].dancer = addEvent(dancer,conf.danceSpeed, {tab[1], tab[2]}) end end function messager(tab) if isPlayer(tab[1]) then doCreatureSay(tab[1], conf.danceTexts[math.random(1, #conf.danceTexts)], TALKTYPE_ORANGE_2) tab[2].messager = addEvent(messager,conf.textSpeed, tab) end end function outfitChanger(tab) if isPlayer(tab[1]) then if getPlayerSex(tab[1]) == PLAYERSEX_FEMALE then outs = conf.outfitFemale else outs = conf.outfitMale end local outfit = { lookType = outs[math.random(1, #outs)], lookHead = math.random(1,133), lookBody = math.random(1,133), lookLegs = math.random(1,133), lookFeet = math.random(1,133), lookTypeEx = math.random(1,133), lookAddons = math.random(0,3)} doCreatureChangeOutfit(tab[1], outfit) tab[2].outfitChanger = addEvent(outfitChanger,conf.outfitSpeed, tab) end end backOutfit = {} local backOutfit = {} function onSay(cid, words, param, channel) local pid = getPlayerGUID(cid) if type(events[pid]) ~= "table" then events[pid] = {} end if (getPlayerStorageValue(cid, 302123) > 0) then doPlayerSendTextMessage(cid, 22, "Você não pode ativar o dancing system no trainer.") return true end if string.lower(param) == "start" and not(events[pid].dancer) then outBack = getCreatureOutfit(cid) backOutfit[pid] = outBack backOutfit[pid].lookType = outBack.lookType backOutfit[pid].lookAddons = outBack.lookAddons dancer({cid, events[pid]}) messager({cid, events[pid]}) outfitChanger({cid, events[pid]}) setPlayerStorageValue(cid, 302124, 1) elseif string.lower(param) == "stop" and events[pid].dancer then stopEvent(events[pid].dancer) stopEvent(events[pid].messager) stopEvent(events[pid].outfitChanger) events[pid] = {} doCreatureChangeOutfit(cid, backOutfit[pid]) setPlayerStorageValue(cid, 302124, 0) end return TRUE end
  • Quem Está Navegando   0 membros estão online

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