xabbo-scripts/DodgeballV3.csx
Administrator b6c31a7feb Add 165 scripts from desktop collection + update README
Added scripts from C:\Users\ploet\Desktop\Habbo\Xabbo Scripte:
- 39 KI/Chatbot scripts (ChatGPT, Gemini, Grok, DeepSeek, Ollama)
- Game solvers (Domino, Dodgeball, Obsidian Maze, IceBall)
- Collision avoidance bots (5 versions)
- Plant/breeding automation (12 scripts)
- Trading tools, packet debuggers, room utilities
- Navigation & teleport helpers

Removed: 9 files (3 empty, 2 trivial, 4 cross-duplicates)
Updated README with full categorized index of all 230+ scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 09:47:56 +01:00

108 lines
3.1 KiB
C#

var tiles = new List<Point>();
var runners = new Dictionary<int, List<int>>();
var command = "";
var clickCount = 0;
var expectedClicks = 0;
var currentRunner = 0;
OnIntercept(Out.Chat, e => {
string message = e.Packet.ReadString();
if (message.ToLower().StartsWith("tile")) {
e.Block();
command = "tile";
clickCount = 0;
expectedClicks = 2;
tiles.Clear();
Log("Click position 1 and 6");
}
else if (message.ToLower().StartsWith("runner")) {
e.Block();
var number = int.Parse(message.ToLower().Replace("runner", ""));
command = "runner";
currentRunner = number;
clickCount = 0;
expectedClicks = number;
runners[number] = new List<int>();
Log($"Click {number} positions");
}
});
OnIntercept(Out.Move, e => {
if (command != "") {
e.Block();
int x = e.Packet.ReadInt();
int y = e.Packet.ReadInt();
if (command == "tile" && clickCount < expectedClicks) {
tiles.Add(new Point(x, y));
clickCount++;
if (clickCount == expectedClicks) {
var start = tiles[0];
var end = tiles[1];
var xStep = (end.X - start.X) / 5.0;
var yStep = (end.Y - start.Y) / 5.0;
tiles.Clear();
for (int i = 0; i < 6; i++) {
tiles.Add(new Point(
(int)(start.X + xStep * i),
(int)(start.Y + yStep * i)
));
}
Log("Tiles set:");
for (int i = 0; i < tiles.Count; i++) {
Log($"Tile {i+1}: {tiles[i]}");
}
command = "";
}
}
else if (command == "runner" && clickCount < expectedClicks) {
var position = new Point(x, y);
var tileIndex = -1;
for (int i = 0; i < tiles.Count; i++) {
if (tiles[i] == position) {
tileIndex = i + 1;
break;
}
}
if (tileIndex != -1) {
runners[currentRunner].Add(tileIndex);
clickCount++;
if (clickCount == expectedClicks) {
Log($"Runner {currentRunner} set: {string.Join(", ", runners[currentRunner])}");
command = "";
}
}
else {
Log("Click a tile position");
}
}
}
});
OnIntercept(In.DiceValue, e => {
e.Packet.ReadInt();
var number = e.Packet.ReadInt();
if (number > 0 && number < 100) {
foreach (var runner in runners) {
if (runner.Value.Contains(number)) {
var index = number - 1;
if (index >= 0 && index < tiles.Count) {
Move(tiles[index]);
}
break;
}
}
Log($"[{number}]");
}
});
Wait();