local TraceFrame = DEFAULT_CHAT_FRAME;

local DBOS_mobs_model_SetItemRef_nummob_imax = 65000;	--55000;

local DBobjets_wow_build;
local DBobjets_wow_build_live = 12340;

_, DBobjets_wow_build, _, _ = GetBuildInfo();
DBobjets_wow_build = tonumber(DBobjets_wow_build);

local DBOS_version1 = "01";
local DBOS_version2 = "00";
local DBOS_version3 = "08";

--[[
ITEM_MOD_AGILITY = "%c%d Agilité";
ITEM_MOD_AGILITY_SHORT = "Agilité";
ITEM_MOD_ARMOR_PENETRATION_RATING = "Augmente de %d votre score de pénétration d'armure.";
ITEM_MOD_ARMOR_PENETRATION_RATING_SHORT = "Score de pénétration d'armure";
ITEM_MOD_ATTACK_POWER = "Augmente la puissance d'attaque de %d.";
ITEM_MOD_ATTACK_POWER_SHORT = "Puissance d'attaque";
ITEM_MOD_BLOCK_RATING = "Augmente de %d le score de blocage.";
ITEM_MOD_BLOCK_RATING_SHORT = "Score de blocage";
ITEM_MOD_BLOCK_VALUE = "Augmente la valeur de blocage de votre bouclier de %d.";
ITEM_MOD_BLOCK_VALUE_SHORT = "Valeur de blocage";
ITEM_MOD_CRIT_MELEE_RATING = "Augmente de %d le score de coup critique en mêlée.";
ITEM_MOD_CRIT_MELEE_RATING_SHORT = "Score de coup critique (mêlée)";
ITEM_MOD_CRIT_RANGED_RATING = "Augmente de %d le score de coup critique à distance.";
ITEM_MOD_CRIT_RANGED_RATING_SHORT = "Score de coup critique (distance)";
ITEM_MOD_CRIT_RATING = "Augmente de %d le score de coup critique.";
ITEM_MOD_CRIT_RATING_SHORT = "Score de coup critique";
ITEM_MOD_CRIT_SPELL_RATING = "Augmente de %d le score de coup critique des sorts.";
ITEM_MOD_CRIT_SPELL_RATING_SHORT = "Score de coup critique (sorts)";
ITEM_MOD_CRIT_TAKEN_MELEE_RATING = "Augmente de %d le score d'évitement des critiques en mêlée.";
ITEM_MOD_CRIT_TAKEN_MELEE_RATING_SHORT = "Score d'évitement des critiques (mêlée)";
ITEM_MOD_CRIT_TAKEN_RANGED_RATING = "Augmente de %d le score d'évitement des critiques à distance.";
ITEM_MOD_CRIT_TAKEN_RANGED_RATING_SHORT = "Score d'évitement des critiques (distance)";
ITEM_MOD_CRIT_TAKEN_RATING = "Augmente de %d le score d'évitement des critiques.";
ITEM_MOD_CRIT_TAKEN_RATING_SHORT = "Score d'évitement des critiques";
ITEM_MOD_CRIT_TAKEN_SPELL_RATING = "Augmente de %d le score d'évitement des critiques des sorts.";
ITEM_MOD_CRIT_TAKEN_SPELL_RATING_SHORT = "Score d'évitement des critiques (sorts)";
ITEM_MOD_DAMAGE_PER_SECOND_SHORT = "Dégâts par seconde";
ITEM_MOD_DEFENSE_SKILL_RATING = "Augmente le score de défense de %d.";
ITEM_MOD_DEFENSE_SKILL_RATING_SHORT = "Score de défense";
ITEM_MOD_DODGE_RATING = "Augmente de %d le score d'esquive.";
ITEM_MOD_DODGE_RATING_SHORT = "Score d'esquive";
ITEM_MOD_EXPERTISE_RATING = "Augmente votre score d'expertise de %d.";
ITEM_MOD_EXPERTISE_RATING_SHORT = "Score d'expertise";
ITEM_MOD_FERAL_ATTACK_POWER = "Augmente la puissance d'attaque de %d seulement en forme de félin, ours, ours redoutable ou sélénien.";
ITEM_MOD_FERAL_ATTACK_POWER_SHORT = "Puissance d'attaque en changeforme";
ITEM_MOD_HASTE_MELEE_RATING = "Augmente de %d le score de hâte en mêlée.";
ITEM_MOD_HASTE_MELEE_RATING_SHORT = "Score de hâte (mêlée)";
ITEM_MOD_HASTE_RANGED_RATING = "Augmente de %d le score de hâte à distance.";
ITEM_MOD_HASTE_RANGED_RATING_SHORT = "Score de hâte (distance)";
ITEM_MOD_HASTE_RATING = "Augmente de %d le score de hâte.";
ITEM_MOD_HASTE_RATING_SHORT = "Score de hâte";
ITEM_MOD_HASTE_SPELL_RATING = "Augmente de %d le score de hâte des sorts.";
ITEM_MOD_HASTE_SPELL_RATING_SHORT = "Score de hâte (sorts)";
ITEM_MOD_HEALTH = "%c%d Vie";
ITEM_MOD_HEALTH_REGEN = "Rend %d points de vie toutes les 5 secondes.";
ITEM_MOD_HEALTH_REGENERATION = "Rend %d points de vie toutes les 5 secondes.";
ITEM_MOD_HEALTH_REGENERATION_SHORT = "Régénération des points de vie";
ITEM_MOD_HEALTH_REGEN_SHORT = "Points de vie toutes les 5 sec.";
ITEM_MOD_HEALTH_SHORT = "Vie";
ITEM_MOD_HIT_MELEE_RATING = "Augmente de %d le score de toucher en mêlée.";
ITEM_MOD_HIT_MELEE_RATING_SHORT = "Score de toucher (mêlée)";
ITEM_MOD_HIT_RANGED_RATING = "Augmente de %d le score de toucher à distance.";
ITEM_MOD_HIT_RANGED_RATING_SHORT = "Score de toucher (distance)";
ITEM_MOD_HIT_RATING = "Augmente de %d le score de toucher.";
ITEM_MOD_HIT_RATING_SHORT = "Score de toucher";
ITEM_MOD_HIT_SPELL_RATING = "Augmente de %d le score de toucher des sorts.";
ITEM_MOD_HIT_SPELL_RATING_SHORT = "Score de toucher (sorts)";
ITEM_MOD_HIT_TAKEN_MELEE_RATING = "Augmente de %d le score d'évitement des coups en mêlée.";
ITEM_MOD_HIT_TAKEN_MELEE_RATING_SHORT = "Score d'évitement des coups (mêlée)";
ITEM_MOD_HIT_TAKEN_RANGED_RATING = "Augmente de %d le score d'évitement des coups à distance.";
ITEM_MOD_HIT_TAKEN_RANGED_RATING_SHORT = "Score d'évitement des coups (distance)";
ITEM_MOD_HIT_TAKEN_RATING = "Augmente de %d le score d'évitement des coups.";
ITEM_MOD_HIT_TAKEN_RATING_SHORT = "Score d'évitement des coups";
ITEM_MOD_HIT_TAKEN_SPELL_RATING = "Augmente de %d le score d'évitement des coups des sorts.";
ITEM_MOD_HIT_TAKEN_SPELL_RATING_SHORT = "Score d'évitement des coups (sorts)";
ITEM_MOD_INTELLECT = "%c%d Intelligence";
ITEM_MOD_INTELLECT_SHORT = "Intelligence";
ITEM_MOD_MANA = "%c%d Mana";
ITEM_MOD_MANA_REGENERATION = "Rend %d points de mana toutes les 5 secondes.";
ITEM_MOD_MANA_REGENERATION_SHORT = "Régénération du mana";
ITEM_MOD_MANA_SHORT = "Mana";
ITEM_MOD_MASTERY_RATING = "Augmente votre score de maîtrise de %d.";
ITEM_MOD_MASTERY_RATING_SHORT = "Score de maîtrise";
ITEM_MOD_MASTERY_RATING_SPELL = "(%s)";
ITEM_MOD_MASTERY_RATING_TWO_SPELLS = "(%s/%s)";
ITEM_MOD_MELEE_ATTACK_POWER_SHORT = "Puissance d'attaque en mêlée";
ITEM_MOD_PARRY_RATING = "Augmente de %d le score de parade.";
ITEM_MOD_PARRY_RATING_SHORT = "Score de parade";
ITEM_MOD_POWER_REGEN0_SHORT = "Points de mana toutes les 5 sec.";
ITEM_MOD_POWER_REGEN1_SHORT = "Points de rage toutes les 5 sec.";
ITEM_MOD_POWER_REGEN2_SHORT = "Points de focalisation toutes les 5 sec.";
ITEM_MOD_POWER_REGEN3_SHORT = "Points d'énergie toutes les 5 sec.";
ITEM_MOD_POWER_REGEN4_SHORT = "Points de satisfaction toutes les 5 sec.";
ITEM_MOD_POWER_REGEN5_SHORT = "Runes toutes les 5 sec.";
ITEM_MOD_POWER_REGEN6_SHORT = "Points de puissance runique toutes les 5 sec.";
ITEM_MOD_RANGED_ATTACK_POWER = "Augmente la puissance d'attaque à distance de %d.";
ITEM_MOD_RANGED_ATTACK_POWER_SHORT = "Puissance d'attaque à distance";
ITEM_MOD_RESILIENCE_RATING = "Augmente de %d le score de résilience.";
ITEM_MOD_RESILIENCE_RATING_SHORT = "Score de résilience";
ITEM_MOD_SPELL_DAMAGE_DONE = "Augmente les dégâts des sorts et des effets magiques d'un maximum de %d.";
ITEM_MOD_SPELL_DAMAGE_DONE_SHORT = "Bonus aux dégâts";
ITEM_MOD_SPELL_HEALING_DONE = "Augmente les soins des sorts et des effets magiques d'un maximum de %d.";
ITEM_MOD_SPELL_HEALING_DONE_SHORT = "Bonus aux soins";
ITEM_MOD_SPELL_PENETRATION = "Augmente la pénétration des sorts de %d.";
ITEM_MOD_SPELL_PENETRATION_SHORT = "Pénétration des sorts";
ITEM_MOD_SPELL_POWER = "Augmente la puissance des sorts de %d.";
ITEM_MOD_SPELL_POWER_SHORT = "Puissance des sorts";
ITEM_MOD_SPIRIT = "%c%d Esprit";
ITEM_MOD_SPIRIT_SHORT = "Esprit";
ITEM_MOD_STAMINA = "%c%d Endurance";
ITEM_MOD_STAMINA_SHORT = "Endurance";
ITEM_MOD_STRENGTH = "%c%d Force";
ITEM_MOD_STRENGTH_SHORT = "Force";
--]]

--/script DBcorps_ListObjets_MAJ();

--MDX	M2
--item/objectcomponents/
--	ammo
--	battlestandards
--	head
--	pouch
--	quiver
--	shield
--	shoulder
--	weapon
--/script DEFAULT_CHAT_FRAME:AddMessage("Shift-click this to place a link into a chat message: \124cffa335ee\124Hitem:44168:0:0:0:0:0:0:0:0\124h[Reins of the Time-Lost Proto-Drake]\124h\124r");

--icon = GetItemIcon(itemId or itemName or itemLink or itemString) 

--transmut
--vie -> feu	: hyjal
--vie -> terre	: tréfond
--vie -> air	: uldum
--http://thottbot.com/i52328
--vie -> eau	: vashjir

--http://fr.wowhead.com/?achievement=1311
--http://fr.wowhead.com/?achievement=5518

--http://worldofwarcraft.judgehype.com/index.php?page=bc-obj&w=45570
--http://worldofwarcraft.judgehype.com/index.php?page=bc-obj&w=42108


--http://www.wowhead.com/?item=63042

--drake de pierre phosphorescent		--aeonaxx	--le tréfonds
--http://www.wowhead.com/?item=63042
--http://thottbot.com/i63042
--http://thottbot.com/i18232
--http://thottbot.com/i10394
--http://db.mmo-champion.com/i/63042/
--http://db.mmo-champion.com/i/18232/
--http://thottbot.com/m50058
--http://db.mmo-champion.com/c/50058/
--http://www.wowhead.com/npc=50058
--http://www.wowhead.com/npc=50058
--m50062
--m51236
--m51267

--49822		->	Jadecroc								Tréfond
--49913		->	Dame La-La								Vashj'ir	kelp'thar forest
--50005		->	Poséidus								Vashj'ir	shimmering expanse
--50009		->	Mobus									Vashj'ir	world boss
--50050		->	Shok'sharak								Vashj'ir	profondeur abyssales
--50051		->	Clampant fantôme						Vashj'ir	profondeurs abyssales	Récif abandonné
--50052		->	Burgy coeur-noir						Vhasj'ir2	shimmering expanse
--50053		->	Thartuk l'exilé							Hyjal
--50056		->	Garr									Hyjal		world boss
--50057		->	Ailembrase								Hyjal
--50058		->	Terrorpene								Hyjal
--50059		->	Golgarok								Tréfond
--50060		->	Terborus								Tréfond
--50061		->	Xariona									Tréfond		world boss
--50062		->	Aeonaxx									Tréfond
--50063		->	Akma'hat								Uldum		world boss
--50064		->	Cyrus le noir							Uldum
--50065		->	Armagedillo								Uldum
--50085		->	Suzerain fractefurie					Crépuscule
--50086		->	Tarvus le vil							Crépuscule
--50089		->	Julak-dram								Crépuscule
--50138		->	Karoma									Crépuscule
--50154		->	Madexx		jaune						Uldum
--50159		->	Samba									Crépuscule
--50245		->	boss du chameau gris
--50409		->	Figurine de dromadaire mystérieuse		Uldum
--50410		->	Figurine de dromadaire mystérieuse		Uldum
--50411		->	Figurine de dromadaire mystérieuse		Uldum
--51071		->	capitaine florence						Vashj'ir	shimmering expanse
--51079		->	capitaine foulwind						Vashj'ir	shimmering expanse
--51236		->	Aeonaxx ( neutre )
--51401		->	Madexx		rouge						Uldum
--51402		->	Madexx		vert						Uldum
--51403		->	Madexx		noir						Uldum
--51404		->	Madexx		bleu						Uldum

--/script i=i+1;DEFAULT_CHAT_FRAME:AddMessage(i);SetItemRef("currency:"..i)
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@blabla@-3@51663@@"))

--http://thottbot.com/i1000
--http://thottbot.com/i46109
--http://thottbot.com/i52506
--http://thottbot.com/i54811
--http://thottbot.com/i54847
--http://thottbot.com/i8831

--http://db.mmo-champion.com/i/37000/

--http://db.mmo-champion.com/i/52200/

--http://wow.allakhazam.com/db/item.html?witem=46067&source=live&locale=frFR

--http://www.wowhead.com/?item=67538

--http://www.wowhead.com/?item=45870#comments
--http://www.wowhead.com/?item=42342
--http://www.wowhead.com/?item=45180
--http://www.wowhead.com/?item=44591
--http://www.wowhead.com/?item=45607
--http://www.wowhead.com/?item=46067
--http://www.wowhead.com/?item=49227
--http://www.wowhead.com/?item=49623
--http://www.wowhead.com/?item=50250
--http://www.wowhead.com/?item=54811
--http://www.wowhead.com/?item=54847

--http://www.wowhead.com/?item=69239
--http://www.wowhead.com/?item=69648

--http://www.wowarmory.com/item-info.xml?i=69239
--http://www.wowarmory.com/item-info.xml?i=69600
--http://eu.battle.net/wow/fr/item/69239

--http://www.wowarmory.com/item-info.xml?i=17199

--http://eu.wowarmory.com/item-info.xml?i=42108
--http://eu.wowarmory.com/item-info.xml?i=45458


--http://eu.wowarmory.com/item-info.xml?i=45947

--http://eu.wowarmory.com/item-info.xml?i=27000
--http://eu.wowarmory.com/item-info.xml?i=28054
--http://eu.wowarmory.com/item-info.xml?i=28456

--http://eu.wowarmory.com/item-info.xml?i=44168
--http://eu.wowarmory.com/item-info.xml?i=44175
--http://eu.wowarmory.com/item-info.xml?i=44721
--http://eu.wowarmory.com/item-info.xml?i=44784
--http://eu.wowarmory.com/item-info.xml?i=37702
--http://eu.wowarmory.com/item-info.xml?i=42105

--http://eu.wowarmory.com/item-info.xml?i=41819

--http://eu.wowarmory.com/item-info.xml?i=29874

--http://eu.wowarmory.com/item-info.xml?i=1203
--http://eu.wowarmory.com/item-info.xml?i=9509

--http://eu.wowarmory.com/item-info.xml?i=40402
--http://eu.wowarmory.com/item-info.xml?i=41819
--http://eu.wowarmory.com/item-info.xml?i=41402

--/script GameTooltip:SetHyperlink("quest:11669")

--/script SetItemRef("spell:6660")

--/script SetItemRef("spell:533")
--/script SetItemRef("spell:631")
--/script SetItemRef("spell:6660")
--/script SetItemRef("spell:9532")
--/script SetItemRef("spell:19506")
--/script SetItemRef("spell:26904")
--/script SetItemRef("spell:27905")
--/script SetItemRef("spell:27910")
--/script SetItemRef("spell:28250")
--/script SetItemRef("spell:42615")
--/script SetItemRef("spell:51304")
--/script SetItemRef("spell:51309")
--/script SetItemRef("spell:51311")
--/script SetItemRef("spell:51313")
--/script SetItemRef("spell:51663")
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@blabla@-3@51663@@"))
--/script SetItemRef("spell:68136")

--/script SetItemRef("spell:48108")

--/script SetItemRef("item:71086")
--/script SetItemRef("item:33475")
--/script SetItemRef("item:37297")
--/script SetItemRef("item:36762")
--/script SetItemRef("item:13262")
--/script SetItemRef("item:3226")
--/script SetItemRef("item:41")
--/script SetItemRef("item:192")
--/script SetItemRef("item:941")
--/script SetItemRef("item:2812")

--/script SetItemRef("item:960")

--/script SetItemRef("item:34246")
--/script SetItemRef("item:34387")
--/script SetItemRef("item:35188")
--/script SetItemRef("item:35220")
--/script SetItemRef("item:35828")
--/script SetItemRef("item:35874")
----/script SetItemRef("item:35906")
----/script SetItemRef("item:35945")
--/script SetItemRef("item:36737")
--/script SetItemRef("item:36738")

--/script SetItemRef("item:37901")

--/script SetItemRef("item:38628")

--/script SetItemRef("item:39149")
--/script SetItemRef("item:39656")

--/script SetItemRef("quest:9613")
--/script SetItemRef("quest:9615")
--/script SetItemRef("quest:9655")
--/script SetItemRef("quest:9661")
--/script SetItemRef("quest:10787")
--/script SetItemRef("quest:27611")

--/script DressUpItemLink("item:34334:0:0:0:0:0:0:0");
--/script DressUpItemLink("item:37740:0:0:0:0:0:0:0");

--/script SetItemRef("spell:32")

--enchant
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@blabla@-1@46106@@"))
--quete
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@blabla@-2@00011@@"))
--sort
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@blabla@-3@00011@@"))

--	armurerie
--/script SetItemRef("item:28054")
--/script SetItemRef("item:31665")
--/script SetItemRef("item:32148")
--/script SetItemRef("item:32543")
--/script SetItemRef("item:32544")

--/script DBOS[4608][9] = nil;

--/script DBOS[192] = nil;

-- TraceFrame = ChatFrame#; # = 1 ou 2 ou 3 etc
--/script DEFAULT_CHAT_FRAME:AddMessage("enchant num "..i.." : "..DBOS_getlinkitem("Arme ultime",8088,6,"e"))
--CMS_GetItemLink
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@arme ultime@1@10000@@"))
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\133")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\134")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\151")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\152")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\153")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\154")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\157")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\158")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\159")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\161")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\163")
--/script DEFAULT_CHAT_FRAME:AddMessage("\195\165")
--/script DEFAULT_CHAT_FRAME:AddMessage("\197\146")
--/script DEFAULT_CHAT_FRAME:AddMessage("\197\147")
--/script DEFAULT_CHAT_FRAME:AddMessage(DBobjets.DBOS_extract_i)

--/script DBCS_ecrirecodedutexte(GameTooltipTextLeft8:GetText())
--/script DBCS_ecrirecodedutexte(WhoFrameButton1Variable:GetText())
--/script DBCS_ecrirecodedutexte(ItemRefTooltipTextLeft1:GetText())
--/script DBCS_ecrirecodedutexte(ItemRefTooltipTextLeft2:GetText())
--/script DBCS_ecrirecodedutexte(ItemRefTooltipTextLeft3:GetText())
--/script DBCS_ecrirecodedutexte(ItemRefTooltipTextLeft4:GetText())
--/script DBCS_ecrirecodedutexte(ItemRefTooltipTextLeft5:GetText())
--/script DBCS_ecrirecodedutexte(ItemRefTooltipTextLeft6:GetText())
--/script DBCS_ecrirecodedutexte(ItemRefTooltipTextLeft7:GetText())
--/script DBCS_ecrirecodedutexte(ItemRefTooltipTextRight7:GetText())

--/script DBCS_ecrirecodedutexte("|")

--/script DBCS_ecrirecodedutexte(WhoFrameButton1Variable:GetText())
--/script DBCS_ecrirecodedutexte(GetRealZoneText())

--/script DBCS_ecrirecodedutexte({GetChannelName(1)}[2])

--/script DBCS_ecrirecodedutexte(a)
--/script _, a = GetChannelName(1);
--/script DBCS_ecrirecodedutexte(DBCS_RegionData[0][51].name)
--/script DBCS_ecrirecodedutexte("'")
--/script DBCS_ecrirecodedutexte(ChatMondialServeurRegionData[0][51].name)

--/script i = 0;
--/script i=i+1;DBCS_ecrirecodedutexte(DBCS_RegionData[3][i].name)

--bit.band(uniqueId, 65535)

--/script DEFAULT_CHAT_FRAME:AddMessage(bit.band(1828782119, 65535))
--/script DEFAULT_CHAT_FRAME:AddMessage(bit.band(270401588, 65535))
--/script SetItemRef("item:24661:0:0:0:0:0:-14:2074214439")
--/script SetItemRef("item:24771:0:0:0:0:0:-40:0")
--/script SetItemRef("item:24771:0:0:0:0:0:-63:0")
--/script SetItemRef("item:24661:0:0:0:0:0:-40:0")

--/script SetItemRef("item:23571:2661:0:0:0:0:0:0")

----/script DBOS_oeilducyclone()
--function DBOS_oeilducyclone()
--
--	local a;
--	
--	_, _, _, _, _, a = GetWhoInfo(1);
--
--	DBCS_ecrirecodedutexte(a);
--
--end
--/script DEFAULT_CHAT_FRAME:AddMessage({GetWhoInfo(1)})


--	<Script file="DBobjets_prices.lua">
--	</Script>

--	Informant.SetVendorSell[]

--/script SetItemRef("unit:010000000081D552")
--/script i = 0;
--/script SetItemRef("unit:010000000000000A")

--/script SetItemRef("achievement:"..i..":010000000081D552:1:2:13:20:0:0:0:0")

--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@\195\137dition collector\194\160: wyrmelet de givre@-5@683:00000000006C73ED:1:2:13:20:0:0:0:0@@"))
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@\195\137dition collector\194\160: wyrmelet de givre@-5@683:F55000743928407F:1:2:13:20:0:0:0:0@@"))
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@Le fric, c'est chic@-4@1181:0000000000067EC0:1:10:13:18:0:0:0:0@@"))
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@Cogn'Baff de course@-5@1706:00000000006C73ED:1:10:13:18:0:0:0:0@@"))
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@Une fontaine en or@-5@1957:0000000000067EC0:1:10:13:18:0:0:0:0@@"))
--/script DEFAULT_CHAT_FRAME:AddMessage(CMS_GetItemLink("@@Z'ai cru voir un gros rat@-5@1958:00000000006C73ED:1:10:13:18:0:0:0:0@@"))

local DBOS_extract_nb = 0;
local DBOS_extract_i = 0;
DBOS_extract_imin = 0;
DBOS_extract_imax = 0;
DBOS_extract_time = 0;
local DBOS_extract_lasttime = 0;
local DBOS_extract_valid = 0;
DBOS_chrono1 = false;

local DBOS_idatebase;
local DBOS_bnouveau;

local DBOS_dejaenreg = {};

--/script SetItemRef("item:0:0:0:0")
--/script SetItemRef("item:0")
--/script SetItemRef("item:8630")
--/script SetItemRef("item:34484")
--/script SetItemRef("item:34486")
--/script SetItemRef("item:33389")
--/script SetItemRef("item:20689")
--/script SetItemRef("item:50000")
--/script SetItemRef("item:32838")
--/script SetItemRef("item:27388:0:0:0")	-- en peche
--/script SetItemRef("item:10752:0:0:0")
--/script SetItemRef("item:21950:0:0:0:0:0:0:0")
--/script SetItemRef("item:23425:0:0:0:0:0:0:0")
--/script SetItemRef("item:0:0:0:0:0:0:0:0")
--/script SetItemRef("item:22542:0:0:0:0:0:0:0")
--/script DBcorpsFrame_Tooltip3:SetHyperlink("item:12")
--/script GameTooltip:SetHyperlink("item:12")

--/script DBOS_enchant = {};
-- DBOS_enchant	1 objet =
--			[1]	nomobjetcourt		= "Tissu runique"
--			[2]	rarity			= 0 to 6
--			[3]	levelmin			= 0
--			[4]	type			= ""
--			[5]	subtype			= ""
--			[6]	stack			= 1 à 250
--			[7]	equiploc			= ""
--			[8]	nomobjet
--			[9]	numobjet		= {}
--					[inumobjet]		=	1	( 1 à 40 000 )
--			[10]	inumplan		= {}
--					[inumobjet]		=	1	( 1 à 40 000 )
--	x		[48]	date et heure de création

-- DBOS	1 objet =
--		1 numcourt				= 14047
--			[0]	sauvegarde		= 1
--	x		[1]	nomobjetcourt		= "Tissu runique"
--	x		[2]	rarity			= 0 to 6
--	x		[3]	levelmin			= 0
--	x		[4]	type			= ""
--	x		[5]	subtype			= ""
--			[6]	stack			= 1 à 250
--	x		[7]	equiploc			= ""
--			[8]	icon			= ""
--			[9]	coffre		= 1 ou nil;		-- si cet objet peut contenir des objets
--			[10]	prix			= nb ou nil;		-- prix de revente de cet objet à l'unité au marchand
--			[11]	niveau estimé	= 0

--			[12]	skill			= 1 à 300
--	x		[13]	armure		= 0 à 1500
--	x		[14]	dps			= 0.01 à 200.99
--			[15]	classe		= 01@02@ ... @09@
--	x		[16]	unique		= 1
--	x		[17]	vitesse		= 1.00 à 5.00 sec
--	x		[18]	blocage		= 1 à 200
--	x		[19]	dégats min		= 1 à 300
--	x		[20]	dégats max		= 1 à 300
--	x		[22]	résist arcanes	= 1 à 300
--	x		[23]	résist feu		= 1 à 300
--	x		[24]	résist nature	= 1 à 300
--	x		[25]	résist givre		= 1 à 300
--	x		[26]	résist ombre	= 1 à 300
----			[27]	équipé soins des sorts et effets			Equipé : Augmente les soins prodigués par les sorts et effets de 46 au maximum.
----			[27]	équipé soins des sorts et effets			Eéquipé : Augmente les soins prodigués par les sorts et effets de 46 au maximum.
--			[27]	équipé soins des sorts et effets			Eéquipé : Augmente les soins prodigués d'un maximum de 90 et les dégâts d'un maximum de 30 pour tous les sorts et effets magiques.
--			["27A"]
----			[28]	équipé mana par 5 sec					Equipé : Rend 6 points de mana toutes les 5 secondes.
--	x		[28]	équipé mana par 5 sec					Eéquipé : Rend 6 points de mana toutes les 5 secondes.
----			[30]	équipé dégats et soins des sorts et effets		Equipé : Augmente les dégâts et les soins produits par les sorts et effets magiques de 36 au maximum.
--	x		[30]	équipé dégats et soins des sorts et effets		Eéquipé : Augmente les dégâts et les soins produits par les sorts et effets magiques de 36 au maximum.
----			[31]	équipé défense						Equipé : Défense augmentée de 9.
--	x		[31]	équipé défense						Eéquipé : Augmente le score de défense de 24.
----			[32]	équipé augmente score blocage bouclier		Equipé : Augmente le score de blocage de votre bouclier de 19.
--	x		[32]	équipé augmente score blocage bouclier		Eéquipé : Augmente de 14 le score de blocage.
----			[33]	équipé chances toucher					Equipé : Augmente vos chances de toucher de 1%.
--	x		[33]	équipé chances toucher					Eéquipé : Augmente de 22 le score de toucher.
----			[34]	équipé chances toucher avec sorts			Equipé : Augmente vos chances de toucher avec des sorts de 1%.
--	x		[34]	équipé chances toucher avec sorts			Equipé : Augmente de 15 le score de toucher des sorts.
----			[35]	équipé coup critique					Equipé : Augmente vos chances d'infliger un coup critique de 1%.
--	x		[35]	équipé coup critique					Equipé : Augmente de 33 le score de coup critique.
----			[36]	équipé coup critique sorts				Equipé : Augmente vos chances d'infliger un coup critique avec vos sorts de 1%.
--	x		[36]	équipé coup critique sorts				Eéquipé : Augmente de 23 le score de coup critique des sorts.
----			[37]	équipé puissance attaque				Equipé : +24 à la puissance d'attaque.
--	x		[37]	équipé puissance attaque				Eéquipé : Augmente de 24 la puissance d'attaque.
--	x		[46]	lié			= 1 équipé 2 ramassé 3 utilisé 
--	x		[47]	Cet objet permet de lancer une quête
--	x		[48]	date et heure de création
--	x		[49]	nom réputation
--	x		[50]	niveau réputation
--	x		[54]	équipé score résilience					Equipé : Augmente de 11 le score de résilience.
--	x		[56]	Force								+21 Force
--	x		[57]	Agilité							+21 Agilité
--	x		[58]	Endurance							+21 Endurance
--	x		[59]	Intelligence						+21 Intelligence
--	x		[60]	Esprit							+21 Esprit
--			[61]	équipé attaque ignore armure				Eéquipé : Vos attaques ignorent 84 points de l'armure de votre adversaire.
--			[62]	type de dégats	= Arcanes, Feu, Nature, Givre, Ombre, Sacré
--			[70]	bprixspécial						0 ou 1
--			[71]	sdatemajprix						"20071124"
--			[72]	iprix								>0 ou nil
--													local factionGroup = UnitFactionGroup("player");
--			[73]	ihonneur							>0 ou nil;		"Interface\\TargetingFrame\\UI-PVP-"	+	factionGroup
--			[74]	iarene							>0 ou nil;		"Interface\\PVPFrame\\PVP-ArenaPoints-Icon"
--			[75]	stex1								"29434:10"
--			[76]	stex2								"32572:1"
--			[77]	stex3								"32569:50"
--		sdate = DBCS_date();

--			[80]	description							"blabla sur l'objet"
--			[81]	dégats projectiles						Ajoute 46.5 dégâts par seconde
--			[82]	objet aléatoire						cet objet peut avoir n'importe quelle stats de carac
--			[83]	bonus équipé inconnus
--			[84]	bonus utiliser inconnus
--			[85]	+5 - 10 points de dégâts (Arcanes)
--			[86]	+5 - 10 points de dégâts (Arcanes)
--			[87]	+5 - 10 points de dégâts (Feu)
--			[88]	+5 - 10 points de dégâts (Feu)
--			[89]	+5 - 10 points de dégâts (Nature)
--			[90]	+5 - 10 points de dégâts (Nature)
--			[91]	+6 - 60 points de dégâts (Givre)
--			[92]	+6 - 60 points de dégâts (Givre)
--			[93]	+5 - 10 points de dégâts (Ombre)
--			[94]	+5 - 10 points de dégâts (Ombre)
--			[95]	+5 - 10 points de dégâts (Sacré)
--			[96]	+5 - 10 points de dégâts (Sacré)
--			[97]	bonus : Chances quand vous touchez, inconnus
--			[98]	{}	inumobjet	objets fabriqués par le plan
--			[99]	texte du bonus de sertissage
--			[100]	Objet invoqué
--			[101]	Unique (10)
--			[102]	Durée\194\160: 7 jours
--			[103]	Objet de quête
--			[104]	Lier au compte
--			[105]	équipé score expertise					Equipé : Augmente votre score d'expertise de 31
--			[106]	équipé puissance sorts					Equipé : Augmente la puissance des sorts de 31.
--			[107]	équipé score hâte						Equipé : Augmente de 43 le score de hâte.
--			[108]	équipé score pénétration armure			Equipé : Augmente de 43 votre score de pénétration d'armure.
--			[109]	Héroïque
--			[110]	date extract lignes objet
--			[111]	version fichier extract lignes objet


--			[51]	équipé score parade					Equipé : Augmente de 16 le score de parade.
--			[52]	équipé pénétration sorts					Equipé : Augmente la pénétration de vos sorts de 13.
--			[53]	équipé puissance d'attaque druide			Equipé : Augmente de 333 la puissance d'attaque pour les formes de félin, d'ous, d'ours redoutable et de sélénien uniquement.
--			[55]	équipé puissance attaque distance			Equipé : Augmente la puissance des attaques à distance de 24.


--			[21]	art_spe_type	= travail du cuir d'écailles de dragon
--			[29]	équipé vie par 5 sec					Equipé : Rend x points de vie toutes les 5 sec.

--			[38]	équipé puissance attaque distance			Equipé : +36 à la puissance des attaques à distance.
--			[39]	équipé valeur blocage bouclier				Equipé : Augmente la valeur de blocage de votre bouclier de 32.
--			[40]	équipé score esquive					Equipé : Augmente de 16 le score d'esquive.
--			[41]	équipé dégats des sorts et effets de arcanes	Equipé : Augmente les dégâts infligés par les sorts et effets des Arcanes de 69 au maximum.
--			[42]	équipé dégats des sorts et effets de feu		Equipé : Augmente les dégâts infligés par les sorts et effets de Feu de 34 au maximum.
--			[43]	équipé dégats des sorts et effets de nature		Equipé : Augmente les dégâts infligés par les sorts et effets de Nature de 69 au maximum.
--			[44]	équipé dégats des sorts et effets de givre		Equipé : Augmente les dégâts infligés par les sorts et effets de Givre de 21 au maximum.
--			[45]	équipé dégats des sorts et effets de ombre		Equipé : Augmente les dégâts infligés par les sorts et effets d'Ombre de 69 au maximum.

--			[xx]									Eéquipé : Vos attaques ignorent 84 points de l'armure de votre adversaire.


--			[]	équipé all résist						Equipé : +5 à toutes les résistances.
--			[]	équipé dégats des sorts et effets de sacré		Equipé : Augmente les dégâts infligés par les sorts et effets du Sacré de 16 au maximum.
--			[]	équipé diminue résist magique sorts cibles		Equipé : Diminue les résistances magiques des cibles de vos sorts de 20.
--			[]	équipé respirer sous l'eau				Equipé : Permet de respirer sous l'eau.
--			[]	équipé augmente armure					Equipé : Augmente l'Armure de 300 pendant 10 sec.
--			[]	équipé augmente niveau camouflage			Equipé : Augmente votre niveau de Camouflage actuel.
--			[]	équipé augmente dégats familier			Equipé : Augmente les dégâts infligés par votre familier de 3%.
--			[]	équipé augmente durée sprint				Equipé : Augmente la durée de votre technique Sprint de 3 sec.
--			[]	équipé augmente vitesse loup fantome		Equipé : Augmente la vitesse de votre Loup fantôme de 15%.
--			[]	équipé + all résist						Equipé : +5 à toutes les résistances.
--			[]	équipé frappé sort offensif silence sur lanceur	Equipé : Quand vous êtes frappé par un sort offensif, 5% de chances que le lanceur de ce sort soit réduit au silence pendant 3 sec.
--			[]	équipé							Equipé : Lorsque vous êtes touché en combat etc ....

-- DBOS_bynom	1 objet =
--			1 nomobjet
--				1 numcourt
--					numobjet
--			[20]	nomlongtable		= { }
--			[20]		nomlong		= "Arc d'agilité"
--			[20]			numlongbase	= "0:150:214"
--			[20]			numlongtable	= { }
--			[20]				"0:150:215" = 1
--
--	args = GetItemInfo(itemID | "itemString");
--	[edit]Arguments 
--	(itemID or "itemString") 
--	itemID 		Integer - The numeric ID of the item. ie. 12345 
--	"itemString" 	String - The full item ID in string format. ie. "item:12345:0:0:0" 
--	[edit]Returns 
--	itemName, itemLink, itemRarity, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture 
--	itemName		String - The name of the item. 
--	itemLink		String - The item link ie. "item:12345:0:0:0". 
--	itemRarity		Integer - The value is 0 to 6, which represents Poor to Artifact. 
--	itemLevel
--	itemMinLeveL	Integer - The minimum level required to use the item, 0 being no level requirement. 
--	itemType		String - The type of the item. Armor, Weapon, Quest, Key, etc. 
--	itemSubType	String - The sub type of the item. Enchanting, Cloth, Sword, etc. 
--	itemStackCount	Integer - How many of the item per stack. ie. 20 for Runecloth, 1 for weapon, 100 for Alterac Ram Hide, etc. 
--	itemEquipLoc	String - Equip location of the item specified. The string contains the name a global string variable, such as "INVTYPE_HEAD", which contains the localized name of the location. 
--	itemTexture	String - The name and path for the inventory icon texture for the item. 

--	local DBOS_bynom;

--[[
Saved_DBOS_GetItemInfo = GetItemInfo;
function DBOS_GetItemInfo(snumlong)

local itemName;
local itemLink;
local itemRarity;
local itemLevel;
local itemMinLevel;
local itemType;
local itemSubType;
local itemStackCount;
local itemEquipLoc;
local itemTexture;
local itemSellPrice;

local inumobjet;
local stype;
local sval1;

	inumobjet = nil;
	if ( type(snumlong) == "string" ) then
		stype, sval1 = strsplit(snumlong,":");
		if ( strlower(stype) == "item" ) then
			inumobjet = tonumber(sval1);
		end
	elseif ( type(snumlong) == "number" ) then
		inumobjet = snumlong;
	end
	if ( inumobjet and DBOS[inumobjet] and DBOS[inumobjet][48] and DBOS[inumobjet][1] and DBOS[inumobjet][1] == "" ) then
TraceFrame:AddMessage("DBOS_GetItemInfo mauvais : "..snumlong);
		itemName = nil;
		itemLink = nil;
		itemRarity = nil;
		itemLevel = nil;
		itemMinLevel = nil;
		itemType = nil;
		itemSubType = nil;
		itemStackCount = nil;
		itemEquipLoc = nil;
		itemTexture = nil;
		itemSellPrice = nil;
	else
		itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture, itemSellPrice = Saved_DBOS_GetItemInfo(snumlong);
	end
	return itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture, itemSellPrice;

end
GetItemInfo = DBOS_GetItemInfo;
--]]

DBobjets_link_dboa_inumobjet = 0;
DBobjets_link_dboa_i6 = 0;
DBobjets_link_dboa_i7 = 0;

function DBobjets_link_dboa_OnClick(inumobjet)

local slink;

	if ( DBobjets_link_dboa_inumobjet == inumobjet ) then
		slink = "item:"..inumobjet..":0:0:0:0:0:"..DBobjets_link_dboa_i6..":"..DBobjets_link_dboa_i7..":0:0:0";
	else
		slink = DBobjets_link_dboa_OnEnter(inumobjet);
	end
	
	return slink;

end

function DBobjets_link_dboa_OnEnter(inumobjet)

local slink;
local slink_fin;
local iqualite;
local iniveau;
local i6;
local i7;
local i;
local tablo;
local tablo_dboa;
local inb;
local irand;
local tobjet = nil;

	slink = "item:"..inumobjet..":0:0:0:0:0:";
	slinkfin = "0:0";
	if ( inumobjet > 50000 ) then
		tobjet = DBOS02[inumobjet];
	else
		tobjet = DBOS01[inumobjet];
	end
	if ( tobjet[82] and tobjet[82] == 1 ) then
		--DBOA_objets
		iqualite = tobjet[2];
		iniveau = tobjet[11];
		tablo_dboa = nil;
		if ( DBOA and DBOA[iqualite] and DBOA[iqualite][iniveau] ) then
			tablo_dboa = DBOA[iqualite][iniveau];
		elseif ( DBOA_objets and DBOA_objets[iqualite] and DBOA_objets[iqualite][iniveau] ) then
			tablo_dboa = DBOA_objets[iqualite][iniveau];
		end
		if ( tablo_dboa ) then
			inb = 0;
			tablo = {};
			for i, _ in pairs(tablo_dboa) do
				if ( i == 0 ) then
				else
					inb = inb + 1;
					tablo[inb] = i;
				end
			end
			if ( inb > 0 ) then
				irand = random(1,inb);
				i6 = tablo[irand];
			else
				i6 = 0;
			end
			if ( i6 < 0 ) then
				inb = 0;
				tablo = {};
				for i, _ in pairs(tablo_dboa[i6]) do
					inb = inb + 1;
					tablo[inb] = i;
				end
				if ( inb > 0 ) then
					irand = random(1,inb);
					i7 = tablo[irand];
				else
					i7 = 0;
				end
			else
				i7 = 0;
			end
			slinkfin = ""..i6..":"..i7;
			DBobjets_link_dboa_inumobjet = inumobjet;
			DBobjets_link_dboa_i6 = i6;
			DBobjets_link_dboa_i7 = i7;
		end
	else
	end
	slink = slink..slinkfin..":0:0:0";
	
	return slink;

end

function DBOS_objetsbons(sdate,numobjet,ispecial,ivaleur1,ivaleur2,ivaleur3,svaleur4,svaleur5,svaleur6)

local tobjet = nil;

--	DBCS_date

	if ( numobjet > 50000 ) then
		tobjet = DBOS02[numobjet];
	else
		tobjet = DBOS01[numobjet];
	end
	if ( tobjet ) then
		if ( tonumber(sdate) >= tonumber(tobjet[71] or "0") ) then
			if ( ispecial and ispecial == 1 ) then
				if ( ivaleur1 and ivaleur1 == 0 ) then
					ivaleur1 = nil;
				end
				if ( ivaleur2 and ivaleur2 == 0 ) then
					ivaleur2 = nil;
				end
				if ( ivaleur3 and ivaleur3 == 0 ) then
					ivaleur3 = nil;
				end
				if ( svaleur4 and svaleur4 == "" ) then
					svaleur4 = nil;
				end
				if ( svaleur5 and svaleur5 == "" ) then
					svaleur5 = nil;
				end
				if ( svaleur6 and svaleur6 == "" ) then
					svaleur6 = nil;
				end
				tobjet[70] = 1;
				tobjet[72] = ivaleur1;
				tobjet[73] = ivaleur2;
				tobjet[74] = ivaleur3;
				tobjet[75] = svaleur4;
				tobjet[76] = svaleur5;
				tobjet[77] = svaleur6;
			else
				tobjet[70] = nil;
				tobjet[72] = nil;
				tobjet[73] = nil;
				tobjet[74] = nil;
				tobjet[75] = nil;
				tobjet[76] = nil;
				tobjet[77] = nil;
			end
			tobjet[71] = sdate;
		end
	end
	if ( numobjet > 50000 ) then
		DBOS02[numobjet] = tobjet;
	else
		DBOS01[numobjet] = tobjet;
	end
end

--/script DBobjets_force_creation_objet()
--/script DBobjets_force_creation_objet(22520)
--/script DBobjets_force_creation_objet(28401)
--/script DBobjets_force_creation_objet(34486)
--/script DBobjets_force_creation_objet(37297)
--/script DBobjets_force_creation_objet(39477)
--/script DBobjets_force_creation_objet(39656)
function DBobjets_force_creation_objet(inumobjet)

	SetItemRef("item:"..inumobjet..":0:0:0:0:0:0:0:0:0:0");
	DBobjets_initobjet(inumobjet);

end

function DBobjets_OnLoad(self)

if ( GetLocale() == "frFR" ) then

	self:RegisterEvent("VARIABLES_LOADED");

--	self:RegisterEvent("CHAT_MSG_LOOT");
--	self:RegisterEvent("ITEM_PUSH");
--	self:RegisterEvent("LOOT_CLOSED");
--	self:RegisterEvent("LOOT_OPENED");
--	self:RegisterEvent("LOOT_SLOT_CLEARED");
--	self:RegisterEvent("UNIT_LEVEL");

-- Register our slash command
--	SLASH_LOOTMOB1 = "/lootmob";
--	SLASH_LOOTMOB2 = "/lm";
--	SlashCmdList["LOOTMOB"] = function(msg)
--		Lootmob_SlashCommandHandler(msg);
--	end

end

end

function DBobjets_OnEvent(self,event)

local slangue;
local idate;
local i;
local befface;
local tobjet = nil;

	if ( event == "VARIABLES_LOADED" ) then
		DBobjets_init();
--	if ( event == "UNIT_LEVEL" ) then
--		DBOS_afficherevent(event,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
--	if ( event == "CHAT_MSG_COMBAT_HOSTILE_DEATH" ) then
--DBOS_afficherevent(event,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9);
--	elseif ( event == "CHAT_MSG_COMBAT_CREATURE_VS_CREATURE_HITS" ) then
		DBOS_idatebase = DBOS_config["datebase"];
		if ( DBOS_idatebase == nil ) then
			DBOS_idatebase = -1;
		end
		if ( DBCS_data_Objets_LOADED and DBCS_data_Objets_LOADED == true ) then
		else
			--ajoute les objets déjà découvert qui ne sont pas ds la base localisée fixe
			slangue = GetLocale();
			if ( DBOS01 and DBobjets_Client and DBobjets_Client[slangue] ) then
				for idate, _ in pairs(DBobjets_Client[slangue]) do
					for i, _ in pairs(DBobjets_Client[slangue][idate]) do
						tobjet = nil;
						if ( i > 50000 ) then
							tobjet = DBOS02[i];
						else
							tobjet = DBOS01[i];
						end
						befface = false;
						if ( tobjet and tobjet[48] ) then
							befface = true;
						end
						if ( tobjet == nil or ( tobjet and tobjet[48] == nil ) ) then
							tobjet = DBobjets_Client[slangue][idate][i];
						end
						if ( befface == true ) then
							DBobjets_Client[slangue][idate][i] = nil;
						end
						if ( i > 50000 ) then
							DBOS02[i] = tobjet;
						else
							DBOS01[i] = tobjet;
						end
					end
				end
			end
		end
	end

end

--/script DBobjets_initobjets(1,1000)
--/script DBobjets_initobjets(1001,2000)
--/script DBobjets_initobjets(2001,3000)
--/script DBobjets_initobjets(3001,4000)
--/script DBobjets_initobjets(4001,5000)
--/script DBobjets_initobjets(5001,6000)
--/script DBobjets_initobjets(6001,7000)
--/script DBobjets_initobjets(7001,8000)
--/script DBobjets_initobjets(8001,9000)
--/script DBobjets_initobjets(9001,10000)
--/script DBobjets_initobjets(10001,11000)
--/script DBobjets_initobjets(11001,12000)
--/script DBobjets_initobjets(12001,13000)
--/script DBobjets_initobjets(13001,14000)
--/script DBobjets_initobjets(14001,15000)
--/script DBobjets_initobjets(15001,16000)
--/script DBobjets_initobjets(16001,17000)
--/script DBobjets_initobjets(17001,18000)
--/script DBobjets_initobjets(18001,19000)
--/script DBobjets_initobjets(19001,20000)
--/script DBobjets_initobjets(20001,21000)
--/script DBobjets_initobjets(21001,22000)
--/script DBobjets_initobjets(22001,23000)
--/script DBobjets_initobjets(23001,30000)
--/script DBobjets_initobjets(1,30000)
--/script DBobjets_initobjets(30001,40000)
--/script DBobjets_initobjets(1,40000)
--/script DBobjets_initobjets(1500,40000)
--/script DBobjets_initobjets(2100,40000)
--/script DBobjets_initobjets(3000,40000)
--/script DBobjets_initobjets(3200,40000)
--/script DBobjets_initobjets(3400,40000)
--/script DBobjets_initobjets(4100,40000)
--/script DBobjets_initobjets(4400,40000)
--/script DBobjets_initobjets(4700,40000)
--/script DBobjets_initobjets(14900,40000)
--/script DBobjets_initobjets(15700,40000)
--/script DBobjets_initobjets(16200,40000)
--/script DBobjets_initobjets(17700,40000)
--/script DBobjets_initobjets(18500,40000)
--/script DBobjets_initobjets(19200,40000)
--/script DBobjets_initobjets(20100,40000)
--/script DBobjets_initobjets(20500,40000)
--/script DBobjets_initobjets(20700,40000)
--/script DBobjets_initobjets(20800,40000)

--/script DBobjets_initobjets(20900,40000)
--/script DBobjets_initobjets(21200,40000)
--/script DBobjets_initobjets(21500,40000)
--/script DBobjets_initobjets(21600,40000)
--/script DBobjets_initobjets(21700,40000)

--/script DBobjets_initobjets(21800,40000)
--/script DBobjets_initobjets(21900,40000)
--/script DBobjets_initobjets(22000,40000)
--/script DBobjets_initobjets(22400,40000)
--/script DBobjets_initobjets(22500,40000)

--/script DBobjets_initobjets(1000,40000)
--/script DBobjets_initobjets(1300,40000)
--/script DBobjets_initobjets(60000,75000)
--/script DBobjets_initobjets(68000,75000)

function DBobjets_initobjets(imin,imax)

	local i;
	local j = 0;
	local k = 0;
	local bexist;
	local bfin;
--	local itemInfo;
--	local sell;
	local tobjet = nil;

	if ( DBOS_extract_time == 0 ) then
		DBcorpsFrame_ObjetsFrame_Criteres_MAJ:Hide();
		DBcorpsFrame_ObjetsFrame_Criteres_Bar:SetValue(0);
		DBcorpsFrame_ObjetsFrame_Criteres_Bar:Show();
		TraceFrame:AddMessage("premier : "..imin);
		DBOS_extract_imin = imin;
		DBOS_extract_imax = imax;
		DBOS_extract_i = imin-1;
		DBOS_extract_nb = 0;
		DBOS_extract_valid = 0;
		DBOS_extract_time = GetTime();
		DBOS_extract_lasttime = DBOS_extract_time;
		DBOS_chrono1 = true;
	end
--/script DBOS_extract_lasttime = 999999999999999999999999
--/script DBobjets.DBOS_extract_lasttime = 0
--/script DBobjets.DBOS_extract_lasttime = 9999999999
	if ( GetTime() - DBOS_extract_lasttime < 0.1 ) then
	--if ( GetTime() - DBOS_extract_lasttime < 5 ) then
		return;
	end
	bfin = false;
	i = 0;
	while ( DBOS_extract_i < DBOS_extract_imax and bfin == false ) do
		DBOS_extract_i = DBOS_extract_i + 1;
		i = i + 1;
		tobjet = nil;
		if ( DBOS_extract_i > 50000 ) then
			tobjet = DBOS02[DBOS_extract_i];
		else
			tobjet = DBOS01[DBOS_extract_i];
		end
		if ( tobjet ) then
			bexist = 1;
		else
			bexist = 0;
		end
	----DBcorpsFrame_Tooltip3:SetOwner(WorldFrame,"ANCHOR_NONE");
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("objet : "..(DBOS_extract_i));
--end
		--DBcorpsFrame_Tooltip3:SetHyperlink("item:"..DBOS_extract_i);
		--SetItemRef("item:25");
		--SetItemRef("item:"..(DBOS_extract_i));
		--SetItemRef("item:"..(DBOS_extract_i+1));
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("fin objet : "..snumlong);
--end
		if ( DBobjets_initobjet(DBOS_extract_i,1) == true ) then
			--if ( bexist == 0 ) then
			--	TraceFrame:AddMessage("Ajout ds DBobjets de : "..DBOS_extract_i..":0:0:0:0:0:0:0 : "..DBobjets_GetItemLink(DBOS_extract_i,"0:0:0:0:0:0:0"));
			--else
			--	--DBOS_extract_lignes(DBOS_extract_i);
			--end
			DBOS_extract_valid = DBOS_extract_valid + 1;
		end

--if ( 1 == 0 and DBCS_debug > 1 ) then
--
--	--Informant.SetVendorBuy
--	
--	itemInfo = nil;
--	sell = 0;
--	itemInfo = Informant.GetItem(DBOS_extract_i);
--	if ( itemInfo ) then
--		sell = tonumber(itemInfo.sell) or 0;
--	end
--	if ( DBOS[DBOS_extract_i] ) then
--		if ( sell > 0 ) then
--			-- mettre sell ds dbobjets
--			DBOS[DBOS_extract_i][10] = sell;
--		else
--			if ( DBobjets_prices[DBOS_extract_i] and DBobjets_prices[DBOS_extract_i] > 0 ) then
--				-- mettre DBobjets_prices[DBOS_extract_i] ds dbobjets
--				DBOS[DBOS_extract_i][10] = DBobjets_prices[DBOS_extract_i];
--			else
--				-- dbobjets = nil;
--				--DBOS[DBOS_extract_i][10] = nil;
--				if ( DBOS[DBOS_extract_i][10] ) then
--					TraceFrame:AddMessage(DBOS_extract_i.." : "..DBobjets_GetItemLink(DBOS_extract_i,"0:0:0:0:0:0:0").." , DBOS = "..DBOS[DBOS_extract_i][10]);
--				end
--			end
--		end
--	else
--		-- ne rien faire
--	end
--	
--end

		if ( DBCS_debug > 1 ) then
			--if ( DBOS_extract_nb >= 5 or i >= 5 ) then
			if ( DBOS_extract_nb >= 100 or i >= 100 ) then
				DBOS_extract_nb = 0;
				bfin = true;
			end
		else
			if ( DBOS_extract_nb >= 2 or i >= 2 ) then
				DBOS_extract_nb = 0;
				bfin = true;
			end
		end
	end
	DBcorpsFrame_ObjetsFrame_Criteres_Bar:SetValue(((DBOS_extract_i-DBOS_extract_imin)/(DBOS_extract_imax-DBOS_extract_imin))*100);
	DBOS_extract_lasttime = GetTime();

	if ( DBOS_extract_i == DBOS_extract_imax ) then
		DBOS_chrono1 = false;
		TraceFrame:AddMessage("dernier : "..imax);
		TraceFrame:AddMessage(DBOS_extract_valid.." objets valides.");	-- sur "..j.." possibles.");
		DBCS_extract_nb = DBOS_extract_valid;
--TraceFrame:AddMessage("DBCS_extract_nb = "..DBCS_extract_nb);
		DBcorpsFrame_ObjetsFrame_Criteres_Bar:Hide();
		DBcorpsFrame_ObjetsFrame_Criteres_MAJ:Show();
		if ( DBCS_extract_nb == DBCS_extract_nb_save ) then
			DBCS_extract_nb_MAJ = false;
		else
			DBCS_extract_nb_save = DBCS_extract_nb;
--TraceFrame:AddMessage("DBCS_extract_nb_save = "..DBCS_extract_nb_save);
			if ( DBCS_extract_nb_MAJ == true ) then
				DBcorps_ListObjets_MAJ();
			else
			end
		end
	end

end

function DBobjets_initobjets_sav(imin,imax)

	local i;
	local j = 0;
	local k = 0;
	local bexist;
	local tobjet = nil;

DBcorpsFrame_ObjetsFrame_Criteres_MAJ:Hide();
DBcorpsFrame_ObjetsFrame_Criteres_Bar:SetValue(0);
DBcorpsFrame_ObjetsFrame_Criteres_Bar:Show();
TraceFrame:AddMessage("premier : "..imin);
	for i = imin, imax do
		j = j + 1;
		tobjet = nil;
		if ( i > 50000 ) then
			tobjet = DBOS02[i];
		else
			tobjet = DBOS01[i];
		end
		if ( tobjet ) then
			bexist = 1;
		else
			bexist = 0;
		end
		if ( DBobjets_initobjet(i,1) == true ) then
			if ( bexist == 0 ) then
				TraceFrame:AddMessage("Ajout ds DBobjets de : "..i..":0:0:0:0:0:0:0:0:0:0 : "..DBobjets_GetItemLink(i,"0:0:0:0:0:0:0:0:0:0"));
			else
				--DBOS_extract_lignes(i);
			end
			k = k + 1;
		end
		DBcorpsFrame_ObjetsFrame_Criteres_Bar:SetValue(((i-imin)/(imax-imin))*100);
	end
TraceFrame:AddMessage("dernier : "..imax);
TraceFrame:AddMessage(k.." objets valides.");	-- sur "..j.." possibles.");
DBcorpsFrame_ObjetsFrame_Criteres_Bar:Hide();
DBcorpsFrame_ObjetsFrame_Criteres_MAJ:Show();

end

--/script DBobjets_initobjet(14047)
--/script DBobjets_initobjet(19483)
--/script DBobjets_initobjet(24220)
--/script DBobjets_initobjet("item:10101:0:887:164081632")
--/script DBobjets_initobjet("item:15681:884:524:0")
--/script DBobjets_initobjet("item:9971:0:948:1638600832")
function DBobjets_initobjet(snumlong,b_laisser,envoyercms,benclair)
--	itemID 		Integer - The numeric ID of the item. ie. 12345 
--	"itemString" 	String - The full item ID in string format. ie. "item:12345:0:0:0" 
--	itemName, itemLink, itemRarity, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture 

	local itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture, itemSellPrice;
	--local itemName2;
	local numcourt1, numcourt2;
	--local numcourt3, numcourt4;
	--local snumcourt2_4;
--	local nummaxobjet;
	local i;
	local a,b,c,d;
	local slink;
	local message;
	local ivaleur;
	local tobjet = nil;

	if ( b_laisser == nil or ( not ( b_laisser == 1 ) ) ) then
		b_laisser = 0;
	end
	if ( envoyercms == nil ) then
		envoyercms = 1;
	end

	itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture, itemSellPrice = GetItemInfo(snumlong);
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("top01 objet : "..snumlong);
--end
	if ( itemName ) then
		for a, _, _, _, _, _, c, _, _, _ in string.gmatch(itemLink,"item:(%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+)") do
			numcourt1 = tonumber(a);
			--numcourt2 = tonumber(b)..":0:0:0:"..tonumber(c)..":0:0:0:0"; --..tonumber(d);
			numcourt2 = "0:0:0:0:0:"..tonumber(c)..":0:0:0:0"; --..tonumber(d);
		end
		if ( not ( numcourt2 == "0:0:0:0:0:0:0:0:0:0" ) ) then
			itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture, itemSellPrice = GetItemInfo("item:"..numcourt1..":0:0:0:0:0:0:0:0:0:0");
		end
		DBOS_bnouveau = false;
		tobjet = nil;
		if ( numcourt1 > 50000 ) then
			tobjet = DBOS02[numcourt1];
		else
			tobjet = DBOS01[numcourt1];
		end
		if ( tobjet == nil ) then
			tobjet = {};
			tobjet[48] = ""..DBCS_date().."@"..DBCS_time();
			if ( DBOS_idatebase > 0 ) then
				DBOS_bnouveau = true;
			end
			--if ( DBCS_CMS_numcanalCMS > 0 and envoyercms == 1 ) then
			--	DBcorps_objet_info(numcourt1,numcourt2,itemName,itemRarity,itemLevel,itemMinLevel,itemType,itemSubType,itemStackCount,itemEquipLoc,itemTexture);
			--end
			--DBOS_extract_lignes(numcourt1);
--if ( DBCS_debug > 1 ) then
----TraceFrame:AddMessage("Ajout ds DBobjets de : "..numcourt1..":"..numcourt2.." : "..DBOS_getlinkitem(itemName,numcourt1..":"..numcourt2,itemRarity,"i"));
if ( DBCS_afficher_new_objets == true ) then
TraceFrame:AddMessage("Ajout ds DBobjets de : "..numcourt1..":0:0:0:0:0:0:0:0:0:0 : "..DBOS_getlinkitem(itemName,numcourt1..":0:0:0:0:0:0:0:0:0:0",itemRarity,"i"));
end
--end
		else
			if ( tobjet[4] == nil ) then
				tobjet[48] = ""..DBCS_date().."@"..DBCS_time();
				if ( DBOS_idatebase > 0 ) then
					DBOS_bnouveau = true;
				end
if ( DBCS_afficher_new_objets == true ) then
TraceFrame:AddMessage("Ajout ds DBobjets des infos de : "..numcourt1..":0:0:0:0:0:0:0:0:0:0 : "..DBOS_getlinkitem(itemName,numcourt1..":0:0:0:0:0:0:0:0:0:0",itemRarity,"i"));
end
			end
		end
		if ( ( not ( tobjet[1] == nil ) ) and ( not ( tobjet[1] == itemName ) ) ) then
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("changement du nom : "..tobjet[1].." -> "..itemLink);
end
		end
		tobjet[1] = itemName;
		tobjet[2] = itemRarity;
		tobjet[11] = itemLevel;
		tobjet[3] = itemMinLevel;
		ivaleur = DBCS_objet_type_name[itemType];
		if ( ivaleur ) then
			tobjet[4] = ivaleur;
		else
			tobjet[4] = itemType;
		end
		ivaleur = DBCS_objet_subtype_name[itemSubType];
		if ( ivaleur ) then
			tobjet[5] = ivaleur;
		else
			tobjet[5] = itemSubType;
		end
		tobjet[6] = itemStackCount;
		ivaleur = DBCS_objet_equiploc_name[itemEquipLoc];
		if ( ivaleur ) then
			tobjet[7] = ivaleur;
		else
			tobjet[7] = itemEquipLoc;
		end
		tobjet[8] = itemTexture;
		if ( itemSellPrice == nil ) then
			if ( tobjet[10] == nil ) then
			else
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage(itemLink.." , maj du prix : "..tobjet[10].." -> nil");
end
			end
			tobjet[10] = nil;
		else
			if ( tobjet[10] == nil ) then
				if ( itemSellPrice == 0 ) then
				else
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage(itemLink.." , maj du prix : nil -> "..itemSellPrice);
end
				end
			else
				if ( tobjet[10] == itemSellPrice ) then
				else
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage(itemLink.." , maj du prix : "..tobjet[10].." -> "..itemSellPrice);
end
				end
			end
			if ( itemSellPrice == 0 ) then
				itemSellPrice = nil;
			end
			tobjet[10] = itemSellPrice;
		end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("top02 objet : "..snumlong);
--end
		if ( numcourt1 > 50000 ) then
			DBOS02[numcourt1] = tobjet;
		else
			DBOS01[numcourt1] = tobjet;
		end

		if ( DBOS_dejaenreg[numcourt1] == nil ) then
			DBOS_extract_lignes(numcourt1);
		else
			DBOS_dejaenreg[numcourt1] = 0;
		end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("top03 objet : "..snumlong);
--end

		--if ( numcourt2 == "0:0:0" ) then
		--	tobjet[1] = itemName;
		--	--if ( tobjet[20] ) then
		--	--else
		--	--	--tobjet[20] = {}; -- à suprimer, pas obligatoire, ca prend de la place pour rien
		--	--end
		--else
		--	itemName2 = itemName;
		--	itemName, itemLink, itemRarity, _, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo("item:"..numcourt1..":0:0:0");
		--	if ( itemName ) then
		--		tobjet[1] = itemName;
		--	else
		--		tobjet[1] = itemName2;
		--	end
		--	if ( itemName and ( not ( itemName == itemName2 ) ) ) then
		--		if ( tobjet[20] == nil ) then
		--			tobjet[20] = {};
		--		end
		--		if ( tobjet[20][itemName2] == nil ) then
--TraceFrame:AddMessage("Ajout ds DBobjets de : "..DBOS_getlinkitem(itemName,numcourt1..":"..numcourt2,itemRarity,"i"));
		--			tobjet[20][itemName2] = {};
		--			tobjet[20][itemName2][0] = numcourt2;
		--			tobjet[20][itemName2][1] = {};
		--		end
		--		if ( tobjet[20][itemName2][1][numcourt2] ) then
		--			if ( b_laisser == 0 ) then
		--				tobjet[20][itemName2][1][numcourt2] = tobjet[20][itemName2].numlongtable[numcourt2] + 1 ;
		--			end
		--		else
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("Ajout ds DBobjets de l'objet aleatoire : "..numcourt1..":"..numcourt2.." : "..DBOS_getlinkitem(itemName2,numcourt1..":"..numcourt2,itemRarity,"i"));
--end
		--			tobjet[20][itemName2][1][numcourt2] = 1 ;
		--		end
		--	--else
		--	--	--if ( tobjet[20] ) then
		--	--	--else
		--	--	--	--tobjet[20] = {}; -- à suprimer, pas obligatoire, ca prend de la place pour rien
		--	--	--end
		--	end
--		--	[20]	nomlongtable		= { }
--		--	[20]		nomlong		= "Arc d'agilité"
--		--	[20]			numlongbase	= "0:150:214"
--		--	[20]			numlongtable	= { }
--		--	[20]				"0:150:215" = 1
		--end
		return true;
	else
		itemTexture = GetItemIcon(snumlong);
		if ( itemTexture ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("objet manquant : "..snumlong.." , texture = "..itemTexture);
--end
			if ( type(snumlong) == "string" ) then
				numcourt1 = nil;
				for a, _, _, _, _, _, _, _, _, _, _ in string.gmatch(snumlong,"item:(%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+)") do
					numcourt1 = tonumber(a);
				end
			else
				numcourt1 = snumlong;
			end
			tobjet = nil;
			if ( numcourt1 ) then
				if ( numcourt1 > 50000 ) then
					tobjet = DBOS02[numcourt1];
				else
					tobjet = DBOS01[numcourt1];
				end
			end
			if ( tobjet == nil ) then
				if ( type(snumlong) == "number" ) then
					tobjet = {};
					if ( itemTexture ) then
						tobjet[8] = itemTexture;
					end
				else
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("objet manquant : "..snumlong.." , texture = "..itemTexture);
end
				end
			else
				if ( itemTexture ) then
					tobjet[8] = itemTexture;
				end
			end
			if ( numcourt1 ) then
				if ( numcourt1 > 50000 ) then
					DBOS02[numcourt1] = tobjet;
				else
					DBOS01[numcourt1] = tobjet;
				end
			end
		end
	end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("top04 objet : "..snumlong);
--end

	return false;

end

function DBobjets_init()

local sversion1;
local sversion2;
local sversion3;
local numobjet;
local tOBJET;
local ivaleur;
local ibon;
local snom;
local i;

	if ( DBOS_valeurs["version"] == nil ) then
		DBOS_valeurs["version"] = {};
	end
	sversion1 = DBOS_valeurs["version"][1];
	if ( sversion1 == nil ) then
		sversion1 = "00";
	end
	sversion2 = DBOS_valeurs["version"][2];
	if ( sversion2 == nil ) then
		sversion2 = "00";
	end
	sversion3 = DBOS_valeurs["version"][3];
	if ( sversion3 == nil ) then
		sversion3 = "00";
	end
	if ( tonumber(sversion1..sversion2..sversion3) < tonumber(DBOS_version1..DBOS_version2..DBOS_version3) ) then
		-- transformer le champ 
		--[4]	subtype			= ""
		--[5]	subtype			= ""
		--[7]	equiploc			= ""
		if ( DBOS01 ) then
			for numobjet, _ in pairs(DBOS01) do
				tOBJET = DBOS01[numobjet];
				ivaleur = DBCS_objet_type_name[tOBJET[4]];
				if ( ivaleur ) then
					tOBJET[4] = ivaleur;
				end
				ivaleur = DBCS_objet_subtype_name[tOBJET[5]];
				if ( ivaleur ) then
					tOBJET[5] = ivaleur;
				end
				ivaleur = DBCS_objet_equiploc_name[tOBJET[7]];
				if ( ivaleur ) then
					tOBJET[7] = ivaleur;
				end
				for i = 11, 45 do
					tOBJET[i] = nil;
				end
			end
		end
		if ( DBOS02 ) then
			for numobjet, _ in pairs(DBOS02) do
				tOBJET = DBOS02[numobjet];
				ivaleur = DBCS_objet_type_name[tOBJET[4]];
				if ( ivaleur ) then
					tOBJET[4] = ivaleur;
				end
				ivaleur = DBCS_objet_subtype_name[tOBJET[5]];
				if ( ivaleur ) then
					tOBJET[5] = ivaleur;
				end
				ivaleur = DBCS_objet_equiploc_name[tOBJET[7]];
				if ( ivaleur ) then
					tOBJET[7] = ivaleur;
				end
				for i = 11, 45 do
					tOBJET[i] = nil;
				end
			end
		end
		---- transformer le champ 
		----[5]	subtype			= ""
		--for numobjet, _ in pairs(DBOS) do
		--	tOBJET = DBOS[numobjet];
		--	ivaleur = DBCS_objet_subtype_name[tOBJET[5]];
		--	if ( ivaleur ) then
		--		tOBJET[5] = ivaleur;
		--	end
		--end
		---- transformer le champ 
		----[7]	equiploc			= ""
		--for numobjet, _ in pairs(DBOS) do
		--	tOBJET = DBOS[numobjet];
		--	ivaleur = DBCS_objet_equiploc_name[tOBJET[7]];
		--	if ( ivaleur ) then
		--		tOBJET[7] = ivaleur;
		--	end
		--end
		---- supprimer le champ 20 si il est vide
		--for numobjet in DBOS do
		--	tOBJET = DBOS[numobjet];
		--	if ( tOBJET[20] ) then
		--		ibon = 1;
		--		for snom in tOBJET[20] do
		--			ibon = 0;
		--		end
		--		if ( ibon == 1 ) then
		--			tOBJET[20] = nil;
		--		end
		--	end
		--end
		---- supprimer le champ 20 tout court
		--for numobjet in DBOS do
		--	tOBJET = DBOS[numobjet];
		--	if ( tOBJET[20] ) then
		--		--ibon = 1;
		--		--for snom in tOBJET[20] do
		--		--	ibon = 0;
		--		--end
		--		--if ( ibon == 1 ) then
		--		tOBJET[20] = nil;
		--		--end
		--	end
		--end
		-- supprimer ds les objets et les mobs , les enreg ou [5] n'est pas 50 ou 42
		-- pour les objets : [9] = nil;
		-- pour les mobs [nomdumob] = nil;
	end
	DBOS_valeurs["version"][1] = DBOS_version1;
	DBOS_valeurs["version"][2] = DBOS_version2;
	DBOS_valeurs["version"][3] = DBOS_version3;

end

--/script DEFAULT_CHAT_FRAME:AddMessage(DBOS_getlinkitem("blabla","00000:0:0:0:0:0:0:0",1,"i"));
--/script DEFAULT_CHAT_FRAME:AddMessage(DBOS_getlinkitem("blabla","34334:0:0:0:0:0:0:0",1,"i"));
--/script DEFAULT_CHAT_FRAME:AddMessage(DBOS_getlinkitem("blabla","37148:0:0:0:0:0:0:0",0,"i"));

function DBOS_getlinkitem(snom,snumlong,icoul,stype)

local shexcouleuritem;
local r,g,b,hex;

	shexcouleuritem = "|cffffffff";
	r, g, b, hex = GetItemQualityColor(icoul);
	if ( hex ) then
		shexcouleuritem = "|c"..hex;
	end

	if ( stype == "i" ) then
		return shexcouleuritem.."|Hitem:"..snumlong.."|h["..snom.."]|h|r";
	else
		--return shexcouleuritem.."|Henchant:"..snumlong.."|h["..snom.."]|h|r";
		return "|cffffd000|Henchant:"..snumlong.."|h["..snom.."]|h|r";
	end

end

--/script DBOS_getlinkitem_send_a_moi("blabla","34334:0:0:0:0:0:0:0",1,"i");
--/script DBOS_getlinkitem_send_a_moi("Page roussie","37148:0:0:0:0:0:0:0",1,"i");
--/script DBOS_getlinkitem_send_a_moi("blabla","1:0:0:0:0:0:0:0",1,"i");
function DBOS_getlinkitem_send_a_moi(snom,snumlong,icoul,stype)

local slink;

	slink = DBOS_getlinkitem(snom,snumlong,icoul,stype);

	SendChatMessage(slink,"WHISPER",DBCS_language,DBCS_joueur);

end

function DBOS_afficherevent(event,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)

	local arglong;

	arglong = event;
	if ( arg1 ) then
		arglong = arglong.." 1 : "..arg1
		if ( arg2 ) then
			arglong = arglong.." 2 : "..arg2
			if ( arg3 ) then
				arglong = arglong.." 3 : "..arg3
				if ( arg4 ) then
					arglong = arglong.." 4 : "..arg4
					if ( arg5 ) then
						arglong = arglong.." 5 : "..arg5
						if ( arg6 ) then
							arglong = arglong.." 6 : "..arg6
							if ( arg7 ) then
								arglong = arglong.." 7 : "..arg7
								if ( arg8 ) then
									arglong = arglong.." 8 : "..arg8
									if ( arg9 ) then
										arglong = arglong.." 9 : "..arg9
									end
								end
							end
						end
					end
				end
			end
		end
	end
	TraceFrame:AddMessage(arglong);

end

--/script DBobjets_copier_enchant_gemme_ds_mobs(1,5000)
--/script DBobjets_copier_enchant_gemme_ds_mobs()
function DBobjets_copier_enchant_gemme_ds_mobs(imin,imax)

local i;
local j;
local sitem;
local snom;
local si;

	if ( imin ) then
	else
		imin = 1;
	end
	if ( imax ) then
	else
		imax = imin + 1000;
	end
	
	for i = imin , imax do
		for j = 1 , 8 do
			_G["DBcorpsFrame_Tooltip3TextLeft"..j]:SetText(nil);
			_G["DBcorpsFrame_Tooltip3TextRight"..j]:SetText(nil);
		end
		sitem = "item:23571:"..i..":0:0:0:0:0:0:0:0:0";
		DBcorpsFrame_Tooltip3:SetOwner(WorldFrame,"ANCHOR_NONE");
		DBcorpsFrame_Tooltip3:SetHyperlink(sitem);
		ochamp = _G["DBcorpsFrame_Tooltip3TextLeft2"];
		schamp = ochamp:GetText();
		if ( schamp ) then
			snom = "ench : ";
			if ( i < 10 ) then
				si = "000"..i;
			elseif ( i < 100 ) then
				si = "00"..i;
			elseif ( i < 1000 ) then
				si = "0"..i;
			else
				si = ""..i;
			end
			snom = snom..si.." : "..schamp;
			if ( DBMS[snom] ) then
			else
				DBMS[snom] = {};
			end
			if ( DBMS[snom]["0"] ) then
			else
				DBMS[snom]["0"] = {};
			end
			DBMS[snom]["0"][3] = "enchant/gemme";
		end
	end

end

--/script DBobjets_supprimer_enchant_gemme_ds_mobs();
function DBobjets_supprimer_enchant_gemme_ds_mobs()

local snommob;
--local snumregion;

	for snommob, _ in pairs(DBMS) do
		if ( DBMS[snommob]["0"] and DBMS[snommob]["0"][3] == "enchant/gemme" ) then
			DBMS[snommob] = nil;
		end
	end

end

--/script DBobjets_Lire_enchant("item:23571:2710:0:0:0:0:0:0")
--/script DBobjets_Lire_enchant("item:numero:enchant:gem1:gem2:gem3:gem4:alea:unique")
function DBobjets_Lire_enchant(sitem)

local i;
local ochamp;
local schamp;

	for i = 1 , 8 do
		_G["DBcorpsFrame_Tooltip3TextLeft"..i]:SetText(nil);
		_G["DBcorpsFrame_Tooltip3TextRight"..i]:SetText(nil);
	end
	DBcorpsFrame_Tooltip3:SetOwner(WorldFrame,"ANCHOR_NONE");
	DBcorpsFrame_Tooltip3:SetHyperlink(sitem);
	ochamp = _G["DBcorpsFrame_Tooltip3TextLeft2"];
	schamp = ochamp:GetText();
	if ( schamp ) then
		DBCS_ecrirecodedutexte(schamp);
	end

end

function DBobjets_Liste_des_enchants()

local tablo = {};
local inumobjet = 23571;
local i;
local snomobjet;
local si;

	snomobjet = DBOS01[inumobjet][1];
	for i = 1 , 4000 do
		if ( i < 10 ) then
			si = "000"..i;
		elseif ( i < 100 ) then
			si = "00"..i;
		elseif ( i < 1000 ) then
			si = "0"..i;
		else
			si = ""..i;
		end
		tablo[i] = {};
		tablo[i][1] = inumobjet;
		tablo[i][2] = "0:"..i..":0:0:0:0:0:0:0:0";
		tablo[i][3] = snomobjet.." "..si;
		tablo[i][5] = "i";
	end

	return tablo;

end

function DBobjets_Liste_inconnu_ds_DBmobs()

local tablo = {};
local tablo_numobjet = {};
local nommob;
local numregion;
local tMOB;
local tOBJETS;
local numobjet;
local i = 0;

	for nommob, _ in pairs(DBMS) do
		for numregion, _ in pairs(DBMS[nommob]) do
			tMOB = DBMS[nommob][numregion];
			tOBJETS = tMOB[8];
			if ( tOBJETS ) then
				for numobjet, _ in pairs(tOBJETS) do
					if ( DBOS01[numobjet] or DBOS02[numobjet] ) then
					else
						if ( tablo_numobjet[numobjet] ) then
						else
							i = i + 1 ;
							tablo_numobjet[numobjet] = i;
							tablo[i] = {};
							tablo[i][1] = numobjet;
							tablo[i][2] = "0:0:0:0:0:0:0:0:0:0";
							tablo[i][3] = nommob;
							tablo[i][5] = "i";
						end
					end
				end
			end
		end
	end
	
	return tablo;

end

function DBobjets_Liste_inconnu_ds_DBquetes()

local tablo = {};
local tablo_numobjet = {};
local nomquete;
local nbquete;
local numquete;
local tQUETE;
local tOBJETS;
local numobjet;
local i = 0;

	for nomquete, _ in pairs(DBQS) do
		nbquete = DBQS[nomquete].nb;
		numquete = 0;
		while ( numquete < nbquete ) do
			numquete = numquete + 1;
			tQUETE = DBQS[nomquete][numquete];
			tOBJETS = tQUETE[14];
			if ( tOBJETS ) then
				for numobjet, _ in pairs(tOBJETS) do
					if ( DBOS01[numobjet] or DBOS02[numobjet] ) then
					else
						if ( tablo_numobjet[numobjet] ) then
						else
							i = i + 1 ;
							tablo_numobjet[numobjet] = i;
							tablo[i] = {};
							tablo[i][1] = numobjet;
							tablo[i][2] = "0:0:0:0:0:0:0:0:0:0";
							tablo[i][3] = nommob;
							tablo[i][5] = "i";
						end
					end
				end
			end
			tOBJETS = tQUETE[15];
			if ( tOBJETS ) then
				for numobjet, _ in pairs(tOBJETS) do
					if ( DBOS01[numobjet] or DBOS02[numobjet] ) then
					else
						if ( tablo_numobjet[numobjet] ) then
						else
							i = i + 1 ;
							tablo_numobjet[numobjet] = i;
							tablo[i] = {};
							tablo[i][1] = numobjet;
							tablo[i][2] = "0:0:0:0:0:0:0:0:0:0";
							tablo[i][3] = nommob;
							tablo[i][5] = "i";
						end
					end
				end
			end
			tOBJETS = tQUETE[16];
			if ( tOBJETS ) then
				for numobjet, _ in pairs(tOBJETS) do
					if ( DBOS01[numobjet] or DBOS02[numobjet] ) then
					else
						if ( tablo_numobjet[numobjet] ) then
						else
							i = i + 1 ;
							tablo_numobjet[numobjet] = i;
							tablo[i] = {};
							tablo[i][1] = numobjet;
							tablo[i][2] = "0:0:0:0:0:0:0:0:0:0";
							tablo[i][3] = nommob;
							tablo[i][5] = "i";
						end
					end
				end
			end
		end
	end
	
	return tablo;

end

function DBobjets_nom_existe(snom)

local inb = 0;
local numobjet;
local tOBJET;

	for numobjet, _ in pairs(DBOS01) do
		tOBJET = DBOS01[numobjet];
		if ( tOBJET[1] and tOBJET[1] == snom ) then
			inb = inb + 1;
		end
	end
	for numobjet, _ in pairs(DBOS02) do
		tOBJET = DBOS02[numobjet];
		if ( tOBJET[1] and tOBJET[1] == snom ) then
			inb = inb + 1;
		end
	end

	return inb;

end

function DBobjets_Liste(criteres)

local tablo = {};
local i = 0;
local j;
local numobjet;
--local numcourt2;
local ibon;
local tOBJET;
local tablo1;
local ivaleur;

	for numobjet, _ in pairs(DBOS01) do
		tOBJET = DBOS01[numobjet];
		ibon = 1;
		if ( ibon == 1 and criteres.inconnus == 0 ) then
			if ( tOBJET[1] == nil ) then
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.rarity > -1 ) then
			if ( tOBJET[1] == nil or ( tOBJET[2] and not ( tOBJET[2] == criteres.rarity ) ) ) then
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.nomobjet and not ( criteres.nomobjet == "" ) ) then
			if ( tOBJET[1] ) then
				ipos, _ = strfind(strlower(tOBJET[1]),strlower(criteres.nomobjet));
				if ( not ipos ) then
					ibon = 0;
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.nivmin ) then
			if ( tOBJET[1] == nil or ( tOBJET[3] == nil or tOBJET[3] < criteres.nivmin ) ) then
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.nivmax ) then
			if ( tOBJET[1] == nil or ( tOBJET[3] and tOBJET[3] > criteres.nivmax ) ) then
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.type > -1 ) then
			if ( tOBJET[1] ) then
				ivaleur = DBCS_objet_type_index[tOBJET[4]];
				if ( ivaleur ) then
				else
					ivaleur = tOBJET[4];
				end
				if ( criteres.type == 0 ) then
					if ( DBCS_objet_type_name[ivaleur] ) then
						ibon = 0;
					end
				else
					if not ( DBCS_objet_type_name[ivaleur] == criteres.type ) then
						ibon = 0;
					end
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.subtype > -1 ) then
			if ( tOBJET[1] ) then
				ivaleur = DBCS_objet_subtype_index[tOBJET[5]];
				if ( ivaleur ) then
				else
					ivaleur = tOBJET[5];
				end
				if ( criteres.subtype == 0 ) then
					tablo1 = DBCS_objet_type_subtype_index[criteres.type];
					if ( tablo1 and tablo1[DBCS_objet_subtype_name[ivaleur]] ) then
						ibon = 0;
					end
					--if ( DBCS_objet_subtype_name[ivaleur] ) then
					--	ibon = 0;
					--end
				else
					if not ( DBCS_objet_subtype_name[ivaleur] == criteres.subtype ) then
						ibon = 0;
					end
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.equiploc > -1 ) then
			if ( tOBJET[1] ) then
				ivaleur = DBCS_objet_equiploc_index_name[tOBJET[7]];
				if ( ivaleur ) then
				else
					ivaleur = tOBJET[7];
				end
				if ( criteres.equiploc == 0 ) then
					if ( ivaleur == "" or DBCS_objet_equiploc_name[ivaleur] ) then
						ibon = 0;
					end
				else
					if not ( DBCS_objet_equiploc_name[ivaleur] == criteres.equiploc ) then
						ibon = 0;
					end
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.faction > -1 ) then
			if ( tOBJET[1] ) then
				ivaleur = DBCS_Reputation_nom_name[tOBJET[49]];
				if ( ivaleur ) then
				else
					ivaleur = tOBJET[49];
				end
				if ( criteres.faction == 0 ) then
					if ( DBCS_Reputation_nom_index[ivaleur] ) then
						ibon = 0;
					end
				else
					if not ( ivaleur == criteres.faction ) then
						ibon = 0;
					end
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.setsnom > 0 ) then
			if ( DBCS_setsnom[criteres.setsnom].numobjet[numobjet] ) then
			else
				ibon = 0;
			end
		end
		--if ( GetItemInfo("item:"..numobjet..":0:0:0") ) then
		--	ibon = 0;
		--end
		if ( ibon == 1 ) then
			i = i + 1 ;
			tablo[i] = {};
			tablo[i][1] = numobjet;
			tablo[i][2] = "0:0:0:0:0:0:0:0:0:0";
			tablo[i][3] = tOBJET[1];
			tablo[i][5] = "i";
		end
	end
	for numobjet, _ in pairs(DBOS02) do
		tOBJET = DBOS02[numobjet];
		ibon = 1;
		if ( ibon == 1 and criteres.inconnus == 0 ) then
			if ( tOBJET[1] == nil ) then
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.rarity > -1 ) then
			if ( tOBJET[1] == nil or ( tOBJET[2] and not ( tOBJET[2] == criteres.rarity ) ) ) then
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.nomobjet and not ( criteres.nomobjet == "" ) ) then
			if ( tOBJET[1] ) then
				ipos, _ = strfind(strlower(tOBJET[1]),strlower(criteres.nomobjet));
				if ( not ipos ) then
					ibon = 0;
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.nivmin ) then
			if ( tOBJET[1] == nil or ( tOBJET[3] == nil or tOBJET[3] < criteres.nivmin ) ) then
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.nivmax ) then
			if ( tOBJET[1] == nil or ( tOBJET[3] and tOBJET[3] > criteres.nivmax ) ) then
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.type > -1 ) then
			if ( tOBJET[1] ) then
				ivaleur = DBCS_objet_type_index[tOBJET[4]];
				if ( ivaleur ) then
				else
					ivaleur = tOBJET[4];
				end
				if ( criteres.type == 0 ) then
					if ( DBCS_objet_type_name[ivaleur] ) then
						ibon = 0;
					end
				else
					if not ( DBCS_objet_type_name[ivaleur] == criteres.type ) then
						ibon = 0;
					end
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.subtype > -1 ) then
			if ( tOBJET[1] ) then
				ivaleur = DBCS_objet_subtype_index[tOBJET[5]];
				if ( ivaleur ) then
				else
					ivaleur = tOBJET[5];
				end
				if ( criteres.subtype == 0 ) then
					tablo1 = DBCS_objet_type_subtype_index[criteres.type];
					if ( tablo1 and tablo1[DBCS_objet_subtype_name[ivaleur]] ) then
						ibon = 0;
					end
					--if ( DBCS_objet_subtype_name[ivaleur] ) then
					--	ibon = 0;
					--end
				else
					if not ( DBCS_objet_subtype_name[ivaleur] == criteres.subtype ) then
						ibon = 0;
					end
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.equiploc > -1 ) then
			if ( tOBJET[1] ) then
				ivaleur = DBCS_objet_equiploc_index_name[tOBJET[7]];
				if ( ivaleur ) then
				else
					ivaleur = tOBJET[7];
				end
				if ( criteres.equiploc == 0 ) then
					if ( ivaleur == "" or DBCS_objet_equiploc_name[ivaleur] ) then
						ibon = 0;
					end
				else
					if not ( DBCS_objet_equiploc_name[ivaleur] == criteres.equiploc ) then
						ibon = 0;
					end
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.faction > -1 ) then
			if ( tOBJET[1] ) then
				ivaleur = DBCS_Reputation_nom_name[tOBJET[49]];
				if ( ivaleur ) then
				else
					ivaleur = tOBJET[49];
				end
				if ( criteres.faction == 0 ) then
					if ( DBCS_Reputation_nom_index[ivaleur] ) then
						ibon = 0;
					end
				else
					if not ( ivaleur == criteres.faction ) then
						ibon = 0;
					end
				end
			else
				ibon = 0;
			end
		end
		if ( ibon == 1 and criteres.setsnom > 0 ) then
			if ( DBCS_setsnom[criteres.setsnom].numobjet[numobjet] ) then
			else
				ibon = 0;
			end
		end
		--if ( GetItemInfo("item:"..numobjet..":0:0:0") ) then
		--	ibon = 0;
		--end
		if ( ibon == 1 ) then
			i = i + 1 ;
			tablo[i] = {};
			tablo[i][1] = numobjet;
			tablo[i][2] = "0:0:0:0:0:0:0:0:0:0";
			tablo[i][3] = tOBJET[1];
			tablo[i][5] = "i";
		end
	end
	if ( criteres.setsnom > 0 ) then
		for numobjet, _ in pairs(DBCS_setsnom[criteres.setsnom].numobjet) do
			ibon = 1;
			for j, _ in pairs(tablo) do
				if ( tablo[j][1] == numobjet ) then
					ibon = 0;
				end
			end
			if ( ibon == 1 ) then
				i = i + 1 ;
				tablo[i] = {};
				tablo[i][1] = numobjet;
				tablo[i][2] = "0:0:0:0:0:0:0:0:0:0";
				tablo[i][3] = "";
				tablo[i][5] = "i";
			end
		end
	end

	if ( criteres.subtype == 54 ) then
		for numobjet, _ in pairs(DBOS_enchant) do
			tOBJET = DBOS_enchant[numobjet];
			ibon = 1;
			if ( ibon == 1 and criteres.nomobjet and not ( criteres.nomobjet == "" ) ) then
				if ( tOBJET[1] ) then
					ipos, _ = strfind(strlower(tOBJET[1]),strlower(criteres.nomobjet));
					if ( not ipos ) then
						ibon = 0;
					end
				--else
				--	ibon = 0;
				end
			end
			if ( ibon == 1 ) then
				i = i + 1 ;
				tablo[i] = {};
				tablo[i][1] = numobjet;
				tablo[i][2] = "";
				tablo[i][3] = tOBJET[1];
				tablo[i][5] = "e";
			end
		end
	end
	return tablo;

end

function DBOS_coffre(numobjet,envoyercms)

local message;
local tobjet = nil;

	if ( envoyercms == nil ) then
		envoyercms = 1;
	end

	if ( numobjet > 50000 ) then
		tobjet = DBOS02[numobjet];
	else
		tobjet = DBOS01[numobjet];
	end
	if ( tobjet == nil ) then
		SetItemRef("item:"..numobjet..":0:0:0:0:0:0:0:0:0:0");
		GameTooltip:SetHyperlink("item:"..numobjet..":0:0:0:0:0:0:0:0:0:0")
		--DBobjets_initobjet("item:"..inumobjet..":0:0:0");
	end
	DBobjets_initobjet("item:"..numobjet..":0:0:0:0:0:0:0:0:0:0",1);
	slink = DBobjets_GetItemLink(numobjet,"0:0:0:0:0:0:0:0:0:0");
	if ( tobjet == nil ) then
		tobjet = {};
		tobjet[48] = ""..DBCS_date().."@"..DBCS_time();
if ( DBCS_debug > 1 ) then
		_, _, _, hex = GetItemQualityColor(6);
		slink = "|c"..hex.."|Hitem:"..numobjet..":0:0:0:0:0:0:0:0:0:0|h[oula oula oula]|h|r";
		TraceFrame:AddMessage("l'objet : "..slink.." n'existe pas.");
end
	end
	DBobjets_initobjet("item:"..numobjet..":0:0:0:0:0:0:0:0:0:0",1);
	if ( tobjet ) then
		if ( tobjet[9] == nil ) then
if ( DBCS_debug > 1 ) then
--	par "..DBCS_lienjoueurbynom(sjoueur).." 
TraceFrame:AddMessage("Ajout ds DBobjets de ce coffre : "..numobjet.." : "..slink);
end
			if ( DBCS_CMS_numcanalCMS > 0 and envoyercms == 1 ) then
				message = "";
				message = message.."@ADBCS@";
				message = message..DBCS_getlocale.."@";
				message = message.."OC01@";
				message = message..numobjet.."@";
				DBCS_SendChatMessage(message,"CHANNEL",DBCS_language,DBCS_CMS_numcanalCMS);
			end
		else
		end
		tobjet[9] = 1;
		DBcorps_objet_coffre(numobjet);
	else
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("L'objet "..numobjet.." n'existe pas.");
end
	end
	if ( numobjet > 50000 ) then
		DBOS02[numobjet] = tobjet;
	else
		DBOS01[numobjet] = tobjet;
	end

end

function DBobjets_prix(numobjet,numcourt2,prix,envoyercms)

local message;
local slink;
local hex;	--,slink2;
local tobjet = nil;

	if ( envoyercms == nil ) then
		envoyercms = 1;
	end

	if ( numobjet > 50000 ) then
		tobjet = DBOS02[numobjet];
	else
		tobjet = DBOS01[numobjet];
	end
	--slink = DBobjets_GetItemLink(inumobjet,snumcourt2);
	if ( tobjet == nil ) then
		SetItemRef("item:"..numobjet..":0:0:0:0:0:0:0:0:0:0");
		GameTooltip:SetHyperlink("item:"..numobjet..":0:0:0:0:0:0:0:0:0:0")
		--DBobjets_initobjet("item:"..inumobjet..":0:0:0");
	end
	DBobjets_initobjet("item:"..numobjet..":"..numcourt2,1);
	slink = DBobjets_GetItemLink(numobjet,numcourt2);
	if ( tobjet == nil ) then
		tobjet = {};
		tobjet[48] = ""..DBCS_date().."@"..DBCS_time();
if ( DBCS_debug > 1 ) then
		_, _, _, hex = GetItemQualityColor(6);
		slink = "|c"..hex.."|Hitem:"..numobjet..":"..numcourt2.."|h[oula oula oula]|h|r";
		TraceFrame:AddMessage("l'objet : "..slink.." n'existe pas.");
end
	end
	if ( tobjet ) then
		if ( tobjet[10] == nil ) then
if ( DBCS_debug > 1 ) then
if ( prix == nil ) then
else
--	par "..DBCS_lienjoueurbynom(sjoueur).." 
TraceFrame:AddMessage("Ajout ds DBobjets du prix de : "..numobjet.." "..slink.." , prix : "..prix);
end
end
			if ( DBCS_CMS_numcanalCMS > 0 and envoyercms == 1 and ( not ( prix == nil ) ) ) then
				message = "";
				message = message.."@ADBCS@";
				message = message..DBCS_getlocale.."@";
				message = message.."OP01@";
				message = message..numobjet.."@";
				message = message..prix.."@";
				DBCS_SendChatMessage(message,"CHANNEL",DBCS_language,DBCS_CMS_numcanalCMS);
			end
		else
			if ( tobjet[10] == prix ) then
			else
if ( DBCS_debug > 1 ) then
if ( prix == nil ) then
TraceFrame:AddMessage("Modif ds DBobjets du prix de : "..numobjet.." "..slink.." , prix : nul , prix avant : "..tobjet[10]);
else
TraceFrame:AddMessage("Modif ds DBobjets du prix de : "..numobjet.." "..slink.." , prix : "..prix.." , prix avant : "..tobjet[10]);
end
end
			end
		end
		if ( prix == nil ) then
			tobjet[10] = prix;
		else
			if ( tobjet[10] ) then
				if ( prix > tobjet[10] ) then
					tobjet[10] = prix;
					--if ( not ( prix == nil ) ) then
					DBcorps_objet_prix(numobjet,prix);
					--end
				else
				end
			else
				tobjet[10] = prix;
				--if ( not ( prix == nil ) ) then
				DBcorps_objet_prix(numobjet,prix);
				--end
			end
		end
	else
if ( DBCS_debug > 1 ) then
if ( numobjet > 0 ) then
TraceFrame:AddMessage("L'objet "..numobjet.." n'existe pas.");
end
end
	end
	if ( numobjet > 50000 ) then
		DBOS02[numobjet] = tobjet;
	else
		DBOS01[numobjet] = tobjet;
	end

end

function DBOS_detail(numobjet,numcourt2)

local tablo = {};
local nomobjet;
local isalaire;
local ivaleur;
local a,inumcourt3;
local itemName;
local tobjet;

	if ( numobjet > 50000 ) then
		tobjet = DBOS02[numobjet];
	else
		tobjet = DBOS01[numobjet];
	end
	if ( tobjet == nil ) then
		-- ajouter un message de confirmation
		--SetItemRef("item:"..numobjet..":"..numcourt2); -- peut faire déco
		DBobjets_initobjet("item:"..numobjet..":"..numcourt2);
	end
	if ( tobjet ) then
		tablo = {};
		tablo.nomobjet		= tobjet[1];
		tablo.rarity		= tobjet[2];
		tablo.minlevel		= tobjet[3];
		if ( tablo.minlevel == nil or tablo.minlevel == 0 ) then
			tablo.minlevel = nil;
		end
		ivaleur = DBCS_objet_type_index[tobjet[4]];
		if ( ivaleur ) then
			tablo.type		= ivaleur;
		else
			tablo.type		= tobjet[4];
		end
		ivaleur = DBCS_objet_subtype_index[tobjet[5]];
		if ( ivaleur ) then
			tablo.subtype		= ivaleur;
		else
			tablo.subtype		= tobjet[5];
		end
		tablo.stackcount	= tobjet[6];
		ivaleur = DBCS_objet_equiploc_index_traduc[tobjet[7]];
		if ( ivaleur ) then
			tablo.equiploc		= ivaleur;
		else
			tablo.equiploc		= tobjet[7];
		end
		tablo.texture		= tobjet[8];
		tablo.coffre		= tobjet[9];
		--if ( tablo.coffre and tablo.coffre == 1 ) then
		--	isalaire, _ = DBmobs_Salaire(tablo.nomobjet,"0");
		--	--isalaire = 0;
		--	tablo.prix		= isalaire;
		--else
			tablo.prix		= tobjet[10];
		--end
		tablo.level		= tobjet[11];
		if ( tablo.level == nil or tablo.level == 0 ) then
			tablo.level = nil;
		end
--			[70]	bprixspécial						0 ou 1
--			[71]	sdatemajprix						"20071124"
--			[72]	iprix								>0 ou nil
--													local factionGroup = UnitFactionGroup("player");
--			[73]	ihonneur							>0 ou nil;		"Interface\\TargetingFrame\\UI-PVP-"	+	factionGroup
--			[74]	iarene							>0 ou nil;		"Interface\\PVPFrame\\PVP-ArenaPoints-Icon"
--			[75]	stex1								"29434:10"
--			[76]	stex2								"32572:1"
--			[77]	stex3								"32569:50"
		tablo.t70 = tobjet[70];
		tablo.t71 = tobjet[71];
		tablo.t72 = tobjet[72];
		tablo.t73 = tobjet[73];
		tablo.t74 = tobjet[74];
		tablo.t75 = tobjet[75];
		tablo.t76 = tobjet[76];
		tablo.t77 = tobjet[77];
		if ( numcourt2 == "0:0:0:0:0:0:0:0:0:0" or numcourt2 == "0:0:0" ) then
		else
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("numobjet = "..numobjet..":"..numcourt2);
--end
			-- récup le vrai nom si possible
			--sinon faire le for
			itemName, _, _, _, _, _, _, _, _, _ = GetItemInfo("item:"..numobjet..":"..numcourt2);
			if ( itemName ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("itemName = "..itemName);
--end
				tablo.nomobjet = itemName;
			else
				for _, _, _, _, _, a, _, _, _ in string.gmatch(numcourt2,"(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+):(%p?%d+)") do
					inumcourt3 = tonumber(a);
					tablo.nomobjet = tablo.nomobjet.." "..DBobjets_nomaleatoire(inumcourt3);
				end
			end
			---- chercher son vrai nom
			--for nomobjet in DBOS[numobjet][20] do
			--	if ( DBOS[numobjet][20][nomobjet][1][numcourt2] ) then
			--		tablo.nomobjet		= nomobjet;
			--		break;
			--	end
			--end
		end
	else
		--tablo = {};
		--tablo.nomobjet		= "";
		--tablo.rarity		= 6;
		--tablo.minlevel		= DBOS[numobjet][3];
		--tablo = {};
	end

	return tablo;

end

function DBobjets_Trier(objet1,objet2,t_ordre,niveaufonction)

	local s_champ = t_ordre[niveaufonction].champ;
	local s_sens = t_ordre[niveaufonction].sens;
	local val1,val2;
	local tablo1;
	local tablo2;

	if ( objet1 and objet1[1] ) then
		if ( objet1[5] == "i" ) then
			if ( objet1[1] > 50000 ) then
				tablo1 = DBOS02[objet1[1]];
			else
				tablo1 = DBOS01[objet1[1]];
			end
		else
			tablo1 = DBOS_enchant[objet1[1]];
		end
	--else
	--	tablo1 = { };
	end
	if ( objet2 and objet2[1] ) then
		if ( objet2[5] == "i" ) then
			if ( objet2[1] > 50000 ) then
				tablo2 = DBOS02[objet2[1]];
			else
				tablo2 = DBOS01[objet2[1]];
			end
		else
			tablo2 = DBOS_enchant[objet2[1]];
		end
	--else
	--	tablo2 = { };
	end

	if ( tablo1 == nil ) then
		tablo1 = { };
	end
	if ( tablo2 == nil ) then
		tablo2 = { };
	end

	--if ( tablo1 == nil and tablo2 == nil ) then
	--	return false;
	--end

	local isalaire;
	
--TraceFrame:AddMessage("je compare "..objet1[1].." avec "..objet2[1]);

	if ( s_champ == "nomobjet" ) then
		val1 = objet1[3];
		if ( val1 == nil ) then
			val1 = "";
		end
		val2 = objet2[3];
		if ( val2 == nil ) then
			val2 = "";
		end
	elseif ( s_champ == "numobjet") then
		val1 = objet1[1];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = objet2[1];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "numcourt2") then
		val1 = objet1[2];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = objet2[2];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "rarity") then
		val1 = tablo1[2];
		if ( val1 == nil ) then
			val1 = -1;
		end
		val2 = tablo2[2];
		if ( val2 == nil ) then
			val2 = -1;
		end
	elseif ( s_champ == "niveau") then
		val1 = tablo1[11];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[11];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "nivmin") then
		val1 = tablo1[3];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[3];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "pctdrop") then
		val1 = objet1[4];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = objet2[4];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "prix") then
		if ( tablo1[9] and tablo1[9] == 1 ) then
			isalaire, _ = DBmobs_Salaire(tablo1[1],"0");
			--isalaire = tablo1[10];
			val1 = isalaire;
		else
			val1 = tablo1[10];
		end
		if ( val1 == nil ) then
			val1 = 0;
		end
		if ( tablo2[9] and tablo2[9] == 1 ) then
			isalaire, _ = DBmobs_Salaire(tablo2[1],"0");
			--isalaire = tablo2[10];
			val2 = isalaire;
		else
			val2 = tablo2[10];
		end
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "coffre") then
		val1 = tablo1[9];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[9];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "skill") then
		val1 = tablo1[12];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[12];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "armure") then
		val1 = tablo1[13];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[13];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "dps") then
		val1 = tablo1[14];
		if ( val1 == nil ) then
			val1 = tablo1[81];
		end
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[14];
		if ( val2 == nil ) then
			val2 = tablo2[81];
		end
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "vitesse") then
		val1 = tablo1[17];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[17];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "blocage") then
		val1 = tablo1[18];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[18];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "degmin") then
		val1 = tablo1[19];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[19];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "degmax") then
		val1 = tablo1[20];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[20];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "resistarcanes") then
		val1 = tablo1[22];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[22];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "resistfeu") then
		val1 = tablo1[23];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[23];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "resistnature") then
		val1 = tablo1[24];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[24];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "resistgivre") then
		val1 = tablo1[25];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[25];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "resistombre") then
		val1 = tablo1[26];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[26];
		if ( val2 == nil ) then
			val2 = 0;
		end
	elseif ( s_champ == "t27") then
		val1 = tablo1[27];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[27];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[28]	équipé mana par 5 sec					Equipé : Rend 6 points de mana toutes les 5 secondes.
	elseif ( s_champ == "t28") then
		val1 = tablo1[28];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[28];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[29]	équipé vie par 5 sec					Equipé : Rend x points de vie toutes les 5 sec.
	elseif ( s_champ == "t29") then
		val1 = tablo1[29];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[29];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[30]	équipé dégats et soins des sorts et effets		Equipé : Augmente les dégâts et les soins produits par les sorts et effets magiques de 36 au maximum.
	elseif ( s_champ == "t30") then
		val1 = tablo1[30];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[30];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[31]	équipé défense						Equipé : Défense augmentée de 9.
	elseif ( s_champ == "t31") then
		val1 = tablo1[31];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[31];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[32]	équipé augmente score blocage bouclier		Equipé : Augmente le score de blocage de votre bouclier de 19.
	elseif ( s_champ == "t32") then
		val1 = tablo1[32];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[32];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[33]	équipé chances toucher					Equipé : Augmente vos chances de toucher de 1%.
	elseif ( s_champ == "t33") then
		val1 = tablo1[33];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[33];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[34]	équipé chances toucher avec sorts			Equipé : Augmente vos chances de toucher avec des sorts de 1%.
	elseif ( s_champ == "t34") then
		val1 = tablo1[34];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[34];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[35]	équipé coup critique					Equipé : Augmente vos chances d'infliger un coup critique de 1%.
	elseif ( s_champ == "t35") then
		val1 = tablo1[35];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[35];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[36]	équipé coup critique sorts				Equipé : Augmente vos chances d'infliger un coup critique avec vos sorts de 1%.
	elseif ( s_champ == "t36") then
		val1 = tablo1[36];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[36];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[37]	équipé puissance attaque				Equipé : +24 à la puissance d'attaque.
	elseif ( s_champ == "t37") then
		val1 = tablo1[37];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[37];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[38]	équipé puissance attaque distance			Equipé : +36 à la puissance des attaques à distance.
	elseif ( s_champ == "t38") then
		val1 = tablo1[38];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[38];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[39]	équipé chances bloquer bouclier			Equipé : Augmente vos chances de bloquer les attaques avec un bouclier de 3%.
	elseif ( s_champ == "t39") then
		val1 = tablo1[39];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[39];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[40]	équipé chances esquiver attaque			Equipé : Augmente vos chances d'esquiver une attaque de 1%.
	elseif ( s_champ == "t40") then
		val1 = tablo1[40];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[40];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[41]	équipé dégats des sorts et effets de arcanes	Equipé : Augmente les dégâts infligés par les sorts et effets des Arcanes de 69 au maximum.
	elseif ( s_champ == "t41") then
		val1 = tablo1[41];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[41];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[42]	équipé dégats des sorts et effets de feu		Equipé : Augmente les dégâts infligés par les sorts et effets de Feu de 34 au maximum.
	elseif ( s_champ == "t42") then
		val1 = tablo1[42];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[42];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[43]	équipé dégats des sorts et effets de nature		Equipé : Augmente les dégâts infligés par les sorts et effets de Nature de 69 au maximum.
	elseif ( s_champ == "t43") then
		val1 = tablo1[43];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[43];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[44]	équipé dégats des sorts et effets de givre		Equipé : Augmente les dégâts infligés par les sorts et effets de Givre de 21 au maximum.
	elseif ( s_champ == "t44") then
		val1 = tablo1[44];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[44];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[45]	équipé dégats des sorts et effets de ombre		Equipé : Augmente les dégâts infligés par les sorts et effets d'Ombre de 69 au maximum.
	elseif ( s_champ == "t45") then
		val1 = tablo1[45];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[45];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[47 ]	objet lanceur de quete
	elseif ( s_champ == "t47") then
		val1 = tablo1[47];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[47];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[48 ]	date de création de l'objet
	elseif ( s_champ == "t48") then
		val1 = tablo1[48];
		if ( val1 == nil ) then
			val1 = "";
		end
		val2 = tablo2[48];
		if ( val2 == nil ) then
			val2 = "";
		end
--			[49 ]	nom reputation
	elseif ( s_champ == "t49") then
		val1 = tablo1[49];
		if ( val1 == nil ) then
			val1 = "zz";
		else
			if ( DBCS_Reputation_nom_name[val1] ) then
			else
				val1 = DBCS_Reputation_nom_index[val1];
				if ( val1 == nil ) then
					val1 = "zz";
				end
			end
		end
		val2 = tablo2[49];
		if ( val2 == nil ) then
			val2 = "zz";
		else
			if ( DBCS_Reputation_nom_name[val2] ) then
			else
				val2 = DBCS_Reputation_nom_index[val2];
				if ( val2 == nil ) then
					val2 = "zz";
				end
			end
		end
--			[50 ]	niveau reputation
	elseif ( s_champ == "t50") then
		val1 = tablo1[50];
		if ( val1 == nil ) then
			val1 = 100;
		else
			if ( DBCS_Reputation_rang_index[val1] ) then
			else
				val1 = DBCS_Reputation_rang_name[val1];
				if ( val1 == nil ) then
					val1 = 100;
				end
			end
		end
		val2 = tablo2[50];
		if ( val2 == nil ) then
			val2 = 100;
		else
			if ( DBCS_Reputation_rang_index[val2] ) then
			else
				val2 = DBCS_Reputation_rang_name[val2];
				if ( val2 == nil ) then
					val2 = 100;
				end
			end
		end
--			[54]	équipé score résilience					Equipé : Augmente de 11 le score de résilience.
	elseif ( s_champ == "t54") then
		val1 = tablo1[54];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[54];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			56	Force
	elseif ( s_champ == "t56") then
		val1 = tablo1[56];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[56];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			57	Agilité
	elseif ( s_champ == "t57") then
		val1 = tablo1[57];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[57];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			58	Endurance
	elseif ( s_champ == "t58") then
		val1 = tablo1[58];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[58];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			59	Intelligence
	elseif ( s_champ == "t59") then
		val1 = tablo1[59];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[59];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			60	Esprit
	elseif ( s_champ == "t60") then
		val1 = tablo1[60];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[60];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[61]	équipé attaque ignore armure				Eéquipé : Vos attaques ignorent 84 points de l'armure de votre adversaire.
	elseif ( s_champ == "t61") then
		val1 = tablo1[61];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[61];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[105]	équipé score expertise					Equipé : Augmente votre score d'expertise de 31
	elseif ( s_champ == "t62") then
		val1 = tablo1[105];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[105];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[106]	équipé puissance sorts					Equipé : Augmente la puissance des sorts de 31.
	elseif ( s_champ == "t63") then
		val1 = tablo1[106];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[106];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[107]	équipé score hâte						Equipé : Augmente de 43 le score de hâte.
	elseif ( s_champ == "t64") then
		val1 = tablo1[107];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[107];
		if ( val2 == nil ) then
			val2 = 0;
		end
--			[108]	équipé score pénétration armure			Equipé : Augmente de 43 votre score de pénétration d'armure.
	elseif ( s_champ == "t65") then
		val1 = tablo1[108];
		if ( val1 == nil ) then
			val1 = 0;
		end
		val2 = tablo2[108];
		if ( val2 == nil ) then
			val2 = 0;
		end
	else
		val1 = objet1[3];
		if ( val1 == nil ) then
			val1 = "";
		end
		val2 = objet2[3];
		if ( val2 == nil ) then
			val2 = "";
		end
	end

	if ( s_sens == "ASC" ) then
		if ( val1 < val2 ) then
			return true;
		elseif ( val1 == val2 ) then
		else
			return false;
		end
	else
		if ( val1 > val2 ) then
			return true;
		elseif ( val1 == val2 ) then
		else
			return false;
		end
	end
	if ( val1 == val2 ) then
		if ( table.getn(t_ordre) > niveaufonction ) then
			return DBobjets_Trier(objet1,objet2,t_ordre,niveaufonction+1);
		else
			return false;
		end
	else
		return false; -- pas normal d etre ici
	end

end

--/script DEFAULT_CHAT_FRAME:AddMessage(DBobjets_GetItemLink(24707,"0:0:0:0:0:-40:0"));
--/script DEFAULT_CHAT_FRAME:AddMessage(DBobjets_GetItemLink(24707,"0:0:0:0:0:-40:3775847"));

--/script DEFAULT_CHAT_FRAME:AddMessage(DBobjets_GetItemLink(28483,"0:0:0:0:0:0:0"));
--/script DEFAULT_CHAT_FRAME:AddMessage(DBobjets_GetItemLink(28483,"0:1:2:3:0:0:0"));
--/script DEFAULT_CHAT_FRAME:AddMessage(DBobjets_GetItemLink(28483,"0:4:5:6:0:0:0"));
function DBobjets_GetItemLink(numobjet,numcourt2,bfiable)

local sitem;
local itemName;
local itemName2;
local itemRarity;
local hex;
local slink;
local tablo;
local ipos;

	if ( bfiable == nil ) then
		bfiable = 1;
	end
	if ( bfiable == 1 ) then
	else
		bfiable = 0;
	end
	sitem = "item:"..numobjet..":"..numcourt2;
	
	itemName, _, itemRarity = GetItemInfo(sitem);
	
	if ( itemName ) then
		ipos = 1;
		ipos2 = ipos;
		while ipos do
			ipos = strfind(itemName,"%[",ipos2);
			if ( ipos ) then
				itemName2 = strsub(itemName,1,ipos-1);
				if ( itemName2 == nil ) then
					itemName2 = "";
				end
				itemName2 = itemName2..""..strsub(itemName,ipos+1);
				itemName = itemName2;
				ipos2 = ipos;
			end
		end
		ipos = 1;
		ipos2 = ipos;
		while ipos do
			ipos = strfind(itemName,"%]",ipos2);
			if ( ipos ) then
				itemName2 = strsub(itemName,1,ipos-1);
				if ( itemName2 == nil ) then
					itemName2 = "";
				end
				itemName2 = itemName2..""..strsub(itemName,ipos+1);
				itemName = itemName2;
				ipos2 = ipos;
			end
		end
		--ipos = strfind(itemName,"%]",1);
		--if ( ipos ) then
		--	itemName = strsub(itemName,ipos+2);
		--end
		_, _, _, hex = GetItemQualityColor(itemRarity);
		slink = "|c"..hex.."|H"..sitem.."|h["..itemName.."]|h|r";
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage(slink);
--end
		return slink;
	else
		tablo = DBOS_detail(numobjet,"0:0:0:0:0:0:0:0:0:0");
		if ( tablo.nomobjet == nil ) then
			-- 3 lignes à changer
			_, _, _, hex = GetItemQualityColor(6);
			slink = "|c"..hex.."|Hitem:"..numobjet..":"..numcourt2.."|h[oula oula oula]|h|r";
			return slink;
			--return nil;
		else
--	/script a,b,c,d = GetItemQualityColor(8);DEFAULT_CHAT_FRAME:AddMessage(a.." "..b.." "..c.." "..d);
			itemName = tablo.nomobjet;
			ipos = 1;
			ipos2 = ipos;
			while ipos do
				ipos = strfind(itemName,"%[",ipos2);
				if ( ipos ) then
					itemName2 = strsub(itemName,1,ipos-1);
					if ( itemName2 == nil ) then
						itemName2 = "";
					end
					itemName2 = itemName2..""..strsub(itemName,ipos+1);
					itemName = itemName2;
					ipos2 = ipos;
				end
			end
			ipos = 1;
			ipos2 = ipos;
			while ipos do
				ipos = strfind(itemName,"%]",ipos2);
				if ( ipos ) then
					itemName2 = strsub(itemName,1,ipos-1);
					if ( itemName2 == nil ) then
						itemName2 = "";
					end
					itemName2 = itemName2..""..strsub(itemName,ipos+1);
					itemName = itemName2;
					ipos2 = ipos;
				end
			end
			--ipos = strfind(itemName,"%]",1);
			--if ( ipos ) then
			--	itemName = strsub(itemName,ipos+2);
			--end
			_, _, _, hex = GetItemQualityColor(tablo.rarity);
			slink = "|c"..hex.."|H"..sitem.."|h["..itemName.."]|h|r";
			--SetItemRef("item:"..numobjet..":"..numcourt2);
			if ( bfiable == 1 ) then
				return slink.." non fiable.";
			else
				return slink;
			end
		end
	end

end
function DBobjets_GetItemLink_enchant(numobjet)

local sitem;
local itemName;
local itemRarity;
local hex;
local slink;
local tablo;

	sitem = "enchant:"..numobjet..":0:0:0:0:0:0:0:0:0:0";
	
	itemName = DBOS_enchant[numobjet][1];
	
	if ( itemName ) then
		_, _, _, hex = GetItemQualityColor(6);
		--hex = 
		slink = "|c"..hex.."|H"..sitem.."|h["..itemName.."]|h|r";
		return slink;
	else
		--tablo = DBOS_detail(numobjet,"0:0:0:0:0:0:0");
		--if ( tablo == nil ) then
		--	-- 3 lignes à changer
		--	--_, _, _, hex = GetItemQualityColor(6);
		--	--slink = hex.."|Hitem:"..numobjet..":"..numcourt2.."|h[oula oula oula]|h|r";
		--	--return slink;
		--	return nil;
		--else
----	/script a,b,c,d = GetItemQualityColor(8);DEFAULT_CHAT_FRAME:AddMessage(a.." "..b.." "..c.." "..d);
		--	_, _, _, hex = GetItemQualityColor(tablo.rarity);
		--	slink = hex.."|H"..sitem.."|h["..tablo.nomobjet.."]|h|r";
		--	SetItemRef("item:"..numobjet..":"..numcourt2);
		--	return slink.." non fiable.";
		--end
	end

end

function DBobjets_recherchemotclef()

local numobjet;
local tOBJET;

--			[4]	type			= ""
--			[5]	subtype			= ""
--			[7]	equiploc			= ""

	if ( DBOS_valeurs["type"] == nil ) then
		DBOS_valeurs["type"] = {};
	end
	if ( DBOS_valeurs["subtype"] == nil ) then
		DBOS_valeurs["subtype"] = {};
	end
	if ( DBOS_valeurs["equiploc"] == nil ) then
		DBOS_valeurs["equiploc"] = {};
	end
	for numobjet, _ in pairs(DBOS01) do
		tOBJET = DBOS01[numobjet];
		if ( tOBJET[4] ) then
			if ( DBOS_valeurs["type"][tOBJET[4]] == nil ) then
				DBOS_valeurs["type"][tOBJET[4]] = -1;
			end
		end
		if ( tOBJET[5] ) then
			if ( DBOS_valeurs["subtype"][tOBJET[5]] == nil ) then
				DBOS_valeurs["subtype"][tOBJET[5]] = -1;
			end
		end
		if ( tOBJET[7] ) then
			if ( DBOS_valeurs["equiploc"][tOBJET[7]] == nil ) then
				DBOS_valeurs["equiploc"][tOBJET[7]] = -1;
			end
		end
	end
	for numobjet, _ in pairs(DBOS02) do
		tOBJET = DBOS02[numobjet];
		if ( tOBJET[4] ) then
			if ( DBOS_valeurs["type"][tOBJET[4]] == nil ) then
				DBOS_valeurs["type"][tOBJET[4]] = -1;
			end
		end
		if ( tOBJET[5] ) then
			if ( DBOS_valeurs["subtype"][tOBJET[5]] == nil ) then
				DBOS_valeurs["subtype"][tOBJET[5]] = -1;
			end
		end
		if ( tOBJET[7] ) then
			if ( DBOS_valeurs["equiploc"][tOBJET[7]] == nil ) then
				DBOS_valeurs["equiploc"][tOBJET[7]] = -1;
			end
		end
	end

end

function DBobjets_nomaleatoire(inumcourt3)

local i = 0;
local j;
local ibon = 0;

if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("inumcourt3 = "..inumcourt3);
end
	-- récup le vrai nom si possible

	j = table.getn(DBCS_objet_aleatoire);
	while ( i < j and ibon == 0 ) do
		i = i + 1;
		if ( inumcourt3 <= DBCS_objet_aleatoire[i].numfin ) then
			ibon = 1;
		end
	end
	if ( DBCS_objet_aleatoire[i].name == "vide" ) then
		return "inconnu"..i;	--	DBCS_objet_aleatoire[i].name
	else
		return DBCS_objet_aleatoire[i].name;
	end

end

--/script DBOS_extract_lignes(19019)
--/script DBOS_extract_lignes(29268)

--/script DBOS_extract_lignes(16536)

--/script DBOS_extract_lignes(22198)

--/script DBOS_extract_lignes(18517)

--/script DBOS_extract_lignes(16536)
--/script DBOS_extract_lignes(21563)

--/script DBOS_extract_lignes()
--/script DBOS_extract_lignes(17771)

--/script DBOS_nettoyer_donnee()
function DBOS_nettoyer_donnee()

local numobjet;
local tOBJET;

	for numobjet, _ in pairs(DBOS01) do
		tOBJET = DBOS01[numobjet];
		tOBJET[13] = nil;
		tOBJET[18] = nil;
		tOBJET[21] = nil;
		tOBJET[27] = nil;
		tOBJET["27A"] = nil;
		tOBJET[28] = nil;
		tOBJET[29] = nil;
		tOBJET[30] = nil;
		tOBJET[31] = nil;
		tOBJET[32] = nil;
		tOBJET[33] = nil;
		tOBJET[34] = nil;
		tOBJET[35] = nil;
		tOBJET[36] = nil;
		tOBJET[37] = nil;
		tOBJET[38] = nil;
		tOBJET[39] = nil;
		tOBJET[40] = nil;
		tOBJET[41] = nil;
		tOBJET[42] = nil;
		tOBJET[43] = nil;
		tOBJET[44] = nil;
		tOBJET[45] = nil;
		tOBJET[61] = nil;
		tOBJET[62] = nil;
		tOBJET[80] = nil;
		tOBJET[81] = nil;
		DBOS01[numobjet] = tOBJET;
	end
	for numobjet, _ in pairs(DBOS02) do
		tOBJET = DBOS02[numobjet];
		tOBJET[13] = nil;
		tOBJET[18] = nil;
		tOBJET[21] = nil;
		tOBJET[27] = nil;
		tOBJET["27A"] = nil;
		tOBJET[28] = nil;
		tOBJET[29] = nil;
		tOBJET[30] = nil;
		tOBJET[31] = nil;
		tOBJET[32] = nil;
		tOBJET[33] = nil;
		tOBJET[34] = nil;
		tOBJET[35] = nil;
		tOBJET[36] = nil;
		tOBJET[37] = nil;
		tOBJET[38] = nil;
		tOBJET[39] = nil;
		tOBJET[40] = nil;
		tOBJET[41] = nil;
		tOBJET[42] = nil;
		tOBJET[43] = nil;
		tOBJET[44] = nil;
		tOBJET[45] = nil;
		tOBJET[61] = nil;
		tOBJET[62] = nil;
		tOBJET[80] = nil;
		tOBJET[81] = nil;
		DBOS02[numobjet] = tOBJET;
	end

end

--/script DBOS_extract_lignes(0,true)
--/script DBOS_extract_lignes(29329,true)
function DBOS_extract_lignes(numobjet,benclair)

	--	DBcorpsFrame_Tooltip

--local numobjet;
local tOBJET;
local stemp;
local ochamp;
local i;
local j;
local k;
local schamp;
local ia,ib;
local svaleur1;
local svaleur2;
local bbon;
local bfin;
local tablo;
local snom;
local snom_stype;
local ideb;
local ipos;
local sentier;
local sdecimales;

local bplan;

local imontantvaleur;

local itemLink;

local slangue;

local b12 = false;
local b13 = false;
local b14 = false;
local b15 = false;
local b16 = false;
local b17 = false;
local b18 = false;
local b19 = false;
local b20 = false;
local b21 = false;
local b22 = false;
local b23 = false;
local b24 = false;
local b25 = false;
local b26 = false;
--			[27]	équipé soins des sorts et effets			Eéquipé : Augmente les soins prodigués d'un maximum de 90 et les dégâts d'un maximum de 30 pour tous les sorts et effets magiques.
local b27 = false;
local b27a = false;
--			[28]	équipé mana par 5 sec					Equipé : Rend 6 points de mana toutes les 5 secondes.
local b28 = false;
--			[29]	équipé vie par 5 sec					Equipé : Rend x points de vie toutes les 5 sec.
local b29 = false;
--			[30]	équipé dégats et soins des sorts et effets		Equipé : Augmente les dégâts et les soins produits par les sorts et effets magiques de 36 au maximum.
local b30 = false;
--			[31]	équipé défense						Equipé : Défense augmentée de 9.
local b31 = false;
--			[32]	équipé augmente score blocage bouclier		Equipé : Augmente le score de blocage de votre bouclier de 19.
local b32 = false;
--			[33]	équipé chances toucher					Equipé : Augmente vos chances de toucher de 1%.
local b33 = false;
--			[34]	équipé chances toucher avec sorts			Equipé : Augmente vos chances de toucher avec des sorts de 1%.
local b34 = false;
--			[35]	équipé coup critique					Equipé : Augmente vos chances d'infliger un coup critique de 1%.
local b35 = false;
--			[36]	équipé coup critique sorts				Equipé : Augmente vos chances d'infliger un coup critique avec vos sorts de 1%.
local b36 = false;
--			[37]	équipé puissance attaque				Equipé : +24 à la puissance d'attaque.
local b37 = false;
--			[38]	équipé puissance attaque distance			Equipé : +36 à la puissance des attaques à distance.
local b38 = false;
--			[39]	équipé chances bloquer bouclier			Equipé : Augmente vos chances de bloquer les attaques avec un bouclier de 3%.
local b39 = false;
--			[40]	équipé chances esquiver attaque			Equipé : Augmente vos chances d'esquiver une attaque de 1%.
local b40 = false;
--			[41]	équipé dégats des sorts et effets de arcanes	Equipé : Augmente les dégâts infligés par les sorts et effets des Arcanes de 69 au maximum.
local b41 = false;
--			[42]	équipé dégats des sorts et effets de feu		Equipé : Augmente les dégâts infligés par les sorts et effets de Feu de 34 au maximum.
local b42 = false;
--			[43]	équipé dégats des sorts et effets de nature		Equipé : Augmente les dégâts infligés par les sorts et effets de Nature de 69 au maximum.
local b43 = false;
--			[44]	équipé dégats des sorts et effets de givre		Equipé : Augmente les dégâts infligés par les sorts et effets de Givre de 21 au maximum.
local b44 = false;
--			[45]	équipé dégats des sorts et effets de ombre		Equipé : Augmente les dégâts infligés par les sorts et effets d'Ombre de 69 au maximum.
local b45 = false;
--			46	lié
local b46 = false;
--			[47]	Cet objet permet de lancer une quête
local b47 = false;
--			[49]	nom réputation
local b49 = false;
--			[50]	niveau réputation
local b50 = false;
--			[54]	équipé score résilience					Equipé : Augmente de 11 le score de résilience.
local b54 = false;
--			[56]	Force								+21 Force
local b56 = false;
--			[57]	Agilité							+21 Agilité
local b57 = false;
--			[58]	Endurance							+21 Endurance
local b58 = false;
--			[59]	Intelligence						+21 Intelligence
local b59 = false;
--			[60]	Esprit							+21 Esprit
local b60 = false;
--			[61]	équipé attaque ignore armure				Eéquipé : Vos attaques ignorent 84 points de l'armure de votre adversaire.
local b61 = false;
--			[80]	description							blabla sur l'objet
local b62 = false;
--			[62]	type de dégats	= Arcanes, Feu, Nature, Givre, Ombre, Sacré
local b80 = false;
--			[81]	dégats projectiles						Ajoute 46.5 dégâts par seconde
local b81 = false;
--			[99]	texte du bonus de sertissage
local b99 = false;
--			[100]	Objet invoqué
local b100 = false;
--			[101]	Unique (10)
local b101 = false;
--			[102]	Durée\194\160: 7 jours
local b102 = false;
--			[103]	Objet de quête
local b103 = false;
--			[104]	Lier au compte
local b104 = false;
--			[105]	équipé score expertise					Equipé : Augmente votre score d'expertise de 31
local b105 = false;
--			[106]	équipé puissance sorts					Equipé : Augmente la puissance des sorts de 31.
local b106 = false;
--			[107]	équipé score hâte						Equipé : Augmente de 43 le score de hâte.
local b107 = false;
--			[108]	équipé score pénétration armure			Equipé : Augmente de 43 votre score de pénétration d'armure.
local b108 = false;
--			[109]	Héroïque
local b109 = false;
--			[110]	date extract lignes objet
local b110 = false;
--			[111]	version fichier extract lignes objet
local b111 = false;

--iStart, iEnd, val1, val2 = string.find(left, "(%d+) %- (%d+) Damage");
--				iStart, iEnd, val1 = string.find(left, "Binds when (.+)");
--				if( val1 ) then
--					if( val1 == "equipped" ) then
--						value.d = value.d.."bi"..BINDS_EQUIP.."·";
--					elseif( val1 == "picked up" ) then
--						value.d = value.d.."bi"..BINDS_PICKUP.."·";
--					elseif( val1 == "used" ) then
--						value.d = value.d.."bi"..BINDS_USED.."·";
--					end
--					loop = nil;

	--if ( numobjet ) then
	--	tablo = { numobjet };
	--else
	--	tablo = DBOS;
	--end

	--for numobjet in tablo do
		--numobjet = 19019;
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("extraction du numero : "..numobjet);
--end

	if ( benclair == nil ) then
		benclair = false;
	end

		if ( numobjet > 50000 ) then
			tOBJET = DBOS02[numobjet];
		else
			tOBJET = DBOS01[numobjet];
		end

	--gestion si l'objet doit etre re enregistré ( coute du temps ordinateur et est sans interets aucuns )
	if ( tOBJET[110] and tOBJET[110] == DBCS_date() ) then
		if ( tOBJET[111] and tOBJET[111] == DBOS_version1..DBOS_version2..DBOS_version3 ) then
			return nil;
		end
	end
	tOBJET[110] = DBCS_date();
	tOBJET[111] = DBOS_version1..DBOS_version2..DBOS_version3;

		--itemName, itemLink, itemRarity, _, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo(snumlong);
		stemp, itemLink, _, _, _, _, _, _, _, _ = GetItemInfo("item:"..numobjet..":0:0:0:0:0:0:0:0:0:0");
		if ( stemp ) then
			for i = 1 , 8 do
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("DBcorpsFrame_Tooltip1TextLeft"..i);
--end
				_G["DBcorpsFrame_Tooltip3TextLeft"..i]:SetText(nil);
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("DBcorpsFrame_Tooltip1TextRight"..i);
--end
				_G["DBcorpsFrame_Tooltip3TextRight"..i]:SetText(nil);
			end
			DBOS_extract_nb = DBOS_extract_nb + 1;
			DBcorpsFrame_Tooltip3:SetOwner(WorldFrame,"ANCHOR_NONE");
			if ( DBcorpsFrame_Tooltip3MoneyFrame1 ) then
				DBcorpsFrame_Tooltip3MoneyFrame1.staticMoney = nil;
			end
			DBcorpsFrame_Tooltip3:SetHyperlink("item:"..numobjet..":0:0:0:0:0:0:0:0:0:0");
			ochamp = _G["DBcorpsFrame_Tooltip3TextLeft1"];
			schamp = ochamp:GetText();
			if ( schamp and schamp == stemp ) then
				--if ( DBcorpsFrame_Tooltip3MoneyFrame1 ) then
				--	imontantvaleur = DBcorpsFrame_Tooltip3MoneyFrame1.staticMoney;
				--else
				--	imontantvaleur = nil;
				--end
				--if ( imontantvaleur ) then
--if ( DBCS_debug > 1 ) then
				--	if ( tOBJET[10] and imontantvaleur == tOBJET[10] ) then
				--	else
--TraceFrame:AddMessage("DBcorpsFrame_Tooltip3MoneyFrame1.staticMoney "..numobjet..":"..itemLink.." = "..imontantvaleur.." avant : "..(tOBJET[10] or "0"));
				--	end
--end
				--else
--if ( DBCS_debug > 1 ) then
				--	if ( tOBJET[10] ) then
--TraceFrame:AddMessage("DBcorpsFrame_Tooltip3MoneyFrame1.staticMoney "..numobjet..":"..itemLink.." n'a pas de prix. avant : "..(tOBJET[10] or "0"));
				--	end
--end
				--end
				--tOBJET[10] = imontantvaleur;
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("extraction de l'objet : "..schamp);
--end
				tOBJET[0] = 1;
				tOBJET[12] = nil;
				tOBJET[13] = nil;
				tOBJET[14] = nil;
				tOBJET[15] = nil;
				tOBJET[16] = nil;
				tOBJET[17] = nil;
				tOBJET[18] = nil;
				tOBJET[19] = nil;
				tOBJET[20] = nil;
				tOBJET[21] = nil;
				tOBJET[22] = nil;
				tOBJET[23] = nil;
				tOBJET[24] = nil;
				tOBJET[25] = nil;
				tOBJET[26] = nil;
--			[27]	équipé soins des sorts et effets			Eéquipé : Augmente les soins prodigués d'un maximum de 90 et les dégâts d'un maximum de 30 pour tous les sorts et effets magiques.
				tOBJET[27] = nil;
				tOBJET["27A"] = nil;
--			[28]	équipé mana par 5 sec					Equipé : Rend 6 points de mana toutes les 5 secondes.
				tOBJET[28] = nil;
--			[29]	équipé vie par 5 sec					Equipé : Rend x points de vie toutes les 5 sec.
				tOBJET[29] = nil;
--			[30]	équipé dégats et soins des sorts et effets		Equipé : Augmente les dégâts et les soins produits par les sorts et effets magiques de 36 au maximum.
				tOBJET[30] = nil;
--			[31]	équipé défense						Equipé : Défense augmentée de 9.
				tOBJET[31] = nil;
--			[32]	équipé augmente score blocage bouclier		Equipé : Augmente le score de blocage de votre bouclier de 19.
				tOBJET[32] = nil;
--			[33]	équipé chances toucher					Equipé : Augmente vos chances de toucher de 1%.
				tOBJET[33] = nil;
--			[34]	équipé chances toucher avec sorts			Equipé : Augmente vos chances de toucher avec des sorts de 1%.
				tOBJET[34] = nil;
--			[35]	équipé coup critique					Equipé : Augmente vos chances d'infliger un coup critique de 1%.
				tOBJET[35] = nil;
--			[36]	équipé coup critique sorts				Equipé : Augmente vos chances d'infliger un coup critique avec vos sorts de 1%.
				tOBJET[36] = nil;
--			[37]	équipé puissance attaque				Equipé : +24 à la puissance d'attaque.
				tOBJET[37] = nil;
--			[38]	équipé puissance attaque distance			Equipé : +36 à la puissance des attaques à distance.
				tOBJET[38] = nil;
--			[39]	équipé chances bloquer bouclier			Equipé : Augmente vos chances de bloquer les attaques avec un bouclier de 3%.
				tOBJET[39] = nil;
--			[40]	équipé chances esquiver attaque			Equipé : Augmente vos chances d'esquiver une attaque de 1%.
				tOBJET[40] = nil;
--			[41]	équipé dégats des sorts et effets de arcanes	Equipé : Augmente les dégâts infligés par les sorts et effets des Arcanes de 69 au maximum.
				tOBJET[41] = nil;
--			[42]	équipé dégats des sorts et effets de feu		Equipé : Augmente les dégâts infligés par les sorts et effets de Feu de 34 au maximum.
				tOBJET[42] = nil;
--			[43]	équipé dégats des sorts et effets de nature		Equipé : Augmente les dégâts infligés par les sorts et effets de Nature de 69 au maximum.
				tOBJET[43] = nil;
--			[44]	équipé dégats des sorts et effets de givre		Equipé : Augmente les dégâts infligés par les sorts et effets de Givre de 21 au maximum.
				tOBJET[44] = nil;
--			[45]	équipé dégats des sorts et effets de ombre		Equipé : Augmente les dégâts infligés par les sorts et effets d'Ombre de 69 au maximum.
				tOBJET[45] = nil;
--			46	lié
				tOBJET[46] = nil;
--			[47]	Cet objet permet de lancer une quête
				tOBJET[47] = nil;
--			[49]	nom réputation
--			[50]	niveau réputation
				tOBJET[49] = nil;
				tOBJET[50] = nil;
--			[54]	équipé score résilience					Equipé : Augmente de 11 le score de résilience.
				tOBJET[54] = nil;
				tOBJET[56] = nil;
				tOBJET[57] = nil;
				tOBJET[58] = nil;
				tOBJET[59] = nil;
				tOBJET[60] = nil;
--			[61]	équipé attaque ignore armure				Eéquipé : Vos attaques ignorent 84 points de l'armure de votre adversaire.
				tOBJET[61] = nil;
--			[62]	type de dégats	= Arcanes, Feu, Nature, Givre, Ombre, Sacré
				tOBJET[62] = nil;
--			[80]	description							blabla sur l'objet
				tOBJET[80] = nil;
--			[81]	dégats projectiles						Ajoute 46.5 dégâts par seconde
				tOBJET[81] = nil;
--			[83]	bonus équipé inconnus
				tOBJET[83] = nil;
--			[84]	bonus utiliser inconnus
				tOBJET[84] = nil;
--			[85]	+5 - 10 points de dégâts (Arcanes)
				tOBJET[85] = nil;
				tOBJET[86] = nil;
				tOBJET[87] = nil;
				tOBJET[88] = nil;
				tOBJET[89] = nil;
				tOBJET[90] = nil;
				tOBJET[91] = nil;
				tOBJET[92] = nil;
				tOBJET[93] = nil;
				tOBJET[94] = nil;
				tOBJET[95] = nil;
				tOBJET[96] = nil;
--			[97]	bonus : Chances quand vous touchez, inconnus
				tOBJET[97] = nil;
--			[99]	texte du bonus de sertissage
				tOBJET[99] = nil;
--			[100]	Objet invoqué
				tOBJET[100] = nil;
--			[101]	Unique (10)
				tOBJET[101] = nil;
--			[102]	Durée\194\160: 7 jours
				tOBJET[102] = nil;
--			[103]	Objet de quête
				tOBJET[103] = nil;
--			[104]	Lier au compte
				tOBJET[104] = nil;
--			[105]	équipé score expertise					Equipé : Augmente votre score d'expertise de 31
				tOBJET[105] = nil;
--			[106]	équipé puissance sorts					Equipé : Augmente la puissance des sorts de 31.
				tOBJET[106] = nil;
--			[107]	équipé score hâte						Equipé : Augmente de 43 le score de hâte.
				tOBJET[107] = nil;
--			[108]	équipé score pénétration armure			Equipé : Augmente de 43 votre score de pénétration d'armure.
				tOBJET[108] = nil;
--			[109]	Héroïque
				tOBJET[109] = nil;
				--	TextLeft
	--local lines = BonusScannerTooltip:NumLines();
				bplan = false;
				for i = 2 , DBcorpsFrame_Tooltip3:NumLines() do
					bbon = false;
					ochamp = _G["DBcorpsFrame_Tooltip3TextLeft"..i];
					schamp = ochamp:GetText();
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("left"..i.." = -"..(schamp or "").."-");
--end
					if ( schamp ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("left"..i.." = -"..schamp.."-");
--end
if ( benclair == true ) then
	DBCS_ecrirecodedutexte(schamp);
end
--			[109]	Héroïque
						if ( bplan == false and bbon == false and b109 == false ) then
							ia, ib = string.find(schamp, "^H\195\169ro\195\175que$");
							if ( ia ) then
								b109 = true;
								bbon = true;
								tOBJET[109] = 1;
							end
						end
						-- 46 = lié quand
						if ( bplan == false and bbon == false and b46 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "Li\195\169 quand (.+)$");
							if ( ia ) then
								b46 = true;
								bbon = true;
								if ( svaleur1 == "\195\169quip\195\169" ) then
									tOBJET[46] = 1;
								elseif ( svaleur1 == "ramass\195\169" ) then
									tOBJET[46] = 2;
								elseif ( svaleur1 == "utilis\195\169" ) then
									tOBJET[46] = 3;
								end
--if ( DBCS_debug > 1 ) then
--if ( tOBJET[11] ) then
--TraceFrame:AddMessage("lien = "..tOBJET[11].." : "..svaleur1);
--else
--TraceFrame:AddMessage("lien = "..svaleur1);
--end
--end
							end
						end
--			[104]	Lier au compte
						if ( bplan == false and bbon == false and b104 == false ) then
							ia, ib = string.find(schamp, "^Lier au compte$");
							if ( ia ) then
								b104 = true;
								bbon = true;
								tOBJET[104] = 1;
							end
						end
						if ( bplan == false and bbon == false and b104 == false ) then
							ia, ib = string.find(schamp, "^Li\195\169 au compte$");
							if ( ia ) then
								b104 = true;
								bbon = true;
								tOBJET[104] = 1;
							end
						end
--			[102]	Durée\194\160: 7 jours
						if ( bplan == false and bbon == false and b102 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "^Dur\195\169e\194\160: (.+)$");
							if ( ia ) then
								b102 = true;
								bbon = true;
								tOBJET[102] = svaleur1;
							end
						end
--			[103]	Objet de quête
						if ( bplan == false and bbon == false and b103 == false ) then
							ia, ib = string.find(schamp, "^Objet de qu\195\170te$");
							if ( ia ) then
								b103 = true;
								bbon = true;
								tOBJET[103] = 1;
							end
						end
						-- 16 = unique
						if ( bplan == false and bbon == false and b16 == false ) then
							ia, ib = string.find(schamp, "^Unique$");
							if ( ia ) then
								b16 = true;
								bbon = true;
								tOBJET[16] = 1;
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("cet objet est unique");
--end
							else
								ia, ib = string.find(schamp, "Unique %- Equip\195\169");
								if ( ia ) then
									b16 = true;
									bbon = true;
									tOBJET[16] = 2;
								end
							end
						end
--			[101]	Unique (10)
						if ( bplan == false and bbon == false and b101 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "^Unique %((%d+)%)$");
							if ( ia ) then
								b101 = true;
								bbon = true;
								tOBJET[101] = tonumber(svaleur1);
							end
						end
						-- 12 = skill				--	, 21	, type d artisanat
						if ( bplan == false and bbon == false and b12 == false ) then
							ia, ib, svaleur1, svaleur2 = string.find(schamp, "(.+) %((%d+)%) requis$");
							if ( ia ) then
								if ( svaleur1 == "Niveau" or svaleur1 == "Monte" ) then
								else
									b12 = true;
									bbon = true;
									tOBJET[12] = tonumber(svaleur2);
								end
								--bfin = false;
								--for j = 1 , table.getn(DBCS_objet_type_subtype[12]) do
								--	if ( bfin == false and svaleur1 == DBCS_objet_subtype[DBCS_objet_type_subtype[12][j]] ) then
								--		tOBJET[21] = DBCS_objet_type_subtype[12][j];
								--		bfin = true;
								--	end
								--	--DBCS_objet_type_subtype
								--end
--if ( DBCS_debug > 1 ) then
----if ( tOBJET[21] ) then
----TraceFrame:AddMessage(tOBJET[21].." = "..tOBJET[12]);
----else
--TraceFrame:AddMessage("skill = "..tOBJET[12].." pour : "..svaleur1);
----end
--end
							end
						end
						-- 13 = armure
						if ( bplan == false and bbon == false and b13 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "Armure\194\160: (%d+)$");
							if ( ia ) then
								b13 = true;
								bbon = true;
								tOBJET[13] = tonumber(svaleur1);
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("armure = "..tOBJET[13]);
--end
							end
						end
						-- 18 = bloquer
						if ( bplan == false and bbon == false and b18 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "Bloquer\194\160: (%d+)$");
							if ( ia ) then
								b18 = true;
								bbon = true;
								tOBJET[18] = tonumber(svaleur1);
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("bloquer = "..tOBJET[18]);
--end
							end
						end
						-- 19 - 20 = dégats min - max
						if ( bplan == false and bbon == false and b19 == false and b20 == false ) then
							ia, ib, svaleur1, svaleur2 = string.find(schamp, "D\195\169g\195\162ts\194\160: (%d+) %- (%d+)");
							if ( ia ) then
								b19 = true;
								b20 = true;
								bbon = true;
								tOBJET[19] = tonumber(svaleur1);
								tOBJET[20] = tonumber(svaleur2);
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("d\195\169g\195\162ts = "..tOBJET[19].." - "..tOBJET[20]);
--end
							end
						end
						-- 19 - 20 = dégats min - max
						if ( bplan == false and bbon == false and b19 == false and b20 == false ) then
							ia, ib, svaleur1, svaleur2 = string.find(schamp, "D\195\169g\195\162ts: (%d+) %- (%d+)");
							if ( ia ) then
								b19 = true;
								b20 = true;
								bbon = true;
								tOBJET[19] = tonumber(svaleur1);
								tOBJET[20] = tonumber(svaleur2);
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("d\195\169g\195\162ts = "..tOBJET[19].." - "..tOBJET[20]);
--end
							end
						end
--			[85]	+5 - 10 points de dégâts (Arcanes)
--			[96]	+5 - 10 points de dégâts (Sacré)
						if ( bplan == false and bbon == false ) then
							ia, ib, svaleur1, svaleur2, svaleur3 = string.find(schamp, "%+(%d+) %- (%d+) points de d\195\169g\195\162ts %((.+)%)");
							if ( ia ) then
								bbon = true;
								if ( svaleur3 == "Arcanes" ) then
									tOBJET[85] = tonumber(svaleur1);
									tOBJET[86] = tonumber(svaleur2);
								elseif ( svaleur3 == "Feu" ) then
									tOBJET[87] = tonumber(svaleur1);
									tOBJET[88] = tonumber(svaleur2);
								elseif ( svaleur3 == "Givre" ) then
									tOBJET[89] = tonumber(svaleur1);
									tOBJET[90] = tonumber(svaleur2);
								elseif ( svaleur3 == "Nature" ) then
									tOBJET[91] = tonumber(svaleur1);
									tOBJET[92] = tonumber(svaleur2);
								elseif ( svaleur3 == "Ombre" ) then
									tOBJET[93] = tonumber(svaleur1);
									tOBJET[94] = tonumber(svaleur2);
								elseif ( svaleur3 == "Sacr\195\169" ) then
									tOBJET[95] = tonumber(svaleur1);
									tOBJET[96] = tonumber(svaleur2);
								end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("d\195\169g\195\162ts = "..tOBJET[19].." - "..tOBJET[20]);
--end
							end
						end
						-- 19 - 20 = dégats min - max ( type de sort )
						--	[62]	type de dégats	= Arcanes, Feu, Nature, Givre, Ombre, Sacré
						if ( bplan == false and bbon == false and b19 == false and b20 == false and b62 == false ) then
							ia, ib, svaleur1, svaleur2, svaleur3 = string.find(schamp, "(%d+) %- (%d+) points de d\195\169g\195\162ts %((.+)%)");
							if ( ia ) then
								b19 = true;
								b20 = true;
								b62 = true;
								bbon = true;
								tOBJET[19] = tonumber(svaleur1);
								tOBJET[20] = tonumber(svaleur2);
								if ( svaleur3 == "Arcanes" ) then
									tOBJET[62] = 1;
								elseif ( svaleur3 == "Feu" ) then
									tOBJET[62] = 2;
								elseif ( svaleur3 == "Givre" ) then
									tOBJET[62] = 3;
								elseif ( svaleur3 == "Nature" ) then
									tOBJET[62] = 4;
								elseif ( svaleur3 == "Ombre" ) then
									tOBJET[62] = 5;
								elseif ( svaleur3 == "Sacr\195\169" ) then
									tOBJET[62] = 6;
								else
									tOBJET[62] = nil;
								end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("d\195\169g\195\162ts = "..tOBJET[19].." - "..tOBJET[20]);
--end
							end
						end
						-- 14 = dps
						if ( bplan == false and bbon == false and b14 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "%((.+) d\195\169g\195\162ts par seconde%)");
							if ( ia ) then
								b14 = true;
								bbon = true;
								ipos = strfind(svaleur1,"%.");
								if ( ipos == nil ) then
									ipos = strfind(svaleur1,"%,");
								end
								if ( ipos ) then
									sentier = strsub(svaleur1,1,ipos-1);
									sdecimales = strsub(svaleur1,ipos+1);
									if ( strlen(sdecimales) == 1 ) then
										sdecimales = sdecimales.."0";
									end
									if ( tonumber(sdecimales) == nil ) then
										tOBJET[14] = tonumber(sentier);
									else
										tOBJET[14] = tonumber(sentier)+(tonumber(sdecimales)/100);
									end
								else
									tOBJET[14] = tonumber(svaleur1);
								end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("dps = "..tOBJET[14]);
--end
							end
						end
--			[56]	Force								+21 Force
						if ( bplan == false and bbon == false and b56 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "^%+(%d+) Force$");
							if ( ia ) then
								b56 = true;
								bbon = true;
								tOBJET[56] = tonumber(svaleur1);
							end
						end
--			[57]	Agilité							+21 Agilité
						if ( bplan == false and bbon == false and b57 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "^%+(%d+) Agilit\195\169$");
							if ( ia ) then
								b57 = true;
								bbon = true;
								tOBJET[57] = tonumber(svaleur1);
							end
						end
--			[58]	Endurance							+21 Endurance
						if ( bplan == false and bbon == false and b58 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "^%+(%d+) Endurance$");
							if ( ia ) then
								b58 = true;
								bbon = true;
								tOBJET[58] = tonumber(svaleur1);
							end
						end
--			[59]	Intelligence						+21 Intelligence
						if ( bplan == false and bbon == false and b59 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "^%+(%d+) Intelligence$");
							if ( ia ) then
								b59 = true;
								bbon = true;
								tOBJET[59] = tonumber(svaleur1);
							end
						end
--			[60]	Esprit							+21 Esprit
						if ( bplan == false and bbon == false and b60 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "^%+(%d+) Esprit$");
							if ( ia ) then
								b60 = true;
								bbon = true;
								tOBJET[60] = tonumber(svaleur1);
							end
						end
						-- 15 = classes
						if ( bplan == false and bbon == false and b15 == false ) then
							--ia, ib, svaleur1 = string.find(schamp, "^Classes : (.+)$");
							if ( strfind(schamp,"^Classes") ) then
								b15 = true;
								bbon = true;
								svaleur2 = "@";
								for j = 2 , table.getn(DBCS_classes) do
									if ( strfind(schamp,DBCS_classes[j]) ) then
										svaleur2 = svaleur2..j.."@";
									end
								end
								tOBJET[15] = svaleur2;
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("classes = "..tOBJET[15]);
--end
							end
						end
						-- 22 23 24 25 26 résist
						if ( bplan == false and bbon == false and ( b22 == false or b23 == false or b24 == false or b25 == false or b26 == false ) ) then
							ia, ib, svaleur1, svaleur2 = string.find(schamp, "%+(%d+) \195\160 la r\195\169sistance (.+)$");
							if ( ia ) then
								bbon = true;
								if ( svaleur2 == "Arcanes" ) then
									tOBJET[22] = tonumber(svaleur1);
								elseif ( svaleur2 == "Feu" ) then
									tOBJET[23] = tonumber(svaleur1);
								elseif ( svaleur2 == "Nature" ) then
									tOBJET[24] = tonumber(svaleur1);
								elseif ( svaleur2 == "Givre" ) then
									tOBJET[25] = tonumber(svaleur1);
								elseif ( svaleur2 == "Ombre" ) then
									tOBJET[26] = tonumber(svaleur1);
								end
							end
						end
----			[27]	équipé soins des sorts et effets			Eéquipé : Augmente les soins prodigués par les sorts et effets de 46 au maximum.
--			[27]	équipé soins des sorts et effets			Eéquipé : Augmente les soins prodigués d'un maximum de 90 et les dégâts d'un maximum de 30 pour tous les sorts et effets magiques.
						if ( bplan == false and bbon == false and ( b27 == false ) ) then
							ia, ib, svaleur1 , svaleur2 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente les soins prodigu\195\169s d'un maximum de (%d+) et les d\195\169g\195\162ts d'un maximum de (%d+) pour tous les sorts et effets magiques%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[27] = tonumber(svaleur1);
								tOBJET["27A"] = tonumber(svaleur2);
							end
						end
--			[28]	équipé mana par 5 sec					Eéquipé : Rend 6 points de mana toutes les 5 sec.
						if ( bplan == false and bbon == false and ( b28 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Rend (%d+) points de mana toutes les 5 sec%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[28] = tonumber(svaleur1);
							end
						end
--			[28]	équipé mana par 5 sec					Eéquipé : Rend 6 points de mana toutes les 5 sec.
						if ( bplan == false and bbon == false and ( b28 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Rend (%d+) points de mana toutes les 5 secondes%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[28] = tonumber(svaleur1);
							end
						end
--			[29]	équipé vie par 5 sec					Equipé : Rend x points de vie toutes les 5 secs.
						--if ( bbon == false and ( b29 == false ) ) then
						--	ia, ib, svaleur1 = string.find(schamp, "^Equip\195\169 : Rend (%d+) points de vie toutes les 5 sec%.$");
						--	if ( ia ) then
						--		bbon = true;
						--		tOBJET[29] = tonumber(svaleur1);
						--	end
						--end
--			[30]	équipé dégats et soins des sorts et effets		Eéquipé : Augmente les dégâts et les soins produits par les sorts et effets magiques de 36 au maximum.
						if ( bplan == false and bbon == false and ( b30 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente les d\195\169g\195\162ts et les soins produits par les sorts et effets magiques de (%d+) au maximum%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[30] = tonumber(svaleur1);
							end
						end
--			[31]	équipé défense						Eéquipé : Augmente le score de défense de 24.
						if ( bplan == false and bbon == false and ( b31 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente le score de d\195\169fense de (%d+)%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[31] = tonumber(svaleur1);
							end
						end
--			[32]	équipé augmente score blocage bouclier		Eéquipé : Augmente de 14 le score de blocage.
						if ( bplan == false and bbon == false and ( b32 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) le score de blocage%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[32] = tonumber(svaleur1);
							end
						end
--			[33]	équipé chances toucher					Eéquipé : Augmente de 22 le score de toucher.
						if ( bplan == false and bbon == false and ( b33 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) le score de toucher%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[33] = tonumber(svaleur1);
							end
						end
--			[34]	équipé chances toucher avec sorts			Equipé : Augmente de 15 le score de toucher des sorts.
						if ( bplan == false and bbon == false and ( b34 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) le score de toucher des sorts%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[34] = tonumber(svaleur1);
							end
						end
--			[35]	équipé coup critique					Equipé : Augmente de 33 le score de coup critique.
						if ( bplan == false and bbon == false and ( b35 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) le score de coup critique%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[35] = tonumber(svaleur1);
							end
						end
--			[36]	équipé coup critique sorts				Eéquipé : Augmente de 23 le score de coup critique des sorts.
						if ( bplan == false and bbon == false and ( b36 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) le score de coup critique des sorts%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[36] = tonumber(svaleur1);
							end
						end
--			[37]	équipé puissance attaque				Eéquipé : Augmente de 24 la puissance d'attaque.
						if ( bplan == false and bbon == false and ( b37 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) la puissance d'attaque%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[37] = tonumber(svaleur1);
							end
						end
--			[37]	équipé puissance attaque				Eéquipé : Augmente la puissance d'attaque de 24.
						if ( bplan == false and bbon == false and ( b37 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente la puissance d'attaque de (%d+)%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[37] = tonumber(svaleur1);
							end
						end
--			[38]	équipé puissance attaque distance			Equipé : +36 à la puissance des attaques à distance.
--			[38]	équipé puissance attaque distance			Equipé : Augmente la puissance des attaques à distance de 36.
						--if ( bbon == false and ( b38 == false ) ) then
						--	--ia, ib, svaleur1 = string.find(schamp, "^Equip\195\169 : %+(%d+) \195\160 la puissance des attaques \195\160 distance%.$");
						--	ia, ib, svaleur1 = string.find(schamp, "^Equip\195\169 : Augmente la puissance des attaques \195\160 distance de (%d+)%.$");
						--	if ( ia ) then
						--		bbon = true;
						--		tOBJET[38] = tonumber(svaleur1);
						--	end
						--end
--			[39]	équipé chances bloquer bouclier			Equipé : Augmente vos chances de bloquer les attaques avec un bouclier de 3%.
--			[39]	équipé chances bloquer bouclier			Equipé : Augmente votre score de blocage de 10.
						--if ( bbon == false and ( b39 == false ) ) then
						--	--ia, ib, svaleur1 = string.find(schamp, "^Equip\195\169 : Augmente vos chances de bloquer les attaques avec un bouclier de (%d+)%%%.$");
						--	ia, ib, svaleur1 = string.find(schamp, "^Equip\195\169 : Augmente votre score de blocage de (%d+)%.$");
						--	if ( ia ) then
						--		bbon = true;
						--		tOBJET[39] = tonumber(svaleur1);
						--	end
						--end
--			[40]	équipé chances esquiver attaque			Equipé : Augmente vos chances d'esquiver une attaque de 1%.
						--if ( bbon == false and ( b40 == false ) ) then
						--	ia, ib, svaleur1 = string.find(schamp, "^Equip\195\169 : Augmente vos chances d'esquiver une attaque de (%d+)%%%.$");
						--	if ( ia ) then
						--		bbon = true;
						--		tOBJET[40] = tonumber(svaleur1);
						--	end
						--end
--			[41]	équipé dégats des sorts et effets de arcanes	Equipé : Augmente les dégâts infligés par les sorts et effets des Arcanes de 69 au maximum.
--			[42]	équipé dégats des sorts et effets de feu		Equipé : Augmente les dégâts infligés par les sorts et effets de Feu de 34 au maximum.
--			[43]	équipé dégats des sorts et effets de nature		Equipé : Augmente les dégâts infligés par les sorts et effets de Nature de 69 au maximum.
--			[44]	équipé dégats des sorts et effets de givre		Equipé : Augmente les dégâts infligés par les sorts et effets de Givre de 21 au maximum.
--			[45]	équipé dégats des sorts et effets de ombre		Equipé : Augmente les dégâts infligés par les sorts et effets d'Ombre de 69 au maximum.
						--if ( bbon == false and ( b41 == false or b42 == false or b43 == false or b44 == false or b45 == false) ) then
						--	ia, ib, svaleur2 , svaleur1 = string.find(schamp, "^Equip\195\169 : Augmente les d\195\169g\195\162ts inflig\195\169s par les sorts et effets (.+) de (%d+) au maximum%.$");
						--	if ( ia ) then
						--		bbon = true;
						--		if ( svaleur2 == "des Arcanes" ) then
						--			tOBJET[41] = tonumber(svaleur1);
						--		elseif ( svaleur2 == "de Feu" ) then
						--			tOBJET[42] = tonumber(svaleur1);
						--		elseif ( svaleur2 == "de Nature" ) then
						--			tOBJET[43] = tonumber(svaleur1);
						--		elseif ( svaleur2 == "de Givre" ) then
						--			tOBJET[44] = tonumber(svaleur1);
						--		elseif ( svaleur2 == "d'Ombre" ) then
						--			tOBJET[45] = tonumber(svaleur1);
						--		end
						--	end
						--end
--			[47]	Cet objet permet de lancer une quête
						if ( bplan == false and bbon == false and ( b47 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "Cet objet permet de lancer une qu\195\170te$");
							if ( ia ) then
								bbon = true;
								tOBJET[47] = 1;
							end
						end
--			[49]	nom réputation
--			[50]	niveau réputation
						if ( bplan == false and bbon == false and ( b49 == false or b50 == false ) ) then
							ia, ib, svaleur1, svaleur2 = string.find(schamp, "Requiert (.+) %- (.+)");
							if ( ia ) then
								b49 = true;
								b50 = true;
								bbon = true;
								if ( DBCS_Reputation_nom_name[svaleur1] ) then
									tOBJET[49] = DBCS_Reputation_nom_name[svaleur1];
									if ( DBCS_Reputation_rang_name[svaleur2] ) then
										tOBJET[50] = DBCS_Reputation_rang_name[svaleur2];
									else
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("reputation rang = "..svaleur2);
end
									end
								else
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("objet : "..numobjet.." , reputation nom = "..svaleur1);
end
								end
							end
						end
--			[54]	équipé score résilience					Equipé : Augmente de 11 le score de résilience.
						if ( bplan == false and bbon == false and ( b54 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) le score de r\195\169silience%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[54] = tonumber(svaleur1);
							end
						end
--			[61]	équipé attaque ignore armure				Eéquipé : Vos attaques ignorent 84 points de l'armure de votre adversaire.
						if ( bplan == false and bbon == false and ( b61 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Vos attaques ignorent (%d+) points de l'armure de votre adversaire%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[61] = tonumber(svaleur1);
							end
						end
--			[105]	équipé score expertise					Equipé : Augmente votre score d'expertise de 31
						if ( bplan == false and bbon == false and ( b105 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente votre score d'expertise de (%d+)%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[105] = tonumber(svaleur1);
							end
						end
--			[106]	équipé puissance sorts					Equipé : Augmente la puissance des sorts de 31.
						if ( bplan == false and bbon == false and ( b106 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente la puissance des sorts de (%d+)%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[106] = tonumber(svaleur1);
							end
						end
--			[107]	équipé score hâte						Equipé : Augmente de 43 le score de hâte.
						if ( bplan == false and bbon == false and ( b107 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) le score de h\195\162te%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[107] = tonumber(svaleur1);
							end
						end
--			[108]	équipé score pénétration armure			Equipé : Augmente de 43 votre score de pénétration d'armure.
						if ( bplan == false and bbon == false and ( b108 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: Augmente de (%d+) votre score de p\195\169n\195\169tration d'armure%.$");
							if ( ia ) then
								bbon = true;
								tOBJET[108] = tonumber(svaleur1);
							end
						end
--			[80]	description							blabla sur l'objet
						if ( bplan == false and bbon == false and ( b80 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "\"(.+)\"$");
							if ( ia ) then
								bbon = true;
								tOBJET[80] = svaleur1;
							end
						end
--			[81]	dégats projectiles						Ajoute 46.5 dégâts par seconde
						if ( bplan == false and bbon == false and ( b81 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "Ajoute (.+) d\195\169g\195\162ts par seconde");
							if ( ia ) then
								bbon = true;
								ipos = strfind(svaleur1,"%.");
								if ( ipos == nil ) then
									ipos = strfind(svaleur1,"%,");
								end
								if ( ipos ) then
									sentier = strsub(svaleur1,1,ipos-1);
									sdecimales = strsub(svaleur1,ipos+1);
									if ( strlen(sdecimales) == 1 ) then
										sdecimales = sdecimales.."0";
									end
									tOBJET[81] = tonumber(sentier)+(tonumber(sdecimales)/100);
								else
									tOBJET[81] = tonumber(svaleur1);
								end
								--tOBJET[81] = tonumber(svaleur1);
							end
						end
--			[83]	bonus équipé inconnus
						if ( bplan == false and bbon == false ) then
							ia, ib, svaleur1 = string.find(schamp, "\195\137quip\195\169\194\160: (.+)");
							if ( ia ) then
								bbon = true;
								if ( tOBJET[83] == nil ) then
									tOBJET[83] = {};
								end
								table.insert(tOBJET[83],svaleur1);
							end
						end
--			[84]	bonus utiliser inconnus
						if ( bplan == false and bbon == false ) then
							ia, ib, svaleur1 = string.find(schamp, "Utiliser\194\160: (.+)");
							if ( ia ) then
								bbon = true;
								if ( tOBJET[84] == nil ) then
									tOBJET[84] = {};
								end
								table.insert(tOBJET[84],svaleur1);
							end
						end
--			[97]	bonus : Chances quand vous touchez, inconnus
						if ( bplan == false and bbon == false ) then
							ia, ib, svaleur1 = string.find(schamp, "Chances quand vous touchez\194\160: (.+)");
							if ( ia ) then
								bbon = true;
								if ( tOBJET[97] == nil ) then
									tOBJET[97] = {};
								end
								table.insert(tOBJET[97],svaleur1);
							end
						end
--			recherche si un objet est lié, cad : c'est un plan
						if ( bplan == false and bbon == false ) then
							ia, ib, svaleur1 = string.find(schamp, "\n(.+)");
							if ( ia ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("plan "..numobjet.." : "..tOBJET[1].." = "..svaleur1);
--end
								for j , _ in pairs(DBOS01) do
									if ( svaleur1 == DBOS01[j][1] ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("----------objet : "..j);
--end
										bplan = true;
										if ( tOBJET[98] == nil ) then
											tOBJET[98] = {};
										end
										tOBJET[98][j] = 1;
										for k , _ in pairs(DBOS_enchant) do
											if ( DBOS_enchant[k][9] and DBOS_enchant[k][9][j] ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("----------enchant : "..k);
--end
												if ( DBOS_enchant[k][10] == nil ) then
													DBOS_enchant[k][10] = {};
												end
												DBOS_enchant[k][10][numobjet] = 1;
											end
										end
									end
								end
								for j , _ in pairs(DBOS02) do
									if ( svaleur1 == DBOS02[j][1] ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("----------objet : "..j);
--end
										bplan = true;
										if ( tOBJET[98] == nil ) then
											tOBJET[98] = {};
										end
										tOBJET[98][j] = 1;
										for k , _ in pairs(DBOS_enchant) do
											if ( DBOS_enchant[k][9] and DBOS_enchant[k][9][j] ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("----------enchant : "..k);
--end
												if ( DBOS_enchant[k][10] == nil ) then
													DBOS_enchant[k][10] = {};
												end
												DBOS_enchant[k][10][numobjet] = 1;
											end
										end
									end
								end
							end
						end
--			[99]	texte du bonus de sertissage
						if ( bplan == false and bbon == false and ( b99 == false ) ) then
							ia, ib, svaleur1 = string.find(schamp, "Bonus de sertissage\194\160: (.+)");
							if ( ia ) then
								bbon = true;
								tOBJET[99] = svaleur1;
							end
						end
--			[100]	Objet invoqué
						if ( bplan == false and bbon == false and ( b100 == false ) ) then
							ia, ib = string.find(schamp, "^Objet invoqu\195\169$");
							if ( ia ) then
								bbon = true;
								tOBJET[100] = 1;
							end
						end
					end
				end
				--	TextRight
				for i = 1 , DBcorpsFrame_Tooltip3:NumLines() do
					bbon = false;
					ochamp = _G["DBcorpsFrame_Tooltip3TextRight"..i];
					schamp = ochamp:GetText();
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("right"..i.." = -"..(schamp or "").."-");
--end
					if ( schamp ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("right"..i.." = "..schamp);
--end
						-- 17 = vitesse
						if ( bplan == false and bbon == false and b17 == false ) then
							ia, ib, svaleur1 = string.find(schamp, "Vitesse (.+)");
							if ( ia ) then
								b17 = true;
								bbon = true;
								ipos = strfind(svaleur1,"%.");
								if ( ipos == nil ) then
									ipos = strfind(svaleur1,"%,");
								end
								if ( ipos ) then
									sentier = strsub(svaleur1,1,ipos-1);
									sdecimales = strsub(svaleur1,ipos+1);
									if ( strlen(sdecimales) == 1 ) then
										sdecimales = sdecimales.."0";
									end
									tOBJET[17] = tonumber(sentier)+(tonumber(sdecimales)/100);
								else
									tOBJET[17] = tonumber(svaleur1);
								end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("vitesse = "..tOBJET[17]);
--end
							end
						end
					end
				end
				slangue = GetLocale();
				if ( ( DBOS_bnouveau == true ) or ( DBobjets_Client[slangue] and DBobjets_Client[slangue][DBOS_idatebase] and DBobjets_Client[slangue][DBOS_idatebase][numobjet] ) ) then
				--if ( DBOS_bnouveau == true ) then
					if ( DBobjets_Client[slangue] == nil ) then
						DBobjets_Client[slangue] = {};
					end
					if ( DBobjets_Client[slangue][DBOS_idatebase] == nil ) then
						DBobjets_Client[slangue][DBOS_idatebase] = {};
					end
					DBobjets_Client[slangue][DBOS_idatebase][numobjet] = tOBJET;
				end
				if ( tOBJET[4] and tOBJET[4] == 12 and tOBJET[12] ) then
					snom = tOBJET[1];
					ideb = strfind(snom,":");
					if ( ideb ) then
						--snom_stype = strsub(snom,1,ideb-2);
						snom = strsub(snom,ideb+2);
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage(numobjet.." : nom recette = -"..snom.."- , snom_stypee = -"..snom_stype.."-");
--end
						if ( tOBJET[5] ) then
							-- Recette : machine		-- avant le - ya /194/160 et non pas espace
							--if ( snom_stype == "Formule" ) then
							if ( tOBJET[5] == 23 ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage(numobjet.." : nom recette = -"..snom.."-");
--end
								if ( strsub(snom,1,12) == "Enchantement" ) then
									snom = "Ench. "..strsub(snom,14);
								end
							--elseif ( snom_stype == "Dessin" ) then
							elseif ( tOBJET[5] == 56 ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage(numobjet.." : nom recette = -"..snom.."-");
--end
								if ( DBMS["Figurine - "..snom] ) then
									snom = "Figurine - "..snom;
								end
							end
						end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("nom recette = "..snom);
--end
						if ( DBMS ) then
						else
							DBMS = {};
						end
						if ( DBMS[snom] ) then
						else
							DBMS[snom] = {};
						end
						if ( DBMS[snom]["1"] ) then
						else
							DBMS[snom]["1"] = {};
						end
						DBMS[snom]["1"][3] = "artisanat";
						for i = 1 , table.getn(DBCS_objet_subtype) do
							if ( DBCS_objet_subtype[i].index == tOBJET[5] ) then
								DBMS[snom]["1"][5] = DBCS_objet_subtype[i].name;
							end
						end
						if ( tOBJET[12] < 100 ) then
							if ( tOBJET[12] < 10 ) then
								DBMS[snom]["1"][4] = "00"..tOBJET[12];
							else
								DBMS[snom]["1"][4] = "0"..tOBJET[12];
							end
						else
							DBMS[snom]["1"][4] = ""..tOBJET[12];
						end
						if ( DBMS[snom]["1"][8] ) then
						else
							DBMS[snom]["1"][8] = {};
						end
						if ( DBMS[snom]["1"][8][numobjet] ) then
							DBMS[snom]["1"][8] = DBmobs_champ_8_en_nombre(DBMS[snom]["1"][8]);
						else
							--DBMS[snom]["1"][8][numobjet] = {};
							DBMS[snom]["1"][8][numobjet] = 0;
						end
						--DBMS[snom]["1"][8][numobjet]["0:0:0:0:0:0:0"] = 0;
					end
				else
					snom = tOBJET[1];
					if ( DBMS and DBMS[snom] and DBMS[snom]["1"] ) then
						--if ( DBMS[snom]["1"][3] == "artisanat" ) then
						if ( DBMS[snom]["1"][8] ) then
						else
							DBMS[snom]["1"][8] = {};
						end
						if ( DBMS[snom]["1"][8][numobjet] ) then
							DBMS[snom]["1"][8] = DBmobs_champ_8_en_nombre(DBMS[snom]["1"][8]);
						else
							--DBMS[snom]["1"][8][numobjet] = {};
							DBMS[snom]["1"][8][numobjet] = 0;
						end
						--if ( DBMS[snom]["1"][8][numobjet]["0:0:0:0:0:0:0"] ) then
						--else
						--	DBMS[snom]["1"][8][numobjet]["0:0:0:0:0:0:0"] = 0;
						--end
					end
				end
			end
		end
	--end

end

--			[28]	équipé mana par 5 sec					Eéquipé : Rend 6 points de mana toutes les 5 sec.

--/script DBobjets_28()
function DBobjets_28()

local inumobjet;
local i;
local ia, ib, svaleur1;
local tobjet = nil;

	for inumobjet, _ in pairs(DBOS01) do
		tobjet = DBOS01[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Rend (%d+) points de mana toutes les 5 secondes%.$");
				if ( ia ) then
					tobjet[28] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS01[inumobjet] = tobjet;
	end
	for inumobjet, _ in pairs(DBOS02) do
		tobjet = DBOS02[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Rend (%d+) points de mana toutes les 5 secondes%.$");
				if ( ia ) then
					tobjet[28] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS02[inumobjet] = tobjet;
	end

end

--			[37]	équipé puissance d'attaque				Equipé : Augmente la puissance d'attaque de 31.

--/script DBobjets_37()
function DBobjets_37()

local inumobjet;
local i;
local ia, ib, svaleur1;
local tobjet = nil;

	for inumobjet, _ in pairs(DBOS01) do
		tobjet = DBOS01[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente la puissance d'attaque de (%d+)%.$");
				if ( ia ) then
					tobjet[37] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS01[inumobjet] = tobjet;
	end
	for inumobjet, _ in pairs(DBOS02) do
		tobjet = DBOS02[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente la puissance d'attaque de (%d+)%.$");
				if ( ia ) then
					tobjet[37] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS02[inumobjet] = tobjet;
	end

end

--			[105]	équipé score expertise					Equipé : Augmente votre score d'expertise de 31

--/script DBobjets_105()
function DBobjets_105()

local inumobjet;
local i;
local ia, ib, svaleur1;
local tobjet = nil;

	for inumobjet, _ in pairs(DBOS01) do
		tobjet = DBOS01[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente votre score d'expertise de (%d+)%.$");
				if ( ia ) then
					tobjet[105] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS01[inumobjet] = tobjet;
	end
	for inumobjet, _ in pairs(DBOS02) do
		tobjet = DBOS02[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente votre score d'expertise de (%d+)%.$");
				if ( ia ) then
					tobjet[105] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS02[inumobjet] = tobjet;
	end

end

--			[106]	équipé puissance sorts					Equipé : Augmente la puissance des sorts de 31.

--/script DBobjets_106()
function DBobjets_106()

local inumobjet;
local i;
local ia, ib, svaleur1;
local tobjet = nil;

	for inumobjet, _ in pairs(DBOS01) do
		tobjet = DBOS01[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente la puissance des sorts de (%d+)%.$");
				if ( ia ) then
					tobjet[106] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS01[inumobjet] = tobjet;
	end
	for inumobjet, _ in pairs(DBOS02) do
		tobjet = DBOS02[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente la puissance des sorts de (%d+)%.$");
				if ( ia ) then
					tobjet[106] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS02[inumobjet] = tobjet;
	end

end

--			[107]	équipé score hâte						Equipé : Augmente de 43 le score de hâte.

--/script DBobjets_107()
function DBobjets_107()

local inumobjet;
local i;
local ia, ib, svaleur1;
local tobjet = nil;

	for inumobjet, _ in pairs(DBOS01) do
		tobjet = DBOS01[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente de (%d+) le score de h\195\162te%.$");
				if ( ia ) then
					tobjet[107] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS01[inumobjet] = tobjet;
	end
	for inumobjet, _ in pairs(DBOS02) do
		tobjet = DBOS02[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente de (%d+) le score de h\195\162te%.$");
				if ( ia ) then
					tobjet[107] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS02[inumobjet] = tobjet;
	end

end

--			[108]	équipé score pénétration armure			Equipé : Augmente de 43 votre score de pénétration d'armure.

--/script DBobjets_108()
function DBobjets_108()

local inumobjet;
local i;
local ia, ib, svaleur1;
local tobjet = nil;

	for inumobjet, _ in pairs(DBOS01) do
		tobjet = DBOS01[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente de (%d+) votre score de p\195\169n\195\169tration d'armure%.$");
				if ( ia ) then
					tobjet[108] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS01[inumobjet] = tobjet;
	end
	for inumobjet, _ in pairs(DBOS02) do
		tobjet = DBOS02[inumobjet];
		if ( tobjet and tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				ia, ib, svaleur1 = string.find(tobjet[83][i], "Augmente de (%d+) votre score de p\195\169n\195\169tration d'armure%.$");
				if ( ia ) then
					tobjet[108] = tonumber(svaleur1);
					table.remove(tobjet[83],i);
				end
			end
		end
		DBOS02[inumobjet] = tobjet;
	end

end

local DBOS_ierror = 0;

function DBCS_error(smessage)

--if ( DBCS_debug > 1 ) then
--	TraceFrame:AddMessage(smessage);
--end

	--debuginfo();
	--debugstack();

	seterrorhandler(_ERRORMESSAGE);

	DBobjets_initenchant_all(DBOS_ierror);

end

--/script SetItemRef("enchant:120")
--/script DBobjets_initenchant_all()
--/script DBobjets_initenchant_all(0)
--/script DBobjets_initenchant_all(1)
--/script DBobjets_initenchant_all(2)
--/script DBobjets_initenchant_all(3232)
--/script DBobjets_initenchant_all(6477)
--/script DBobjets_initenchant_all(7419)
--/script DBobjets_initenchant_all(7541)
--/script DBobjets_initenchant_all(7652)
--/script DBobjets_initenchant_all(7749)
--/script DBobjets_initenchant_all(7878)
--/script DBobjets_initenchant_all(7988)
--/script DBobjets_initenchant_all(8102)
--/script DBobjets_initenchant_all(8212)
--/script DBobjets_initenchant_all(8322)
--/script DBobjets_initenchant_all(8432)
--/script DBobjets_initenchant_all(8543)
--/script DBobjets_initenchant_all(22392)
--/script DBOS_enchant = { }
--/script SetItemRef("enchant:0")
--/script SetItemRef("enchant:22430")
--/script SetItemRef("enchant:41314")
--/script DBOS_enchant[22430] = nil
--/script DBOS_enchant[11447] = nil
--/script DBOS_enchant[2336] = nil
--/script DBOS_enchant[6619] = nil	-- potion de fuite irrépressible
--/script DBOS_enchant[17579] = nil -- potion de protection sacré supérieure
--/script DBOS_enchant[25623] = nil
-- couture
--/script DBOS_enchant[12083] = nil
--/script DBOS_enchant[36668] = nil
	--/script DBOS_enchant[25623] = nil
	--/script DBOS_enchant[26920] = nil	-- joaillerie
--/script DBOS_enchant = {};
--/script DBobjets_initenchant_all(0)
--/script DBobjets_initenchant_all(1000)
--/script DBobjets_initenchant_all(2000)
--/script DBobjets_initenchant_all(3000)
--/script DBobjets_initenchant_all(4000)
--/script DBobjets_initenchant_all(5000)
--/script DBobjets_initenchant_all(6000)
--/script DBobjets_initenchant_all(7000)
--/script DBobjets_initenchant_all(8000)
--/script DBobjets_initenchant_all(9000)
--/script DBobjets_initenchant_all(10000)
--/script DBobjets_initenchant_all(11000)
--/script DBobjets_initenchant_all(12000)
--/script DBobjets_initenchant_all(12900,13000)
--/script DBobjets_initenchant_all(13000)
--/script DBobjets_initenchant_all(14000)
--/script DBobjets_initenchant_all(15000)
--/script DBobjets_initenchant_all(16000)
--/script DBobjets_initenchant_all(17000)
--/script DBobjets_initenchant_all(18000)
--/script DBobjets_initenchant_all(19000)
--/script DBobjets_initenchant_all(20000)
--/script DBobjets_initenchant_all(21000)
--/script DBobjets_initenchant_all(22000)
--/script DBobjets_initenchant_all(23000)
--/script DBobjets_initenchant_all(24000)
--/script DBobjets_initenchant_all(25000)
--/script DBobjets_initenchant_all(25900,26000)
--/script DBobjets_initenchant_all(26000)
--/script DBobjets_initenchant_all(27000)
--/script DBobjets_initenchant_all(28000)
--/script DBobjets_initenchant_all(29000)
--/script DBobjets_initenchant_all(30000)
--/script DBobjets_initenchant_all(30500,31000)
--/script DBobjets_initenchant_all(31000)
--/script DBobjets_initenchant_all(32000)
--/script DBobjets_initenchant_all(33000)
--/script DBobjets_initenchant_all(34000)
--/script DBobjets_initenchant_all(35000)
--/script DBobjets_initenchant_all(36000)
--/script DBobjets_initenchant_all(37000)
--/script DBobjets_initenchant_all(38000)
--/script DBobjets_initenchant_all(39000)
--/script DBobjets_initenchant_all(40000)
--/script DBobjets_initenchant_all(40749,40749)
--/script DBobjets_initenchant_all(41000)
--/script DBobjets_initenchant_all(42000)
--/script DBobjets_initenchant_all(43000)
--/script DBobjets_initenchant_all(44000)
--/script DBobjets_initenchant_all(45000)
--/script DBobjets_initenchant_all(46000)
--/script DBobjets_initenchant_all(47000)
--/script DBobjets_initenchant_all(48000)
--/script DBobjets_initenchant_all(49000)
--/script DBobjets_initenchant_all(50000)
--/script DBobjets_initenchant_all(50000,60000)
--/script DBobjets_initenchant_all(60000,70000)
--/script DBobjets_initenchant_all(70000,80000)
--/script DBobjets_initenchant_all(80000,90000)
--/script DBobjets_initenchant_all(90000,100000)
function DBobjets_initenchant_all(ideb,ifin)

	local i;
	local j;
	local bfin;
	local itemName;
	local ochamp;
	local schamp;
	local slink;

	bfin = false;
	----DBOS_enchant = {};
	--i = (ideb or DBOS_ierror);
	--while ( i < 50001 and bfin == false ) do	-- 40000	--ideb+1000
	--	i = i + 1;
	if ( ideb ) then
	else
		ideb = 1;
	end
	if ( ifin ) then
	else
		ifin = ideb + 1000;
	end
if ( DBCS_debug > 1 ) then
	TraceFrame:AddMessage("debut : "..ideb);
end
	for i = ideb , ifin do
--if ( DBCS_debug > 1 ) then
--	TraceFrame:AddMessage("enchant num "..i);
--end
		for j = 1 , 8 do
			_G["DBcorpsFrame_Tooltip2TextLeft"..j]:SetText(nil);
			_G["DBcorpsFrame_Tooltip2TextRight"..j]:SetText(nil);
		end
		DBcorpsFrame_Tooltip2:SetOwner(WorldFrame,"ANCHOR_NONE");
		--DBOS_ierror = i;
		--seterrorhandler(DBCS_error);
		DBcorpsFrame_Tooltip2:SetHyperlink("enchant:"..i);
		--seterrorhandler(_ERRORMESSAGE);
		ochamp = _G["DBcorpsFrame_Tooltip2TextLeft1"];
		schamp = ochamp:GetText();
		--if ( schamp and strsub(schamp,1,5) == "Compo" ) then
			--schamp, slink = DBcorpsFrame_Tooltip2:GetItem();
			--if ( slink ) then
			--	schamp = ochamp:GetText();
			--end
		--end
		if ( schamp ) then
--if ( DBCS_debug > 1 ) then
--	TraceFrame:AddMessage("enchant num "..i.." : "..DBOS_getlinkitem(schamp,i,6,"e"))
--end
			--bfin = true;
			--if ( DBOS_enchant[i] == nil ) then
				--DBOS_enchant[i] = {};
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("Ajout ds DBobjets de : "..inumenchant.." : "..DBOS_getlinkitem(itemName,numcourt1..":0:0:0",itemRarity,"i"));
--end
			--end
			DBOS_enchant[i] = nil;
			DBOS_enchant[i] = {};
			DBOS_enchant[i][1] = schamp;
			DBOS_enchant[i][2] = 1;
			DBOS_enchant[i][3] = 0;
			DBOS_enchant[i][4] = 12;
			DBOS_enchant[i][5] = 23;
			DBOS_enchant[i][6] = 1;
			DBOS_enchant[i][7] = "";
		end
		--itemName, _, _, _, _, _, _, _, _, _ = GetItemInfo("enchant:"..i);
		--if ( itemName ) then
		--	DBobjets_initenchant(i);
		--	bfin = true;
		--end
	end
if ( DBCS_debug > 1 ) then
	TraceFrame:AddMessage("fin : "..ifin);
end


end

--/script DBobjets_lireenchant(27102)
function DBobjets_lireenchant(inumenchant)

	local itemName, itemLink, itemRarity, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture;

	itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo("enchant:"..inumenchant);
	if ( itemName ) then
TraceFrame:AddMessage("nom enchant = "..itemName);
	end

end
--/script DEFAULT_CHAT_FRAME:AddMessage(DBOS_getlinkitem("bla",23800,6,"e"))
--/script SetItemRef("enchant:0")
--/script SetItemRef("enchant:1")
--/script SetItemRef("enchant:120")
--/script SetItemRef("enchant:121")
--/script SetItemRef("enchant:3231")
--/script SetItemRef("enchant:6476")
--/script SetItemRef("enchant:7418")
--/script SetItemRef("enchant:7745")
--/script SetItemRef("enchant:7748")
--/script SetItemRef("enchant:7766")
--/script SetItemRef("enchant:7769")
--/script SetItemRef("enchant:7771")
--/script SetItemRef("enchant:7776")
--/script SetItemRef("enchant:7779")
--/script SetItemRef("enchant:7786")
--/script SetItemRef("enchant:7788")
--/script SetItemRef("enchant:7793")
--/script SetItemRef("enchant:7795")
--/script SetItemRef("enchant:7853")
--/script SetItemRef("enchant:7855")
--/script SetItemRef("enchant:7857")
--/script SetItemRef("enchant:7859")
--/script SetItemRef("enchant:7861")
--/script SetItemRef("enchant:7863")
--/script SetItemRef("enchant:7865")
--/script SetItemRef("enchant:7867")
--/script SetItemRef("enchant:8087")
--/script SetItemRef("enchant:8088")
--/script SetItemRef("enchant:8089")
--/script SetItemRef("enchant:8090")
--/script SetItemRef("enchant:8532")
--/script SetItemRef("enchant:9092")
--/script SetItemRef("enchant:14047")
--/script DBobjets_initenchant_all()
--/script SetItemRef("enchant:23800")
--/script DBobjets_initenchant(1)
--/script DBobjets_initenchant(14047)
--/script DBobjets_initenchant("enchant:10101")
function DBobjets_initenchant(inumenchant)
--	itemID 		Integer - The numeric ID of the item. ie. 12345 
--	"itemString" 	String - The full item ID in string format. ie. "item:12345:0:0:0" 
--	itemName, itemLink, itemRarity, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture 

	local itemName, itemLink, itemRarity, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture;
	local ivaleur;

if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("num enchant = "..inumenchant);
end
	itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo("enchant:"..inumenchant);
	if ( itemName ) then
		if ( DBOS_enchant[inumenchant] == nil ) then
			DBOS_enchant[inumenchant] = {};
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("Ajout ds DBobjets de : "..inumenchant.." : "..DBOS_getlinkitem(itemName,numcourt1..":0:0:0",itemRarity,"i"));
--end
		end
		DBOS_enchant[inumenchant][1] = itemName;
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("Name = "..itemName);
end
		DBOS_enchant[inumenchant][2] = itemRarity;
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("Rarity = "..itemRarity);
end
		DBOS_enchant[inumenchant][11] = itemLevel;
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("Level = "..itemLevel);
end
		DBOS_enchant[inumenchant][3] = itemMinLevel;
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("MinLevel = "..itemMinLevel);
end
		ivaleur = DBCS_objet_type_name[itemType];
		if ( ivaleur ) then
			DBOS_enchant[inumenchant][4] = ivaleur;
		else
			DBOS_enchant[inumenchant][4] = itemType;
		end
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("Type = "..itemType);
end
		ivaleur = DBCS_objet_subtype_name[itemSubType];
		if ( ivaleur ) then
			DBOS_enchant[inumenchant][5] = ivaleur;
		else
			DBOS_enchant[inumenchant][5] = itemSubType;
		end
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("SubType = "..itemSubType);
end
		DBOS_enchant[inumenchant][6] = itemStackCount;
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("StackCount = "..itemStackCount);
end
		ivaleur = DBCS_objet_equiploc_name[itemEquipLoc];
		if ( ivaleur ) then
			DBOS_enchant[inumenchant][7] = ivaleur;
		else
			DBOS_enchant[inumenchant][7] = itemEquipLoc;
		end
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("EquipLoc = "..itemEquipLoc);
end
		DBOS_enchant[inumenchant][8] = itemTexture;
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("Texture = "..itemTexture);
end
		return true;
	end

	return false;

end

--/script DBOS_testfonction_GetItemInfo("item:22630:0:0:0:0:0:0:0");
--/script DBOS_testfonction_GetItemInfo("22630");
function DBOS_testfonction_GetItemInfo(snumlong)

	--		itemName, itemLink, itemRarity, itemLevel, itemMinLevel, itemType, itemSubType, itemStackCount, itemEquipLoc, itemTexture = GetItemInfo(snumlong);
	
local tablo;
local i,j;

	tablo = { GetItemInfo(snumlong) };
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("snumlong = "..snumlong);
end
	for i,j in pairs(tablo) do
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("i = "..i.." et j = "..j);
end
	end

end

--/script DBobjets_force_creation_objet(3690)

--/script DBobjets_force_creation_objet(3510)
--/script DBobjets_force_creation_objet(3708)
--/script DBobjets_force_creation_objet(5461)
--/script DBobjets_force_creation_objet(8630)
--/script DBobjets_force_creation_objet(16192)
--/script DBobjets_force_creation_objet(24152)
--/script DBobjets_force_creation_objet(29025)
--/script DBobjets_force_creation_objet(31777)
--/script DBobjets_force_creation_objet(31805)
--/script DBobjets_force_creation_objet(31806)
--/script DBobjets_force_creation_objet(31822)
--/script DBobjets_force_creation_objet(31824)

--	<GameTooltip name="DBcorpsFrame_Tooltip" inherits="GameTooltipTemplate" parent="UIParent" hidden="true"/>

function DBOS_SetHyperlink(inumobjet,bobjetcraft)

local smessage;
local snom;
local icoul;
local r,g,b,hex;
local stype;
local ssubtype;
local sequiploc;
local s62;
local i;
local inumobjet2;
local bpremier;

local sfaction;
local ifaction;
local sDBCS_HDV_stats;
local imontant;
local stimescan;

local tobjet = nil;

	if ( ( DBOS01[inumobjet] == nil ) and ( DBOS02[inumobjet] == nil ) ) then
		return;
	end
	if ( bobjetcraft == nil or bobjetcraft == false ) then
		bobjetcraft = false;
	else
		bobjetcraft = true;
	end
	if ( bobjetcraft == true ) then
		GameTooltip:AddLine(nil,0,0,0);
	end
	
	if ( inumobjet > 50000 ) then
		tobjet = DBOS02[inumobjet];
	else
		tobjet = DBOS01[inumobjet];
	end
	
	snom = tobjet[1];
	icoul = tobjet[2];
	if ( icoul ) then
		-- GameTooltip:AddDoubleLine("Left", "Right", 1,1,1, 1,1,1);
		-- rareté du nom
		r,g,b,hex = GetItemQualityColor(icoul);
		GameTooltip:AddLine(snom,r,g,b);
----			[8]	icone
--		if ( tobjet[8] ) then
--			smessage = tobjet[8];
--			GameTooltip:AddLine(smessage,0,1,0);
--		end
--			[109]	Héroïque
		if ( tobjet[109] ) then
			smessage = "H\195\169ro\195\175que";
			GameTooltip:AddLine(smessage,0,1,0);
		end
--			[100]	Objet invoqué
		if ( tobjet[100] ) then
			smessage = "Objet invoqu\195\169";
			GameTooltip:AddLine(smessage,1,1,1);
		end
		-- lié
		if ( tobjet[46] ) then
			smessage = "Li\195\169 quand ";
			if ( tobjet[46] == 1 ) then
				smessage = smessage.."\195\169quip\195\169";
			elseif ( tobjet[46] == 2 ) then
				smessage = smessage.."ramass\195\169";
			elseif ( tobjet[46] == 3 ) then
				smessage = smessage.."utilis\195\169";
			end
			GameTooltip:AddLine(smessage,1,1,1);
		end
--			[104]	Lier au compte
		if ( tobjet[104] ) then
			smessage = "Li\195\169 au compte";
			GameTooltip:AddLine(smessage,1,1,1);
		end
		-- skill
		if ( tobjet[12] ) then
			if ( tobjet[4] == 12 ) then
				if ( tobjet[5] ) then
					GameTooltip:AddLine(DBCS_objet_subtype_index[tobjet[5]].." ("..tobjet[12]..") requis",1,1,1);
				end
			end
		end
--			[103]	Objet de quête
		if ( tobjet[103] ) then
			if ( tobjet[103] == 1 ) then
				GameTooltip:AddLine("Objet de qu\195\170te",1,1,1);
			end
		end
		-- unique
		if ( tobjet[16] ) then
			if ( tobjet[16] == 1 ) then
				GameTooltip:AddLine("Unique",1,1,1);
			elseif ( tobjet[16] == 2 ) then
				GameTooltip:AddLine("Unique - Equip\195\169",1,1,1);
			end
		end
--			[101]	Unique (10)
		if ( tobjet[101] ) then
			GameTooltip:AddLine("Unique ("..tobjet[101]..")",1,1,1);
		end
		-- type , sous-type, equiploc
		stype = tobjet[4];
		ssubtype = tobjet[5];
		sequiploc = tobjet[7];
		if ( stype ) then
			if ( stype == 3 ) then
				if ( ssubtype ) then
					ssubtype = DBCS_objet_subtype_index[ssubtype];
				end
				if ( sequiploc ) then
					sequiploc = DBCS_objet_equiploc_index_traduc[sequiploc];
				end
				GameTooltip:AddDoubleLine((sequiploc or ""), (ssubtype or ""), 1,1,1, 1,1,1);
				--smessage = ""..(ssubtype or "").." "..(sequiploc or "");
				--GameTooltip:AddLine(smessage,1,1,1);
			elseif ( stype == 4 ) then
				if ( ssubtype ) then
						ssubtype = DBCS_objet_subtype_index[ssubtype];
				end
				if ( sequiploc ) then
					sequiploc = DBCS_objet_equiploc_index_traduc[sequiploc];
				end
				GameTooltip:AddDoubleLine((sequiploc or ""), (ssubtype or ""), 1,1,1, 1,1,1);
				--smessage = ""..(ssubtype or "").." "..(sequiploc or "");
				--GameTooltip:AddLine(smessage,1,1,1);
			end
		end
--			[102]	Durée\194\160: 7 jours
		if ( tobjet[102] ) then
			smessage = "Dur\195\169e\194\160: "..tobjet[102];
			GameTooltip:AddLine(smessage,1,1,1);
		end

		-- dégats min max typedégats vitesse
		-- dégats min max vitesse
		if ( tobjet[17] and tobjet[19] and tobjet[20] ) then
			if ( tobjet[62] ) then
				if ( tobjet[62] == 1 ) then
					s62 = "Arcanes";
				elseif ( tobjet[62] == 2 ) then
					s62 = "Feu";
				elseif ( tobjet[62] == 3 ) then
					s62 = "Givre";
				elseif ( tobjet[62] == 4 ) then
					s62 = "Nature";
				elseif ( tobjet[62] == 5 ) then
					s62 = "Ombre";
				elseif ( tobjet[62] == 6 ) then
					s62 = "Sacr\195\169";
				else
					s62 = "Inconnu";
				end
				GameTooltip:AddDoubleLine(tobjet[19].." - "..tobjet[20].." points de d\195\169g\195\162ts ("..s62..")", "Vitesse "..tobjet[17], 1,1,1, 1,1,1);
			else
				--GameTooltip:AddLine("D\195\169g\195\162ts: "..tobjet[19].." - "..tobjet[20].."   Vitesse "..tobjet[17],1,1,1);
				GameTooltip:AddDoubleLine("D\195\169g\195\162ts: "..tobjet[19].." - "..tobjet[20], "Vitesse "..tobjet[17], 1,1,1, 1,1,1);
			end
		end
--			[85]	+5 - 10 points de dégâts (Arcanes)
--			[96]	+5 - 10 points de dégâts (Sacré)
		if ( tobjet[85] and tobjet[86] ) then
			GameTooltip:AddLine("+"..tobjet[85].." - "..tobjet[86].." points de d\195\169g\195\162ts (Arcanes)",1,1,1);
		end
		if ( tobjet[87] and tobjet[88] ) then
			GameTooltip:AddLine("+"..tobjet[87].." - "..tobjet[88].." points de d\195\169g\195\162ts (Feu)",1,1,1);
		end
		if ( tobjet[89] and tobjet[90] ) then
			GameTooltip:AddLine("+"..tobjet[89].." - "..tobjet[90].." points de d\195\169g\195\162ts (Givre)",1,1,1);
		end
		if ( tobjet[91] and tobjet[92] ) then
			GameTooltip:AddLine("+"..tobjet[91].." - "..tobjet[92].." points de d\195\169g\195\162ts (Nature)",1,1,1);
		end
		if ( tobjet[93] and tobjet[94] ) then
			GameTooltip:AddLine("+"..tobjet[93].." - "..tobjet[94].." points de d\195\169g\195\162ts (Ombre)",1,1,1);
		end
		if ( tobjet[95] and tobjet[96] ) then
			GameTooltip:AddLine("+"..tobjet[95].." - "..tobjet[96].." points de d\195\169g\195\162ts (Sacr\195\169)",1,1,1);
		end
		
		-- dps
		if ( tobjet[14] ) then
			GameTooltip:AddLine("("..tobjet[14].." d\195\169g\195\162ts par seconde)",1,1,1);
		end
		-- armure
		if ( tobjet[13] ) then
			GameTooltip:AddLine("Armure : "..tobjet[13],1,1,1);
		end
		-- blocage
		if ( tobjet[18] ) then
			GameTooltip:AddLine("Bloquer : "..tobjet[18],1,1,1);
		end
		-- Force
		if ( tobjet[56] ) then
			GameTooltip:AddLine("+"..tobjet[56].." Force",1,1,1);
		end
		-- Agilité
		if ( tobjet[57] ) then
			GameTooltip:AddLine("+"..tobjet[57].." Agilit\195\169",1,1,1);
		end
		-- Endurance
		if ( tobjet[58] ) then
			GameTooltip:AddLine("+"..tobjet[58].." Endurance",1,1,1);
		end
		-- Intelligence
		if ( tobjet[59] ) then
			GameTooltip:AddLine("+"..tobjet[59].." Intelligence",1,1,1);
		end
		-- Esprit
		if ( tobjet[60] ) then
			GameTooltip:AddLine("+"..tobjet[60].." Esprit",1,1,1);
		end
		-- résist arcanes
		if ( tobjet[22] ) then
			GameTooltip:AddLine("+"..tobjet[22].." \195\160 la r\195\169sistance Arcanes",1,1,1);
		end
		-- résist feu
		if ( tobjet[23] ) then
			GameTooltip:AddLine("+"..tobjet[23].." \195\160 la r\195\169sistance Feu",1,1,1);
		end
		-- résist nature
		if ( tobjet[24] ) then
			GameTooltip:AddLine("+"..tobjet[24].." \195\160 la r\195\169sistance Nature",1,1,1);
		end
		-- résist givre
		if ( tobjet[25] ) then
			GameTooltip:AddLine("+"..tobjet[25].." \195\160 la r\195\169sistance Givre",1,1,1);
		end
		-- résist ombre
		if ( tobjet[26] ) then
			GameTooltip:AddLine("+"..tobjet[26].." \195\160 la r\195\169sistance Ombre",1,1,1);
		end
--			[47]	Cet objet permet de lancer une quête
		if ( tobjet[47] ) then
			GameTooltip:AddLine("Cet objet permet de lancer une qu\195\170te",1,1,1);
		end
--			[81]	dégats projectiles						Ajoute 46.5 dégâts par seconde
		if ( tobjet[81] ) then
			GameTooltip:AddLine("Ajoute "..tobjet[81].." d\195\169g\195\162ts par seconde",1,1,1);
		end
--			[99]	texte du bonus de sertissage
		if ( tobjet[99] ) then
			GameTooltip:AddLine("Bonus de sertissage\194\160: "..tobjet[99],.5,.5,.5);
		end
		-- niveau requis
		if ( tobjet[3] and tobjet[3] > 1 ) then
			GameTooltip:AddLine("Niveau "..tobjet[3].." requis",1,1,1);
		end
--			[11]	niveau estimé	= 0
		if ( tobjet[11] ) then
			GameTooltip:AddLine("Niveau d'objet "..tobjet[11],1,1,1);
		end
--			[49]	nom réputation
--			[50]	niveau réputation
		if ( tobjet[49] ) then
			if ( tobjet[50] ) then
				GameTooltip:AddLine("Requiert "..DBCS_Reputation_nom_index[tobjet[49]].." - "..DBCS_Reputation_rang_index[tobjet[50]],1,1,1);
			else
				GameTooltip:AddLine("Requiert "..DBCS_Reputation_nom_index[tobjet[49]],1,1,1);
			end
		end
----			[27]	équipé soins des sorts et effets			Equipé : Augmente les soins prodigués par les sorts et effets de 46 au maximum.
----			[27]	équipé soins des sorts et effets			Eéquipé : Augmente les soins prodigués par les sorts et effets de 46 au maximum.
--			[27]	équipé soins des sorts et effets			Eéquipé : Augmente les soins prodigués d'un maximum de 90 et les dégâts d'un maximum de 30 pour tous les sorts et effets magiques.
		if ( tobjet[27] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Augmente les soins prodigu\195\169s d'un maximum de "..tobjet[27].." et les d\195\169g\195\162ts d'un maximum de "..(tobjet["27A"] or "??").." pour tous les sorts et effets magiques.",50),0,1,0);
		end
--			[28]	équipé mana par 5 sec					Equipé : Rend 6 points de mana toutes les 5 secondes.
--			[28]	équipé mana par 5 sec					Eéquipé : Rend 6 points de mana toutes les 5 sec.
		if ( tobjet[28] ) then
			GameTooltip:AddLine("\195\137quip\195\169\194\160: Rend "..tobjet[28].." points de mana toutes les 5 sec.",0,1,0);
		end
--			[30]	équipé dégats et soins des sorts et effets		Equipé : Augmente les dégâts et les soins produits par les sorts et effets magiques de 36 au maximum.
--			[30]	équipé dégats et soins des sorts et effets		Eéquipé : Augmente les dégâts et les soins produits par les sorts et effets magiques de 36 au maximum.
		if ( tobjet[30] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Augmente les d\195\169g\195\162ts et les soins produits par les sorts et effets magiques de "..tobjet[30].." au maximum.",50),0,1,0);
		end
--			[31]	équipé défense						Equipé : Défense augmentée de 9.
--			[31]	équipé défense						Eéquipé : Augmente le score de défense de 24.
		if ( tobjet[31] ) then
			GameTooltip:AddLine("\195\137quip\195\169\194\160: Augmente le score de d\195\169fense de "..tobjet[31]..".",0,1,0);
		end
--			[32]	équipé augmente score blocage bouclier		Equipé : Augmente le score de blocage de votre bouclier de 19.
--			[32]	équipé augmente score blocage bouclier		Eéquipé : Augmente de 14 le score de blocage.
		if ( tobjet[32] ) then
			GameTooltip:AddLine("\195\137quip\195\169\194\160: Augmente de "..tobjet[32].." le score de blocage.",0,1,0);
		end
--			[33]	équipé chances toucher					Equipé : Augmente vos chances de toucher de 1%.
--			[33]	équipé chances toucher					Eéquipé : Augmente de 22 le score de toucher.
		if ( tobjet[33] ) then
			GameTooltip:AddLine("\195\137quip\195\169\194\160: Augmente de "..tobjet[33].." le score de toucher.",0,1,0);
		end
--			[34]	équipé chances toucher avec sorts			Equipé : Augmente vos chances de toucher avec des sorts de 1%.
--			[34]	équipé chances toucher avec sorts			Equipé : Augmente de 15 le score de toucher des sorts.
		if ( tobjet[34] ) then
			GameTooltip:AddLine("\195\137quip\195\169\194\160: Augmente de "..tobjet[34].." le score de toucher des sorts.",0,1,0);
		end
--			[35]	équipé coup critique					Equipé : Augmente vos chances d'infliger un coup critique de 1%.
--			[35]	équipé coup critique					Equipé : Augmente de 33 le score de coup critique.
		if ( tobjet[35] ) then
			GameTooltip:AddLine("\195\137quip\195\169\194\160: Augmente de "..tobjet[35].." le score de coup critique.",0,1,0);
		end
--			[36]	équipé coup critique sorts				Equipé : Augmente vos chances d'infliger un coup critique avec vos sorts de 1%.
--			[36]	équipé coup critique sorts				Eéquipé : Augmente de 23 le score de coup critique des sorts.
		if ( tobjet[36] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Augmente de "..tobjet[36].." le score de coup critique des sorts.",50),0,1,0);
		end
--			[37]	équipé puissance attaque				Equipé : +24 à la puissance d'attaque.
--			[37]	équipé puissance attaque				Eéquipé : Augmente de 24 la puissance d'attaque.
		if ( tobjet[37] ) then
			GameTooltip:AddLine("\195\137quip\195\169\194\160: Augmente de "..tobjet[37].." la puissance d'attaque.",0,1,0);
		end
--			[54]	équipé score résilience					Equipé : Augmente de 11 le score de résilience.
		if ( tobjet[54] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Augmente de "..tobjet[54].." le score de r\195\169silience.",50),0,1,0);
		end
--			[61]	équipé attaque ignore armure				Eéquipé : Vos attaques ignorent 84 points de l'armure de votre adversaire.
		if ( tobjet[61] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Vos attaques ignorent "..tobjet[61].." points de l'armure de votre adversaire.",50),0,1,0);
		end
--			[105]	équipé score expertise					Equipé : Augmente votre score d'expertise de 31
		if ( tobjet[105] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Augmente votre score d'expertise de "..tobjet[105]..".",50),0,1,0);
		end
--			[106]	équipé puissance sorts					Equipé : Augmente la puissance des sorts de 31.
		if ( tobjet[106] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Augmente la puissance des sorts de "..tobjet[106]..".",50),0,1,0);
		end
--			[107]	équipé score hâte						Equipé : Augmente de 43 le score de hâte.
		if ( tobjet[107] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Augmente de "..tobjet[107].." le score de h\195\162te.",50),0,1,0);
		end
--			[108]	équipé score pénétration armure			Equipé : Augmente de 43 votre score de pénétration d'armure.
		if ( tobjet[108] ) then
			GameTooltip:AddLine(DBCS_formattext("\195\137quip\195\169\194\160: Augmente de "..tobjet[108].." votre score de p\195\169n\195\169tration d'armure.",50),0,1,0);
		end
--			[83]	bonus équipé inconnus
		if ( tobjet[83] ) then
			for i = table.getn(tobjet[83]) , 1 , -1 do
				GameTooltip:AddLine(DBCS_formattext("-\195\137quip\195\169\194\160: "..tobjet[83][i],50),0,1,0);
			end
		end
--			[84]	bonus utiliser inconnus
		if ( tobjet[84] ) then
			for i = table.getn(tobjet[84]) , 1 , -1 do
				GameTooltip:AddLine(DBCS_formattext("-Utiliser\194\160: "..tobjet[84][i],50),0,1,0);
			end
		end
--			[97]	bonus : Chances quand vous touchez, inconnus
		if ( tobjet[97] ) then
			for i = table.getn(tobjet[97]) , 1 , -1 do
				GameTooltip:AddLine(DBCS_formattext("-Chances quand vous touchez\194\160: "..tobjet[97][i],50),0,1,0);
			end
		end
--			[80]	description							blabla sur l'objet
		if ( tobjet[80] ) then
			GameTooltip:AddLine(DBCS_formattext("\""..tobjet[80].."\"",50));
		end
	end
	if ( tobjet[98] == nil ) then
	else
		bpremier = false;
		for inumobjet2, _ in pairs(tobjet[98]) do
			if ( bpremier == false ) then
				bpremier = true;
				DBOS_SetHyperlink(inumobjet2,true);
			end
		end
	end
	if ( bobjetcraft == false ) then
--			[48]	date et heure création
		if ( tobjet[48] ) then
			GameTooltip:AddLine("\nD\195\169couvert par DBCS le "..tobjet[48].."\n");
			--GameTooltip:AddLine("\nCr\195\169\195\169 par DBCS le "..tobjet[48].."\n");
		end
		if ( DBCS_afficher_HDV_stats and DBCS_afficher_HDV_stats == true ) then
			if ( DBCS_HDV_stats ) then
				sfaction, _ = UnitFactionGroup("player");
				ifaction = nil;
				if ( sfaction == "Alliance" ) then
					ifaction = 1;
				elseif ( sfaction == "Horde" ) then
					ifaction = 2;
				end
				if ( ifaction ) then
					sDBCS_HDV_stats = DBCS_serveur.."@"..ifaction.."@";
					if ( DBCS_HDV_stats[sDBCS_HDV_stats] and DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet] ) then
						GameTooltip:AddLine("Statistiques DBCS de l'HDV", 0, 1, 1, "");
						if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][11] and DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][12] and DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][12] > 0 ) then
							imontant = floor( ( ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][11] / DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][12] ) * 10000 ) + .5 );
							GameTooltip:AddDoubleLine("Moyenne pond\195\169r\195\169e unitaire", DBCS_montant_vers_chaine(imontant), 1,1,1, 1,1,1);
						end
						if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][9] ) then
							imontant = floor( ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][9] * 10000 ) + .5 );
							GameTooltip:AddDoubleLine("Montant ench\195\168re valid\195\169e la + haute jamais vu", DBCS_montant_vers_chaine(imontant), 1,1,1, 1,1,1);
						end
						if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][5] ) then
							imontant = floor( ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][5] * 10000 ) + .5 );
							GameTooltip:AddDoubleLine("Prix d'achat direct le + bas jamais vu", DBCS_montant_vers_chaine(imontant), 1,1,1, 1,1,1);
						end
						if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][3] and DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][4] ) then
							stimescan = "";
							if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][3] ) then
								stimescan = stimescan..DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][3].." ";
							end
							if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][4] ) then
								stimescan = stimescan..strsub(DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][4],1,2).."h"..strsub(DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][4],3,4).."m"..strsub(DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][4],5,6).."s";
							end
							GameTooltip:AddDoubleLine("Date et Heure du dernier scan vu", stimescan, 1,1,1, 1,1,1);
						end
						if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][13] and DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][14] and DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][14] > 0 ) then
							imontant = floor( ( ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][13] / DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][14] ) * 10000 ) + .5 );
							GameTooltip:AddDoubleLine("Moyenne pond\195\169r\195\169e unitaire dernier scan vu", DBCS_montant_vers_chaine(imontant), 1,1,1, 1,1,1);
						end
						if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][10] ) then
							imontant = floor( ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][10] * 10000 ) + .5 );
							GameTooltip:AddDoubleLine("Montant ench\195\168re valid\195\169e la + haute dernier scan vu", DBCS_montant_vers_chaine(imontant), 1,1,1, 1,1,1);
						end
						if ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][6] ) then
							imontant = floor( ( DBCS_HDV_stats[sDBCS_HDV_stats][inumobjet][6] * 10000 ) + .5 );
							GameTooltip:AddDoubleLine("Prix d'achat direct le + bas dernier scan vu", DBCS_montant_vers_chaine(imontant), 1,1,1, 1,1,1);
						end
					end
				end
			end
		end
		DBobjets_tooltip_surqui(GameTooltip,inumobjet);
		smessage = "Objet pas valid\195\169 sur votre ordinateur/serveur.\n";
		smessage = smessage.."ALT + click gauche sur l'icone pour le valider.\n";
		smessage = smessage.."risque d'\195\170tre d\195\169connect\195\169";
		GameTooltip:AddLine(smessage);
--			[8]	icone
		if ( tobjet[8] ) then
			smessage = tobjet[8];
			GameTooltip:AddLine(smessage,0,1,0);
		end
		GameTooltip:Show();
	end

--			smessage = "Cet objet n'est pas encore valid\195\169 sur votre ordinateur\ndepuis la derni\195\168re version de wow.\n\n";
--			smessage = smessage.."Si vous voulez tenter de le valider,\nappuyez sur la touche ALT + click gauche sur l'icone,\npuis reglissez la souris sur l'icone.\n\n";
--			smessage = smessage.."ATTENTION : si cet objet n'est pas valide sur votre serveur\ndepuis la derni\195\168re version de wow,\nvous allez \195\170tre d\195\169connect\195\169, cest tout.";
--			GameTooltip:AddLine(smessage);
--			GameTooltip:Show();

end

--/script DBobjets_init_prix_Valuation();
--function DBobjets_init_prix_Valuation()
--
--	local i;
--	--local iprix;
--	
--	for i = 1 , 40000 do
--		if ( DBOS[i] ) then
--			DBOS[i][10] = GetSellValue(i);
--		end
--	end
--
--end

--/script DBobjets_enchant_ajouterdsmobs_nettoyer();
function DBobjets_enchant_ajouterdsmobs_nettoyer()

	local snommob;
	local sregion;

	for snommob, _ in pairs(DBMS) do
		if ( DBMS[snommob]["1"] ) then
			if ( DBMS[snommob]["1"][3] and DBMS[snommob]["1"][3] == "artisanat" ) then
				if ( DBMS[snommob]["1"][5] ) then
				--and DBCS_objet_metier_name[DBMS[snommob]["1"][5]] ) then
					if ( DBMS[snommob]["1"][5] == "d\195\169senchanter" or DBMS[snommob]["1"][5] == "prospection" or DBMS[snommob]["1"][5] == "mouture" ) then	--	or DBMS[snommob]["1"][5] == "Poisons" ) then
					else
						DBMS[snommob]["1"] = nil;
					end
				else
					DBMS[snommob]["1"] = nil;
				end
			end
		end
	end

end

--/script DBobjets_enchant_ajouterdsmobs_all(1);
--/script DBobjets_enchant_ajouterdsmobs_all(1000);
--/script DBobjets_enchant_ajouterdsmobs_all(2000);
--/script DBobjets_enchant_ajouterdsmobs_all(3000);
--/script DBobjets_enchant_ajouterdsmobs_all(4000);
--/script DBobjets_enchant_ajouterdsmobs_all(5000);
--/script DBobjets_enchant_ajouterdsmobs_all(6000);
--/script DBobjets_enchant_ajouterdsmobs_all(7000);
--/script DBobjets_enchant_ajouterdsmobs_all(8000);
--/script DBobjets_enchant_ajouterdsmobs_all(9000);
--/script DBobjets_enchant_ajouterdsmobs_all(10000);
--/script DBobjets_enchant_ajouterdsmobs_all(11000);
--/script DBobjets_enchant_ajouterdsmobs_all(12000);
--/script DBobjets_enchant_ajouterdsmobs_all(13000);
--/script DBobjets_enchant_ajouterdsmobs_all(14000);
--/script DBobjets_enchant_ajouterdsmobs_all(15000);
--/script DBobjets_enchant_ajouterdsmobs_all(16000);
--/script DBobjets_enchant_ajouterdsmobs_all(17000);
--/script DBobjets_enchant_ajouterdsmobs_all(18000);
--/script DBobjets_enchant_ajouterdsmobs_all(19000);
--/script DBobjets_enchant_ajouterdsmobs_all(20000);
--/script DBobjets_enchant_ajouterdsmobs_all(21000);
--/script DBobjets_enchant_ajouterdsmobs_all(22000);
--/script DBobjets_enchant_ajouterdsmobs_all(23000);
--/script DBobjets_enchant_ajouterdsmobs_all(24000);
--/script DBobjets_enchant_ajouterdsmobs_all(25000);
--/script DBobjets_enchant_ajouterdsmobs_all(25000,25100);
--/script DBobjets_enchant_ajouterdsmobs_all(25100,25200);
--/script DBobjets_enchant_ajouterdsmobs_all(25200,25300);
--/script DBobjets_enchant_ajouterdsmobs_all(25300,25400);
--/script DBobjets_enchant_ajouterdsmobs_all(25400,25500);
--/script DBobjets_enchant_ajouterdsmobs_all(25500,25600);
--/script DBobjets_enchant_ajouterdsmobs_all(25600,25700);
--/script DBobjets_enchant_ajouterdsmobs_all(25700,25800);
--/script DBobjets_enchant_ajouterdsmobs_all(25800,25900);
--/script DBobjets_enchant_ajouterdsmobs_all(25900,26000);
--/script DBobjets_enchant_ajouterdsmobs_all(26000);
--/script DBobjets_enchant_ajouterdsmobs_all(27000);
--/script DBobjets_enchant_ajouterdsmobs_all(28000);
--/script DBobjets_enchant_ajouterdsmobs_all(29000);
--/script DBobjets_enchant_ajouterdsmobs_all(30000);
--/script DBobjets_enchant_ajouterdsmobs_all(31000);
--/script DBobjets_enchant_ajouterdsmobs_all(32000);
--/script DBobjets_enchant_ajouterdsmobs_all(33000);
--/script DBobjets_enchant_ajouterdsmobs_all(34000);
--/script DBobjets_enchant_ajouterdsmobs_all(35000);
--/script DBobjets_enchant_ajouterdsmobs_all(36000);
--/script DBobjets_enchant_ajouterdsmobs_all(37000);
--/script DBobjets_enchant_ajouterdsmobs_all(38000);
--/script DBobjets_enchant_ajouterdsmobs_all(39000);
--/script DBobjets_enchant_ajouterdsmobs_all(40000);
--/script DBobjets_enchant_ajouterdsmobs_all(41000);
--/script DBobjets_enchant_ajouterdsmobs_all(42000);
--/script DBobjets_enchant_ajouterdsmobs_all(43000);
--/script DBobjets_enchant_ajouterdsmobs_all(44000);
--/script DBobjets_enchant_ajouterdsmobs_all(45000);
--/script DBobjets_enchant_ajouterdsmobs_all(46000);
--/script DBobjets_enchant_ajouterdsmobs_all(47000);
--/script DBobjets_enchant_ajouterdsmobs_all(48000);
--/script DBobjets_enchant_ajouterdsmobs_all(49000);
--/script DBobjets_enchant_ajouterdsmobs_all(50000);
--/script DBobjets_enchant_ajouterdsmobs_all(50000,60000)
--/script DBobjets_enchant_ajouterdsmobs_all(60000,70000)
--/script DBobjets_enchant_ajouterdsmobs_all(70000,80000)
--/script DBobjets_enchant_ajouterdsmobs_all(80000,90000)
--/script DBobjets_enchant_ajouterdsmobs_all(90000,100000)
function DBobjets_enchant_ajouterdsmobs_all(ideb,ifin)

	local inumobjet;
	if ( ideb ) then
	else
		ideb = 1;
	end
	if ( ifin ) then
	else
		ifin = ideb + 1000;
	end

if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("debut DBobjets_enchant_ajouterdsmobs : "..ideb);
end
	for inumobjet = ideb , ifin do
		if ( DBOS_enchant[inumobjet] ) then
			DBobjets_enchant_ajouterdsmobs(inumobjet);
		end
	end
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("fin DBobjets_enchant_ajouterdsmobs : "..ifin);
end

end

local DBOS_tablo_compo = {};

--/script GameToolTip:SetHyperlink("enchant:1");
--/script DBobjets_enchant_ajouterdsmobs(00000);
--/script DBobjets_enchant_ajouterdsmobs(13933);
--/script DBobjets_enchant_ajouterdsmobs(17561);
--/script DBobjets_enchant_ajouterdsmobs(36392);
--/script DBobjets_enchant_ajouterdsmobs(26892);
--/script DBobjets_enchant_ajouterdsmobs(25609);
--/script DBobjets_enchant_ajouterdsmobs(11456);
--/script DBobjets_enchant_ajouterdsmobs(12755);

--/script DBobjets_enchant_ajouterdsmobs(40749);
--/script DBobjets_enchant_ajouterdsmobs(3496);

--/script DBcorpsFrame_Tooltip2:Hide();
function DBobjets_enchant_ajouterdsmobs(inumobjet)

local snomobjet = nil;
local snomobjetenchant;
local inumobjet2;
local a,b;
local tablo;
local bbon;
local ipos;
local ochamp;
local schamp;
local schamp_composant = nil;
local tablocompo = {};
local scompo;
local ideb;
local i;
local j;
local javant = false;
local ilen;
local binconnu = false;
local snommetier = nil;
local bnomobjet = false;

	DBcorpsFrame_Tooltip2TextLeft1:SetText(nil);
	DBcorpsFrame_Tooltip2:SetOwner(UIParent,"ANCHOR_CURSOR");
	DBcorpsFrame_Tooltip2:SetHyperlink("enchant:"..inumobjet);
	DBcorpsFrame_Tooltip2:Show();
	snomobjetenchant = DBcorpsFrame_Tooltip2TextLeft1:GetText();
	if ( snomobjetenchant == nil ) then
		return nil;
	end
--if ( DBCS_debug > 1 ) then
--DBCS_ecrirecodedutexte(snomobjetenchant);
--end
	if ( strlower(strsub(snomobjetenchant,1,10)) == "composants" ) then
		schamp_composant = snomobjetenchant;
		binconnu = true;
	else
		DBOS_enchant[inumobjet][1] = snomobjetenchant;
		ipos = strfind(snomobjetenchant,":");
		if ( ipos ) then
			snommetier = strsub(snomobjetenchant,1,ipos-1);
		end
	end
	for i = 2 , 8 do
		schamp = _G["DBcorpsFrame_Tooltip2TextLeft"..i]:GetText();
		if ( schamp ) then
			if ( strlower(strsub(schamp,1,10)) == "composants" ) then
				schamp_composant = schamp;
			elseif ( bnomobjet == false and strsub(schamp,1,1) == "\n" ) then
				bnomobjet = true;
				snomobjet = strsub(schamp,2);
				if ( snommetier == nil and strlower(strsub(snomobjet,1,6)) == "poison" ) then
					snommetier = "Poisons";
					DBOS_enchant[inumobjet][1] = snommetier..": "..snomobjet;
				end
				DBOS_enchant[inumobjet][8] = snomobjet;
			end
		end
	end
	if ( binconnu == true ) then
		if ( snommetier == nil ) then
			if ( snomobjet == nil ) then
				snomobjet = "E"..inumobjet;
			end
			snommetier = "Inconnu";
			DBOS_enchant[inumobjet][1] = snommetier..": "..snomobjet;
		end
	else
		if ( snomobjet == nil and schamp_composant ) then
			if ( snommetier and strlower(snommetier) == "enchantement" ) then
				snomobjet = strsub(snomobjetenchant,15);
			end
		end
	end
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("nom objet = "..(snomobjet or ""));
end
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("snommetier = "..(snommetier or ""));
end
	if ( schamp_composant ) then
		schamp = schamp_composant;
		--tablocompo = {};
		schamp = strsub(schamp,17);
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("schamp = "..schamp);
end
		i = 0;
		ideb = 1;
		ipos = strfind(schamp,", ");
		while ( ipos ) do
			scompo = strsub(schamp,ideb,ipos-1);
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("scompo = "..scompo);
end
			i = i + 1;
			tablocompo[i] = {};
			tablocompo[i][1] = scompo;
			ideb = ipos + 2;
			--schamp = strsub(schamp,ideb);
			ipos = strfind(schamp,", ",ideb);
		end
		scompo = strsub(schamp,ideb);
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("scompo = "..scompo);
end
		i = i + 1;
		tablocompo[i] = {};
		tablocompo[i][1] = scompo;
		for i = 1 , table.getn(tablocompo) do
			ilen = strlen(tablocompo[i][1]);
			if ( strsub(tablocompo[i][1],1,1) == "|" ) then
				tablocompo[i][1] = strsub(tablocompo[i][1],11,ilen-2);
				ilen = strlen(tablocompo[i][1]);
			end
			ipos = strfind(tablocompo[i][1],"%(");
			if ( ipos ) then
				tablocompo[i][2] = tonumber(strsub(tablocompo[i][1],ipos+1,ilen-1));
				tablocompo[i][1] = strsub(tablocompo[i][1],1,ipos-2);
			else
				tablocompo[i][2] = 1;
			end
			tablocompo[i][1] = strlower(tablocompo[i][1]);
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("tablocompo["..i.."] = "..tablocompo[i][2].." "..tablocompo[i][1]);
end
			if ( DBOS_tablo_compo[tablocompo[i][1]] ) then
				tablocompo[i][3] = DBOS_tablo_compo[tablocompo[i][1]];
			else
				bbon = false;
				for inumobjet2, _ in pairs(DBOS01) do
					if ( DBOS01[inumobjet2][1] and strlower(DBOS01[inumobjet2][1]) == tablocompo[i][1] ) then
						bbon = true;
						DBOS_tablo_compo[tablocompo[i][1]] = inumobjet2;
					end
				end
				for inumobjet2, _ in pairs(DBOS02) do
					if ( DBOS02[inumobjet2][1] and strlower(DBOS02[inumobjet2][1]) == tablocompo[i][1] ) then
						bbon = true;
						DBOS_tablo_compo[tablocompo[i][1]] = inumobjet2;
					end
				end
				if ( bbon == true ) then
					tablocompo[i][3] = DBOS_tablo_compo[tablocompo[i][1]];
				end
			end
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("tablocompo["..i.."][3] = "..(tablocompo[i][3] or 0));
end
		end
	end
	tablo = {};
	if ( snomobjet ) then
		for inumobjet2, _ in pairs(DBOS01) do
			if ( DBOS01[inumobjet2][1] and strlower(DBOS01[inumobjet2][1]) == strlower(snomobjet) ) then
				tablo[inumobjet2] = 0;
				if ( DBOS_enchant[inumobjet][9] == nil ) then
					DBOS_enchant[inumobjet][9] = {};
				end
				DBOS_enchant[inumobjet][9][inumobjet2] = 1;
			end
		end
		for inumobjet2, _ in pairs(DBOS02) do
			if ( DBOS02[inumobjet2][1] and strlower(DBOS02[inumobjet2][1]) == strlower(snomobjet) ) then
				tablo[inumobjet2] = 0;
				if ( DBOS_enchant[inumobjet][9] == nil ) then
					DBOS_enchant[inumobjet][9] = {};
				end
				DBOS_enchant[inumobjet][9][inumobjet2] = 1;
			end
		end
	end
	if ( snomobjet ) then
		if ( DBMS[snomobjet] ) then
		else
			DBMS[snomobjet] = {};
		end
		--DBMS[snomobjet]["1"] = {};
		if ( DBMS[snomobjet]["1"] ) then
		else
			DBMS[snomobjet]["1"] = {};
		end
		DBMS[snomobjet]["1"][3] = "artisanat";
		DBMS[snomobjet]["1"][5] = snommetier;
		DBMS[snomobjet]["1"][7] = 1;
		if ( DBMS[snomobjet]["1"][8] ) then
			DBMS[snomobjet]["1"][8] = DBmobs_champ_8_en_nombre(DBMS[snomobjet]["1"][8]);
		else
			DBMS[snomobjet]["1"][8] = {};
		end
		--for inumobjet2, _ in pairs(DBMS[snomobjet]["1"][8]) do
		--	if ( DBOS[inumobjet2][4] == 12 ) then
		--	else
		--		DBMS[snomobjet]["1"][8][inumobjet2] = nil;
		--	end
		--end
		for inumobjet2, _ in pairs(tablo) do
			DBMS[snomobjet]["1"][8][inumobjet2] = 0;
		end
		for i = 1 , table.getn(tablocompo) do
			inumobjet2 = tablocompo[i][3];
			DBMS[snomobjet]["1"][8][inumobjet2] = tablocompo[i][2];
		end
	end

	if ( 1 == 1 ) then
		return nil;
	end

	--for i = 1 , 8 do
	--	_G["DBcorpsFrame_Tooltip2TextLeft"..i]:SetText(nil);
	--	_G["DBcorpsFrame_Tooltip2TextRight"..i]:SetText(nil);
	--end
	_G["DBcorpsFrame_Tooltip2TextLeft2"]:SetText(nil);
	DBcorpsFrame_Tooltip2:SetOwner(WorldFrame,"ANCHOR_NONE");
	DBcorpsFrame_Tooltip2:SetHyperlink("enchant:"..inumobjet);
	snomobjetenchant = DBOS_enchant[inumobjet][1];
	if ( strlower(strsub(snomobjetenchant,1,10)) == "composants" ) then
		schamp_composant = snomobjetenchant;
		a = "Inconnu";
	else
		a = nil;
		b = nil;
		ipos = strfind(snomobjetenchant,": ");
		if ( ipos ) then
			a = strsub(snomobjetenchant,1,ipos-1);
			b = strsub(snomobjetenchant,ipos+2);
		end
	end
	j = 1;
	ochamp = _G["DBcorpsFrame_Tooltip2TextLeft"..j];
	schamp = ochamp:GetText();
	if ( schamp ) then
	else
		return nil;
	end
	--if ( strlower(strsub(schamp,1,10)) == "composants" ) then
	--	schamp_composant = schamp;
	--else
	--	snomobjetenchant = schamp;
	--end
	j = j + 1;	--	2
	ochamp = _G["DBcorpsFrame_Tooltip2TextLeft"..j];
	schamp = ochamp:GetText();
	if ( schamp ) then
		if ( strlower(strsub(schamp,1,10)) == "composants" ) then
			schamp_composant = schamp;
		elseif ( strbyte(schamp,1,1) == 10 ) then
			snomobjet = strsub(schamp,2);
		else
		end
	else
		javant = true;
	end
	j = j + 1;	--	3
	ochamp = _G["DBcorpsFrame_Tooltip2TextLeft"..j];
	schamp = ochamp:GetText();
	if ( schamp ) then
--DBCS_ecrirecodedutexte(schamp);
		if ( strbyte(schamp,1,1) == 10 ) then
			snomobjet = strsub(schamp,2);
		else
		end
	else
	end
	j = j + 1;	--	4
	ochamp = _G["DBcorpsFrame_Tooltip2TextLeft"..j];
	schamp = ochamp:GetText();
	if ( schamp ) then
--DBCS_ecrirecodedutexte(schamp);
		if ( strbyte(schamp,1,1) == 10 ) then
			snomobjet = strsub(schamp,2);
		else
		end
	else
	end

--TraceFrame:AddMessage("snomobjetenchant = "..(snomobjetenchant or ""));
--TraceFrame:AddMessage("schamp_composant = "..(schamp_composant or ""));
--TraceFrame:AddMessage("snomobjet = "..(snomobjet or ""));
	schamp = schamp_composant;
--TraceFrame:AddMessage("schamp = "..schamp);
	--DBCS_ecrirecodedutexte(schamp);
	tablocompo = {};
	if ( schamp and strlower(strsub(schamp,1,10)) == "composants" ) then
		schamp = strsub(schamp,14);
--TraceFrame:AddMessage("schamp = "..schamp);
		i = 0;
		ideb = 1;
		ipos = strfind(schamp,", ");
		while ( ipos ) do
			scompo = strsub(schamp,ideb,ipos-1);
--TraceFrame:AddMessage("scompo = "..scompo);
			i = i + 1;
			tablocompo[i] = {};
			tablocompo[i][1] = scompo;
			ideb = ipos + 2;
			--schamp = strsub(schamp,ideb);
			ipos = strfind(schamp,", ",ideb);
		end
		scompo = strsub(schamp,ideb);
--TraceFrame:AddMessage("scompo = "..scompo);
		i = i + 1;
		tablocompo[i] = {};
		tablocompo[i][1] = scompo;
		for i = 1 , table.getn(tablocompo) do
			ilen = strlen(tablocompo[i][1]);
			if ( strsub(tablocompo[i][1],1,1) == "|" ) then
				tablocompo[i][1] = strsub(tablocompo[i][1],11,ilen-2);
				ilen = strlen(tablocompo[i][1]);
			end
			ipos = strfind(tablocompo[i][1],"%(");
			if ( ipos ) then
				tablocompo[i][2] = tonumber(strsub(tablocompo[i][1],ipos+1,ilen-1));
				tablocompo[i][1] = strsub(tablocompo[i][1],1,ipos-2);
			else
				tablocompo[i][2] = 1;
			end
			tablocompo[i][1] = strlower(tablocompo[i][1]);
--TraceFrame:AddMessage("tablocompo["..i.."] = "..tablocompo[i][2].." "..tablocompo[i][1]);
			if ( DBOS_tablo_compo[tablocompo[i][1]] ) then
				tablocompo[i][3] = DBOS_tablo_compo[tablocompo[i][1]];
			else
				bbon = false;
				for inumobjet2, _ in pairs(DBOS01) do
					if ( strlower(DBOS01[inumobjet2][1]) == tablocompo[i][1] ) then
						bbon = true;
						DBOS_tablo_compo[tablocompo[i][1]] = inumobjet2;
					end
				end
				for inumobjet2, _ in pairs(DBOS02) do
					if ( strlower(DBOS02[inumobjet2][1]) == tablocompo[i][1] ) then
						bbon = true;
						DBOS_tablo_compo[tablocompo[i][1]] = inumobjet2;
					end
				end
				if ( bbon == true ) then
					tablocompo[i][3] = DBOS_tablo_compo[tablocompo[i][1]];
				end
			end
--TraceFrame:AddMessage("tablocompo["..i.."][3] = "..(tablocompo[i][3] or 0));
		end
	end
	tablo = {};
	if ( snomobjet ) then
		if ( a == "Inconnu" ) then
			if ( strlower(strsub(snomobjet,1,6)) == "poison" ) then
				a = "Poisons";
			end
		end
		for inumobjet2, _ in pairs(DBOS01) do
			if ( strlower(DBOS01[inumobjet2][1]) == strlower(snomobjet) ) then
				tablo[inumobjet2] = 0;
			end
		end
		for inumobjet2, _ in pairs(DBOS02) do
			if ( strlower(DBOS02[inumobjet2][1]) == strlower(snomobjet) ) then
				tablo[inumobjet2] = 0;
			end
		end
		if ( a and b == nil ) then
			b = snomobjet;
		end
	end
	if ( b ) then
		DBOS_enchant[inumobjet][8] = snomobjet;
		for inumobjet2, _ in pairs(DBOS01) do
			if ( strlower(DBOS01[inumobjet2][1]) == strlower(b) ) then
				tablo[inumobjet2] = 0;
			end
		end
		for inumobjet2, _ in pairs(DBOS02) do
			if ( strlower(DBOS02[inumobjet2][1]) == strlower(b) ) then
				tablo[inumobjet2] = 0;
			end
		end
	end
--TraceFrame:AddMessage("a = "..(a or ""));
--TraceFrame:AddMessage("b = "..(b or ""));
--	for inumobjet2, _ in pairs(tablo) do
--TraceFrame:AddMessage("inumobjet2 = "..(inumobjet2 or ""));
--	end

	if ( a and b ) then
		if ( DBMS[b] ) then
		else
			DBMS[b] = {};
		end
		DBMS[b]["1"] = {};
		DBMS[b]["1"][3] = "artisanat";
		DBMS[b]["1"][5] = a;
		DBMS[b]["1"][7] = 1;
		if ( DBMS[b]["1"][8] ) then
			DBMS[b]["1"][8] = DBmobs_champ_8_en_nombre(DBMS[b]["1"][8]);
		else
			DBMS[b]["1"][8] = {};
		end
		for inumobjet2, _ in pairs(tablo) do
			DBMS[b]["1"][8][inumobjet2] = 0;
		end
		for i = 1 , table.getn(tablocompo) do
			inumobjet2 = tablocompo[i][3];
			DBMS[b]["1"][8][inumobjet2] = tablocompo[i][2];
		end
	end

	if ( 1 == 1 ) then
		return nil;
	end



	snomobjetenchant = DBOS_enchant[inumobjet][1];
	a = nil;
	b = nil;
	ipos = strfind(snomobjetenchant,": ");
	if ( ipos ) then
		a = strsub(snomobjetenchant,1,ipos-1);
		b = strsub(snomobjetenchant,ipos+2);
	end
	if ( a and b ) then
	--for a,b in string.gmatch(snomobjetenchant,"(.+): (.+)") do
		--if ( strlower(a) == "composants " ) then
		--else
			--if ( DBMS[b] and DBMS[b]["0"] ) then
			--else
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("ajout de "..b.." en artisanat "..a);
end
				bbon = false;
				for inumobjet2, _ in pairs(DBOS01) do
					if ( strlower(DBOS01[inumobjet2][1]) == strlower(b) ) then
						bbon = true;
						tablo[inumobjet2] = 1;
					end
				end
				for inumobjet2, _ in pairs(DBOS02) do
					if ( strlower(DBOS02[inumobjet2][1]) == strlower(b) ) then
						bbon = true;
						tablo[inumobjet2] = 1;
					end
				end
				if ( bbon == true ) then
					if ( DBMS[b] ) then
					else
						DBMS[b] = {};
					end
					--if ( DBMS[b]["0"] ) then
					--else
						DBMS[b]["1"] = {};
					--end
					DBMS[b]["1"][3] = "artisanat";
					DBMS[b]["1"][5] = a;
					if ( DBMS[b]["1"][8] ) then
						DBMS[b]["1"][8] = DBmobs_champ_8_en_nombre(DBMS[b]["1"][8]);
					else
						DBMS[b]["1"][8] = {};
					end
					for inumobjet2, _ in pairs(tablo) do
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("ajout de l'objet "..inumobjet2);
end
						--if ( DBMS[b]["1"][8][inumobjet2] ) then
						--else
						--	DBMS[b]["1"][8][inumobjet2] = {};
						--end
						--DBMS[b]["1"][8][inumobjet2]["0:0:0:0:0:0:0"] = 0;
						DBMS[b]["1"][8][inumobjet2] = 0;
					end
					for i = 1 , table.getn(tablocompo) do
						inumobjet2 = tablocompo[i][3];
						--if ( DBMS[b]["1"][8][inumobjet2] ) then
						--else
						--	DBMS[b]["1"][8][inumobjet2] = {};
						--end
						--DBMS[b]["1"][8][inumobjet2]["0:0:0:0:0:0:0"] = tablocompo[i][2];
						DBMS[b]["1"][8][inumobjet2] = tablocompo[i][2];
					end
				end
			--end
		--end
	end

end

local DBCS_prices = "";

function DBObjets_getprice(id)

local index;
local a;
local b;
local c;
local d;

    if id and id <= 44790 and id > 0 then

		index = id * 4;
		a, b, c, d = string.byte(DBCS_prices, index - 3, index);

		if a == 126 and b == 126 and c == 126 and d == 126 then 
			return 0;
		elseif a == 0 and b == 0 and c == 0 and d == 0 then
			return nil;
		else
			return a * 16777216 + b * 65536 + c * 256 + d;
		end
	end

--    if id and id <= 39656 and id > 0 then
--
--		local index = id * 3;
--
--		a, b, c = string.byte(DBCS_prices, index - 2, index);
--
--		if a == 122 and b == 122 and c == 122 then
--			return 0;
--		end
--		if b == 0 then
--			if c == 0 then
--				if a == 0 then
--					return nil;
--				else
--					return a * 65536;
--				end
--			else
--				return a * 65536 + c;
--			end
--		else
--			return a * 65536 + b * 256 + c;
--		end
--	end

end

--/script DBObjets_initprice();
function DBObjets_initprice()

local inumobjet;
local iprix;

	for inumobjet, _ in pairs(DBOS01) do
		iprix = DBObjets_getprice(inumobjet);
		--iprix = EWOlson_GetSellValue_Data[inumobjet];
		if ( iprix and iprix == 0 ) then
			iprix = nil;
		end
		if ( DBOS01[inumobjet][10] and iprix == nil ) then
		else
			DBOS01[inumobjet][10] = iprix;
		end
	end
	for inumobjet, _ in pairs(DBOS02) do
		iprix = DBObjets_getprice(inumobjet);
		--iprix = EWOlson_GetSellValue_Data[inumobjet];
		if ( iprix and iprix == 0 ) then
			iprix = nil;
		end
		if ( DBOS02[inumobjet][10] and iprix == nil ) then
		else
			DBOS02[inumobjet][10] = iprix;
		end
	end

end

local DBobjets_afficher_enchant_inumenchant_old = 0;

--/script DBobjets_afficher_enchant();
function DBobjets_afficher_enchant()

local snom;

	snom = _G["DBcorpsFrame_TooltipEnchantTextLeft1"]:GetText();
	if ( snom ) then
		if ( DBOS_enchant[DBobjets_afficher_enchant_inumenchant_old] == nil ) then
			DBOS_enchant[DBobjets_afficher_enchant_inumenchant_old] = {};
			DBOS_enchant[DBobjets_afficher_enchant_inumenchant_old][1] = snom;
			DBOS_enchant[DBobjets_afficher_enchant_inumenchant_old][48] = ""..DBCS_date().."@"..DBCS_time();
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("j'ajoute l'enchant : "..DBobjets_afficher_enchant_inumenchant_old.." = "..snom);
end
		--else
		--	DBOS_enchant[DBobjets_afficher_enchant_inumenchant_old][1] = snom;
		end
	end
	DBobjets_afficher_enchant_inumenchant_old = DBobjets_afficher_enchant_inumenchant_old + 1;
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("affichage enchant : "..DBobjets_afficher_enchant_inumenchant_old);
end
	_G["DBcorpsFrame_TooltipEnchantTextLeft1"]:SetText(nil);
	--DBcorpsFrame_TooltipEnchant:SetOwner(WorldFrame,"ANCHOR_NONE");
	DBcorpsFrame_TooltipEnchant:SetOwner(UIParent,"ANCHOR_CURSOR");
	DBcorpsFrame_TooltipEnchant:SetHyperlink("enchant:"..DBobjets_afficher_enchant_inumenchant_old);
	DBcorpsFrame_TooltipEnchant:Show();

end

--/script DBobjets_afficher_enchant_n(100)
function DBobjets_afficher_enchant_n(inb)

local i;

	for i = 1 , inb do
		DBobjets_afficher_enchant();
	end

end

--/script DBobjets_afficher_enchant_init(00);
--/script DBobjets_afficher_enchant_init(400);
--/script DBobjets_afficher_enchant_init(1000);
--/script DBobjets_afficher_enchant_init(1500);
--/script DBobjets_afficher_enchant_init(1745);
--/script DBobjets_afficher_enchant_init(1850);
--/script DBobjets_afficher_enchant_init(2000);
--/script DBobjets_afficher_enchant_init(2100);
--/script DBobjets_afficher_enchant_init(2478);
--/script DBobjets_afficher_enchant_init(2974);
--/script DBobjets_afficher_enchant_init(3000);
--/script DBobjets_afficher_enchant_init(3500);
--/script DBobjets_afficher_enchant_init(4000);
--/script DBobjets_afficher_enchant_init(4500);
--/script DBobjets_afficher_enchant_init(4805);
--/script DBobjets_afficher_enchant_init(5000);
--/script DBobjets_afficher_enchant_init(5047);
--/script DBobjets_afficher_enchant_init(5500);
--/script DBobjets_afficher_enchant_init(8100);
--/script DBobjets_afficher_enchant_init(10000);
--/script DBobjets_afficher_enchant_init(11900);
--/script DBobjets_afficher_enchant_init(12700);
--/script DBobjets_afficher_enchant_init(15000);
--/script DBobjets_afficher_enchant_init(16800);
--/script DBobjets_afficher_enchant_init(20000);
--/script DBobjets_afficher_enchant_init(25000);
--/script DBobjets_afficher_enchant_init(25500);
--/script DBobjets_afficher_enchant_init(26900);
--/script DBobjets_afficher_enchant_init(27500);
--/script DBobjets_afficher_enchant_init(30000);
--/script DBobjets_afficher_enchant_init(30200);
--/script DBobjets_afficher_enchant_init(30500);
--/script DBobjets_afficher_enchant_init(31200);
--/script DBobjets_afficher_enchant_init(31700);
--/script DBobjets_afficher_enchant_init(35000);
--/script DBobjets_afficher_enchant_init(36400);
--/script DBobjets_afficher_enchant_init(40000);
--/script DBobjets_afficher_enchant_init(40500);
--/script DBobjets_afficher_enchant_init(41000);
--/script DBobjets_afficher_enchant_init(44600);
--/script DBobjets_afficher_enchant_init(44700);
--/script DBobjets_afficher_enchant_init(45000);
--/script DBobjets_afficher_enchant_init(45400);
--/script DBobjets_afficher_enchant_init(45500);
--/script DBobjets_afficher_enchant_init(46200);
--/script DBobjets_afficher_enchant_init(50000);
--/script DBobjets_afficher_enchant_init(50900);
--/script DBobjets_afficher_enchant_init(51000);
--/script DBobjets_afficher_enchant_init(53700);
--/script DBobjets_afficher_enchant_init(55000);
--/script DBobjets_afficher_enchant_init(57700);
--/script DBobjets_afficher_enchant_init(58300);
--/script DBobjets_afficher_enchant_init(58400);
--/script DBobjets_afficher_enchant_init(60000);
--/script DBobjets_afficher_enchant_init(60900);
--/script DBobjets_afficher_enchant_init(61400);
--/script DBobjets_afficher_enchant_init(62000);
--/script DBobjets_afficher_enchant_init(64300);
--/script DBobjets_afficher_enchant_init(68000);
--/script DBobjets_afficher_enchant_init(70000);
--/script DBobjets_afficher_enchant_init(73000);
function DBobjets_afficher_enchant_init(inumenchant)

	DBobjets_afficher_enchant_inumenchant_old = inumenchant;

end

--/script DBobjets_enchant_init_DBmobs();
function DBobjets_enchant_init_DBmobs()

local i;
local ideb;
local bbon = true;

	ideb = DBCS_config["DBOS_enchant_init"];
	if ( ideb == nil ) then
		ideb = 0;
	else
		ideb = ideb + 1;
	end
	for i = ideb , 80000 do
		if ( bbon == true ) then
			if ( DBOS_enchant[i] ) then
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage("------------------------------------------------------------------");
TraceFrame:AddMessage("enchant : "..i.." = "..DBOS_getlinkitem(DBOS_enchant[i][1],i,6,"e"));
end
				DBobjets_enchant_ajouterdsmobs(i);
				DBCS_config["DBOS_enchant_init"] = i;
				bbon = false;
			end
		end
	end
	if ( bbon == true ) then
		DBcorpsFrame_Tooltip2:Hide();
	end

end

--/script DBOS_enchant[8296] = nil;
--/script DBOS_enchant[22430] = nil;
--/script DBOS_enchant[22434] = nil;
--/script DBOS_enchant[25281] = nil;
--/script DBOS_enchant[25285] = nil;
--/script DBOS_enchant[25301] = nil;
--/script DBOS_enchant[25319] = nil;
--/script DBOS_enchant[28867] = nil;

--/script DBcorpsFrame_Tooltip2:Hide();

--/script DBobjets_enchant_init_DBmobs_init(00000);
--/script DBobjets_enchant_init_DBmobs_init(02335);
--/script DBobjets_enchant_init_DBmobs_init(02670);
--/script DBobjets_enchant_init_DBmobs_init(03914);
--/script DBobjets_enchant_init_DBmobs_init(06618);
--/script DBobjets_enchant_init_DBmobs_init(07635);
--/script DBobjets_enchant_init_DBmobs_init(08365);
--/script DBobjets_enchant_init_DBmobs_init(08367);
--/script DBobjets_enchant_init_DBmobs_init(08777);
--/script DBobjets_enchant_init_DBmobs_init(09941);
--/script DBobjets_enchant_init_DBmobs_init(10549);
--/script DBobjets_enchant_init_DBmobs_init(11900);
--/script DBobjets_enchant_init_DBmobs_init(12061);
--/script DBobjets_enchant_init_DBmobs_init(12062);
--/script DBobjets_enchant_init_DBmobs_init(12067);
--/script DBobjets_enchant_init_DBmobs_init(12082);
--/script DBobjets_enchant_init_DBmobs_init(12086);
--/script DBobjets_enchant_init_DBmobs_init(12089);
--/script DBobjets_enchant_init_DBmobs_init(12718);
--/script DBobjets_enchant_init_DBmobs_init(12719);
--/script DBobjets_enchant_init_DBmobs_init(12721);
--/script DBobjets_enchant_init_DBmobs_init(12899);
--/script DBobjets_enchant_init_DBmobs_init(12903);
--/script DBobjets_enchant_init_DBmobs_init(16959);
--/script DBobjets_enchant_init_DBmobs_init(16964);
--/script DBobjets_enchant_init_DBmobs_init(16966);
--/script DBobjets_enchant_init_DBmobs_init(16979);
--/script DBobjets_enchant_init_DBmobs_init(16985);
--/script DBobjets_enchant_init_DBmobs_init(16986);
--/script DBobjets_enchant_init_DBmobs_init(17578);
--/script DBobjets_enchant_init_DBmobs_init(19105);
--/script DBobjets_enchant_init_DBmobs_init(25319);
--/script DBobjets_enchant_init_DBmobs_init(25613);
--/script DBobjets_enchant_init_DBmobs_init(26903);
--/script DBobjets_enchant_init_DBmobs_init(26917);
--/script DBobjets_enchant_init_DBmobs_init(26919);
--/script DBobjets_enchant_init_DBmobs_init(30020);
--/script DBobjets_enchant_init_DBmobs_init(30342);
--/script DBobjets_enchant_init_DBmobs_init(30348);
--/script DBobjets_enchant_init_DBmobs_init(30548);
--/script DBobjets_enchant_init_DBmobs_init(30558);
--/script DBobjets_enchant_init_DBmobs_init(30560);
--/script DBobjets_enchant_init_DBmobs_init(30572);
--/script DBobjets_enchant_init_DBmobs_init(31460);
--/script DBobjets_enchant_init_DBmobs_init(32809);
--/script DBobjets_enchant_init_DBmobs_init(36664);
--/script DBobjets_enchant_init_DBmobs_init(36666);
--/script DBobjets_enchant_init_DBmobs_init(36667);
--/script DBobjets_enchant_init_DBmobs_init(36668);
--/script DBobjets_enchant_init_DBmobs_init(36669);
--/script DBobjets_enchant_init_DBmobs_init(36671);
--/script DBobjets_enchant_init_DBmobs_init(39997);
--/script DBobjets_enchant_init_DBmobs_init(40000);
--/script DBobjets_enchant_init_DBmobs_init(40500);
--/script DBobjets_enchant_init_DBmobs_init(44513);
--/script DBobjets_enchant_init_DBmobs_init(44646);
--/script DBobjets_enchant_init_DBmobs_init(44649);
--/script DBobjets_enchant_init_DBmobs_init(45552);
--/script DBobjets_enchant_init_DBmobs_init(48400);

--/script DBobjets_enchant_init_DBmobs_init(48556);

--/script DBobjets_enchant_init_DBmobs_init(50000);
--/script DBobjets_enchant_init_DBmobs_init(50974);
--/script DBobjets_enchant_init_DBmobs_init(53685);
--/script DBobjets_enchant_init_DBmobs_init(55628);
--/script DBobjets_enchant_init_DBmobs_init(55641);
--/script DBobjets_enchant_init_DBmobs_init(56973);
--/script DBobjets_enchant_init_DBmobs_init(57686);
--/script DBobjets_enchant_init_DBmobs_init(58075);
--/script DBobjets_enchant_init_DBmobs_init(58295);
--/script DBobjets_enchant_init_DBmobs_init(60616);
--/script DBobjets_enchant_init_DBmobs_init(60976);
--/script DBobjets_enchant_init_DBmobs_init(62000);

--/script DBobjets_enchant_init_DBmobs_init(40273);
--/script DBobjets_enchant_init_DBmobs_init(40000);
function DBobjets_enchant_init_DBmobs_init(inumobjet)

	DBCS_config["DBOS_enchant_init"] = inumobjet;

end

--/script SetItemRef("unit:0xF1300002D1067C52:Lapin")

--/script DEFAULT_CHAT_FRAME:AddMessage(format("%X",23061))
--/script DEFAULT_CHAT_FRAME:AddMessage(format("%X",43341))

--/script SetItemRef("unit:0xF130007460000000:bla")
--/script SetItemRef("unit:0xF130007478000000:bla")
--/script SetItemRef("unit:0xF130005A15000000:bla")
--/script SetItemRef("unit:0xF13000A94D000000:bla")
--/script SetItemRef("unit:0x00000000006C73ED:bla")

--/script DBCS_objets_inummob = 0;
--/script DEFAULT_CHAT_FRAME:AddMessage(format("%x",25000))
--/script SetItemRef("spell:6660")

--/script DBobjets_SetItemRef_nummob_i = -1;
--/script DEFAULT_CHAT_FRAME:AddMessage(DBobjets_SetItemRef_nummob_i)

--/script DBobjets_SetItemRef_nummob_i = -1;
--/script DBobjets_SetItemRef_nummob_i = 90000;
DBobjets_SetItemRef_nummob_i = -1;
--DBobjets_SetItemRef_nummob_i = 200000;

DBobjets_SetItemRef_nummob_phase = 1;
DBobjets_SetItemRef_nummob_phase_max = 2;

--/script DBobjets_SetItemRef_nummob();
function DBobjets_SetItemRef_nummob(baffiche)


	if ( DBobjets_SetItemRef_nummob_i > DBOS_mobs_model_SetItemRef_nummob_imax ) then
if ( DBCS_debug and DBCS_debug > 1 ) then
TraceFrame:AddMessage("je commences une nouvelle boucle de DBobjets_SetItemRef_nummob");
end
		DBobjets_SetItemRef_nummob_i = -1;
		DBobjets_SetItemRef_nummob_phase = DBobjets_SetItemRef_nummob_phase + 1;
		if ( DBobjets_SetItemRef_nummob_phase > DBobjets_SetItemRef_nummob_phase_max ) then
			DBobjets_SetItemRef_nummob_phase = 1;
		end
		--return nil;
	end

--local smot_debut = "unit:0x003";
--local smot_debut = "unit:0xF13";
local smot_debut = "";
--local smot_debut = "unit:0xF55";
local smot_fin = nil;
local smot_milieu = nil;
local smot_tout = nil;
local ilen = nil;
local snom = nil;
local slink = nil;
local sregion = nil;
local snumregion = nil;
local i = nil;

	--if ( DBobjets_wow_build > DBobjets_wow_build_live ) then
		smot_fin = "00000000:";
	--else
	--	smot_fin = "000000:";
	--end

	if ( baffiche ) then
		if ( baffiche == true ) then
		else
			baffiche = false;
		end
	else
		baffiche = false;
	end

	if ( DBobjets_SetItemRef_nummob_phase == 1 ) then
		smot_debut = "unit:0xF13";
	elseif ( DBobjets_SetItemRef_nummob_phase == 2 ) then
		smot_debut = "unit:0xF53";
	end

	DBobjets_SetItemRef_nummob_i = DBobjets_SetItemRef_nummob_i + 1;
	
	smot_milieu = format("%X",DBobjets_SetItemRef_nummob_i);
	ilen = strlen(smot_milieu);
	--if ( DBobjets_wow_build > DBobjets_wow_build_live ) then
		if ( DBmobs_Local and DBmobs_Local[DBobjets_SetItemRef_nummob_i] ) then
			smot_tout = smot_debut..strrep("0",5-ilen)..smot_milieu..smot_fin..DBmobs_Local[DBobjets_SetItemRef_nummob_i][1][1];
		else
			smot_tout = smot_debut..strrep("0",5-ilen)..smot_milieu..smot_fin.."bla";
		end
	--else
	--	if ( DBmobs_Local and DBmobs_Local[DBobjets_SetItemRef_nummob_i] ) then
	--		smot_tout = smot_debut..strrep("0",7-ilen)..smot_milieu..smot_fin..DBmobs_Local[DBobjets_SetItemRef_nummob_i][1][1];
	--	else
	--		smot_tout = smot_debut..strrep("0",7-ilen)..smot_milieu..smot_fin.."bla";
	--	end
	--end
	
	--SetItemRef(smot_tout);
	--snom = ItemRefTooltipTextLeft1:GetText();
	DBcorpsFrame_Tooltip4:SetOwner(WorldFrame,"ANCHOR_NONE");
	DBcorpsFrame_Tooltip4:SetHyperlink(smot_tout);
	snom = DBcorpsFrame_Tooltip4TextLeft1:GetText();
	
	if ( snom ) then
		--if ( DBobjets_wow_build > DBobjets_wow_build_live ) then
			smot_tout = smot_debut..strrep("0",5-ilen)..smot_milieu..smot_fin..snom;
		--else
		--	smot_tout = smot_debut..strrep("0",7-ilen)..smot_milieu..smot_fin..snom;
		--end
		slink = "|cff4e96f7|H"..smot_tout.."|h["..snom.."]|h|r";
if ( DBCS_debug > 1 ) then
	if ( DBmobs_Local and DBmobs_Local[DBobjets_SetItemRef_nummob_i] ) then
	else
TraceFrame:AddMessage(DBobjets_SetItemRef_nummob_i.." = "..smot_tout.." : "..slink);
	end
end
		sregion = nil;
		--if ( DBMS[snom] ) then
		--	i = 0;
		--	for snumregion, _ in pairs(DBMS[snom]) do
		--		i = i + 1;
		--		sregion = snumregion;
		--	end
		--	if ( i == 1 ) then
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("num = "..DBobjets_SetItemRef_nummob_i..", nom mob = "..snom..", num region = "..sregion);
--end
		--	else
		--		sregion = nil;
		--	end
		--end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage(DBobjets_SetItemRef_nummob_i.." : "..slink);
--end
		fDBmobs_Local_ajouter(DBobjets_SetItemRef_nummob_i,snom,sregion,tonumber(DBCS_date()),false);
	else
		if ( baffiche == true ) then
if ( DBCS_debug > 1 ) then
TraceFrame:AddMessage(DBobjets_SetItemRef_nummob_i.." = "..smot_tout);
end
		end
	end

end

DBOS_tooltip_surqui = {};

function DBobjets_tooltip_surqui(tooltip,inumobjet)

local nommob;
local numregion;
local tMOB;
local tOBJETS;
local inumquete;
local bbon;
local tQUETE;
local sdebut;

	if ( DBCS_afficher_Objet_afficher_mobs == false ) then
		return nil;
	end
--if ( DBCS_debug > 1 ) then
--TraceFrame:AddMessage("DBobjets_tooltip_surqui , inumobjet = "..inumobjet);
--end
	if ( DBOS_tooltip_surqui[inumobjet] ) then
	else
		i = 0;
		DBOS_tooltip_surqui[inumobjet] = {};
		DBOS_tooltip_surqui[inumobjet]["mob"] = {};
		for nommob, _ in pairs(DBMS) do
			for numregion, _ in pairs(DBMS[nommob]) do
				if ( DBMS[nommob][numregion][8] ) then
					DBMS[nommob][numregion][8] = DBmobs_champ_8_en_nombre(DBMS[nommob][numregion][8]);
				end
				tMOB = DBMS[nommob][numregion];
				tOBJETS = tMOB[8];
				if ( tOBJETS ) then
					if ( tOBJETS[inumobjet] ) then
						if ( DBOS_tooltip_surqui[inumobjet]["mob"][nommob] == nil ) then
							DBOS_tooltip_surqui[inumobjet]["mob"][nommob] = {};
						end
						if ( DBOS_tooltip_surqui[inumobjet]["mob"][nommob][numregion] == nil ) then
							DBOS_tooltip_surqui[inumobjet]["mob"][nommob][numregion] = {};
						end
						i = i + 1;
					end
				end
			end
		end
		if ( i == 0 ) then
			DBOS_tooltip_surqui[inumobjet]["quete"] = {};
			for inumquete, _ in pairs(DBquetes2) do
				bbon = 0;
				tQUETE = DBquetes2[inumquete];
				if ( bbon == 0 and tQUETE[14] ) then
					if ( tQUETE[14][inumobjet] ) then
						bbon = 1;
					end
				end
				if ( bbon == 0 and tQUETE[15] ) then
					if ( tQUETE[15][inumobjet] ) then
						bbon = 1;
					end
				end
				if ( bbon == 0 and tQUETE[16] ) then
					if ( tQUETE[16][inumobjet] ) then
						bbon = 1;
					end
				end
				if ( bbon == 1 ) then
					i = i + 1;
					DBOS_tooltip_surqui[inumobjet]["quete"][i] = {};
					DBOS_tooltip_surqui[inumobjet]["quete"][i]["region"] = tQUETE[20] or tQUETE[26] or "";
					DBOS_tooltip_surqui[inumobjet]["quete"][i]["nomquete"] = tQUETE[0] or "";
					DBOS_tooltip_surqui[inumobjet]["quete"][i]["numquete"] = inumquete;
				end
			end
		end
		DBOS_tooltip_surqui[inumobjet]["i"] = i;
	end
	if ( DBOS_tooltip_surqui[inumobjet]["i"] > 0 ) then
		tooltip:AddLine("Localisation du loot", 0, 1, 1, "");
		i = 0;
		for nommob, _ in pairs(DBOS_tooltip_surqui[inumobjet]["mob"]) do
			for numregion, _ in pairs(DBOS_tooltip_surqui[inumobjet]["mob"][nommob]) do
				if ( i < 10 ) then
					i = i + 1;
					sdebut = DB_nomregionbynum(numregion) or "";
					if ( strlen(sdebut) == 0 ) then
						sdebut = "---";
					end
					tooltip:AddDoubleLine(sdebut, nommob, 1,1,1, 1,1,1);
				end
			end
		end
		if ( DBOS_tooltip_surqui[inumobjet]["quete"] ) then
			for numquete, _ in pairs(DBOS_tooltip_surqui[inumobjet]["quete"]) do
				if ( i < 10 ) then
					i = i + 1;
					sdebut = DBOS_tooltip_surqui[inumobjet]["quete"][numquete]["region"];
					if ( strlen(sdebut) == 0 ) then
						sdebut = "---";
					end
					tooltip:AddDoubleLine(sdebut, "Qu\195\170te "..DBOS_tooltip_surqui[inumobjet]["quete"][numquete]["numquete"].." : "..DBOS_tooltip_surqui[inumobjet]["quete"][numquete]["nomquete"], 1,1,1, 1,1,1);
				end
			end
		end
	end

end

function DBcorpsFrame_Objet_afficher_mobs_OnClick()

local bvalue;

	if ( DBCS_config["informer"] == nil ) then
		DBCS_config["informer"] = {};
	end
	if ( DBCS_config["informer"]["Objet_afficher_mobs"] == nil ) then
		DBCS_config["informer"]["Objet_afficher_mobs"] = true;
	end
	bvalue = DBcorpsFrame_Objet_afficher_mobs:GetChecked();
	if ( bvalue == nil ) then
		bvalue = 0;
	end
	if ( bvalue == 0 ) then
		DBCS_config["informer"]["Objet_afficher_mobs"] = false;
		DBCS_afficher_Objet_afficher_mobs = false;
	else
		DBCS_config["informer"]["Objet_afficher_mobs"] = true;
		DBCS_afficher_Objet_afficher_mobs = true;
	end

end

--/script DBobjets_copier_client_vers_serveur()
function DBobjets_copier_client_vers_serveur()

local idate;
local inumobjet;
local slangue_local;
local slangue;
local tobjet = nil;

	slangue_local = GetLocale();
	for slangue , _ in pairs(DBobjets_Client) do
		if ( type(slangue) == "number" ) then
			if ( slangue_local == "frFR" ) then
				if ( slangue > 0 ) then
					for inumobjet = 1 , DBCS_extract_nb_max do
					--for inumobjet,_ in pairs(DBobjets_Client[slangue]) do
						if ( DBobjets_Client[slangue][inumobjet] ) then
							if ( inumobjet > 50000 ) then
								tobjet = DBOS02[inumobjet];
							else
								tobjet = DBOS01[inumobjet];
							end
							if ( tobjet == nil or tobjet[4] == nil ) then
								tobjet = DBobjets_Client[slangue][inumobjet];
								tobjet[48] = ""..DBCS_date().."@"..DBCS_time();
if ( DBCS_debug and DBCS_debug > 1 ) then
TraceFrame:AddMessage("j'ajoutes tous les d\195\169tails de l'objet "..inumobjet.." : "..DBobjets_GetItemLink(inumobjet,"0:0:0:0:0:0:0:0:0:0"));
end
							end
							if ( inumobjet > 50000 ) then
								DBOS02[inumobjet] = tobjet;
							else
								DBOS01[inumobjet] = tobjet;
							end
							DBobjets_Client[slangue][inumobjet] = nil;
						end
					end
				else
				end
				DBobjets_Client[slangue] = nil;
			end
		else
			if ( slangue == slangue_local ) then
				for idate , _ in pairs(DBobjets_Client[slangue]) do
					if ( idate > 0 ) then
						for inumobjet = 1 , DBCS_extract_nb_max do
						--for inumobjet,_ in pairs(DBobjets_Client[slangue][idate]) do
							if ( DBobjets_Client[slangue][idate][inumobjet] ) then
								if ( inumobjet > 50000 ) then
									tobjet = DBOS02[inumobjet];
								else
									tobjet = DBOS01[inumobjet];
								end
								if ( tobjet == nil or tobjet[4] == nil ) then
									tobjet = DBobjets_Client[slangue][idate][inumobjet];
									tobjet[48] = ""..DBCS_date().."@"..DBCS_time();
if ( DBCS_debug and DBCS_debug > 1 ) then
TraceFrame:AddMessage("j'ajoutes tous les d\195\169tails de l'objet "..inumobjet.." : "..DBobjets_GetItemLink(inumobjet,"0:0:0:0:0:0:0:0:0:0"));
end
								end
								if ( inumobjet > 50000 ) then
									DBOS02[inumobjet] = tobjet;
								else
									DBOS01[inumobjet] = tobjet;
								end
								DBobjets_Client[slangue][idate][inumobjet] = nil;
							end
						end
					else
					end
					DBobjets_Client[slangue][idate] = nil;
				end
				DBobjets_Client[slangue] = nil;
			end
		end
	end

end

--/script DBobjets_numobjet_stats(17);
--/script DBobjets_numobjet_stats(25);
--/script DBobjets_numobjet_stats(41);
--/script DBobjets_numobjet_stats(54805);
--/script DBobjets_numobjet_stats(54806);
--/script DBobjets_numobjet_stats(54811);
--/script DBobjets_numobjet_stats(63696);
--/script DBobjets_numobjet_stats(67487);
function DBobjets_numobjet_stats(inumobjet)

local stats;
local smot;
local sval;

	stats = GetItemStats("item:"..inumobjet);
	
	TraceFrame:AddMessage(inumobjet.." = "..inumobjet);
	if ( stats ) then
		for smot,sval in pairs(stats) do
			TraceFrame:AddMessage(smot.." = ".._G[smot].." = "..sval);
		end
	else
		TraceFrame:AddMessage("invalide");
	end

end

function DBobjets_numobjet_tableau_lire(inumobjet)

local tobjet = nil;

	if ( inumobjet > 50000 ) then
		tobjet = DBOS02[inumobjet];
	else
		tobjet = DBOS01[inumobjet];
	end
	
	return tobjet;

end

function DBobjets_numobjet_tableau_ecrire(inumobjet,tobjet)

	if ( inumobjet > 50000 ) then
		DBOS02[inumobjet] = tobjet;
	else
		DBOS01[inumobjet] = tobjet;
	end

end

--/script DBobjets_vider_DBOS01();
function DBobjets_vider_DBOS01()

	DBOS01 = {};

end

--/script DBobjets_vider_DBOS02();
function DBobjets_vider_DBOS02()

	DBOS02 = {};

end

--/script DBobjets_vider_DBOS01();DBobjets_vider_DBOS02();DBobjets_DBOS_vers_DBOSn();

--/script DBobjets_DBOS_vers_DBOSn();
function DBobjets_DBOS_vers_DBOSn()

local i;

	for i in pairs(DBOS) do
		if ( i > 50000 ) then
			DBOS02[i] = DBOS[i];
		else
			DBOS01[i] = DBOS[i];
		end
	end
	DBOS = {};

end
