Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. pra fazer um sistema desse tipo vc precisaria ter um global events que fica constantemente checando o ping do servidor, só que o problema é que esse sistema poderia causar lag hahaha
  2. Tem vários motivos pra não estar funcionando a task de Kill, eu preciso saber ql q é o motivo do seu servidor.. pra isso preciso que vc informe versão, se dá algum erro e preciso também que vc faça todos os passos que fui explicando nos comentários de colocar print, reinicar o sv e me falar oque acontece qnd vc mata um monstro. Só assim dá pra eu ter uma idéia de oque pode estar causando esse conflito de contar os kills e conseguir arrumar especificamente pro seu servidor.
  3. tem muitos tópicos do tipo "npc q troca X itens por Y itens", é só pesquisar um e mandar o link aqui que a gente edita os diálogos, os X itens e o Y item
  4. no meu global 8.6 se vc diminui fica mais fácil pra upar, se vc aumenta fica mais dificil (deveria ser o contrário já que é um rate). Aí eu não sei como é num servidor normal, se eles tratam como rate mesmo ou como menor = maior. O próximo passo na vdd é tomar uma decisão.. 116 é um valor bom pra vc? quer q aumente? quer uma talkaction que se o player tiver 116 ele atualize pra 120 e deixe estático (pra ser o level máximo) ou um creaturescript que se vc atingir 116 ele já aumente pra 120? Quer fazer um npc q vende os leveis a partir de 116 por X dinheiro?
  5. com count 9 ali ele ainda remove 2? posta o script.
  6. vc vai ter que fazer um creaturescript onStatsChange pro monstro, verificar se oque ele tá tendo de mudança de stats é perder vida, se o attacker é um player. Aí vc salva o value no storage do player sendo valor atual + value (dano causado). Quando o monstro morrer vc pega a vida total dele e compara com os killers quem tem o storage entre os values de porcentagem que vc quer definir. E não esquece de zerar o storage ao dar o prêmio e colocar pra zerar ao relogar (caso ele morra)
  7. cara, se vc registra no xml do monstro é ele que vai executar o onDeath e isso implica que ele vai ser o cid. O cara que matou vai ser o target.. então ficaria assim: function onDeath(cid, target) if isPlayer(target) then if getPlayerDamagePercent(target) <= 14 then doPlayerSendTextMessage(target, MESSAGE_INFO_DESCR, 'voce não bateu o sufuciente') end if getPlayerDamagePercent(target) >= 15 and getPlayerDamagePercent(target) <= 29 then doPlayerAddItem(target, 2160, 1) end if getPlayerDamagePercent(target) >= 30 and getPlayerDamagePercent(target) <= 49 then doPlayerAddItem(target, 2160, 2) end if getPlayerDamagePercent(target) >= 50 and getPlayerDamagePercent(target) <= 100 then doPlayerAddItem(target, 2160, 3) end end return true end Isso supondo que "getPlayerDamagePercent" exista, porque nunca vi essa função na vida.
  8. sobre o npc, vc tá usando o notepad++ pra adicionar os arquivos? Pq é mt estranho isso, é como se o npc não tivesse entrado no seu servidor. o xml do npc data/npc/Melkrapo.xml Script referente ao npc data/npc/scripts/Melkrapo.lua Quando vc adicionar, ao invés de dar reload fecha o sv e abre ele dnv, vê se dá algum erro nesses dois arquivos. Se não der tem que criar o npc. Se mesmo assim não for tenta criar ao lado de algum outro npc do seu servidor (alguns servers precisam de spawn no map editor (aquele foguinho q permite q crie monstros e npcs). Aí vc coloca o spawn via map editor e deixa o npc lá
  9. pronto, é só colocar ele em qlqer lugar q ele não fique dentro de outras dessas áreas q não vai dar erro.
  10. me manda seu spells/lib que eu adiciono e te ensino como faz. Sobre o npc.. é só dar /n nome dele, mas vc tem que criar o xml com o nome e botar o nome certinho dentro do arquivo
  11. attempt to call global 'setWildPokemonLevel' (a nil value) Isso significa q seu servidor não tem essa função ;~
  12. Primeiro de tudo sua versão do servidor tem que ser compatível (8.54~8.7), segundo vc tem que adicionar os scripts identico ao que explico no tutorial.. sei que é grande mas vc tem que ler tudo, não é só sair jogando coisa na pasta do servidor. Daí vc se preocupa com o mapa, e por fim configura tudo -> ANTES de ligar o servidor. Se vc instala pela metade vai dar erro mesmo
  13. (LuaInterface::luaDoCreateMonster) Cannot create monster: Gran Tower esse erro dá qnd não consegue criar o monstro Gran Tower, isso significa que a posição q vc botou na configuração ou não é válida ou ela ja está ocupada por outra criatura (provavelmente o próprio monstro gran tower) [Warning - Npc::createNpc] Cannot find npc with name: . esse erro tá estranho.. não conseguiu achar o npc com nome "" (LuaInterface::luaDoCreateNpc) Npc with name '' not found É como se vc não tivesse colocado nome nenhum no npc ou tivesse tentando sumonar um npc sem nome.
  14. Cooldraw foi foda de ler :// é cooldown; enfim, arrumei seu script, tem muita coisa mal feita aí mas achei melhor não mudar muito. ------------------Script por Daniel Oliveira------------------ local acombat1 = createCombatObject() local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 30) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -7.7, 0, -10.9, 0) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 6000) setConditionFormula(condition, -0.7, -0, -0.7, -0) setCombatCondition(acombat1, condition) local acombat2 = createCombatObject() local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 30) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -7.7, 0, -10.9, 0) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 6000) setConditionFormula(condition, -0.7, -0, -0.7, -0) setCombatCondition(acombat2, condition) local arr1 = { {0, 1, 1, 1, 0}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {0, 1, 1, 1, 0}, } local arr2 = { {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {1, 1, 1, 2, 1, 1, 1}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) setCombatArea(acombat1, area1) setCombatArea(acombat2, area2) local function onCastSpell1(parameters) (parameters.cid, parameters.acombat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.acombat2, parameters.var) end local function Cooldown(cid) if isPlayer(cid) then doPlayerSendTextMessage(cid,MESSAGE_STATUS_WARNING,'CD: Exevo Gran Mas Shadow.') end end local exhausted_seconds = 35 -- Segundos que o Player Poderá castar a spell novamente local exhausted_storagevalue = 4345 -- Storage Value do Cool Down function onTargetCreature(cid, target) local function sun1(cid) doPlayerSay(cid,"...",16) return true end local rand = math.random(1,5) if isPlayer(target) and rand == 5 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) elseif isPlayer(target) and rand == 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) elseif isPlayer(target) and rand < 4 then doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) doSendMagicEffect(getCreaturePosition(target), 60) else doSendAnimatedText(getCreaturePosition(target), "Stun!", TEXTCOLOR_WHITE_EXP) end return true end setCombatCallback(combat1, CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onTargetTile(cid, pos) doCombat(cid,combat1,positionToVariant(pos)) end setCombatCallback(acombat1, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onTargetTile(cid, pos) doCombat(cid,combat2,positionToVariant(pos)) end setCombatCallback(acombat2, CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(cid, var) if(os.time() < getPlayerStorageValue(cid, exhausted_storagevalue)) then doPlayerSendCancel(cid,'O Cooldown não está pronto.') return false end local function spell4(cid) return doCombat(cid, acombat1, var) end local function spell3(cid) addEvent(spell4, 1 * 450, cid) return doCombat(cid, acombat2, var) end local function spell3(cid) return doCombat(cid, acombat1, var) end local function spell2(cid) addEvent(spell3, 1 * 450, cid) return doCombat(cid, acombat2, var) end local function spell1(cid) addEvent(spell2, 1 * 450, cid) return doCombat(cid, acombat2, var) end addEvent(spell1, 1 * 450, cid) addEvent(Cooldown, 1*35000,cid) setPlayerStorageValue(cid, exhausted_storagevalue, os.time() + exhausted_seconds) return doCombat(cid, acombat1, var) end
  15. olha, se não resolveu significa que a porta que vc tá abrindo não tá utilizando o script q te passei... ela tem uniqueid? actionid? itemid? tá tudo declaradinho no actions.xml?
  16. da forma que tá, todos que forem da guild ficam com o poder (até onde eu lembro foi assim q eu fiz). O poder ja é o prêmio. Mas se vc quer dar premios pra quem for da guild é só criar um baú que quem tiver o guildID igual ao globalstorage q salva o guildID vencedor pode abrir. Lá vc pode colocar exp e qnts itens quiser.
  17. vc tem q deixar de uma forma q ele suba bem (de acordo com as rates do seu servidor) e que não trave num nv muito baixo. Aí o resto a gente dá um jeito
  18. eu só removi as checagens de storage, e elas nem deveria estar impedindo nada já que ele nao seta o storage após fazer a quest
  19. coloca 1.45 então, tem que ir ajustando pra não ficar nem muito apelativo e nem travar num nv mt baixo. O resto eu faço pra ti qnd vc conseguir arrumar isso
  20. Calma q vc escreveu cheio de pontos eu não entendi se foi um pedido ou uma constatação... você quer q coloque pra ganhar item? É só colocar um chest no castelo que libera ao ganhar o evento
  21. coloca 1.3 auhheuuha tenta fazer de uma forma q ele trave no 150~ e aí vc coloca um limite de 120 por creaturescript e diz q o limite de fishing é 120.
  22. function onUse(cid, item, frompos, item2, topos) if item.uid == 7100 and item.itemid == 1945 then player1pos = {x=214, y=146, z=8, stackpos=253} player1 = getThingfromPos(player1pos) player2pos = {x=214, y=147, z=8, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=214, y=148, z=8, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=214, y=149, z=8, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then nplayer1pos = {x=211, y=148, z=10} nplayer2pos = {x=212, y=148, z=10} nplayer3pos = {x=213, y=148, z=10} nplayer4pos = {x=214, y=148, z=10} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid,"You need four players for this quest.") end elseif item.uid ==7100 and item.itemid == 1946 then if getPlayerAccess(cid) > 0 then doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Sorry, not possible.") end else return 0 end return 1 end
  23. se vc colocar onDeath aí vc só precisa checar se é player if isPlayer(target) then código end
  24. seria o rateSkill mas testa só com a mudança no vocations.xml q eu havia falado

Informação Importante

Confirmação de Termo