Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

[Event PVP] + Bonus


History/Liberty

Messages recommandés

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( 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]

  • Metin2 Dev 1
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
  • 4 mois après...
  • 3 ans après...


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 37
    2. 21

      Metin2 en 2020 peut-on en parler?

    3. 0

      METIN2Project

    4. 3

      Ressources - UnPack - Metin2 Client - Officiel

    5. 0

      Barre des tâches d'argent étendue

    6. 16

      Redémarrage automatique des channels

    7. 16

      Multi Logo GM / SGM / GA

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.