Outils pour utilisateurs

Outils du site


brouillon21

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
brouillon21 [2026/05/06 09:35] nanakibrouillon21 [2026/05/06 09:47] (Version actuelle) nanaki
Ligne 559: Ligne 559:
  
 result.textContent = result.textContent =
-"===== STATS =====\n"++ 
 +"===== PERSONNAGE =====\n"
 +"Race : "+raceSelect.value+ 
 + 
 +"\n\n===== STATS =====\n"+
 JSON.stringify(char,null,2)+ JSON.stringify(char,null,2)+
  
Ligne 671: Ligne 675:
  
  
-// ===== ENCODE SAFE URL =====+// ===== ENCODE / DECODE ULTRA SIMPLE =====
 function encodeBuild(data){ function encodeBuild(data){
-    return btoa(unescape(encodeURIComponent(JSON.stringify(data)))) +    return JSON.stringify(data);
-        .replace(/\+/g, '-'+
-        .replace(/\//g, '_'+
-        .replace(/=+$/, '');+
 } }
  
-// ===== DECODE SAFE URL ===== 
 function decodeBuild(code){ function decodeBuild(code){
-    code = code +    return JSON.parse(code);
-        .replace(/-/g, '+'+
-        .replace(/_/g, '/'); +
- +
-    return JSON.parse(decodeURIComponent(escape(atob(code))));+
 } }
  
Ligne 699: Ligne 695:
 }; };
  
-// stats 
 for(let s in costTable){ for(let s in costTable){
 data.stats[s] = +document.getElementById(s).value || 0; data.stats[s] = +document.getElementById(s).value || 0;
 } }
  
-// équipements 
 Object.entries(slots).forEach(([k,s])=>{ Object.entries(slots).forEach(([k,s])=>{
 data.equip[k] = s.value; data.equip[k] = s.value;
 }); });
  
-// passifs 
 document.querySelectorAll(".skill:checked").forEach(s=>{ document.querySelectorAll(".skill:checked").forEach(s=>{
 data.skills.push(s.dataset.name); data.skills.push(s.dataset.name);
 }); });
  
-// sorts 
 document.querySelectorAll(".spell:checked").forEach(s=>{ document.querySelectorAll(".spell:checked").forEach(s=>{
 data.spells.push({ data.spells.push({
Ligne 724: Ligne 716:
 let code = encodeBuild(data); let code = encodeBuild(data);
  
-// 👉 juste ça+// 🔥 important → stringify lisible
 prompt("Copie ton build :", code); prompt("Copie ton build :", code);
 } }
- 
  
 // ===== IMPORT ===== // ===== IMPORT =====
Ligne 738: Ligne 729:
  
 code = code.trim(); code = code.trim();
- 
-// 🔥 FIX mobile / URL 
-code = decodeURIComponent(code); 
  
 let data = decodeBuild(code); let data = decodeBuild(code);
  
-// race 
 raceSelect.value = data.race; raceSelect.value = data.race;
  
-// stats 
 for(let s in costTable){ for(let s in costTable){
 document.getElementById(s).value = data.stats[s] || 0; document.getElementById(s).value = data.stats[s] || 0;
 } }
  
-// équipements 
 Object.entries(slots).forEach(([k,s])=>{ Object.entries(slots).forEach(([k,s])=>{
 s.value = data.equip[k] || ""; s.value = data.equip[k] || "";
 }); });
  
-// passifs 
 document.querySelectorAll(".skill").forEach(s=>{ document.querySelectorAll(".skill").forEach(s=>{
 s.checked = data.skills.includes(s.dataset.name); s.checked = data.skills.includes(s.dataset.name);
 }); });
  
-// sorts 
 document.querySelectorAll(".spell").forEach(s=>{ document.querySelectorAll(".spell").forEach(s=>{
 s.checked = data.spells.some(sp => s.checked = data.spells.some(sp =>
Ligne 775: Ligne 758:
 }catch(e){ }catch(e){
 alert("❌ Code invalide"); alert("❌ Code invalide");
-console.log("Erreur import :", e);+console.log(e);
 } }
 } }
Ligne 790: Ligne 773:
 }; };
  
-// stats 
 for(let s in costTable){ for(let s in costTable){
 data.stats[s] = +document.getElementById(s).value || 0; data.stats[s] = +document.getElementById(s).value || 0;
 } }
  
-// équipements 
 Object.entries(slots).forEach(([k,s])=>{ Object.entries(slots).forEach(([k,s])=>{
 data.equip[k] = s.value; data.equip[k] = s.value;
 }); });
  
-// passifs 
 document.querySelectorAll(".skill:checked").forEach(s=>{ document.querySelectorAll(".skill:checked").forEach(s=>{
 data.skills.push(s.dataset.name); data.skills.push(s.dataset.name);
 }); });
  
-// sorts 
 document.querySelectorAll(".spell:checked").forEach(s=>{ document.querySelectorAll(".spell:checked").forEach(s=>{
 data.spells.push({ data.spells.push({
Ligne 815: Ligne 794:
 let code = encodeBuild(data); let code = encodeBuild(data);
  
-// 🔥 IMPORTANT+// 🔥 ENCODAGE URL OBLIGATOIRE
 let url = window.location.origin + window.location.pathname + "?build=" + encodeURIComponent(code); let url = window.location.origin + window.location.pathname + "?build=" + encodeURIComponent(code);
  
Ligne 833: Ligne 812:
 if(!code) return; if(!code) return;
  
-// 🔥 decode URL AVANT import+try{
 code = decodeURIComponent(code); code = decodeURIComponent(code);
- 
 importBuild(code); importBuild(code);
 +}catch(e){
 +console.log("Erreur chargement URL");
 +}
  
 })(); })();
brouillon21.1778052902.txt.gz · Dernière modification : 2026/05/06 09:35 de nanaki