• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Task Kill Players

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Sistema] Task Kill Players el Vie Ago 28, 2015 1:00 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Hola usuarios de tibiaface

    Tested en TFS 0.3.6.


    bueno aqui les traigo este sistema interesante se trata de la Task Kill Players es muy similar al de la Grizzly Adams pero en ves de matar moustro le dara la mission de matar cierta cantidad de player para completarla.

    nota: tiene un minimo de level de target

    bueno nos vamos a data/npc/script copiamos cualquier archivo y renombramos por death.lua y pegamos esto dentro:

    Código:
    local keywordHandler = KeywordHandler:new()
    local npcHandler = NpcHandler:new(keywordHandler)
    NpcSystem.parseParameters(npcHandler)
    local talkState = {}
     
    function onCreatureAppear(cid)        npcHandler :o nCreatureAppear(cid)        end
    function onCreatureDisappear(cid)      npcHandler :o nCreatureDisappear(cid)        end
    function onCreatureSay(cid, type, msg)      npcHandler :o nCreatureSay(cid, type, msg)      end
    function onThink()            npcHandler :o nThink()              end
     
    local config = {
      npcstorage = 18687,
      killstorage = 19001,
      amountkills = 10,
      rewarditem = 2160,
      rewardexp = 12000
    }

    function creatureSayCallback(cid, type, msg)

      local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
     
      if(not npcHandler:isFocused(cid)) then
          if(msg == 'hi' or msg == 'hello') then
            if(getPlayerStorageValue(cid, config.npcstorage) == -1) then
                selfSay('Hello '..getPlayerName(cid)..', I have a mission for you if you are strong enough. I want you to kill 10 players, do you accept?', cid)
                talkState[talkUser] = 1
            elseif(getPlayerStorageValue(cid, config.npcstorage) == 1) then
                selfSay('Did you kill 10 players?', cid)
                talkState[talkUser] = 1
            else
                selfSay('Hello '..getPlayerName(cid)..', bringer of death!', cid)
            end
            npcHandler:addFocus(cid)
          else
            return false
          end
      end
     
      if(msgcontains(msg, 'yes')) and talkState[talkUser] == 1 then
          if(getPlayerStorageValue(cid, config.npcstorage) == -1) then
            selfSay('Lets see if you can make it!', cid)
            doPlayerSetStorageValue(cid, config.npcstorage, 1)
          elseif(getPlayerStorageValue(cid, config.npcstorage) == 1) then
            if(getPlayerStorageValue(cid, config.killstorage) >= config.amountkills) then
                selfSay('Well, didn\'t expected it, but well done, here is your reward.', cid)
                doPlayerAddItem(cid, config.rewarditem, 1)
                          doPlayerAddExp(cid, config.rewardexp)
                doPlayerSetStorageValue(cid, config.npcstorage, 2)
            else
                        selfSay('You killed '..(getPlayerStorageValue(cid, config.killstorage) +1)..' players, you need to kill '..config.amountkills..'!', cid)
            end
          end
          talkState[talkUser] = 0
      elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then
          talkState[talkUser] = 0
          selfSay('I knew you were not strong enough!', cid)
      elseif(msgcontains(msg, 'bye')) then
          selfSay('Bye.', cid)
          npcHandler:releaseFocus(cid)
      end
      return true
    end
     
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

    luego nos vamos a data/npc y copiamos cualquier archivo y renombramos por Death.xml y pegamos esto dentro:

    Código:
    <?xml version="1.0" encoding="UTF-8"?>
    <npc name="Death" script="death.lua" walkinterval="2000" floorchange="0">
      <health now="100" max="100"/>
      <look type="300" head="0" body="0" legs="0" feet="0"/>
    </npc>

    Segunda parte:

    Nos vamos a data/creaturescripts/scripts copiamos cualquier archivo y renombramos por killplayer.lua y pegamos esto dentro:

    Código:
    local config = {
      npcstorage = 18687,
      killstorage = 19001,
      targetlevel = 30, -- minimum level of the target
      amountkills = 10
    }

    function onKill(cid, target)

      if(not isPlayer(target)) then
          return true
      end

      if(getPlayerLevel(target) >= config.targetlevel and getPlayerStorageValue(cid, config.npcstorage) == 1) then
          if(getPlayerStorageValue(cid, config.killstorage) >= -1 and getPlayerStorageValue(cid, config.killstorage) < config.amountkills) then     
            setPlayerStorageValue(cid, config.killstorage, getPlayerStorageValue(cid, config.killstorage) + 1)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players killed: "..(getPlayerStorageValue(cid, config.killstorage) +1).."/"..config.amountkills..".")
          end
          if((getPlayerStorageValue(cid, config.killstorage) +1) == config.amountkills) then
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Congratulations, you have killed "..(getPlayerStorageValue(cid, config.killstorage) +1).." players and finished the mission.")
            setPlayerStorageValue(cid, config.killstorage, getPlayerStorageValue(cid, config.killstorage) + 1)
          end
      end
      return true
    end

    en la misma carpeta buscamos el archivo login.lua y añadimos esta linea:

    Código:
    registerCreatureEvent(cid, "KillPlayer")


    luego nos vamos a data/creaturescripts/creaturescripts.xml y añadimos esta tag:

    Código:
    <event type="kill" name="KillPlayer" event="script" value="killplayer.lua"/>

    y listo eso seria todo.



    Ver perfil de usuario http://www.tibiaface.com

    2default Re: [Sistema] Task Kill Players el Miér Nov 18, 2015 10:47 am

    Cheka

    avatar
    Miembro
    Miembro
    seria bueno que fueran a diferente tipo de chares

    Ver perfil de usuario

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.