Jump to content
×
×
  • Create New...

[Event PVP] + Bonus


History/Liberty
 Share

Recommended Posts

Centre de Téléchargement

Télécharger ( Interne )

Bonjour , ce partage va pas révolutionner metin mais plutôt y donner un petit nouveau :D

Ce partage provient encore une fois de inforge !

 

INTRODUCTIONS:

 

C'est un système kill "Système d'événements WINPOINT" est structuré de cette façon:

 

-Possibilité d'activer / désactiver l'événement via un PNJ Seulement les GM peuvent le faire;

 

-Très facile à mettre en place  ;

 

-Tous les joueurs au-dessus d'un certain niveau peuvent se téléporter dans une carte à l'aide de l'APN (téléporteur);

 

-Quand on Kill un joueur d'un autre royaume vous pouvez recevoir WINPOINT x1 ou x2 WINPOINT ou vous ne pouvez pas recevoir tout WINPOINT (Ces points ne vont pas obstruer l'inventaire, mais sont des points virtuels qui sont enregistrés dans le Personnages);

 

-Pour un total de points que vous recevez une récompense aléatoire, il peut être un objet ou un bonus d'une durée de 2h;

 

-L'event dispose d'une minuterie de 30 minutes, puis 30 minutes après la fin de l'événement il lance une téléportation à chacun des joueurs de leur propre village;

 

                             VOICI LE SCRIPT:

 

-- WinPoint Event System
-- Traduit par [Liberty] 

quest WinPoint begin
   state start begin
       function GetEvent(data)
           local event_duel = {['mappa_duel'] = 91,
                               ['premio'] = {27992,27993,27994,25041},
                               ['bonus'] = {apply.MAX_HP,apply.ATTBONUS_HUMAN,apply.ATT_GRADE_BONUS,apply.RESIST_MAGIC},
                               ['qty_bonus'] = {2000,10,250,15},
                               ['durata_bonus'] = {60*60*2},
                               ['timerone'] = 30,
                               ['WinPoint_count'] = {0,1,2},
                               ['pct_prob'] = 60}
           return rawget(event_duel, data)
       end        
       
       when 20090.chat."GM: WinPoint Event" with pc.is_gm() begin
               say_title("GM: WinPoint Event")
               say("Gestion de l'événement WINPOINT[ENTER]")
               local s = select("Activer l'évent WINPOINT", "Désactiver l'évent", "Retour")
           if s == 1 then
               game.set_event_flag("WinPoint", 1)
               say_title("GM: WinPoint Event")
               say("L'événement WINPOINT a été activé.[ENTER]")   
               notice_all ("Evénement WINPOINT actif! Teleportation sur les Map")
               elseif s == 2 then
               game.set_event_flag("WinPoint", 0)
               say_title("GM: WinPoint Event")
               say ("L'événement WINPOINT a été désactivé.[ENTER]")
               notice_all ("L'évenement WINPOINT est terminé")
               elseif s == 3 then
               return
           end
           
       end
       
       when 20090.chat."Aller à l'évent WINPOINT" begin    
           if game.get_event_flag("WinPoint") == 0 then
               say("L'évent WINPOINT est désactivé")
               say("vérifier le calendrier des événements.")
               return
           end
           if pc.get_level() < 90 or pc.get_level() > 105 then
               say ("L'événement est ouvert uniquement aux personnes entre Lv.90 et Lv.105")
               return
           end
           if game.get_event_flag("WinPoint") == 1 then
               say("Bonjour/Bonsoir aventurier.")
               say("Le WINPOINT évent")
               say("est une véritable guerre de tous les royaumes")
               say("Beaucoup de gens n'en sont jamais revenus à dire")
               say("ce qui se passe vraiment là-dedans.")
               pc.setqf("WinPoint", pc.getqf("WinPoint"), 0)
               local s = select("Entré", "Annuler")
               if s == 2 then 
               return
               end
               pc . warp ( 1085400 , 1783800 )
           end
       end


       when login with pc.get_map_index() == WinPoint.GetEvent('mappa_duel') begin
           if game.get_event_flag("WinPoint") == 0 then
               say_reward ("L'évent WINPOINT n'est pas activé")
               pc.setqf("WinPoint", pc.getqf("WinPoint"), 0)
               warp_to_village()
           elseif game.get_event_flag("WinPoint") == 1 then
               say_title("Porter l'honneur de votre royaume et tuer tout vos ennemis")
               say_title("Vous avez 30 minutes pour gagner vos WINPOINT")
               server_timer("WinPoint_timer", WinPoint.GetEvent('timerone')*60)
           end
       end
       
       when kill with npc.is_pc() and game.get_event_flag("WinPoint") == 1 and pc.get_map_index() == WinPoint.GetEvent('mappa_duel') and pc.get_level() >= 90 and pc.get_level() < 105 and npc.get_empire() ~= pc.get_empire() begin
               local qty = number (1,3)
               pc.setqf("WinPoint", pc.getqf("WinPoint")+WinPoint.GetEvent('WinPoint_count')[qty])
               local reward = WinPoint.GetEvent('WinPoint_count')[qty]
               local punti = pc.getqf("WinPoint")
               chat ("Vous avez reçu " .. reward .. " WinPoint")
               chat ("Soit un total de " .. punti .. " WinPoint")
           if punti >= 30 then
                   say_title ("WinPoint Event")
                   say_reward ("Vous avez atteint 30 WINPOINT")
                   say_reward ("Maintenant, vous recevrez une récompense aléatoire")
                   say ("")
                   say_reward ("Vous ête un boss")
                   local zephion2 = number(1,100)
               if zephion2 <= WinPoint.GetEvent('pct_prob') then
                       local win = number (1,5)
                       local item_premio = item_name(WinPoint.GetEvent('premio')[win])
                       pc.setqf("WinPoint", pc.getqf("WinPoint")-30)
                       pc.give_item2(WinPoint.GetEvent('premio')[win])
                       say_reward ("Vous avez reçu" .. item_premio .. ".")
               else
                       local lose = number (1,4)
                       pc.setqf("WinPoint", pc.getqf("WinPoint")-30)
                       local quant = WinPoint.GetEvent('qty_bonus')[lose]
                       affect.add_collect_point(WinPoint.GetEvent('bonus')[lose],quant,WinPoint.GetEvent('durata_bonus'))
                   if lose == 1 then
                       say ("Comme récompense vous avez reçue MAX HP +"..quant.." D'une durée de 2h")
                   elseif lose == 2 then
                       say ("Comme récompense vous avez reçue force contre le Demie Humain +"..quant.." D'une durée de 2h)
                   elseif lose == 3 then
                       say ("Comme récompense vous avez reçue valeur d'attaque +"..quant.." D'une durée de 2h")
                   elseif lose == 4 then
                       say ("Comme récompense vous avez reçue Résistance à la magie +"..quant.."% D'une durée de 2h")
                   end
               end
           end
       end
                   
       when WinPoint_timer.server_timer begin
           notice_all("WinPoint Event terminato")
           clear_server_timer("WinPoint_timer")
           game.set_event_flag("WinPoint", 0)
           warp_all_to_village(WinPoint.GetEvent('mappa_duel'), 5)
       end
   end
end
 

 

 

 

VOUS AVEZ LA POSSIBILITÉ DE MODIFIER LES VALEUR DES BONUS VOIR MÊME LES REMPLACER SUFFIT DE MODIFIER   CETTE PARTIE :

 

function GetEvent(data)
           local event_duel = {['mappa_duel'] = 91,
                               ['premio'] = {27992,27993,27994,25041},
                               ['bonus'] = {apply.MAX_HP,apply.ATTBONUS_HUMAN,apply.ATT_GRADE_BONUS,apply.RESIST_MAGIC},
                               ['qty_bonus'] = {2000,10,250,15},
                               ['durata_bonus'] = {60*60*2},
                               ['timerone'] = 30,
                               ['WinPoint_count'] = {0,1,2},
                               ['pct_prob'] = 60}
           return rawget(event_duel, data)
       end
 

 

Voila bon évent :P

Si vous ne savez pas implanter une quête, suivez ce tutoriel : ici

 

Pas de point de réputations ! un commentaire me suffit !

[Liberty]

Link to comment
Share on other sites

  • Replies 10
  • Created
  • Last Reply

Top Posters In This Topic

  • 2 weeks later...
  • 4 months later...
  • 3 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share



Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.