BLE test

#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>

#define DEVICE_NAME "ESP32-S3 Test"

BLEServer *pServer = nullptr;
bool deviceConnected = false;

class MyServerCallbacks : public BLEServerCallbacks {
  void onConnect(BLEServer *pServer) {
    deviceConnected = true;
    Serial.println("✅ Телефонът се свърза!");
  }

  void onDisconnect(BLEServer *pServer) {
    deviceConnected = false;
    Serial.println("❌ Телефонът се разкачи!");
    // Рестартира adverti

ScrollDirectionTrigger

スクロール方向の変化時にコールバックを発火させる。
/* -----------------------------------------------
  ES Utils / ScrollDirectionTrigger
----------------------------------------------- */

/** スクロール方向の変化時にコールバックを発火するクラス */
export class ScrollDirectionTrigger {
  /** 開始位置 */
  #offset;

  /** 最小スクロール差分(ガタつき防止) */
  #threshold;

  /** 過去のスクロール量 */
  #pastScrollY = window.scrollY;

  /** 現在のスクロール量 */
  #currentScrollY = 0;

  /** 最後のスクロール方向('up' | 'down' | null) */
  #lastDirection = null;

  /** requestAnimationFrame制御 */
  #ticking = false;

  /

Wireshark filters

# 1. Capture filters
##  This operate prior to capture and filter at the driver level. They use BPF (Berkeley Packet Filter) syntax. They must be set up before capture begins.
```bash
host 8.8.8.8                # only traffic to/from this IP address
port 443                    # only port 443
tcp                         # only TCP
not port 53                 # everything except DNS
host 8.8.8.8 and port 443   # combination
```

657. Robot Return to Origin

There is a robot starting at the position (0, 0), the origin, on a 2D plane. Given a sequence of its moves, judge if this robot ends up at (0, 0) after it completes its moves. You are given a string moves that represents the move sequence of the robot where moves[i] represents its ith move. Valid moves are 'R' (right), 'L' (left), 'U' (up), and 'D' (down). Return true if the robot returns to the origin after it finishes all of its moves, or false otherwise. Note: The way that the robot is "facing" is irrelevant. 'R' will always make the robot move to the right once, 'L' will always make it move left, etc. Also, assume that the magnitude of the robot's movement is the same for each move.
/**
 * @param {string} moves
 * @return {boolean}
 */
var judgeCircle = function(moves) {
    // Track horizontal (x) and vertical (y) displacement from origin (0, 0)
    let x = 0;
    let y = 0;

    // Process each move one by one
    for (const m of moves) {

        // Moving up increases y
        if (m === 'U') {
            y++;

        // Moving down decreases y
        } else if (m === 'D') {
            y--;

        // Moving right increases x
        } else if (m === 'R') {
       

ページネーション

<div class="c-pagination">
	<?php
	echo paginate_links(array(
		'base' => str_replace(999999999, '%#%', esc_url(get_pagenum_link(999999999))),
		// 'total' => $sub_query->max_num_pages, // 最大ページ数
		// 'current' => $paged, // 現在のページ
		'end_size'  => 1,
		'mid_size' => 2, //現在のページの両側にある数字の数
		'prev_text' => '<',
		'next_text' => '>',
	));
	?>
</div>

Créer un inventaire RPG complet dans Godot 4

# 🎒 Créer un inventaire RPG complet dans Godot 4
### De A à Z — Stacks + Équipement + Drag & Drop
> Tu as déjà un personnage qui bouge. On part de là.

---

## 🗺️ Ce qu'on va construire

À la fin de ce guide, tu auras :
- ✅ Un inventaire avec une grille de slots cliquables
- ✅ Des items empilables (stacks) comme dans Minecraft
- ✅ Un système d'équipement (arme, armure, etc.)
- ✅ Du drag & drop pour déplacer les items
- ✅ Un tooltip qui s'affiche au survol
- ✅ Une touche pour ouvrir

MASTERCLASS — Construire un inventaire RPG complet (de zéro à avancé)2

# 🎒 MASTERCLASS — Construire un inventaire RPG complet (de zéro à avancé)

> **Niveau :** Débutant → Intermédiaire → Avancé  
> **Moteur :** Godot 4 / GDScript  
> **Objectif :** Te rendre autonome sur la logique de programmation d'un inventaire RPG moderne, propre et extensible.

---

## 🧠 Avant tout — Le bon état d'esprit

Un inventaire RPG, c'est comme un **vestiaire de foot** :

- Les **crochets** = les slots
- Les **affaires du joueur** = les items
- Le **règlement du vestiair

MASTERCLASS — Construire un inventaire RPG complet (de zéro à avancé)

# MASTERCLASS — Construire un inventaire RPG complet (de zéro à avancé)

> Niveau: débutant -> intermédiaire -> avancé  
> Objectif: te rendre autonome sur la **logique de programmation** d'un inventaire RPG moderne.

---

## Table des matières

1. Vision globale
2. Méthode d'apprentissage
3. Architecture cible
4. Parcours en 4 phases
5. Leçons détaillées (L1 à L24)
6. Exercices pratiques (E1 à E30)
7. Stratégie de debug
8. Checklist qualité pro
9. Plan 8 semaines
10. Mini-proj

Feuille de route d'apprentissage

 Feuille de route d'apprentissage (Inventaire / Item / Loot) — version cours + exemples

> Objectif: t'aider à apprendre **pas à pas** en construisant un vrai système RPG propre dans Godot, à partir de ton prototype actuel.

---

## Comment utiliser ce document

- Lis une **leçon** à la fois.
- Fais les **exemples** dans ton projet.
- Termine chaque section avec l'**exercice**.
- Garde un petit carnet: ce que tu as compris, ce qui bloque, ce qui marche.

Progression recommandée: **1

Système Inventaire / Item / Loot (document de référence)

# Système Inventaire / Item / Loot (document de référence)

Ce document explique en détail le fonctionnement actuel du projet, puis propose une feuille de route claire pour les prochains ajouts.

---

## 1) Vue d'ensemble

Le système actuel est composé de 4 couches :

1. **Données d'item** (Resources)  
   - `items/item.gd` = structure de base d'un item (`name`, `description`, `icone`).
2. **Objets du monde qui drop**  
   - `scripts/ressource_naturelle.gd` + `scripts/arbre.gd`.
3.

analyse systeme de loot

# Analyse rapide: système de loot + vie des ressources

## 1) Qui contient quoi ?

- `items/item.gd`: la base d'un item d'inventaire (`name`, `description`, `icone`).
- `scripts/ressource_naturelle.gd`: une **ressource de config** pour les objets récoltables, avec:
  - `vie` = vie max de la ressource,
  - `butin` = item drop à la destruction.
- `scripts/arbre.gd`: le comportement runtime d'un arbre posé dans la scène.
- `scripts/loot.gd`: objet au sol ramassable qui ajoute un `Item` dan

Mystic RPG Guide Inventaire

# 🎒 Guide Complet — Système d'Inventaire dans Godot 4
### Tutoriel Lysdora Craft | Mystic RPG

---

## 📋 Table des matières

1. [Vue d'ensemble de ton projet actuel](#vue-densemble)
2. [Ce qui fonctionne déjà ✅](#ce-qui-fonctionne)
3. [Analyse du code existant](#analyse-du-code)
4. [Architecture de l'inventaire](#architecture)
5. [Étapes suivantes recommandées](#etapes-suivantes)
6. [Guide pas à pas — Améliorations](#guide-ameliorations)
7. [Exercices pratiques](#exercices)
8. [Bug

🎒 Créer un Inventaire Intelligent dans Godot 4

# 🎒 Créer un Inventaire Intelligent dans Godot 4

Dans Godot, un bon système d'inventaire se sépare toujours en deux mondes :

1. **Les Données 🧠 (La mémoire) :** Ce qui se passe en arrière-plan (le code).
2. **L'Interface 🖼️ (Le visuel) :** Ce que le joueur voit à l'écran.

Voici les 4 étapes pour fabriquer un système robuste, propre, et digne d'un vrai jeu vidéo.

---

## 📦 Étape 1 : Le Moule des Objets (Les Données)

Avant de ranger des objets, il faut que Godot sache ce qu'est u

Système d'inventaire — Notes de développement

# Système d'inventaire — Notes de développement

## Vue d'ensemble

L'inventaire est intégré dans la scène `ui/scenes/ui.tscn`, elle-même instanciée dans `scenes/foret.tscn` (scène principale).

---

## Hiérarchie complète des nodes (partie inventaire)

```
UI  [CanvasLayer]                         ← racine de ui.tscn / script: ui.gd
│                                            export: description → UI Inventaire/Inventaire/Description
│
└── UI Inventaire  [Control]
      anchors:

Refresh Binding

```
	##refresh custom binding
	self.view.refreshBinding('custom.existingRoles')
```

Gravity Forms: add the READONLY property to an input UNTIL it gets a value set

Gravity Forms: add the READONLY property to an input UNTIL it gets a value set
/*
* This snippet: https://gist.github.com/cliffordp/c0b48b14f0f6f42d27c79e8f39013774
* WHAT: This adds the READONLY property to an input field and then removes it AFTER this same field has a value in it.
* WHY: Useful when a text field gets a dynamically-filled value but you want the input to remain editable thereafter.
* EXAMPLE: a custom County text field that gets filled upon selecting a different field's Address Autocomplete.
* HOW-TO:
* 1. Paste this snippet into https://gravitywiz.com/gra