-
Total de itens
904 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que Killua postou
-
Pra checar as vocaçoes tambem é facil usar, por exemplo, o isSorcerer(cid) que ja engloba sorcerer e master sorcerer. Ai como cada vocaçao vai ter restriçao a diferentes tipos de monstros, fica mais facil usar o if isSorcerer(cid) then elseif isDruid(cid) then..........
-
Entendi, entao so precisaria por um cooldown na runa. O que eu passei pra vc deu algum erro no console? Se nao, deixa ele do jeito q mandei e muda no spells.xml o exhaust da runa pra 0, talvez funcione.
-
pedido Script so abrir x porta depois de fazer x quest
pergunta respondeu ao nycholaszinhu de Killua em Scripts
Nao... Eu relamente esqueci kkkkk nao é a primeira vez que isso acontece. Vlw por avisar vo arruma ali -
pedido Script so abrir x porta depois de fazer x quest
pergunta respondeu ao nycholaszinhu de Killua em Scripts
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 outfmale = xxx -- id da outfit masculina local outffemale = xxx -- id da outfit feminina local storage = xxx -- storage q ganha na quest local partes = xxx -- quantos addons vai gan if msgcontains(msg, 'outfit') then if getPlayerStorageValue(cid, storage) >= 1 then if getPlayerStorageValue(cid, 31831) < 1 then doPlayerAddOutfit(cid, outfmale, partes) doPlayerAddOutfit(cid, outffemale, partes) doPlayerSetStorageValue(cid, 31831, 1) selfSay("Parabens! Aqui esta seu outfit!", cid) else selfSay("Você ja recebeu seu outfit!", cid) end else selfSay("Você não completou a quest! Volte aqui quando tiver completado.", cid) end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) -
pedido Script so abrir x porta depois de fazer x quest
pergunta respondeu ao nycholaszinhu de Killua em Scripts
Dai é o mesmo esquema, só checar storage. Tambem da pra fazer um piso que so passa quem fez a quest. -
Cara eu acho que tem uma condition... Algo comp CONDITION_PZLOCK. Nao lembro direito, nao to em casa pra fuçar nos arquivos, mas tenta procurar na pasta do seu servidor
-
pedido Script so abrir x porta depois de fazer x quest
pergunta respondeu ao nycholaszinhu de Killua em Scripts
Nycholas, no script que eu fiz, o player que fez a quest vai passar pela porta normalmente. Como em qualquer porta de level. Se ele nao tiver feito a quest, ele voltará para o sqm em que ele estava quando deu use. -
Sua spell fica assim: local runa = 7751 local msg = "Equipe a %s na mão, para poder atirar." local attackmin, attackmax = 100, 160 -- attack minimo, attack maximo function onCastSpell(cid, var) if exhaustion.check(cid, 23006) == true then doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid, 23006).."]") return false end local left, right = getPlayerSlotItem(cid, CONST_SLOT_LEFT), getPlayerSlotItem(cid, CONST_SLOT_RIGHT) if isInArray({left.itemid, right.itemid}, runa) then else return doPlayerSendCancel(cid, msg:format(getItemNameById(runa))) end if doPlayerRemoveItem(cid, 2543, 1) then -- troque pelo id da bolt target = getCreatureTarget(cid) if (target <= 0) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Selecione um target.") return false end hit = (math.random(attackmin,attackmax) + getPlayerSkillLevel(cid, SKILL_DISTANCE) / 3) doTargetCombatHealth(cid, target, COMBAT_PHYSICALDAMAGE, -hit, -hit, CONST_ME_MORTAREA) doSendDistanceShoot(getCreaturePos(cid), getCreaturePos(target), CONST_ANI_BOLT) exhaustion.set(cid, 23006, 1) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você não possui balas.") return false end exhaustion.set(cid, 23006, 1) no lugar desse 1 vc coloca quantos segundos o cara vai ficar exausto. Mais informacoes: Aqui Antes de fazer um pedido, pesquise no forum se ja nao tem a solucao pra vc.
-
pedido Script so abrir x porta depois de fazer x quest
pergunta respondeu ao nycholaszinhu de Killua em Scripts
Nao, nem precisa mudar. Por exemplo, se o cara era male quando fez a quest e ganha as duas outfits ele so iria poder usar a do sexo masculino e quando ele trocar de sexo so vai poder usar a do sexo feminino. Essa restricao ja e feita automaticamente pelo server, entao pode adicionar as duas sem problema -
pedido Script so abrir x porta depois de fazer x quest
pergunta respondeu ao nycholaszinhu de Killua em Scripts
Zipter, eh melhor dar ao player os dois outfits de uma vez (male e female) pq existe a possibilidade do player trocar de sexo algum dia. E a porta eu acho que fica ruim ela teleportar o cara, acho melhor usar uma porta normal (aquela que precisa de level pra passar) e usar o script assim: function onUse(cid, item, frompos, item2, topos) local storage = xxx --Coloque aqui a storage da quest que necessita estar completa para passar pela porta. if getPlayerStorageValue(cid, storage) < 1 then doTeleportThing(cid, frompos) doPlayerSendCancel(cid, "Você não completou a quest para passar por esta porta.") doSendMagicEffect(frompos, CONST_ME_POFF) else doPlayerSendTextMessage(cid, 25, "Bem vindo!") end return true end Dai eh so colocar um uniqueID na porta e registrar ela no actions.xml. -
0 fist 1 club 2 sword 3 axe 4 distance 5 shield 6 fishing
- 9 respostas
-
- mudar skill de script
- resolvido
- (e 1 mais)
-
Muito, muito bom! Rep+
-
function onSay(cid, words, param, channel) local p = string.explode(param, ',') local item_id = 2195 if(param == "") then doPlayerSendCancel(cid, "Command requires param.") doPlayerRemoveItem(cid, item_id, 1) return true end if(words == "/name") then if getPlayerItemCount(cid, 2145) >= 5 then if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then return doPlyyereenCaancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.") elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.") elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.") end doPlayerRemoveItem(cid, 2145, 5) return db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';") and doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have changed " .. p[1] .. "'s name to " .. p[2] .. ".") end else doPlayerSendCancel(cid, "Voce precisa de pelo menos 5 diamonds.") return true end end
-
Assim: function doPlayerAddSkills(cid, skill, amount) local amount = amount or 1 for i = 1, amount do doPlayerAddSkillTry(cid, skill, getPlayerRequiredSkillTries(cid, skill, getPlayerSkillLevel(cid, skill) + 1) - getPlayerSkillTries(cid, skill), false) end return true end function onUse(cid, item, fromPosition, itemEx, toPosition) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 25, "Voce ganhou 10 skill.") doPlayerAddSkills(cid, 4, 10) return true end Tambem usei o skill de id 4, que eh o distance. Vc pode por qual quiser
- 9 respostas
-
- mudar skill de script
- resolvido
- (e 1 mais)
-
Creaturescripts/scripts cria vidalevel.lua e coloca function onAdvance(cid, skill, oldLevel, newLevel) if(getPlayerStorageValue(cid, 12412) ~= 1 and skill == SKILL__LEVEL and newlevel >= 100) then setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+20000) setCreatureMaxMana(cid, getCreatureMaxMana(cid)+20000) doPlayerSendTextMessage(cid, 25, "Parabens! Vc alcancou o level 100 recebeu 20000 de vida e mana extra!") doPlayerSetStorageValue(cid, 12412, 1) end return true end Creaturescripts.xml coloca: <event type="advance" name="VidaLevel" event="script" value="vidalevel.lua"/> No login.lua coloca registerCreatureEvent(cid, "VidaLevel")
-
Se der problema na hr de ganha o skill tem que fazer outra funçao igual essa do ml que eu fiz
- 9 respostas
-
- mudar skill de script
- resolvido
- (e 1 mais)
-
function onUse(cid, item, fromPos, item2, toPos) local premios = {xxx, xxx, xxx, xxx} local tempo = 1*60*60 -- Em segundos if item.actionid == 4738 then if os.time()-getPlayerStorageValue(cid, 69413) > tempo then local randomChance = math.random(1, #premios) doPlayerAddItem(cid, premios[randomChance]) setPlayerStorageValue(cid, 69413, os.time()) else return doPlayerSendCancel(cid, "Voce precisa esperar 1 hora para pegar outro presente.") end return true end end
-
Reportado para moverem
- 52 respostas
-
- como criar um item que da ml
- resolvido
- (e 1 mais)
-
No script que eu passei vc n precisa mudar nada. Vc tem mudar o item que vc vai dar use, o item que esta na tag do actions.xml.
- 52 respostas
-
- como criar um item que da ml
- resolvido
- (e 1 mais)
-
Foi mal eu tinha feito pelo celular. function onSay(cid, words, param, channel) if not getPlayerItem(cid, 2145) >= 5 then doPlayerSendCancel(cid, "Voce precisa de pelo menos 5 diamonds.") return false end local p = string.explode(param, ',') local item_id = 2195 if(param == "") then doPlayerSendCancel(cid, "Command requires param.") doPlayerRemoveItem(cid, item_id, 1) return true end if(words == "/name") then if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then return doPlyyereenCaancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.") elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.") elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.") end doPlayerRemoveItem(cid, 2145, 5) return db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';") and doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have changed " .. p[1] .. "'s name to " .. p[2] .. ".") end end
-
Testa function onSay(cid, words, param, channel) if not getPlayerItem(cid, 2145) >= 5 then doPlayerSendCancel(cid, "Voce precisa de pelo menos 5 diamonds.") return false end local p = string.explode(param, ',') local item_id = 2195 if(param == "") then doPlayerSendCancel(cid, "Command requires param.") doPlayerRemoveItem(cid, item_id, 1) return true end if(words == "/name") then if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then return doPlayerSendCancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.") elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.") elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.") end return db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';") and doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have changed " .. p[1] .. "'s name to " .. p[2] .. ".") doPlayerRemoveItem(cid, 2145, 5) end end
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.