Ir para conteúdo

Demonbholder

Infante
  • Total de itens

    1551
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Demonbholder postou

  1. Demonbholder

    [Fechado]

    sabendo que vão remover a imagem
  2. Ahhhhh, o bug não é da função do tfs não. É porque o nome do monstro ta diferente no arquivo dele e no monsters.xml. Só arrumar que vai funcionar tanto com a minha função e o script editado quanto sem a minha função e o script original (aconselho usar o original).
  3. Pelo visto é um bug da função do TFS mesmo. Enfim, fiz uma função aqui, vamos ver se vai: Vai em lib/functions.lua e cola esta função do final dela: function getMonsterExperience(name) local info = io.open("data/monster/monsters.xml", "r") local mm = string.lower(info:read("*all")) local name = string.lower(name) for _, line in pairs(lines(mm)) do if string.find(line, "'" .. name .. "'") or string.find(line, '"' .. name .. '"') then xml = string.sub(line, string.find(line, "file")+6, string.find(line, ".xml")+3) break end end local info2 = io.open("data/monster/" .. xml, "r") local mm2 = string.lower(info2:read("*all")) local exp = string.match(mm2, "%d+", string.find(mm2, "experience"), "%d+") return exp end function lines(str) local t = {} local j = {} local c = nil for i = 1, #str do if i == 1 then table.insert(t, 1) elseif string.byte(string.sub(str, i, i)) == 10 then table.insert(t, i) end end for i = 1, #t do c = t[i+1] and t[i+1] -1 table.insert(j, string.sub(str, t[i], c)) end return j end Depois substitua o script do exphit por: -- Exp por Hit By: xOtServx -- rateExp = 50 -- agora vc configura o rate de exp do server. ------------------------------ function CalculeExp(monsterhp, exptotal, hit) local x = hit <= monsterhp and math.ceil(exptotal * hit / monsterhp) or 0 local x2 = x - 20 + math.random(20) return x2 > 0 and x2 or 0 end function isSummon(uid) return uid ~= getCreatureMaster(uid) or false end function onStatsChange(cid, attacker, type, combat, value) if type == STATSCHANGE_HEALTHLOSS then if isMonster(cid) then if isCreature(attacker) then local sid = isSummon(attacker) == true and getCreatureMaster(attacker) or attacker if isPlayer(sid) then local expg = CalculeExp(getCreatureMaxHealth(cid), getMonsterExperience(getCreatureName(cid)) * rateExp, value) doPlayerSendTextMessage(sid, 23, "You gain "..expg.." exp.") doPlayerAddExp(sid, expg) end end end elseif type == STATSCHANGE_HEALTHGAIN then return false end return true end function onCombat(cid, target) if isMonster(target) and not isSummon(target) and not isPlayer(target) then registerCreatureEvent(target, "ExpGain") end return true end Testa e me diz se funcionou.
  4. É só com o assassin que isso acontece? Se for, poste o xml do monstro.
  5. Respondendo a 3º pergunta. Vá em data/movements/scripts, crie um arquivo .lua e cole isto nele: function onStepIn(cid, item, pos, frompos) local aids = { [1000] = 1, [1200] = 2, [1400] = 5 } if isPlayer(cid) then doPlayerSetTown(cid, aids[item.actionid]) doPlayerSendTextMessage(cid,25,"Congratulations! You are the newest resident of ".. getTownName(aids[item.actionid]) ..".") doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) else doTeleportThing(cid, frompos) end return true end Depois vá em data/movements, abra o arquivo movements.xml e cole esta tag nele: <movevent type="StepIn" actionid="1000;1200;1400" event="script" value="NomeDoArquivo.lua"/> Edite onde diz NomeDoArquivo. Seguinte, você tem que colocar os actionids nos portais. Eu já mostrei como configurar o script com 3 actionid, basta você coloca-los nos portais pelo mapeditor. Ai o teleport que tem o actionid 1000 deve ser para cidade com id 1, o que tem actionid 1200 deve ser para cidade com id 2, e assim por diante. Qualquer dúvida é só postar.
  6. Tente: function loseOnZombieArena(cid) kickPlayerFromZombiesArea(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "BOOM! You are dead.") local players = getZombiesEventPlayers() if(#players <= 1) then local winner = players[1] if(winner) then doPlayerAddItem(winner, 2157, 5, true) doPlayerAddItem(winner, 6119, 1, true) doPlayerSendTextMessage(winner, MESSAGE_STATUS_CONSOLE_BLUE, "You won zombies arena event.") doBroadcastMessage("After " .. os.time() - getPlayerZombiesEventStatus(winner) .. " seconds of fight " .. getCreatureName(winner) .. " won Zombie Arena Event in game versus " .. getStorage(ZE_ZOMBIES_SPAWNED) .. " zombies!") kickPlayerFromZombiesArea(winner) else doBroadcastMessage("Zombie arena event finished! No one win?!?!?! WTF!") end doSetStorage(ZE_STATUS, 0) doSetStorage(ZE_PLAYERS_NUMBER, ZE_DEFAULT_NUMBER_OF_PLAYERS) doSetStorage(ZE_ZOMBIES_TO_SPAWN, 0) doSetStorage(ZE_ZOMBIES_SPAWNED, 0) local width = (math.max(ZE_spawnFromPosition.x, ZE_spawnToPosition.x) - math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)) / 2 + 1 local height = (math.max(ZE_spawnFromPosition.y, ZE_spawnToPosition.y) - math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)) / 2 + 1 local centerPos = {x=math.min(ZE_spawnFromPosition.x, ZE_spawnToPosition.x)+width,y=math.min(ZE_spawnFromPosition.y, ZE_spawnToPosition.y)+height,z=ZE_spawnFromPosition.z} for z = math.min(ZE_spawnFromPosition.z, ZE_spawnToPosition.z), math.max(ZE_spawnFromPosition.z, ZE_spawnToPosition.z) do centerPos.z = z if getSpectators(centerPos, width, height, false) then for i, uid in pairs(getSpectators(centerPos, width, height, false)) do if(isMonster(uid)) then doRemoveCreature(uid) end end end end end end function onStatsChange(target, cid, changetype, combat, value) if((cid and isMonster(cid) and getCreatureName(cid) == "Zombie Event") or (isInRange(getThingPosition(target), ZE_spawnFromPosition, ZE_spawnToPosition) and changetype == STATSCHANGE_HEALTHLOSS and math.abs(value) >= getCreatureHealth(target))) then doCreatureAddHealth(target, getCreatureMaxHealth(target)) loseOnZombieArena(target) return false end return true end
  7. Não li os scripts que o cara te passou, mas li o seu lá. Ache o script onde está a função getSpectators e assim posso ver como ela funciona. Deve estar em algum lugar na lib.
  8. Aconselho não aprender apenas para otserv, mas podes começar com isso. Tem um link na minha página about_me que linka vários tutoriais importantes para aprender. Boa sorte.
  9. Galera, quando o tópico estiver em seção incorreta reportem!
  10. HAHAHAHAHAHA sério, um helicóptero de controle remoto? e não entendi muito bem o concurso; o que poderiamos ter feito? lol acessar o fórum e comentar no tópico?
  11. pos1 = {x=??, y=??, z=??, stackpos=253} --- OBS: eu nao uso essas ?? e so um exemplo pos2 = getThingfromPos(pos1) doCreatureSay(pos2.uid,"...") Creio que deve funcionar.
  12. Coroutines em lua não são preemptivas, logo são executadas na mesma thread. Não mudaria nada como disse o nosso amigo acima. Concordo que coroutina em lua é inútil.
  13. Agora sim hein! Congratulações ao XTibia e a todos que fazem/fizeram parte da equipe e contribuíram para os 6 anos. Parabéns, um grande abraço.
  14. Demonbholder

    Remoção

    Falou merda cara. A área de scripts está crescendo e muito de uns tempos pra cá. Sabe quem fez as sub-seções de Sistemas e Mod's, Bibiotecas, Concursos de Scripts e SDS - Script da Semana serem criadas? Tudo iniciativa minha, inclusive está registrado no email. Chato é fazer concursos como script da semana, que da uma trabalho do caramba, porque eu tenho que ver TODOS os scripts postados e adicionar aos favoritos para criar o tópico no domingo e ainda fazer duelos de scripts, pedindo inscrições e sugestões de temas e ainda por cima não ser reconhecido. É verdade que tenho postado poucos scripts ultimamente, até porque isso é um trabalho da colaboração! Olhe minha página about me, está cheia de colaborações naquela seção. Se você for analisar, a cada edição do concurso SDS, aumenta o número de scripts postados e de participantes, e isso é o que me motiva a ter todo o trabalho que é fazer esse concurso, pois não tenho a ajuda de ninguém. Então antes de dizer que a seção está parada, analise números, pois como diria nosso caro JV Chequer, contra fatos não há argumentos. Abraços.
  15. Ou caralho, me deu rep- porque?
    1. Kasemaru

      Kasemaru

      ai me ajuda com um script ai pf quero uma vip 2 eu tenho uma vip ela funfa e tall mais essa e por comando !Buyvip queria que a vip 2 fosse por item se sabe ne eu clico no item e ele da a vip e se possivel eu queria um script que deixasse o cara com name [Goldem Vip] se puder me ajuda eu agradeço :)

    2. Kasemaru

      Kasemaru

      manda uma mensagem ai qdo for possivel :)

    3. Parafusootserver

      Parafusootserver

      Cara, to tentando por a arena de svar mas da um erro aqui.

      21:33 The tile seems to be protected against unwanted intruders.

      se puder me da essa moral fico grato.

  16. Demonbholder

    Remoção

    nogared, se um coordenador aplicou uma punição em ti, um moderador não pode sobrepujar a decisão dele.
  17. Demonbholder

    Remoção

    Não foram falsas, só não foi tudo o que aconteceu. Um dos motivos que pesou muito na saída do Jv, realmente foi a falta de tempo dele.
  18. Demonbholder

    Remoção

    É claro que vocês não podem saber, só estou falando que em grande maioria os argumentos do lopoi foram sem base, pois ele não teria como saber. A menos que os envolvidos lhe contassem. Até porquê não é uma coisa que foi divulgada no email. Primeiramente, eu tenho e-mails que provam tudo que falei. Do resto são coisas básicas que devemos saber sobre a humanidade. Infelizmente ela funciona assim. Ta difícil de entender que o que foi divulgado no email não foi o que aconteceu? Não o que postaram sobre a saída dele, ou enviaram. O que ele mesmo enviou. Ele próprio falou que gostou do trabalho do Under. 2 vezes, eu tnho esses e-mails. e tenho outro em que ele fala que ia cortar o vinculo de seu e-mail com o do Xtibia, mas nada que parecesse ser contra o Under ou etc. Ele apenas falou q precisa de uma pausa do pessoal do Xt. Eu sei a quais emails você se refere, também os recebi, mas como o apocarai e eu estamos insistindo e dizer, não foi o que aconteceu. Não a nada que comprove que os e-mails sejam falso, nem q sejam verdadeiros, mas eu só sei o que sei. Os envolvidos comprovaram para alguns, agora pode parar de falar besteira, por favor?
  • Quem Está Navegando   0 membros estão online

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