Jump to content
×
×
  • Create New...

[Objet] Bons de DC


antok
 Share

Recommended Posts

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

Edited by Funky Emulation
Core X - External 2 Internal
  • J'adore 11
Link to comment
Share on other 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://funky-emu.net/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

  • J'adore 3
Link to comment
Share on other 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.

  • J'adore 2
Link to comment
Share on other sites

  • Retraité

Le partage à été approuvé par le staff, il bénéficie du label "partage approuvé"

 

Si il s'agit d'un partage dans le section "Graphisme", son seedeur gagne 2 points FE

Link to comment
Share on other sites

  • 10 months later...
  • 1 year later...

Si tu utilise les files 2016 de FE, ton questlib contient déjà la fonction MYSQL dans le questlib, cependant il faut commenter/décommenté deux lignes pour que tu reçoivent tes cash.

Link to comment
Share on other sites

  • 1 year later...
  • 2 months later...
 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.