Accueil / Règlements / Illégal

⚠️ Avertissement Important

Le non-respect de ces règles entraîne des sanctions sévères pouvant aller jusqu'au bannissement définitif. Tout RP illégal doit être justifié et cohérent.

🏢 Façades & Restrictions

Le système de façades organise les groupes illégaux en deux catégories distinctes avec des restrictions d'interaction.

📋 Façade 1 : Petites Frappes

Groupes de niveau inférieur, activités criminelles limitées.

📋 Façade 2 : Organisations/Gangs CVC

Groupes officiels, activités criminelles avancées et CVC autorisés.

\n\n
\n\n Règlement Service Public
  • ${trimmedLine.substring(2)}
  • `); } else { if (currentList.length > 0) { htmlParts.push(`
      ${currentList.join('')}
    `); currentList = []; } if (trimmedLine) { htmlParts.push(`

    ${trimmedLine}

    `); } } }); if (currentList.length > 0) { const listItems = currentList.join(''); htmlParts.push(`
      ${listItems}
    `); } processedContent = htmlParts.join(''); if (pattern.class) { return `

    ${pattern.icon} ${title}

    ${processedContent}
    `; } else { return `

    ${pattern.icon} ${title}

    ${processedContent}
    `; } }); }); return text; } // Charger les règlements dynamiques depuis la BDD async function loadDynamicRules() { try { const response = await fetch('/api/reglements'); const data = await response.json(); const categoryRules = data.reglements.filter(r => r.categorie && r.categorie.toLowerCase() === 'illegal' ); categoryRules.sort((a, b) => a.ordre - b.ordre); const container = document.getElementById('dynamic-rules-container'); const sidebar = document.getElementById('sidebar-links'); if (categoryRules.length > 0) { categoryRules.forEach((rule, index) => { const section = document.createElement('section'); section.id = rule.slug; section.className = 'rule-section term-card animate-in'; section.style.animationDelay = `${0.25 + (index * 0.05)}s`; let content = convertColorBlocks(rule.contenu); content = content .replace(/^### (.+)$/gm, '

    $1

    ') .replace(/^## (.+)$/gm, '

    $1

    ') .replace(/^# (.+)$/gm, '

    $1

    ') .replace(/\*\*(.+?)\*\*/g, '$1') .replace(/\*(.+?)\*/g, '$1'); let lines = content.split('\n'); let processedLines = []; let inBlock = false; lines.forEach(line => { if (line.includes('
    ') && !inBlock) { processedLines.push(`

    ${line}

    `); } else { processedLines.push(line); } if (line.includes('
    ')) { inBlock = false; } }); content = processedLines.join('\n'); section.innerHTML = `

    📋 ${rule.titre}

    ${content}
    `; container.appendChild(section); const li = document.createElement('li'); li.innerHTML = `
    ${rule.titre.replace(/^[^\s]+\s/, '')}`; sidebar.appendChild(li); }); initScrollSpy(); } } catch (error) { console.error('Erreur lors du chargement des règlements:', error); } } function initScrollSpy() { const links = document.querySelectorAll('.spy'); const sections = document.querySelectorAll('.term-card'); const observer = new IntersectionObserver(entries => { entries.forEach(entry => { if (entry.isIntersecting) { links.forEach(link => link.classList.remove('active')); const activeLink = document.querySelector(`a[href="#${entry.target.id}"]`); if (activeLink) activeLink.classList.add('active'); } }); }, { threshold: 0.5, rootMargin: '-100px 0px -50% 0px' }); sections.forEach(section => observer.observe(section)); document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); const target = document.querySelector(this.getAttribute('href')); if (target) target.scrollIntoView({ behavior: 'smooth', block: 'start' }); }); }); } loadDynamicRules(); \n