Uploading all files.
This commit is contained in:
173
README.md
173
README.md
@@ -1,3 +1,172 @@
|
||||
# duckhunt
|
||||
# 🦆 DuckHunt IRC Bot
|
||||
|
||||
DuckHunt IRC game bot.
|
||||
A feature-rich IRC game bot where players hunt ducks, upgrade weapons, trade items, and compete on leaderboards!
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
### 🎯 Core Game Mechanics
|
||||
- **Different Duck Types**: Common, Rare, Golden, and Armored ducks with varying rewards
|
||||
- **Weapon System**: Multiple weapon types (Basic Gun, Shotgun, Rifle) with durability
|
||||
- **Ammunition Types**: Standard, Rubber Bullets, Explosive Rounds
|
||||
- **Weapon Attachments**: Laser Sight, Extended Magazine, Bipod
|
||||
- **Accuracy & Reliability**: Skill-based hit/miss and reload failure mechanics
|
||||
|
||||
### 🏦 Economy System
|
||||
- **Shop**: Buy/sell weapons, attachments, and upgrades
|
||||
- **Banking**: Deposit coins for interest, take loans
|
||||
- **Trading**: Trade coins and items with other players
|
||||
- **Insurance**: Protect your equipment from damage
|
||||
- **Hunting Licenses**: Unlock premium features and bonuses
|
||||
|
||||
### 👤 Player Progression
|
||||
- **Hunter Levels**: Gain XP and level up for better abilities
|
||||
- **Account System**: Register accounts with password authentication
|
||||
- **Multiple Auth Methods**: Nick-based, hostmask, or registered account
|
||||
- **Persistent Stats**: All progress saved to SQLite database
|
||||
|
||||
### 🏆 Social Features
|
||||
- **Leaderboards**: Compete for top rankings
|
||||
- **Duck Alerts**: Get notified when rare ducks spawn
|
||||
- **Sabotage**: Interfere with other players (for a cost!)
|
||||
- **Comprehensive Help**: Detailed command reference
|
||||
|
||||
## 📋 Requirements
|
||||
|
||||
- Python 3.7+
|
||||
- asyncio support
|
||||
- SQLite3 (included with Python)
|
||||
|
||||
## 🛠️ Installation
|
||||
|
||||
1. Clone or download the bot files
|
||||
2. Edit `config.json` with your IRC server details:
|
||||
```json
|
||||
{
|
||||
"server": "irc.libera.chat",
|
||||
"port": 6697,
|
||||
"nick": "DuckHuntBot",
|
||||
"channels": ["#yourchannel"],
|
||||
"ssl": true,
|
||||
"sasl": false,
|
||||
"password": "",
|
||||
"duck_spawn_min": 60,
|
||||
"duck_spawn_max": 300
|
||||
}
|
||||
```
|
||||
|
||||
3. Test the bot:
|
||||
```bash
|
||||
python test_bot.py
|
||||
```
|
||||
|
||||
4. Run the bot:
|
||||
```bash
|
||||
python duckhunt.py
|
||||
```
|
||||
|
||||
## 🎮 Commands
|
||||
|
||||
### 🎯 Hunting
|
||||
- `!bang` - Shoot at a duck (accuracy-based hit/miss)
|
||||
- `!reload` - Reload weapon (can fail based on reliability)
|
||||
- `!catch` - Catch a duck with your hands
|
||||
- `!bef` - Befriend a duck instead of shooting
|
||||
|
||||
### 🛒 Economy
|
||||
- `!shop` - View available items
|
||||
- `!buy <number>` - Purchase items
|
||||
- `!sell <number>` - Sell equipment
|
||||
- `!bank` - Banking services
|
||||
- `!trade <player> <item> <amount>` - Trade with others
|
||||
|
||||
### 📊 Stats & Info
|
||||
- `!stats` - Detailed combat statistics
|
||||
- `!duckstats` - Personal hunting record
|
||||
- `!leaderboard` - Top players ranking
|
||||
- `!license` - Hunting license management
|
||||
|
||||
### ⚙️ Settings
|
||||
- `!alerts` - Toggle duck spawn notifications
|
||||
- `!help` - Complete command reference
|
||||
|
||||
### 🔐 Account System
|
||||
- `/msg BotNick register <username> <password>` - Register account
|
||||
- `/msg BotNick identify <username> <password>` - Login to account
|
||||
|
||||
### 🎮 Advanced
|
||||
- `!sabotage <player>` - Sabotage another hunter's weapon
|
||||
|
||||
## 🗂️ File Structure
|
||||
|
||||
```
|
||||
duckhunt/
|
||||
├── src/
|
||||
│ ├── duckhuntbot.py # Main IRC bot logic
|
||||
│ ├── game.py # Game mechanics and commands
|
||||
│ ├── db.py # SQLite database handling
|
||||
│ ├── auth.py # Authentication system
|
||||
│ ├── items.py # Duck types, weapons, attachments
|
||||
│ ├── logging_utils.py # Colored logging setup
|
||||
│ └── utils.py # IRC message parsing
|
||||
├── config.json # Bot configuration
|
||||
├── duckhunt.py # Main entry point
|
||||
├── test_bot.py # Test script
|
||||
└── README.md # This file
|
||||
```
|
||||
|
||||
## 🎯 Game Balance
|
||||
|
||||
### Duck Types & Rewards
|
||||
- **Common Duck** 🦆: 1 coin, 10 XP (70% spawn rate)
|
||||
- **Rare Duck** 🦆✨: 3 coins, 25 XP (20% spawn rate)
|
||||
- **Golden Duck** 🥇🦆: 10 coins, 50 XP (8% spawn rate)
|
||||
- **Armored Duck** 🛡️🦆: 15 coins, 75 XP (2% spawn rate, 3 health)
|
||||
|
||||
### Weapon Stats
|
||||
- **Basic Gun**: 0% accuracy bonus, 100 durability, 1 attachment slot
|
||||
- **Shotgun**: -10% accuracy, 80 durability, 2 slots, spread shot
|
||||
- **Rifle**: +20% accuracy, 120 durability, 3 slots
|
||||
|
||||
### Progression
|
||||
- Players start with 100 coins and basic stats
|
||||
- Level up by gaining XP from successful hunts
|
||||
- Unlock better equipment and abilities as you progress
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
Edit `config.json` to customize:
|
||||
- IRC server and channels
|
||||
- Duck spawn timing (min/max seconds)
|
||||
- SSL and SASL authentication
|
||||
- Bot nickname
|
||||
|
||||
## 🛡️ Security
|
||||
|
||||
- Passwords are hashed with PBKDF2
|
||||
- Account data stored separately from temporary nick data
|
||||
- Multiple authentication methods supported
|
||||
- Database uses prepared statements to prevent injection
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
1. **Bot won't connect**: Check server/port in config.json
|
||||
2. **Database errors**: Ensure write permissions in bot directory
|
||||
3. **Commands not working**: Verify bot has joined the channel
|
||||
4. **Test failures**: Run `python test_bot.py` to diagnose issues
|
||||
|
||||
## 🎖️ Contributing
|
||||
|
||||
Feel free to add new features:
|
||||
- More duck types and weapons
|
||||
- Additional mini-games
|
||||
- Seasonal events
|
||||
- Guild/team systems
|
||||
- Advanced trading mechanics
|
||||
|
||||
## 📄 License
|
||||
|
||||
This bot is provided as-is for educational and entertainment purposes.
|
||||
|
||||
---
|
||||
|
||||
🦆 **Happy Hunting!** 🦆
|
||||
|
||||
Reference in New Issue
Block a user