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

[Objet] Bons de DC


antok

Messages recommandés

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

Salut tout le monde ! petit partage des bons de DC, semblable à l'officiel (pour ceux qui ne connaissent pas, ce sont des items qui ajoutent des DC au compte du joueur).

 

-- --------
-- By Ant0k
-- --------
quest bourse_is begin
state start begin
	function give_bonus_cash(account, count)
		mysql_query("UPDATE account.account SET cash=cash+'"..count.."' WHERE id='"..account.."'")
		syschat("Vous recevez "..count.." marques.")
	end
	when 80014.use or 80015.use or 80016.use or 80017.use begin
		local tableByVnum = 
		{
			[80014] = 500, -- 500 DC
			[80015] = 1000, -- 1000 DC
			[80016] = 1500, -- 1500 DC
			[80017] = 2000 -- 2000DC
		}
		bourse_is.give_bonus_cash(pc.get_account_id(), tableByVnum[item.get_vnum()])
		item.remove()
	end
end
end
 

 

Cette quête utilise le module mysql! si il n'est pas installé sur votre serveur, je vous conseille cette fonction provenant d'epvp :

 

mysql_query = function(query)
   if not pre then
       local rt = io.open('CONFIG','r'):read('*all')
       pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
   end
   math.randomseed(os.time())
   local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
   --os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi) -- f? MySQL51
   os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi) -- f? MySQL55
   for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
   for i = 2, table.getn(t) do table.foreach(t[i],function(a,b)
       out[i-1]               = out[i-1] or {}
       out[i-1][a]            = tonumber(b) or b or 'NULL'
       out[t[1][a]]           = out[t[1][a]] or {}
       out[t[1][a]][i-1]      = tonumber(b) or b or 'NULL'
   end) end
   return out
end

 

 

Hidden Content

    Give reaction to this post to see the hidden content.

Hidden Content

    Give reaction to this post to see the hidden content.

Hidden Content

    Give reaction to this post to see the hidden content.

Hidden Content

    Give reaction to this post to see the hidden content.

 

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

Modifié par Funky Emulation
Core X - External 2 Internal
  • Metin2 Dev 1
  • Lmao 1
  • Good 1
  • Love 12
Lien vers le commentaire
Partager sur d’autres sites

  • Funkiest

Merci bien +1, du bon travail, comme a l’accoutumée

 

Voilà la quete compatible (normalement) avec la fonction partagée par Kaiser (https://fr.metin2.dev/topic/33-thread/502) :

 

-- --------
-- By Ant0k
-- --------
quest bourse_is begin
   state start begin
       function give_bonus_cash(account, count)
           execute_query("UPDATE account.account SET cash=cash+'"..count.."' WHERE id='"..account.."'")
           syschat("Vous recevez "..count.." marques.")
       end
       when 80014.use or 80015.use or 80016.use or 80017.use begin
           local tableByVnum =
           {
               [80014] = 500, -- 500 DC
               [80015] = 1000, -- 1000 DC
               [80016] = 1500, -- 1500 DC
               [80017] = 2000 -- 2000DC
           }
           bourse_is.give_bonus_cash(pc.get_account_id(), tableByVnum[item.get_vnum()])
           item.remove()
       end
   end
end

  • Love 3
Lien vers le commentaire
Partager sur d’autres sites

Avec mon module MySQL il faut le faire avec la fonction execute_query comme l'ai dit Ant0k.

 

Voici ma quête actuelle sur mon serveur local, créer par Kuzuri à la base que j'ai corriger cet aprés-midi.

 

quest bonsdedc begin
state start begin
	when 80014.use begin
		nombre_gold = 100
		nom_cash = "Monnaies du Dragon"
		execute_query("account", "UPDATE account SET cash = cash + "..nombre_gold.." WHERE id = "..pc.get_account_id())
		syschat(""..nombre_gold.." "..nom_cash.." ont été créditées sur votre compte.")
		pc.remove_item(80014,1)
	end
	when 80015.use begin
		nombre_gold = 500
		nom_cash = "Monnaies du Dragon"
		execute_query("account", "UPDATE account SET cash = cash + "..nombre_gold.." WHERE id = "..pc.get_account_id())
		syschat(""..nombre_gold.." "..nom_cash.." ont été créditées sur votre compte.")
		pc.remove_item(80015,1)
	end
	when 80016.use begin
		nombre_gold = 1000
		nom_cash = "Monnaies du Dragon"
		execute_query("account", "UPDATE account SET cash = cash + "..nombre_gold.." WHERE id = "..pc.get_account_id())
		syschat(""..nombre_gold.." "..nom_cash.." ont été créditées sur votre compte.")
		pc.remove_item(80016,1)
	end
	when 80017.use begin
		nombre_gold = 50
		nom_cash = "Monnaies du Dragon"
		execute_query("account", "UPDATE account SET cash = cash + "..nombre_gold.." WHERE id = "..pc.get_account_id())
		syschat(""..nombre_gold.." "..nom_cash.." ont été créditées sur votre compte.")
		pc.remove_item(80017,1)
	end
end
end

 

100% fonctionnel chez moi sans aucun bug.

  • Love 2
Lien vers le commentaire
Partager sur d’autres sites

  • 10 mois après...
  • 1 an après...
  • 1 an après...
  • 2 mois 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.