Tudo que Gantz postou
-
Erro Summone
posta tajukagebunshi.xml e Raion.xml da pasta monster
-
Erro Summone
posta o script .... pode ser duas coisas .... ou no script não esta usando a função doConviceCreature, depois de criar o kage bushin .... Ou no xml no Kage bushin ta colocado que ele não pode ser convencido.
-
(Resolvido)Script Mensagem
troca MESSAGE_EVENT_ADVANCE por MESSAGE_INFO_DESCR
-
Curar Vida Atacando
function onStatsChange(cid, attacker, type, combat, value) if(getPlayerSlotItem(cid, 3).itemid == 12685) then dmg = math.ceil(value*(30/100)) doCreatureAddHealth(cid, dmg) end return TRUE end
-
(Resolvido)[Ajuda] Velocidade da bike
local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, 1.7, -36, 1.7, -36) function onSay(cid, words, param) doRemoveCondition(cid, CONDITION_HASTE) local pos = getThingPos(cid) if(param == '') then doSendMagicEffect(pos, 12) doAddCondition(cid, condition) return true end local t = string.explode(param, '"') if(t[2]) then doCreatureSay(cid, "Correr: ".. t[2], 20, false, 0, pos) doSendMagicEffect(pos, 12) doAddCondition(cid, condition) end return true end
-
[UXP] UXPokémon
- Nome: Miller - Idade: 20 - Função: Scripter / Programador / Spell Maker - Trabalhos: To com preguiça - Experiência: Muito tempo - Formas de contato: Whats (18) 981349991 - Skype [email protected]
-
[PEDIDO] CRITICAL SISTEMA DIFERENTE
versão do ot
-
[ATS] Spirit Hunter
oi pessoal, o projeto ainda esta em andamento, algumas imagens bugaram no post, mais assim q tiver um tempo eu ajeito. estou mapeando sozinho, então pode ser q demore um pouco, até eu encontrar alguém para me ajudar.
-
[MAPPERs] Spirit Hunter
Boa tarde Pessoal, Segue o link do meu projeto: [ATS] Spirit Hunter O servidor esta bem adiantado pessoal, mais venho precisando de mappers, preciso urgente para desenvolver pelo menos as cidades e hunts iniciais, eu também sou mapper posso ajudar, mas preciso de mais gente. Por favor quem tiver com tempo disponivel me adc no skype ou no whatsapp, e responda este tópico, estou precisando muito !! Obrigado pela atenção !!
-
(Resolvido)[Duvida] Script de recompensa pro server
function onSay(cid, words, param, channel) local t = string.explode(param, ",") local gm = getCreatureName(cid) local ips = {} for _, pid in ipairs(getPlayersOnline()) do if not isInArray(ips, getPlayerIp(pid)) then local accId = getPlayerAccount(pid) if(getNotationsCount(accId) < 1) then doPlayerAddItem(pid, t[1], 1) doPlayerSendTextMessage(pid, MESSAGE_INFO_DESCR, "Everyone have been rewarded a "..getItemNameById(t[1]).." by "..gm.." for the reason: "..tostring(t[2])..".") doSendMagicEffect(getCreaturePosition(pid), CONST_ME_GIFT_WRAPS) table.insert(ips, getPlayerIp(pid)) end end end return true end
-
(Resolvido)[DUVIDA] Como fazer spell que gasta % de vida ao invés de mana
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat, COMBAT_PARAM_USECHARGES, 1) function onGetPlayerMinMaxValues(cid, skill, attack, factor) local min = skill * attack / 17 + getPlayerLevel(cid) / 5 + 1 local max = skill * attack / 9 + getPlayerLevel(cid) / 5 + 6 return -min, -max end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetPlayerMinMaxValues") function onCastSpell(cid, var) if getCreatureHealth(cid) > (0.3 * getCreatureMaxHealth(cid)) then doCombat(cid, combat, var) doCreatureAddHealth(cid, -(0.3 * getCreatureMaxHealth(cid))) else doPlayerSendCancel(cid, "Not enough health to perform this spell.") end return true end
-
Arton Functions \Lib
oi Tony, gatinho :3
-
(Resolvido)Sistema de shiny no tibia normal
sim, mais o script ainda sera necessário, me avise quando estiver adicionado o evento que farei o script.
-
(Resolvido)Sistema de shiny no tibia normal
http://otland.net/threads/creatureevent-onspawn-cid.134039/
-
(Resolvido)Sistema de shiny no tibia normal
adiciona a função onSpawn no teu servidor, q da pra fazer.
-
randon itens Bug Help
por favor seje mais especifico em quais problemas ta aparecendo.
-
Char não poder ter nick de monstro
o sistema deve ser feito em c++ caso use Account Manager, ou em php caso use mysql
-
[Duvida] NPC de quests só atende determinado level
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 creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local level = 50 -- level minimo local knightarmor = 2476 local crownlegs = 2488 local bootsofhaste = 2195 local wingedhelmet = 2474 local storage = 9981 local getstorage = getPlayerStorageValue(cid, storage) local sorrymessage = "Desculpe, voce nao tem todos o itens necessarios para completar as missoes..." local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if getPlayerLevel(cid) < level then npcHandler:say("Você precisa de level " .. level .. " para iniciar a quest.", cid) return true end if msgcontains(msg, 'dar esse item') then if getstorage == 4 then npcHandler:say("Voce jah completou a quest", cid) elseif getstorage < 4 then npcHandler:say("Voce tem o item necessario?", cid) talkState[talkUser] = 1 end elseif msgcontains(msg, 'quest') then if getstorage < 1 then npcHandler:say("Voce precisa de uma knight armor para comecar. Voce pode me {dar esse item}?", cid) elseif getstorage == 1 then npcHandler:say("Voce esta na segunda missao e precisa de uma crown legs para continuar. Voce pode me {dar esse item}?", cid) elseif getstorage == 2 then npcHandler:say("Voce esta na terceira missao e precisa de uma boots of haste para continuar. Voce pode me {dar esse item}?", cid) elseif getstorage == 3 then npcHandler:say("Voce esta na quarta missao e precisa de um winged helmet para continuar. Voce pode me {dar esse item}?", cid) elseif getstorage == 4 then npcHandler:say("Voce completou todas as missoes.", cid) end elseif msgcontains(msg, 'yes') then if talkState[talkUser] == 1 then if getstorage < 0 then if doPlayerRemoveItem(cid, knightarmor, 1) == TRUE then npcHandler:say("Obrigado, pegue um pouco de experiencia. Voce jah me deu uma knight armor. Agora irei precisar de uma crown legs. Voce pode me {dar esse item}?", cid) setPlayerStorageValue(cid, storage, 1) doPlayerAddExp(cid, 50000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, knightarmor, 1) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 1 then if doPlayerRemoveItem(cid, crownlegs, 1) == TRUE then npcHandler:say("Ja estou me sentindo mais seguro, pegue mais um pouco de experiencia. Voce jah me deu uma crown legs. Agora irei precisar de uma boots of haste. Voce pode me {dar esse item}?", cid) setPlayerStorageValue(cid, storage, 2) doPlayerAddExp(cid, 50000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, crownlegs, 1) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 2 then if doPlayerRemoveItem(cid, bootsofhaste, 1) == TRUE then npcHandler:say("Agora posso correr se surgir algum perigo, pegue mais um pouco de experiencia, Agora que voce jah me deu uma boots of haste irei precisar de um ultimo item: um winged helmet. Voce pode me {dar esse item}?", cid) setPlayerStorageValue(cid, storage, 3) doPlayerAddExp(cid, 50000) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, bootsofhaste, 1) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end elseif getstorage == 3 then if doPlayerRemoveItem(cid, wingedhelmet, 1) == TRUE then npcHandler:say("Muito obrigado, agora eu posso viajar mais seguro. Irei te dar 80.000 e alguma experiencia como recompensa, tome cuidado viajante, ouvi dizer que existe uma criatura bastante perigosa por essas redondezas.", cid) setPlayerStorageValue(cid, storage, 4) doPlayerAddExp(cid, 50000) doPlayerAddItem(cid, 2160, 8) talkState[talkUser] = 0 elseif doPlayerRemoveItem(cid, wingedhelmet, 1) == FALSE then npcHandler:say(sorrymessage, cid) talkState[talkUser] = 0 end end end elseif(msgcontains(msg, 'no') and talkState[talkUser] == 1) then npcHandler:say("Eu estava contando com voce, mas tudo bem. Volte quando estiver pronto.", cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
(Resolvido)(PEDIDO DE SCRIPT) Item que fornece uma chance do personagem realizar um ataque duplo.
atualizei acima ve la
-
(Resolvido)(PEDIDO DE SCRIPT) Item que fornece uma chance do personagem realizar um ataque duplo.
Infelizmente não tem como bloquear o ataque por runas, pois a função não retornar com o que o player esta atacando, o q teria como fazer é bloquear o double hit quando o player ataca-se com o tipo DEATHDAMAGE, mais também pararia de funcionar o double caso usasse um "exori mort", ou uma simples wand que ataca com o este tipo. Enquanto o dano não esta sendo igual é estranho, pois o script pega o mesmo tipo q ele esta sendo atacado para duplicar. Desculpa encontrei o problema segue abaixo o script com a solução: Também coloquei no script duas tabelas aonde você pode colocar quais tipos de ataque e quais vocações NÃO vão fazer parte do sistema, lembrando oq vc por la NÃO fara parte do script, as demais vocações e tipos de ataque funcionara normal local config = { itemid = 2142, -- id do item slot = CONST_SLOT_HEAD, -- slot q precisa estar equipado chance = 10, -- chance de acontecer effect = 11, -- efeito ao acontecer message = "DOUBLE", -- e mensagem color = 120, -- cor da mensagem seconds = 1000, -- após quanto tempo acontecera o double hit ignoredElements = {COMBAT_DEATHDAMAGE}, -- tipos não aceito ignoredVocations = {}, -- vocações não aceitas } function onCombat(cid, target) registerCreatureEvent(target, "DoubleAttack") return true end function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS and isPlayer(attacker) then if getPlayerSlotItem(attacker, config.slot) then if getPlayerSlotItem(attacker, config.slot).itemid == config.itemid then if isInArray(config.ignoredElements, combat) or isInArray(config.ignoredVocations, getPlayerVocation(attacker)) then return true end if math.random(100) <= config.chance then addEvent(function() if isCreature(attacker) and isCreature(cid) then doTargetCombatHealth(attacker, cid, combat, -value, -value, config.effect) doSendAnimatedText(getThingPos(cid), config.message, config.color) end end, config.seconds) end end end end return true end no script esta configurado para todas vocações funcionar e somente não funcionar se o ataque for do tipo DEATHDAMAGE.
-
(Resolvido)(PEDIDO DE SCRIPT) Item que fornece uma chance do personagem realizar um ataque duplo.
o script ja estava com os 100 milisegundos, não tenho culpa que não tenha noção do tempo, procure aonde esta configurado e edite você mesmo
-
(Resolvido)(PEDIDO DE SCRIPT) Item que fornece uma chance do personagem realizar um ataque duplo.
oq esta faltando garoto
-
[Weapon] Wand Fail
a partir de uma distancia do alvo os tiro da wand pode errar. Vá até data/weapons/scripts e crie um arquivo chamando waindfail.lua e coloque o seguinte conteúdo: local config = { damageMin = 100, damageMax = 200, combat = COMBAT_FIREDAMAGE, distanceEffect = 3, impactEffect = 36, range = 3, } function onUseWeapon(cid, var) if getCreatureTarget(cid) then local playerPos, targetPos = getThingPos(cid), getThingPos(getCreatureTarget(cid)) if getDistanceBetween(playerPos, targetPos) >= config.range then targetPos.x = targetPos.x + math.random(-1, 1) targetPos.y = targetPos.y + math.random(-1, 1) end doSendDistanceShoot(playerPos, targetPos, config.distanceEffect) addEvent(doAreaCombatHealth, getDistanceBetween(playerPos, targetPos)*80, cid, config.combat, targetPos, 0, -config.damageMin, -config.damageMax, config.impactEffect) end return true end tag: <wand id="id da wand" level="100" mana="30" event="script" value="wandfail.lua"> <vocation id="1"/> <vocation id="2"/> <vocation id="5" showInDescription="0"/> <vocation id="6" showInDescription="0"/> </wand>
-
Usar item em outro e ganhar storage e outfit temporário [8.60]
actions.xml <action itemid="itemA" event="script" value="script.lua"/> crie um arquivo .lua na pasta actions/scripts com nome igual do xml e cole o codigo e configure local config = { itemB = 1234, -- id do item b seconds = 60, -- segundos da storage e da outfit storage = 34351, -- storage livre outfit = {lookType = 30, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookAddons = 0} -- tabela da outfit caso for usar somente o looktype deixe os outros 0 } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storage) == 1 then return doPlayerSendCancel(cid, "Você ja esta usando a outfit.") end if item2.itemid == config.itemB then doSetCreatureOutfit(cid, config.outfit, config.seconds * 1000) tempStorage(cid, config.storage, 1, config.seconds, 0) doRemoveItem(item2.uid, 1) end return true end function tempStorage(cid, storage, value, seconds, count) if not isCreature(cid) then return true end if count == 0 then doPlayerSetStorageValue(cid, storage, value) end if count == seconds then doPlayerSetStorageValue(cid, storage, -1) return true end addEvent(tempStorage, 1000, cid, storage, value, seconds, count+1) end no arquivo creaturescripts/scripts/login.lua antes do return true adicione a seguinte linha doPlayerSetStorageValue(cid, storage, -1) no lugar de storage coloque a mesma q usou na configuração do arquivo da actions
-
(Resolvido)(PEDIDO DE SCRIPT) Item que fornece uma chance do personagem realizar um ataque duplo.
atualizado