Ir para conteúdo
  • Cadastre-se

Wise

Membro
  • Total de itens

    1090
  • Registro em

  • Última visita

  • Dias Ganhos

    7

Tudo que Wise postou

  1. local tab = { time = 8, -- tempo de duração/exhausted em horas stor = 12345 -- storage } function setNormalRate(cid) doPlayerSetRate(cid, SKILL__LEVEL, 1) setPlayerStorageValue(cid, tab.stor, -1) doCreatureSay(cid, "Normal Experience..", TALKTYPE_ORANGE_1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The effect of double experience over..") return true end function onUse(cid, item, fromPos, item2, toPos) if getPlayerStorageValue(cid, tab.stor) < 1 then setPlayerStorageValue(cid, tab.stor, 1) doPlayerSetRate(cid, SKILL__LE
  2. Cara, você fez merda. Eu testei esse NPC e todas as funções estão executando perfeitamente. Na tabela, coloque um valor no parâmetro da storage necessária como sendo maior ou diferente de -1. Pois esse será o novo valor aplicado da storage, ao player, assim que ele aceitar a proposta do NPC.
  3. Pronto, aqui está: local tab = { voc = 5, -- newVocationID dctime = 5, -- segundos para desconectar o player stats = {1, 150, 5}, -- {newLevel, newHealth, newMana} novo level/hp/mana ao trocar a voc oldstor = {5432, 1}, -- {storage, value) <- necessários newstor = {6543, 2} -- {storage, value) <- que o player receberá } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCre
  4. Recomendo o Magnus Challenger, um completíssimo NPC de tasks.
  5. Alterei algumas funções do script e resolvi esse erro de atenção, post atualizado.
  6. Disponha ;] Faça como o membro, adicione uma checagem de condição paralyze dentro do callback e remova-a (caso cid esteja com ela): function onCastSpell(cid, var) if getCreatureCondition(cid, CONDITION_PARALYZE) then doRemoveCondition(cid, CONDITION_PARALYZE) end return doCombat(cid, combat, var) end
  7. vchanger.lua (data/npc/scripts): local tab = { voc = 5, -- newVocationID dctime = 5, -- segundos para desconectar o player stats = {1, 150, 5}, -- {newLevel, newHealth, newMana} novo level/hp/mana ao trocar a voc oldstor = {5432, 1}, -- {storage, value) <- necessários newstor = {6543, 2} -- {storage, value) <- que o player receberá } local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
  8. Você tem de calcular as flags junto a de valor 1073741824 (Cannot be added to VIP), alterando-o em seu groups.xml (data/XML). Como você disse que quer pra GOD's, fiz o calculo com os privilégios e limitações comuns: groups.xml Procure pelo groupID do GOD em seu servidor (geralmente 6), e na tag dele, mude o valor do parâmetro flags="" para 232544561766394. Ficando então como (exemplo): <group id="6" name="God" flags="232544561766394" customFlags="134217727" access="5" violationReasons="23" nameViolationFlags="170" statementViolationFlags="213" depotLimit="5000" maxVips="500" outfit
  9. Script do Printer. Amigo, callback onLogin não registra creature event. Você quer dizer não dropar loot se for morto por players durante os níveis 20~50, certo? lootp.lua (data/creaturescripts/scripts): function onPrepareDeath(cid, killer) local level = {20, 50} local player = Player(cid) if player ~= nil and killer:isPlayer() and player:getLevel() >= level[1] and player:getLevel() < level[2] + 1 then player:setDropLoot(false) end return true end Registre o creature event em login.lua: registerCreatureEvent(cid, "LootProtect
  10. Você não precisa usar nenhum arquivo contendo códigos, a função thingProporties (que é usada nessa talkaction) já está inclusa na source do seu servidor. Apenas altere a tag para: <talkaction log="yes" words="/attr" access="5" event="function" value="thingProporties"/>
  11. Hahah cheguei tarde demais. Que bom que há outros membros dispostos a ajudar ;]
  12. @Caronte O que você citou são os magic effects e shoot types. Nesse caso ele teria que usar um script com callback onUseWeapon e adaptar as funções doAreaCombatHealth e doSendDistanceShoot, ou criar um combat próprio da wand/rod. @Maluketz Pra configurar diretamente na tag, são apenas esses que você citou. Agora, há como "personalizar". Se quiser, dê os detalhes (magic effect, shoot type, hit mínimo/máximo) que eu faço.
  13. Muito útil, amigo. Uma observação, vejo que utilizou uma storage pra definir uma certa "escolha" do membro da guild em relação ao pvp entre os outros membros da mesma (deve ter alguma função, particular do seu servidor).. Mas porquê fazer o uso dessas checagens sem apresentar esse outro sistema (que daria significado ao uso da storage), se aqui, os membros (possivelmente que todos) não fazem uso dela em seus servidores? E setando skull none ao cid quando atacar o target e o target for da mesma guild (contendo o valor da storage), se cid estiver PK, vai poder usar isso a seu favor, perdendo a
  14. Ah, ok. guard.lua (data/npc/lib): Guard = { config = { attackspeed = 1000, townid = 5, -- ID da town que o NPC protege }, combat = {type = COMBAT_PHYSICALDAMAGE, min = 100, max = 200} } function Guard:new() local ret = {} setmetatable({}, {__index = self.combat}) setmetatable(ret, {__index = self}) return ret end function Guard:reset() self.config = Guard.config self.target = 0 selfFollow(0) doTeleportThing(self.id, self.position) end function Guard:updateTarget() if self.target ~= 0 then return end local creatures = getSpectators(getThingPosition(self.id
  15. Tá um pouco difícil de te entender, cara. Tente explicar com mais clareza, o que você quer (exatamente)?
  16. Eu não testei, mas enfim: guard.lua (data/npc/lib): Guard = { config = { attackspeed = 1000, townid = 5, -- ID da town que o NPC protege }, combat = {type = COMBAT_PHYSICALDAMAGE, min = 100, max = 200} } function Guard:new() local ret = {} setmetatable({}, {__index = self.combat}) setmetatable(ret, {__index = self}) return ret end function Guard:reset() self.config = Guard.config self.target = 0 selfFollow(0) doTeleportThing(self.id, self.position) end function Guard:updateTarget() if self.target ~= 0 then return end local creatures = getSpectators(getThing
  17. O quest log armazena as informações sobre as missões do player, que são as storages e storage values das missões e quests. É uma boa ferramenta para orientar os players sobre elas (através das descrições das missões de uma quest), incluindo suas etapas, missões conclúidas e o que fazer pra receber a recompensa das mesmas.
  18. Na verdade eu só corrigi a estrutura do script do membro. Funcionou perfeitamente.. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 3, 3, 7, 9) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  19. Você pode atribuir uma porcentagem de perca de experiência no creature event de blessings do seu servidor, através da função: doPlayerSetLossPercent(cid, lossType, newPercent) Valores do segundo parâmetro: -lossTypes: PLAYERLOSS_EXPERIENCE = 0 PLAYERLOSS_MANA = 1 PLAYERLOSS_SKILLS = 2 PLAYERLOSS_CONTAINERS = 3 PLAYERLOSS_ITEMS = 4 No terceiro parâmetro da função, determine a porcentagem em números inteiros ou decimais (como preferir) da perda do player. Exemplo do uso no tipo de perda de experiência: doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 5)
  20. Não entendi o porquê dos parâmetros "deslocados".. local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 3, 3, 7, 9) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  21. doPlayerSendTextMessage(cid, 22, "Espere "..getPlayerStorageValue(cid, storage) - os.time().." segundos.")
  22. Se você usar um tile/teleport com o actionID e o teleport tiver (nele) a posição de destino configurada, vai teleportar mesmo estando em battle ou não. Por isso você precisaria configurar a posição de destino do teleport, no script. Eu testei, caso queira tirar suas próprias conclusões (com o destino no teleport): function onStepIn(cid, item, pos, fromPos) if isPlayer(cid) and getCreatureCondition(cid, CONDITION_INFIGHT) then doTeleportThing(cid, fromPos, true) doSendMagicEffect(fromPos, CONST_ME_POFF) doPlayerSendCancel(cid, "You can't enter in battle.") end
  23. Falha minha. Use este script (configurando a posição do teleport no script e colocando o actionID no teleport sem posição de destino configurada): function onStepIn(cid, item, pos, fromPos) local pos = {x=123, y=456, z=7} if isPlayer(cid) and getCreatureCondition(cid, CONDITION_INFIGHT) then doTeleportThing(cid, fromPos) doSendMagicEffect(fromPos, CONST_ME_POFF) doPlayerSendCancel(cid, "You can't enter in battle.") else doTeleportThing(cid, pos) doSendMagicEffect(pos, CONST_ME_TELEPORT) end return true end
  24. Só mais uma pergunta, um detalhe. Precisa haver necessariamente os 5 players nas posições (circuladas em azul) pra ir pra "quest"?
  25. doPlayerPopupFYI(cid, "Parabéns, você atingiu o level "..newLevel.."! Agora você está prestes a iniciar sua jornada no Global Legalize!\nNavegue pelos Guias de Hunts através deste NPC. Mas primeiramente você terá que atingir o level necessário para isso.\nSe você se considera um jogador já experiente, você pode conhecer a biblioteca do nosso site, assim não precisará de ter o level recomendado pelos NPCs para ir a qualquer lugar.\nLembre-se! Os NPCs guias somente servem para lhe guiar a algumas hunts.\nMas você pode acessa-las a qualquer level, caso se considere um explorador competente.\nBoa
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo