Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6e23de8f12 |
14
CHANGELOG.md
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Version 0.0.2 - 2025-09-15
|
||||||
|
|
||||||
|
* Add Release project for building version releases
|
||||||
|
* Add option for turning on or off email ad in footer and contact form submissions
|
||||||
|
* Add support for bot SASL connection and password to IRC server
|
||||||
|
* Update and implement new web settings
|
||||||
|
* Update and fix all PHP opening, closing and short tags
|
||||||
|
* Cleanup all PHP and HTML code
|
||||||
|
* Update docs
|
||||||
|
* Minor changes
|
||||||
|
|
||||||
|
Version 0.0.1 - 2004-07-17
|
||||||
|
|
||||||
|
* The original 2004 version forked from idlerpg.net
|
||||||
127
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
* Demonstrating empathy and kindness toward other people
|
||||||
|
* Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
* Giving and gracefully accepting constructive feedback
|
||||||
|
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
* Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
* The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
* Public or private harassment
|
||||||
|
* Publishing others' private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
* Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
|
version 2.0, available at
|
||||||
|
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder](https://github.com/mozilla/diversity).
|
||||||
|
|
||||||
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
https://www.contributor-covenant.org/faq. Translations are available at
|
||||||
|
https://www.contributor-covenant.org/translations.
|
||||||
23
CONTRIBUTING.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
## Contributing
|
||||||
|
Let's work better together. We are looking to collaborate with like-minded people who want to contribute in any capacity. Collaboration is open to everyone and we need your help if you are a:
|
||||||
|
* Collector
|
||||||
|
* Database Administrator
|
||||||
|
* Datter
|
||||||
|
* Developer
|
||||||
|
* Dumper
|
||||||
|
* Graphic Artist
|
||||||
|
* Translator
|
||||||
|
* Player
|
||||||
|
* Tester
|
||||||
|
|
||||||
|
Feel free to:
|
||||||
|
* Fork the repository
|
||||||
|
* Create an issue
|
||||||
|
* Branch your repository with the issue number and a meaningful name related to the changes you are making
|
||||||
|
* Create a pull request
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
GitEmAll: [https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG](https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG "GitEmAll")
|
||||||
|
|
||||||
|
---
|
||||||
|
###### Copyright (c) 2004-2025 IdleRPG - All Rights Reserved
|
||||||
2
ISSUES.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
### Issues
|
||||||
|
All issues, bugs and features are tracked using GitEmAll
|
||||||
111
IdleRPG.sln
@@ -1,53 +1,86 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.14.36414.22 d17.14
|
VisualStudioVersion = 17.14.36414.22
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "bot.v3.1.2", "bot.v3.1.2", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
bot.v3.1.2\.irpg.conf = bot.v3.1.2\.irpg.conf
|
.gitattributes = .gitattributes
|
||||||
bot.v3.1.2\bot.v3.1.2.pl = bot.v3.1.2\bot.v3.1.2.pl
|
.gitignore = .gitignore
|
||||||
bot.v3.1.2\ChangeLog.txt = bot.v3.1.2\ChangeLog.txt
|
CHANGELOG.md = CHANGELOG.md
|
||||||
bot.v3.1.2\events.txt = bot.v3.1.2\events.txt
|
CODE_OF_CONDUCT.md = CODE_OF_CONDUCT.md
|
||||||
bot.v3.1.2\irpgdbtool = bot.v3.1.2\irpgdbtool
|
CONTRIBUTING.md = CONTRIBUTING.md
|
||||||
bot.v3.1.2\modifiers.txt = bot.v3.1.2\modifiers.txt
|
ISSUES.md = ISSUES.md
|
||||||
bot.v3.1.2\questinfo.txt = bot.v3.1.2\questinfo.txt
|
LICENSE = LICENSE
|
||||||
bot.v3.1.2\README = bot.v3.1.2\README
|
README.md = README.md
|
||||||
|
TODO.md = TODO.md
|
||||||
|
screenshot2.png = screenshot2.png
|
||||||
|
screenshot1.png = screenshot1.png
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "irpg", "irpg", "{440DEC4B-57C9-4361-9949-7CF55F9CFED8}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "irpg-bot", "irpg-bot", "{3784E8C8-32DE-4740-8F55-324EF1EC4E86}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
irpg\admincomms.txt = irpg\admincomms.txt
|
irpg-bot\.irpg.conf = irpg-bot\.irpg.conf
|
||||||
irpg\ChangeLog = irpg\ChangeLog
|
irpg-bot\ChangeLog.txt = irpg-bot\ChangeLog.txt
|
||||||
irpg\commonfunctions.php = irpg\commonfunctions.php
|
irpg-bot\events.txt = irpg-bot\events.txt
|
||||||
irpg\config.php = irpg\config.php
|
irpg-bot\INSTALL.txt = irpg-bot\INSTALL.txt
|
||||||
irpg\contact.php = irpg\contact.php
|
irpg-bot\irpg.pl = irpg-bot\irpg.pl
|
||||||
irpg\db.php = irpg\db.php
|
irpg-bot\irpgdbtool = irpg-bot\irpgdbtool
|
||||||
irpg\down.png = irpg\down.png
|
irpg-bot\modifiers.txt = irpg-bot\modifiers.txt
|
||||||
irpg\dump.php = irpg\dump.php
|
irpg-bot\questinfo.txt = irpg-bot\questinfo.txt
|
||||||
irpg\footer.php = irpg\footer.php
|
|
||||||
irpg\g7.css = irpg\g7.css
|
|
||||||
irpg\head.png = irpg\head.png
|
|
||||||
irpg\header.php = irpg\header.php
|
|
||||||
irpg\hits.db = irpg\hits.db
|
|
||||||
irpg\idlerpg-adv.txt = irpg\idlerpg-adv.txt
|
|
||||||
irpg\index.php = irpg\index.php
|
|
||||||
irpg\makemap.php = irpg\makemap.php
|
|
||||||
irpg\makequestmap.php = irpg\makequestmap.php
|
|
||||||
irpg\makeworldmap.php = irpg\makeworldmap.php
|
|
||||||
irpg\maperror.png = irpg\maperror.png
|
|
||||||
irpg\newmap.png = irpg\newmap.png
|
|
||||||
irpg\players.php = irpg\players.php
|
|
||||||
irpg\playerview.php = irpg\playerview.php
|
|
||||||
irpg\quest.php = irpg\quest.php
|
|
||||||
irpg\README = irpg\README
|
|
||||||
irpg\tablegrad.gif = irpg\tablegrad.gif
|
|
||||||
irpg\up.png = irpg\up.png
|
|
||||||
irpg\worldmap.php = irpg\worldmap.php
|
|
||||||
irpg\xml.php = irpg\xml.php
|
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "irpg-web", "irpg-web", "{B2C6CD83-5E84-40A2-8D1A-A57517EC36D9}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
irpg-web\admincomms.txt = irpg-web\admincomms.txt
|
||||||
|
irpg-web\ChangeLog.txt = irpg-web\ChangeLog.txt
|
||||||
|
irpg-web\commonfunctions.php = irpg-web\commonfunctions.php
|
||||||
|
irpg-web\config.php = irpg-web\config.php
|
||||||
|
irpg-web\contact.php = irpg-web\contact.php
|
||||||
|
irpg-web\db.php = irpg-web\db.php
|
||||||
|
irpg-web\down.png = irpg-web\down.png
|
||||||
|
irpg-web\dump.php = irpg-web\dump.php
|
||||||
|
irpg-web\footer.php = irpg-web\footer.php
|
||||||
|
irpg-web\g7.css = irpg-web\g7.css
|
||||||
|
irpg-web\header.php = irpg-web\header.php
|
||||||
|
irpg-web\hits.db = irpg-web\hits.db
|
||||||
|
irpg-web\idlerpg-adv.txt = irpg-web\idlerpg-adv.txt
|
||||||
|
irpg-web\idlerpg.png = irpg-web\idlerpg.png
|
||||||
|
irpg-web\idlerpg_000000.png = irpg-web\idlerpg_000000.png
|
||||||
|
irpg-web\idlerpg_025D30.png = irpg-web\idlerpg_025D30.png
|
||||||
|
irpg-web\idlerpg_ff0000.png = irpg-web\idlerpg_ff0000.png
|
||||||
|
irpg-web\index.php = irpg-web\index.php
|
||||||
|
irpg-web\INSTALL.txt = irpg-web\INSTALL.txt
|
||||||
|
irpg-web\makemap.php = irpg-web\makemap.php
|
||||||
|
irpg-web\makequestmap.php = irpg-web\makequestmap.php
|
||||||
|
irpg-web\makeworldmap.php = irpg-web\makeworldmap.php
|
||||||
|
irpg-web\maperror.png = irpg-web\maperror.png
|
||||||
|
irpg-web\newmap.png = irpg-web\newmap.png
|
||||||
|
irpg-web\players.php = irpg-web\players.php
|
||||||
|
irpg-web\playerview.php = irpg-web\playerview.php
|
||||||
|
irpg-web\quest.php = irpg-web\quest.php
|
||||||
|
irpg-web\rw.css = irpg-web\rw.css
|
||||||
|
irpg-web\tablegrad.gif = irpg-web\tablegrad.gif
|
||||||
|
irpg-web\up.png = irpg-web\up.png
|
||||||
|
irpg-web\wall.gif = irpg-web\wall.gif
|
||||||
|
irpg-web\worldmap.php = irpg-web\worldmap.php
|
||||||
|
irpg-web\xml.php = irpg-web\xml.php
|
||||||
|
EndProjectSection
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "irpg-release", "irpg-release\irpg-release.csproj", "{3C3C4730-9D32-418C-BFDC-CE89148AA6CA}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Description = The Original Automated IRC Idle Role Playing Game
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{3C3C4730-9D32-418C-BFDC-CE89148AA6CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3C3C4730-9D32-418C-BFDC-CE89148AA6CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3C3C4730-9D32-418C-BFDC-CE89148AA6CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3C3C4730-9D32-418C-BFDC-CE89148AA6CA}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
|
|||||||
37
LICENSE
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
***************************************************************
|
||||||
|
IdleRPG - License version 20250912
|
||||||
|
Copyright (c) 2004-2025 IdleRPG - All Rights Reserved
|
||||||
|
***************************************************************
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Redistributions in any form are not permitted whatsoever,
|
||||||
|
under any conditions.
|
||||||
|
|
||||||
|
2. This software may not be reverse engineered, decompiled,
|
||||||
|
or disassembled.
|
||||||
|
|
||||||
|
3. IdleRPG may publish revised and/or new versions of the
|
||||||
|
license from time to time. Each version will be given a
|
||||||
|
distinguishing version number. No one other than
|
||||||
|
IdleRPG has the right to modify the terms applicable
|
||||||
|
to covered code created under this License.
|
||||||
|
|
||||||
|
4. It is your responsibility to use this software in accordance
|
||||||
|
with all applicable laws.
|
||||||
|
|
||||||
|
***************************************************************
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE IDLERPG DEVELOPMENT TEAM
|
||||||
|
'AS IS' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
|
||||||
|
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
||||||
|
SHALL THE IDLERPG DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE
|
||||||
|
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||||
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
||||||
|
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||||
|
THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
57
README.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# @IdleRPG
|
||||||
|
### The Original Automated IRC Idle Role Playing Game
|
||||||
|
|
||||||
|
## About
|
||||||
|
IdleRPG or IRPG is the original automated IRC idle role playing game.
|
||||||
|
|
||||||
|
This is a modified and updated version of the 2004 version forked from idlerpg.net.
|
||||||
|
|
||||||
|
IdleRPG comes with a bot written in Perl, a graphical web interface written in PHP and uses a file based database.
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## Installation
|
||||||
|
INSTALL.txt files are included in the irpg-bot and irpg-web directories
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
The following frameworks and SDKs are required to develop and build this app:
|
||||||
|
* Perl
|
||||||
|
* PHP
|
||||||
|
* GD 2.0+ (or have it enabled in your php.ini, on Win32)
|
||||||
|
|
||||||
|
The following NPM Packages are required to develop and build this app:
|
||||||
|
* None yet
|
||||||
|
|
||||||
|
The following tools and extensions are required to develop and build this app:
|
||||||
|
* None yet
|
||||||
|
|
||||||
|
## Projects
|
||||||
|
* irpg-bot - Bot Source
|
||||||
|
* irpg-web - Web Source
|
||||||
|
* irpg-release - Release Project
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
Let's work better together. We are looking to collaborate with like-minded people who want to contribute in any capacity. Collaboration is open to everyone and we need your help if you are a:
|
||||||
|
* Collector
|
||||||
|
* Database Administrator
|
||||||
|
* Datter
|
||||||
|
* Developer
|
||||||
|
* Dumper
|
||||||
|
* Graphic Artist
|
||||||
|
* Translator
|
||||||
|
* Player
|
||||||
|
* Tester
|
||||||
|
|
||||||
|
Feel free to:
|
||||||
|
* Fork the repository
|
||||||
|
* Create an issue
|
||||||
|
* Branch your repository with the issue number and a meaningful name related to the changes you are making
|
||||||
|
* Create a pull request
|
||||||
|
|
||||||
|
## Contact
|
||||||
|
GitEmAll: [https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG](https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG "GitEmAll")
|
||||||
|
|
||||||
|
---
|
||||||
|
###### Copyright (c) 2004-2025 IdleRPG - All Rights Reserved
|
||||||
2
TODO.md
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
### ToDo
|
||||||
|
All ToDo lists and milestones are tracked using GitEmAll
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
--------------------------------------------------------------------------------
|
|
||||||
First-time users:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
1. Using your favorite text editor, open the bot's source. Read the file header.
|
|
||||||
If you don't agree with the license, please delete the source and remove
|
|
||||||
each of your brain cells associated with it. Kthx.
|
|
||||||
2. Open the file .irpg.conf and edit the bot's options to suit you. You must
|
|
||||||
also move this file into the same directory where the bot resides.
|
|
||||||
3. Run it with: perl bot.filename.pl
|
|
||||||
4. If you have problems, try running it in debug mode:
|
|
||||||
perl bot.filename.pl --debug
|
|
||||||
If you cannot diagnose the problem, post to http://idlerpg.net/forum.php
|
|
||||||
5. Thanks for your interest in Idle RPG!
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
IRPG 3.0 users looking to upgrade:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
1. Using your favorite text editor, open the bot's source. Read the file header.
|
|
||||||
If you don't agree with the license, please delete the source and remove
|
|
||||||
each of your brain cells associated with it. Kthx.
|
|
||||||
2. Open the file .irpg.conf and edit the bot's options to suit you. You must
|
|
||||||
also move this file into the same directory where the bot resides.
|
|
||||||
3. Replace your old bot source with the new one, ie, rm -f that old, buggy crap.
|
|
||||||
4. Run it with: perl bot.filename.pl
|
|
||||||
5. If you have problems, try running it in debug mode:
|
|
||||||
perl bot.filename.pl --debug
|
|
||||||
If you cannot diagnose the problem, post to http://idlerpg.net/forum.php
|
|
||||||
6. Thanks for your interest in Idle RPG!
|
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
IRPG 2.4 users looking to upgrade:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
1. Using your favorite text editor, open the bot's source. Read the file header.
|
|
||||||
If you don't agree with the license, please delete the source and remove
|
|
||||||
each of your brain cells associated with it. Kthx.
|
|
||||||
2. Run the db conversion tool: perl irpgdbtool
|
|
||||||
3. Answer the questions to suit you.
|
|
||||||
4. Open the file .irpg.conf and edit the bot's options to suit you. You must
|
|
||||||
also move this file into the same directory where the bot resides.
|
|
||||||
5. Run it with: perl bot.filename.pl
|
|
||||||
6. If you have problems, try running it in debug mode:
|
|
||||||
perl bot.filename.pl --debug
|
|
||||||
If you cannot diagnose the problem, post to http://idlerpg.net/forum.php
|
|
||||||
7. Thanks for your interest in Idle RPG!
|
|
||||||
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
Pre-2.4 users looking to upgrade:
|
|
||||||
--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
1. Using your favorite text editor, open the bot's source. Read the file header.
|
|
||||||
If you don't agree with the license, please delete the source and remove
|
|
||||||
each of your brain cells associated with it. Kthx.
|
|
||||||
2. I don't think the irpgdbtool will help you unless you're comfortable with
|
|
||||||
Perl, sorry. :/ If you are, though, you can pull the loaddb() sub from the
|
|
||||||
bot that you're currently using instead of using the loaddb() supplied in
|
|
||||||
irpgdbtool. You'll also need to add code to add in the other missing fields
|
|
||||||
that exist in v2.4.
|
|
||||||
@@ -1,67 +1,95 @@
|
|||||||
# Configuration file for IRPG bot. Prefix comments with a #. Line must start
|
# .irpg.conf
|
||||||
# with a # to be a comment (no leading spaces and no comments starting in the
|
#
|
||||||
# middle of a line).
|
# Configuration file for the bot.
|
||||||
|
#
|
||||||
|
# Prefix comments with a #. Line must start with a # to be a comment.
|
||||||
|
# (no leading spaces and no comments starting in the middle of a line).
|
||||||
#
|
#
|
||||||
# If you don't personally know your admins, or you're just not the trusting
|
# If you don't personally know your admins, or you're just not the trusting
|
||||||
# type, you may want to look at the ownerpevalonly, owneraddonly, and
|
# type, you may want to look at the ownerpevalonly, owneraddonly, and
|
||||||
# ownerdelonly options. ownerpevalonly prevents non-owner accounts from using
|
# ownerdelonly options. ownerpevalonly prevents non-owner accounts from using
|
||||||
# the PEVAL command, which can allow admins to execute arbitrary code under the
|
# the PEVAL command, which can allow admins to execute arbitrary code under the
|
||||||
# username that the bot runs as. owneraddonly prevents non-owner accounts from
|
# username that the bot runs as. owneraddonly prevents non-owner accounts from
|
||||||
# assigning admin status to users. ownerdelonly prevents non-owner accounts from
|
# assigning admin status to users. ownerdelonly prevents non-owner accounts
|
||||||
# removing admin status from users
|
# from removing admin status from users.
|
||||||
#
|
|
||||||
# 'disablepeval' option was renamed to 'ownerpevalonly'
|
|
||||||
#
|
#
|
||||||
# Command line options override options in this file.
|
# Command line options override options in this file.
|
||||||
|
|
||||||
# remove or comment out this line so the bot knows that you edited the config
|
# remove or comment out this line to prove that you edited the config file.
|
||||||
# file
|
|
||||||
die
|
die
|
||||||
|
|
||||||
# local hostname or address to bind to. leave blank or comment out if you don't
|
# local hostname or address to bind to.
|
||||||
# want to use a vhost
|
# leave blank or comment out if you don't want to use a vhost.
|
||||||
#localaddr myvhost.domain.com
|
#localaddr irc.mynet.org
|
||||||
|
#localaddr 10.10.23.23
|
||||||
|
|
||||||
# server name:port, enter as many as you like
|
# server name:port, enter as many as you like
|
||||||
server miami.fl.us.irc-network.org:6667
|
#server miami.fl.us.irc-network.org:6667
|
||||||
server dallas.tx.us.irc-network.org:7000
|
server dallas.tx.us.irc-network.org:7000
|
||||||
server brussels.be.eu.irc-network.org:6660
|
server brussels.be.eu.irc-network.org:6660
|
||||||
|
#server irc.mynet.org:7000
|
||||||
|
#server 127.0.0.1:7000
|
||||||
|
|
||||||
# bot's nickname
|
# bot's nickname
|
||||||
botnick bot
|
botnick IdleBot
|
||||||
|
|
||||||
|
# bot's password
|
||||||
|
# this is the normal password usually registered on IRC
|
||||||
|
botpass iL@ved1nk
|
||||||
|
|
||||||
|
# bot's SASL password
|
||||||
|
# this is a different password than the one you usually register on IRC
|
||||||
|
# known working on current unrealircd and all others are untested
|
||||||
|
# please contact me if you know anything about the IRC connection
|
||||||
|
# and login procedure with SASL and the codes that are transmitted
|
||||||
|
botsaslpass iL@ved1nkMor3
|
||||||
|
|
||||||
# bot's username
|
# bot's username
|
||||||
botuser bot
|
botuser IdleBot
|
||||||
|
|
||||||
# real name field
|
# bot's real name field
|
||||||
botrlnm http://www.slashnet.org/~bot/
|
botrlnm IdleBot
|
||||||
|
|
||||||
# channel name (followed by key, if your channel uses a key
|
# channel name (followed by key, if your channel uses a key)
|
||||||
botchan #irpg s3cr3t.p4ss
|
# botchan #IdleRPG s3cr3t.p4ss
|
||||||
|
botchan #IdleRPG
|
||||||
|
|
||||||
# (identify) command to send upon successful connect. if using a privmsg
|
# (identify) command to send upon successful connect. if using a privmsg
|
||||||
# command, you must begin the text of the message with a ":" -- see below
|
# command, you must begin the text of the message with a ":"
|
||||||
botident PRIVMSG NickServ :identify ilovedink
|
botidentcmd PRIVMSG NickServ :identify %botpass%
|
||||||
|
|
||||||
# modes to set bot upon successful connect
|
# modes to set bot upon successful connect
|
||||||
botmodes +ix
|
botmodes +ix
|
||||||
|
|
||||||
# command to send upon joining channel. %botnick% will evaluate to the bot's
|
# (op) command to send upon joining channel. %botnick% will evaluate to the
|
||||||
# current nickname, so you don't have to worry about opping the wrong person. if
|
# bot's current nickname, so you don't have to worry about opping the wrong
|
||||||
# using a privmsg command, you must begin the text of the message with a ":" --
|
# person. if using a privmsg command, you must begin the text of the message
|
||||||
# see below
|
# with a ":"
|
||||||
botopcmd PRIVMSG ChanServ :op #idlerpg %botnick%
|
botopcmd PRIVMSG ChanServ :op %botchan% %botnick%
|
||||||
|
|
||||||
# command sent to recover nick if bot's primary nickname is in use if using a
|
# (ghost) command sent to recover nick if bot's primary nickname is in use if
|
||||||
# privmsg command, you must begin the text of the message with a ":" -- see
|
# using a privmsg command, you must begin the text of the message with a ":"
|
||||||
# below
|
botghostcmd PRIVMSG NickServ :ghost %botnick% %botpass%
|
||||||
botghostcmd PRIVMSG NickServ :ghost bot ilovedink
|
|
||||||
|
|
||||||
# URL to send users to for help
|
# URL where users can reach the help page
|
||||||
helpurl http://idlerpg.net/
|
helpurl https://www.mynet.org/irpg/
|
||||||
|
|
||||||
# admin commands list (for admin help)
|
# URL where users can reach the admin commands list (for admin help)
|
||||||
admincommurl http://idlerpg.net/admincomms.txt
|
admincommurl https://www.mynet.org/irpg/admincomms.txt
|
||||||
|
|
||||||
|
# URL where users can reach the online quest map, if available. if not
|
||||||
|
# offering a map to users, leave this blank
|
||||||
|
mapurl https://www.mynet.org/irpg/quest.php
|
||||||
|
|
||||||
|
# URLs containing these terms will not be banned by the 'http:'
|
||||||
|
# advertisement ban (if you have it turned on). enter as many as you like
|
||||||
|
okurl ultrazone.org
|
||||||
|
okurl idlerpg.net
|
||||||
|
okurl mynet.org
|
||||||
|
|
||||||
|
# Use URL-type banning for non-logged-in users that have been on the channel
|
||||||
|
# less than 90 seconds?
|
||||||
|
doban on
|
||||||
|
|
||||||
# base time to level up, 600 = 10 minutes
|
# base time to level up, 600 = 10 minutes
|
||||||
rpbase 600
|
rpbase 600
|
||||||
@@ -87,15 +115,6 @@ debug off
|
|||||||
# while the bot is in debug mode, in lieu of STDOUT
|
# while the bot is in debug mode, in lieu of STDOUT
|
||||||
debugfile debug.txt
|
debugfile debug.txt
|
||||||
|
|
||||||
# Use URL-type banning for non-logged-in users that have been on the channel
|
|
||||||
# less than 90 seconds?
|
|
||||||
doban on
|
|
||||||
|
|
||||||
# URLs containing these terms will not be banned by the 'http:'
|
|
||||||
# advertisement ban (if you have it turned on). enter as many as you like
|
|
||||||
okurl ultrazone.org
|
|
||||||
okurl idlerpg.net
|
|
||||||
|
|
||||||
# modes of silence. in mode 0, bot sends all privmsgs. in mode 1, only
|
# modes of silence. in mode 0, bot sends all privmsgs. in mode 1, only
|
||||||
# chanmsg() is disabled. in mode 2, only privmsg() to non-channels is
|
# chanmsg() is disabled. in mode 2, only privmsg() to non-channels is
|
||||||
# disabled. in mode 3, privmsgs to users and channels are disabled
|
# disabled. in mode 3, privmsgs to users and channels are disabled
|
||||||
@@ -124,10 +143,6 @@ noccodes on
|
|||||||
# problems in the past with using binary hash keys
|
# problems in the past with using binary hash keys
|
||||||
nononp on
|
nononp on
|
||||||
|
|
||||||
# URL where users can reach the online quest map, if available. if not
|
|
||||||
# offering a map to users, leave this blank
|
|
||||||
mapurl http://idlerpg.net/quest.php
|
|
||||||
|
|
||||||
# allow a STATUS command for users? this is a p0 command to view information
|
# allow a STATUS command for users? this is a p0 command to view information
|
||||||
# on an irpg user. useful if you don't have a website where users can view
|
# on an irpg user. useful if you don't have a website where users can view
|
||||||
# their stats
|
# their stats
|
||||||
@@ -188,11 +203,11 @@ noscale off
|
|||||||
# allow bot to access http://jotun.ultrazone.org/g7/count.php?new=1 each
|
# allow bot to access http://jotun.ultrazone.org/g7/count.php?new=1 each
|
||||||
# time someone registers a new username? it only takes a second, and I'd
|
# time someone registers a new username? it only takes a second, and I'd
|
||||||
# really like to be able to keep up with the total player count :^)
|
# really like to be able to keep up with the total player count :^)
|
||||||
phonehome on
|
phonehome off
|
||||||
|
|
||||||
# username of the bot's owner. this account cannot be DELADMINed and has access
|
# username of the bot's owner. this account cannot be DELADMINed and has access
|
||||||
# to PEVAL even if it is disabled
|
# to PEVAL even if it is disabled
|
||||||
owner jotun
|
owner admin
|
||||||
|
|
||||||
# disable the PEVAL command for non-owner accounts? this command allows the
|
# disable the PEVAL command for non-owner accounts? this command allows the
|
||||||
# execution of arbitrary Perl code by bot admins, effectively giving them
|
# execution of arbitrary Perl code by bot admins, effectively giving them
|
||||||
@@ -211,7 +226,7 @@ ownerdelonly on
|
|||||||
# check for newer versions each time the bot starts up? this will access the
|
# check for newer versions each time the bot starts up? this will access the
|
||||||
# URL http://jotun.ultrazone.org/g7/version.php?version=$version and report on
|
# URL http://jotun.ultrazone.org/g7/version.php?version=$version and report on
|
||||||
# any updated versions and what features there are/bugs have been fixed
|
# any updated versions and what features there are/bugs have been fixed
|
||||||
checkupdates on
|
checkupdates off
|
||||||
|
|
||||||
# send list of usernames that are automatically logged back in when we restart
|
# send list of usernames that are automatically logged back in when we restart
|
||||||
# (iff that list is < 1 k)? this should, hopefully, no longer cause the bot to
|
# (iff that list is < 1 k)? this should, hopefully, no longer cause the bot to
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
This is the changelog for the Idle RPG bot by jotun, jotun@idlerpg.net,
|
This is the ChangeLog for the old Idle RPG Bot Code.
|
||||||
http://idlerpg.net. Entries are written backwards. That is, items at the bottom
|
Entries are written backwards. That is, items at the bottom of the file
|
||||||
of the file were added first, and each subsequent addition is placed on a line
|
were added first, and each subsequent addition is placed on a line before it.
|
||||||
before it. Don't ask me why I do it that way: I do not know.
|
Don't ask me why I do it that way: I do not know.
|
||||||
|
|
||||||
Thanks for your interest in the Idle RPG! Feel free to contact me with ideas and
|
Thanks for your interest in the Idle RPG! Feel free to contact me with ideas and
|
||||||
comments, or post them in the forum on the website for public view.
|
comments, or post them in the forum on the website for public view.
|
||||||
30
irpg-bot/INSTALL.txt
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
-------------------------------------------------------------------------------
|
||||||
|
First-time Installation:
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
1. Copy all of the irpg-bot files to your private web folder. The folder must
|
||||||
|
be readable and writable by the web server and able to execute Perl and PHP.
|
||||||
|
2. Edit .irpg.conf with your favorite editor. This file must be in the same
|
||||||
|
private directory where the bot resides.
|
||||||
|
3. Run the bot with: perl irpg.pl
|
||||||
|
4. If you have problems, try running it in debug mode with:
|
||||||
|
perl irpg.pl --debug
|
||||||
|
5. Edit the bot ANY WAY you see fit.
|
||||||
|
6. All milestones, issues, bugs and features are tracked using GitEmAll.
|
||||||
|
Thanks for your interest in IdleRPG! :^)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Upgrading:
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
1. Remove your old bot source, ie, rm -rfv that old buggy crap and start over.
|
||||||
|
2. Copy all of the irpg-bot files to your private web folder. The folder must
|
||||||
|
be readable and writable by the web server and able to execute Perl and PHP.
|
||||||
|
2. Edit .irpg.conf with your favorite editor. This file must be in the same
|
||||||
|
private directory where the bot resides.
|
||||||
|
4. Run the bot with: perl irpg.pl
|
||||||
|
5. If you have problems, try running it in debug mode with:
|
||||||
|
perl irpg.pl --debug
|
||||||
|
6. Edit the bot ANY WAY you see fit.
|
||||||
|
7. All milestones, issues, bugs and features are tracked using GitEmAll.
|
||||||
|
Thanks for your interest in IdleRPG! :^)
|
||||||
@@ -1,20 +1,17 @@
|
|||||||
#!/usr/local/bin/perl
|
#!/usr/local/bin/perl
|
||||||
# irpg bot v3.1.2 by jotun, jotun@idlerpg.net, et al. See http://idlerpg.net/
|
# irpg.pl
|
||||||
#
|
#
|
||||||
# Some code within this file was written by authors other than myself. As such,
|
# The bot modified, released and maintained by TommySalami
|
||||||
# distributing this code or distributing modified versions of this code is
|
# https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG
|
||||||
# strictly prohibited without written authorization from the authors. Contact
|
# based on
|
||||||
# jotun@idlerpg.net. Please note that this may change (at any time, no less) if
|
# The bot originally written and released by jotun, jotun@idlerpg.net, et al.
|
||||||
# authorization for distribution is given by patch submitters.
|
# http://idlerpg.net/
|
||||||
#
|
#
|
||||||
# As a side note, patches submitted for this project are automatically taken to
|
# Thanks to everyone that's contributed!
|
||||||
# be freely distributable and modifiable for any use, public or private, though
|
|
||||||
# I make no claim to ownership; original copyrights will be retained.. except as
|
|
||||||
# I've just stated.
|
|
||||||
#
|
#
|
||||||
# Please mail bugs, etc. to me. Patches are welcome to fix bugs or clean up
|
# As a side note, contributions submitted for this project are automatically
|
||||||
# the code, but please do not use a radically different coding style. Thanks
|
# taken to be freely distributable and modifiable for any use, public or
|
||||||
# to everyone that's contributed!
|
# private, though I make no claim to ownership.
|
||||||
#
|
#
|
||||||
# NOTE: This code should NOT be run as root. You deserve anything that happens
|
# NOTE: This code should NOT be run as root. You deserve anything that happens
|
||||||
# to you if you run this code as a superuser. Also, note that giving a
|
# to you if you run this code as a superuser. Also, note that giving a
|
||||||
@@ -36,7 +33,7 @@ my %opts;
|
|||||||
|
|
||||||
readconfig();
|
readconfig();
|
||||||
|
|
||||||
my $version = "3.1.2";
|
my $version = "0.0.2";
|
||||||
|
|
||||||
# command line overrides .irpg.conf
|
# command line overrides .irpg.conf
|
||||||
GetOptions(\%opts,
|
GetOptions(\%opts,
|
||||||
@@ -46,10 +43,12 @@ GetOptions(\%opts,
|
|||||||
"debugfile=s",
|
"debugfile=s",
|
||||||
"server|s=s",
|
"server|s=s",
|
||||||
"botnick|n=s",
|
"botnick|n=s",
|
||||||
|
"botpass|a=s",
|
||||||
|
"botsaslpass|z=s",
|
||||||
"botuser|u=s",
|
"botuser|u=s",
|
||||||
"botrlnm|r=s",
|
"botrlnm|r=s",
|
||||||
"botchan|c=s",
|
"botchan|c=s",
|
||||||
"botident|p=s",
|
"botidentcmd|p=s",
|
||||||
"botmodes|m=s",
|
"botmodes|m=s",
|
||||||
"botopcmd|o=s",
|
"botopcmd|o=s",
|
||||||
"localaddr=s",
|
"localaddr=s",
|
||||||
@@ -365,13 +364,19 @@ sub parse {
|
|||||||
penalize(finduser($usernick),"kick");
|
penalize(finduser($usernick),"kick");
|
||||||
delete($onchan{$usernick});
|
delete($onchan{$usernick});
|
||||||
}
|
}
|
||||||
|
elsif ($arg[1] eq 'notice' && $arg[2] eq $opts{botnick} && $arg[8] eq 'authenticate' && $arg[9] eq 'now') {
|
||||||
|
# send our SASL info
|
||||||
|
# known working on current unrealircd and all others are untested
|
||||||
|
# please contact me if you know anything about the IRC connection
|
||||||
|
# and login procedure with SASL and the codes that are transmitted
|
||||||
|
sts("AUTH $opts{botnick}:$opts{botsaslpass}");
|
||||||
|
}
|
||||||
# don't penalize /notices to the bot
|
# don't penalize /notices to the bot
|
||||||
elsif ($arg[1] eq 'notice' && $arg[2] ne $opts{botnick}) {
|
elsif ($arg[1] eq 'notice' && $arg[2] ne $opts{botnick}) {
|
||||||
penalize($username,"notice",length("@arg[3..$#arg]")-1);
|
penalize($username,"notice",length("@arg[3..$#arg]")-1);
|
||||||
}
|
}
|
||||||
elsif ($arg[1] eq '001') {
|
elsif ($arg[1] eq '001') {
|
||||||
# send our identify command, set our usermode, join channel
|
# send our identify command, set our usermode, join channel
|
||||||
sts($opts{botident});
|
|
||||||
sts("MODE $opts{botnick} :$opts{botmodes}");
|
sts("MODE $opts{botnick} :$opts{botmodes}");
|
||||||
sts("JOIN $opts{botchan}");
|
sts("JOIN $opts{botchan}");
|
||||||
$opts{botchan} =~ s/ .*//; # strip channel key if present
|
$opts{botchan} =~ s/ .*//; # strip channel key if present
|
||||||
@@ -424,8 +429,7 @@ sub parse {
|
|||||||
if (lc($arg[2]) eq lc($opts{botnick})) { # to us, not channel
|
if (lc($arg[2]) eq lc($opts{botnick})) { # to us, not channel
|
||||||
$arg[3] = lc(substr($arg[3],1)); # lowercase, strip leading :
|
$arg[3] = lc(substr($arg[3],1)); # lowercase, strip leading :
|
||||||
if ($arg[3] eq "\1version\1") {
|
if ($arg[3] eq "\1version\1") {
|
||||||
notice("\1VERSION IRPG bot v$version by jotun; ".
|
notice("\1VERSION IdleRPG bot v$version\1", $usernick);
|
||||||
"http://idlerpg.net/\1",$usernick);
|
|
||||||
}
|
}
|
||||||
elsif ($arg[3] eq "peval") {
|
elsif ($arg[3] eq "peval") {
|
||||||
if (!ha($username) || ($opts{ownerpevalonly} &&
|
if (!ha($username) || ($opts{ownerpevalonly} &&
|
||||||
@@ -933,12 +937,11 @@ sub parse {
|
|||||||
elsif ($arg[3] eq "info") {
|
elsif ($arg[3] eq "info") {
|
||||||
my $info;
|
my $info;
|
||||||
if (!ha($username) && $opts{allowuserinfo}) {
|
if (!ha($username) && $opts{allowuserinfo}) {
|
||||||
$info = "IRPG bot v$version by jotun, ".
|
$info = "IdleRPG bot v$version, via server: ".
|
||||||
"http://idlerpg.net/. On via server: ".
|
|
||||||
$opts{servers}->[0].". Admins online: ".
|
$opts{servers}->[0].". Admins online: ".
|
||||||
join(", ", map { $rps{$_}{nick} }
|
join(", ", map { $rps{$_}{nick} }
|
||||||
grep { $rps{$_}{isadmin} &&
|
grep { $rps{$_}{isadmin} &&
|
||||||
$rps{$_}{online} } keys(%rps)).".";
|
$rps{$_}{online} } keys(%rps));
|
||||||
privmsg($info, $usernick);
|
privmsg($info, $usernick);
|
||||||
}
|
}
|
||||||
elsif (!ha($username) && !$opts{allowuserinfo}) {
|
elsif (!ha($username) && !$opts{allowuserinfo}) {
|
||||||
@@ -1692,9 +1695,10 @@ usage: $prog [OPTIONS]
|
|||||||
--server, -s Specify IRC server:port to connect to
|
--server, -s Specify IRC server:port to connect to
|
||||||
--botnick, -n Bot's IRC nick
|
--botnick, -n Bot's IRC nick
|
||||||
--botuser, -u Bot's username
|
--botuser, -u Bot's username
|
||||||
|
--botsaslpass -z Bot's SASL password
|
||||||
--botrlnm, -r Bot's real name
|
--botrlnm, -r Bot's real name
|
||||||
--botchan, -c IRC channel to join
|
--botchan, -c IRC channel to join
|
||||||
--botident, -p Specify identify-to-services command
|
--botidentcmd, -p Specify identify-to-services command
|
||||||
--botmodes, -m Specify usermodes for the bot to set upon connect
|
--botmodes, -m Specify usermodes for the bot to set upon connect
|
||||||
--botopcmd, -o Specify command to send to server on successful connect
|
--botopcmd, -o Specify command to send to server on successful connect
|
||||||
--botghostcmd, -g Specify command to send to server to regain primary
|
--botghostcmd, -g Specify command to send to server to regain primary
|
||||||
@@ -1703,8 +1707,9 @@ usage: $prog [OPTIONS]
|
|||||||
--okurl, -k Bot will not ban for web addresses that contain these
|
--okurl, -k Bot will not ban for web addresses that contain these
|
||||||
strings
|
strings
|
||||||
--debug Debug on/off flag
|
--debug Debug on/off flag
|
||||||
--helpurl URL to refer new users to
|
--helpurl URL where users can reach the help page
|
||||||
--admincommurl URL to refer admins to
|
--admincommurl URL where users can reach the admin commands list
|
||||||
|
--mapurl URL where users can reach the online quest map
|
||||||
|
|
||||||
Timing parameters:
|
Timing parameters:
|
||||||
--rpbase Base time to level up
|
--rpbase Base time to level up
|
||||||
6
irpg-release/App.config
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<startup>
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||||
|
</startup>
|
||||||
|
</configuration>
|
||||||
75
irpg-release/irpg-release.csproj
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{3C3C4730-9D32-418C-BFDC-CE89148AA6CA}</ProjectGuid>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<ReleaseName>IdleRPG</ReleaseName>
|
||||||
|
<ReleaseVersion>0.0.2</ReleaseVersion>
|
||||||
|
<ReleaseBotSourceName>IdleRPG-Bot</ReleaseBotSourceName>
|
||||||
|
<ReleaseWebSourceName>IdleRPG-Web</ReleaseWebSourceName>
|
||||||
|
<ReleaseSolutionSourceName>IdleRPG-Source</ReleaseSolutionSourceName>
|
||||||
|
<BotSourcePath>$(OutputPath)Bot\</BotSourcePath>
|
||||||
|
<WebSourcePath>$(OutputPath)Web\</WebSourcePath>
|
||||||
|
<SolutionSourcePath>$(OutputPath)Source\</SolutionSourcePath>
|
||||||
|
<ReleasesPath>$(OutputPath)Releases\</ReleasesPath>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Target Name="Build">
|
||||||
|
<CallTarget Targets="Clean" />
|
||||||
|
<CallTarget Targets="CreateBotSourceFiles" />
|
||||||
|
<CallTarget Targets="CreateWebSourceFiles" />
|
||||||
|
<CallTarget Targets="CreateSolutionSourceFiles" />
|
||||||
|
<CallTarget Targets="CreateReleasesFiles" />
|
||||||
|
</Target>
|
||||||
|
<Target Name="Clean">
|
||||||
|
<RemoveDir Directories="$(BotSourcePath)" />
|
||||||
|
<MakeDir Directories="$(BotSourcePath)" />
|
||||||
|
<RemoveDir Directories="$(WebSourcePath)" />
|
||||||
|
<MakeDir Directories="$(WebSourcePath)" />
|
||||||
|
<RemoveDir Directories="$(SolutionSourcePath)" />
|
||||||
|
<MakeDir Directories="$(SolutionSourcePath)" />
|
||||||
|
<RemoveDir Directories="$(ReleasesPath)" />
|
||||||
|
<MakeDir Directories="$(ReleasesPath)" />
|
||||||
|
</Target>
|
||||||
|
<Target Name="CreateBotSourceFiles">
|
||||||
|
<ItemGroup>
|
||||||
|
<MyBotSourceFiles Include="$(SolutionDir)irpg-bot\**\*;$(SolutionDir)README.md;$(SolutionDir)CHANGELOG.md;" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Copy SourceFiles="@(MyBotSourceFiles)" DestinationFiles="@(MyBotSourceFiles->'$(BotSourcePath)%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
|
</Target>
|
||||||
|
<Target Name="CreateWebSourceFiles">
|
||||||
|
<ItemGroup>
|
||||||
|
<MyWebSourceFiles Include="$(SolutionDir)irpg-web\**\*;$(SolutionDir)README.md;$(SolutionDir)CHANGELOG.md;" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Copy SourceFiles="@(MyWebSourceFiles)" DestinationFiles="@(MyWebSourceFiles->'$(WebSourcePath)%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
|
</Target>
|
||||||
|
<Target Name="CreateSolutionSourceFiles">
|
||||||
|
<ItemGroup>
|
||||||
|
<MySolutionSourceFiles Include="$(SolutionDir)**\*;" Exclude="$(SolutionDir)**\obj\**\*;$(SolutionDir)**\bin\**\*;$(SolutionDir)**\misc\**\*;$(SolutionDir)**\packages\**\*;$(SolutionDir)**\.git\**\*;$(SolutionDir)**\.vs\**\*;" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Copy SourceFiles="@(MySolutionSourceFiles)" DestinationFiles="@(MySolutionSourceFiles->'$(SolutionSourcePath)\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
|
</Target>
|
||||||
|
<Target Name="CreateReleasesFiles">
|
||||||
|
<Delete Files="$(ReleasesPath)$(ReleaseBotSourceName).$(ReleaseVersion).zip" />
|
||||||
|
<ZipDirectory SourceDirectory="$(BotSourcePath)" DestinationFile="$(ReleasesPath)$(ReleaseBotSourceName).$(ReleaseVersion).zip" />
|
||||||
|
<Delete Files="$(ReleasesPath)$(ReleaseWebSourceName).$(ReleaseVersion).zip" />
|
||||||
|
<ZipDirectory SourceDirectory="$(WebSourcePath)" DestinationFile="$(ReleasesPath)$(ReleaseWebSourceName).$(ReleaseVersion).zip" />
|
||||||
|
<Delete Files="$(ReleasesPath)$(ReleaseSolutionSourceName).$(ReleaseVersion).zip" />
|
||||||
|
<ZipDirectory SourceDirectory="$(SolutionSourcePath)" DestinationFile="$(ReleasesPath)$(ReleaseSolutionSourceName).$(ReleaseVersion).zip" />
|
||||||
|
</Target>
|
||||||
|
</Project>
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
This is the ChangeLog for the Idle RPG Website Code. I'm not as religious about
|
This is the ChangeLog for the old Idle RPG Website Code.
|
||||||
making sure my updates make it here as I am about changes to the IRPG code
|
I'm not as religious about making sure my updates make it here as I am about
|
||||||
making it into that ChangeLog, so there may be changes between versions that you
|
changes to the IRPG code making it into that ChangeLog, so there may be changes
|
||||||
don't see listed here.
|
between versions that you don't see listed here.
|
||||||
|
|
||||||
Also, please note that any use of "incowrect" or other cow-related "typos" are
|
Also, please note that any use of "incowrect" or other cow-related "typos" are
|
||||||
NOT typos. I like cattle. A lot. Please stop fixing them :^)
|
NOT typos. I like cattle. A lot. Please stop fixing them :^)
|
||||||
48
irpg-web/INSTALL.txt
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
-------------------------------------------------------------------------------
|
||||||
|
First-time Installation:
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
1. Make sure you have the irpg-bot functional and running.
|
||||||
|
2. Copy all of the irpg-web files to your public_html/irpg web folder.
|
||||||
|
3. Edit config.php with your favorite editor. This file must be in the same
|
||||||
|
public directory where the irpg web resides.
|
||||||
|
4. chmod 644 * && chmod 666 hits.db
|
||||||
|
5. If you change the default settings in the IRPG bot (for example, if you turn
|
||||||
|
off the option to write quest info to file, you'll have to manually edit
|
||||||
|
some scripts to take this into account. If you disable the INFO command,
|
||||||
|
you might want to remove it from the index.php page.
|
||||||
|
6. Some code in this package requires that your system have GD 2.0+ (or have it
|
||||||
|
enabled in your php.ini, on Win32). If you don't want this functionality to
|
||||||
|
be available, edit the script playerview.php to remove the use of the map
|
||||||
|
and header.php to remove the links to the world map and the quest info page.
|
||||||
|
You can also delete the worldmap.php, makeworldmap.php, makemap.php,
|
||||||
|
quest.php, and makequestmap.php scripts.
|
||||||
|
7. Edit the website ANY WAY you see fit. You don't have to keep all of the
|
||||||
|
links to me, I just thought they might be useful or interesting to users :^)
|
||||||
|
8. All milestones, issues, bugs and features are tracked using GitEmAll.
|
||||||
|
Thanks for your interest in IdleRPG! :^)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Upgrading:
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
1. Remove your old web source, ie, rm -rfv that old buggy crap and start over.
|
||||||
|
2. Make sure you have the irpg-bot functional and running.
|
||||||
|
3. Copy all of the irpg-web files to your public_html/irpg web folder.
|
||||||
|
4. Edit config.php with your favorite editor. This file must be in the same
|
||||||
|
public directory where the irpg web resides.
|
||||||
|
5. chmod 644 * && chmod 666 hits.db
|
||||||
|
6. If you change the default settings in the IRPG bot (for example, if you turn
|
||||||
|
off the option to write quest info to file, you'll have to manually edit
|
||||||
|
some scripts to take this into account. If you disable the INFO command,
|
||||||
|
you might want to remove it from the index.php page.
|
||||||
|
7. Some code in this package requires that your system have GD 2.0+ (or have it
|
||||||
|
enabled in your php.ini, on Win32). If you don't want this functionality to
|
||||||
|
be available, edit the script playerview.php to remove the use of the map
|
||||||
|
and header.php to remove the links to the world map and the quest info page.
|
||||||
|
You can also delete the worldmap.php, makeworldmap.php, makemap.php,
|
||||||
|
quest.php, and makequestmap.php scripts.
|
||||||
|
8. Edit the website ANY WAY you see fit. You don't have to keep all of the
|
||||||
|
links to me, I just thought they might be useful or interesting to users :^)
|
||||||
|
9. All milestones, issues, bugs and features are tracked using GitEmAll.
|
||||||
|
Thanks for your interest in IdleRPG! :^)
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
This is not the full list of commands for the Idle RPG bot, but only the list
|
This is not the full list of commands for the Idle RPG bot, but only the list
|
||||||
of admin commands. For more information on the Idle RPG bot, visit
|
of admin commands.
|
||||||
http://idlerpg.net/
|
|
||||||
|
|
||||||
INFO, retrieve some fairly useless stats about the bot.
|
INFO, retrieve some fairly useless stats about the bot.
|
||||||
|
|
||||||
61
irpg-web/config.php
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<?php
|
||||||
|
// admin nick
|
||||||
|
$admin_nick="admin";
|
||||||
|
|
||||||
|
// admin email
|
||||||
|
$admin_email="admin@mynet.org";
|
||||||
|
|
||||||
|
// your game's bot nickname
|
||||||
|
$irpg_bot="IdleBot";
|
||||||
|
|
||||||
|
// your game's server to connect to
|
||||||
|
$irpg_network="irc.mynet.org:7000";
|
||||||
|
|
||||||
|
// your game's channel
|
||||||
|
$irpg_chan="#IdleRPG";
|
||||||
|
|
||||||
|
// your server's network name advertisement
|
||||||
|
$irpg_irc_network_name="MyNet IRC Network";
|
||||||
|
|
||||||
|
// your server's network address advertisement
|
||||||
|
$irpg_irc_network_address="ircs://irc.mynet.org:7000";
|
||||||
|
|
||||||
|
// base directory of your game's url
|
||||||
|
// my site is https://www.mynet.org/irpg/, so it's "/irpg/"
|
||||||
|
$irpg_base_dir="/irpg/";
|
||||||
|
|
||||||
|
// url of your forum site
|
||||||
|
$irpg_forum_url="https://www.mynet.org/";
|
||||||
|
|
||||||
|
// type of site email disabled/smtp/php
|
||||||
|
$irpg_site_email="disabled";
|
||||||
|
|
||||||
|
// full or relative pathname to the DBs:
|
||||||
|
|
||||||
|
// character database
|
||||||
|
$irpg_db="/home/user/private/idlerpg/irpg.db";
|
||||||
|
|
||||||
|
// time modifiers file
|
||||||
|
$irpg_mod="/home/user/private/idlerpg/modifiers.txt";
|
||||||
|
|
||||||
|
// active quest info file
|
||||||
|
$irpg_qfile="/home/user/private/idlerpg/questinfo.txt";
|
||||||
|
|
||||||
|
// image to use for the top logo
|
||||||
|
$irpg_logo="idlerpg_ff0000.png";
|
||||||
|
|
||||||
|
// stylesheet to use g7/rw
|
||||||
|
$irpg_stylesheet = "rw.css";
|
||||||
|
|
||||||
|
// width-wise dimension of your map file
|
||||||
|
// this does not appear to be used anywhere in the web
|
||||||
|
// it appears that all PHP map files use 500,500 images,
|
||||||
|
// regardless of what you set here
|
||||||
|
$irpg_mapx=500;
|
||||||
|
|
||||||
|
// length-wise dimension of your map file
|
||||||
|
// this does not appear to be used anywhere in the web
|
||||||
|
// it appears that all PHP map files use 500,500 images,
|
||||||
|
// regardless of what you set here
|
||||||
|
$irpg_mapy=500;
|
||||||
|
?>
|
||||||
55
irpg-web/contact.php
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<?php
|
||||||
|
include("config.php");
|
||||||
|
$irpg_page_title = "Contact";
|
||||||
|
$irpg_page_desc = "IdleRPG Contact";
|
||||||
|
include("header.php");
|
||||||
|
|
||||||
|
echo "<h1>Contact</h1>";
|
||||||
|
if (!$irpg_site_email) {
|
||||||
|
echo " <blockquote>Config error. The config file was not loaded correctly.</blockquote>\n";
|
||||||
|
}
|
||||||
|
else if ($irpg_site_email == "disabled") {
|
||||||
|
echo " <blockquote>Email is disabled.</blockquote>\n";
|
||||||
|
}
|
||||||
|
else if ($irpg_site_email == "php" && $_POST['from'] && $_POST['text']) {
|
||||||
|
$to = $admin_email;
|
||||||
|
$subject = "IdleRPG: ".$_POST['from'];
|
||||||
|
$message = "Name: ".$_POST['name']."\nE-mail: ".$_POST['from']."\n\n".$_POST['text'];
|
||||||
|
$additional_headers = "From: ".$_POST['from']."\r\n";
|
||||||
|
mail($to, $subject, $message, $additional_headers);
|
||||||
|
echo " <blockquote>Thanks for your submission.</blockquote>\n";
|
||||||
|
}
|
||||||
|
else if ($irpg_site_email == "smtp" && $_POST['from'] && $_POST['text']) {
|
||||||
|
echo " <blockquote>SMTP Email is under construction. Your submission was not submitted.</blockquote>\n";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo " <form method=\"post\" action=\"contact.php\">\n".
|
||||||
|
" <table border=\"0\">\n".
|
||||||
|
" <tr>\n".
|
||||||
|
" <th align=\"left\"><label for=\"from\">Your e-mail address</label>:</th>\n".
|
||||||
|
" <td align=\"right\">\n".
|
||||||
|
" <input type=\"text\" size=\"20\" maxlength=\"50\" name=\"from\" id=\"from\" />\n".
|
||||||
|
" </td>\n".
|
||||||
|
" </tr>\n".
|
||||||
|
" <tr>\n".
|
||||||
|
" <th align=\"left\"><label for=\"name\">Your name</label>:</th>\n".
|
||||||
|
" <td align=\"right\">\n".
|
||||||
|
" <input type=\"text\" size=\"20\" maxlength=\"50\" name=\"name\" id=\"name\" />\n".
|
||||||
|
" </td>\n".
|
||||||
|
" </tr>\n".
|
||||||
|
" <tr>\n".
|
||||||
|
" <td colspan=\"2\">\n".
|
||||||
|
" <textarea name=\"text\" rows=\"6\" cols=\"44\"></textarea><br />\n".
|
||||||
|
" </td>\n".
|
||||||
|
" </tr>\n".
|
||||||
|
" <tr>\n".
|
||||||
|
" <td colspan=\"2\" align=\"right\">\n".
|
||||||
|
" <input type=\"submit\" value=\"Send\" />\n".
|
||||||
|
" </td>\n".
|
||||||
|
" </tr>\n".
|
||||||
|
" </table>\n".
|
||||||
|
" </form>\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
include("footer.php");
|
||||||
|
?>
|
||||||
@@ -1,12 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
include("config.php");
|
include("config.php");
|
||||||
|
|
||||||
$irpg_page_title = "DB-style Player Listing";
|
|
||||||
|
|
||||||
include("header.php");
|
|
||||||
|
|
||||||
include("commonfunctions.php");
|
include("commonfunctions.php");
|
||||||
|
$irpg_page_title = "DB-style Player Listing";
|
||||||
|
$irpg_page_desc = "IdleRPG DB-style Player Listing";
|
||||||
|
include("header.php");
|
||||||
|
|
||||||
$file = file($irpg_db);
|
$file = file($irpg_db);
|
||||||
unset($file[0]);
|
unset($file[0]);
|
||||||
@@ -37,7 +34,7 @@
|
|||||||
($_GET['sort'] != "cmp_sum_desc"))) $_GET['sort'] = "cmp_level_desc";
|
($_GET['sort'] != "cmp_sum_desc"))) $_GET['sort'] = "cmp_level_desc";
|
||||||
usort($file,$_GET['sort']);
|
usort($file,$_GET['sort']);
|
||||||
?>
|
?>
|
||||||
<table border=1 cellpadding=2 cellspacing=2 cols="32" rows="<?php print count($file); ?>">
|
<table border=1 cellpadding=2 cellspacing=2 cols="32" rows="<?php echo count($file); ?>">
|
||||||
<tr>
|
<tr>
|
||||||
<th NOWRAP>
|
<th NOWRAP>
|
||||||
User
|
User
|
||||||
@@ -248,10 +245,9 @@
|
|||||||
" </tr>\n";
|
" </tr>\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
echo('
|
echo " </table>\n".
|
||||||
</table>
|
" <br><br>\n".
|
||||||
<br><br>
|
" * Accounts created before Aug 29, 2003 may have incorrect data fields.\n";
|
||||||
* Accounts created before Aug 29, 2003 may have incowrect data fields.
|
|
||||||
');
|
|
||||||
include("footer.php");
|
include("footer.php");
|
||||||
?>
|
?>
|
||||||
|
Before Width: | Height: | Size: 86 B After Width: | Height: | Size: 86 B |
@@ -4,8 +4,8 @@
|
|||||||
// should use the new xml.php to glean player info, which is much more
|
// should use the new xml.php to glean player info, which is much more
|
||||||
// suited to db changes.
|
// suited to db changes.
|
||||||
header('Content-Type: text/plain');
|
header('Content-Type: text/plain');
|
||||||
include("commonfunctions.php");
|
|
||||||
include("config.php");
|
include("config.php");
|
||||||
|
include("commonfunctions.php");
|
||||||
$file = file($irpg_db);
|
$file = file($irpg_db);
|
||||||
$header = explode("\t",$file[0]);
|
$header = explode("\t",$file[0]);
|
||||||
unset($header[1]); // password
|
unset($header[1]); // password
|
||||||
39
irpg-web/footer.php
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
</div>
|
||||||
|
<div class="footer">
|
||||||
|
<p class="small">
|
||||||
|
Questions? Comments? Suggestions? Bugs? Naked pics?
|
||||||
|
<?php
|
||||||
|
if ($irpg_site_email != null && $irpg_site_email != "disabled") {
|
||||||
|
echo " <a href=\"contact.php\">$admin_email</a> or\n";
|
||||||
|
}
|
||||||
|
echo " ".$admin_nick."@IRC.\n";
|
||||||
|
?>
|
||||||
|
<?php
|
||||||
|
$hits = file("hits.db");
|
||||||
|
$fp = fopen("hits.db", "w");
|
||||||
|
$thispage = explode("/",$_SERVER['PHP_SELF']);
|
||||||
|
$thispage = array_pop($thispage);
|
||||||
|
if ($fp == false) {
|
||||||
|
echo " Error: could not open file hits.db.";
|
||||||
|
}
|
||||||
|
foreach ($hits as $line) {
|
||||||
|
list($page,$numhits,$date) = explode("\t",trim($line));
|
||||||
|
if ($page == $thispage) {
|
||||||
|
++$numhits;
|
||||||
|
echo " $numhits hits since $date\n";
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
if ($fp) {
|
||||||
|
fwrite($fp,"$page\t$numhits\t$date\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$found && $fp) {
|
||||||
|
echo " 1 hit since ".date("M j, Y",time())."\n";
|
||||||
|
fwrite($fp,$thispage."\t1\t".date("M j, Y",time())."\n");
|
||||||
|
}
|
||||||
|
fclose($fp);
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
44
irpg-web/header.php
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN"
|
||||||
|
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||||
|
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title><?php echo $irpg_page_title; ?> :: <?php echo $irpg_chan; ?></title>
|
||||||
|
<meta name="description" content="<?php echo $irpg_page_desc; ?>" />
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="<?php echo $irpg_stylesheet; ?>" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="head">
|
||||||
|
<?php
|
||||||
|
echo " <img src=\"$irpg_logo\" alt=\"$irpg_chan\" title=\"$irpg_chan\" width=\"400\" height=\"56\" />\n";
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<div id="menu" class="menu">
|
||||||
|
<?php
|
||||||
|
$topbarurl = array(
|
||||||
|
'Game Info' => $irpg_base_dir . 'index.php',
|
||||||
|
'Player Info' => $irpg_base_dir . 'players.php',
|
||||||
|
'World Map' => $irpg_base_dir . 'worldmap.php',
|
||||||
|
'Quest Info' => $irpg_base_dir . 'quest.php',
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($irpg_site_email && $irpg_site_email != "disabled") {
|
||||||
|
$topbarurl['Contact'] = $irpg_base_dir . 'contact.php';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($irpg_forum_url) {
|
||||||
|
$topbarurl['Forum'] = $irpg_forum_url;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($topbarurl as $key => $value) {
|
||||||
|
if ($value == $_SERVER['PHP_SELF']) {
|
||||||
|
echo " <a class=\"home\" href=\"$value\">$key</a>\n";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
echo " <a href=\"$value\">$key</a>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
</div>
|
||||||
|
<div class="content">
|
||||||
10
irpg-web/hits.db
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
contact.php 420 Jul 4, 2016
|
||||||
|
db.php 420 Jul 4, 2016
|
||||||
|
forum.php 420 Jul 4, 2016
|
||||||
|
index.php 420 Jul 4, 2016
|
||||||
|
playerview.php 420 Jul 4, 2016
|
||||||
|
players.php 420 Jul 4, 2016
|
||||||
|
quest.php 420 Jul 4, 2016
|
||||||
|
worldmap.php 420 Jul 4, 2016
|
||||||
|
g7.css 420 Jul 4, 2016
|
||||||
|
idlerpg.png 420 Jul 4, 2016
|
||||||
BIN
irpg-web/idlerpg.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
irpg-web/idlerpg_000000.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
irpg-web/idlerpg_025D30.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
irpg-web/idlerpg_ff0000.png
Normal file
|
After Width: | Height: | Size: 6.8 KiB |
@@ -1,93 +1,72 @@
|
|||||||
<?php
|
<?php
|
||||||
include("config.php");
|
include("config.php");
|
||||||
$irpg_page_title = "Game Info";
|
$irpg_page_title = "Game Info";
|
||||||
|
$irpg_page_desc = "IdleRPG Game Info";
|
||||||
include("header.php");
|
include("header.php");
|
||||||
?>
|
?>
|
||||||
<h1>Game Info</h1>
|
|
||||||
<p>The Idle RPG is just what it sounds like: an RPG in which the players
|
|
||||||
idle. In addition to merely gaining levels, players can find items and
|
|
||||||
battle other players. However, this is all done for you; you just idle.
|
|
||||||
There are no set classes; you can name your character anything you like, and
|
|
||||||
have its class be anything you like, as well.</p>
|
|
||||||
|
|
||||||
<h2>Location</h2>
|
<h1>Idle RPG</h1>
|
||||||
<p>
|
|
||||||
The Idle RPG can be played on the
|
|
||||||
<a href="http://www.slashnet.org/">SlashNET IRC Network</a> in the
|
|
||||||
channel #G7. See <a href="http://www.slashnet.org/servers/">this</a>
|
|
||||||
link for a list of servers.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Registering</h2>
|
<h2>Game Info</h2>
|
||||||
|
<p>The Idle RPG is just what it sounds like: an RPG in which the players
|
||||||
|
idle. In addition to merely gaining levels, players can find items and
|
||||||
|
battle other players. However, this is all done for you; you just idle.
|
||||||
|
There are no set classes; you can name your character anything you like,
|
||||||
|
and have its class be anything you like, as well.</p>
|
||||||
|
|
||||||
|
<h2>Location</h2>
|
||||||
|
<p>The Idle RPG can be played on the
|
||||||
|
<a href="<?php echo $irpg_irc_network_address; ?>"><?php echo $irpg_irc_network_name; ?></a>
|
||||||
|
in the channel
|
||||||
|
<a href="<?php echo $irpg_irc_network_address; ?>/<?php echo $irpg_chan; ?>"><?php echo $irpg_chan; ?></a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h2>Registering</h2>
|
||||||
<p>To register, simply:</p>
|
<p>To register, simply:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> REGISTER <char name> <password>
|
||||||
/msg <?echo $irpg_bot;?> REGISTER <char name> <password>
|
|
||||||
<char class>
|
<char class>
|
||||||
</code>
|
</code>
|
||||||
|
|
||||||
<p>Where 'char name' can be up to 16 chars long, 'password' can be up
|
<p>Where 'char name' can be up to 16 chars long, 'password' can be up
|
||||||
to 8 characters, and 'char class' can be up to 30 chars.</p>
|
to 8 characters, and 'char class' can be up to 30 chars.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Logging In</h2>
|
<h2>Logging In</h2>
|
||||||
|
|
||||||
<p>To login, simply:</p>
|
<p>To login, simply:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> LOGIN <char name> <password>
|
||||||
/msg <?echo $irpg_bot;?> LOGIN <char name> <password>
|
</code>
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Logging Out</h2>
|
<h2>Logging Out</h2>
|
||||||
|
|
||||||
<p>To logout, simply:</p>
|
<p>To logout, simply:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> LOGOUT
|
||||||
/msg <?echo $irpg_bot;?> LOGOUT
|
</code>
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>This is a p20 (see <a href="#penalties">Penalties</a>) command.</p>
|
<p>This is a p20 (see <a href="#penalties">Penalties</a>) command.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Changing Your Password</h2>
|
<h2>Changing Your Password</h2>
|
||||||
|
|
||||||
<p>To change your password, simply:</p>
|
<p>To change your password, simply:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> NEWPASS <new password>
|
||||||
/msg <?echo $irpg_bot;?> NEWPASS <new password>
|
</code>
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
||||||
<p>If you have forgotten your password, please use the <a href="#info">
|
<p>If you have forgotten your password, please use the <a href="#info">
|
||||||
INFO</a> command to find an online admin to help you. If your
|
INFO</a> command to find an online admin to help you. If your
|
||||||
administrator does not have the INFO command enabled, then just message
|
administrator does not have the INFO command enabled, then just message
|
||||||
an op in the channel. They can probably help you.</p>
|
an op in the channel. They can probably help you.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Removing Your Account</h2>
|
<h2>Removing Your Account</h2>
|
||||||
|
|
||||||
<p>To remove your account, simply:</p>
|
<p>To remove your account, simply:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> REMOVEME
|
||||||
/msg <?echo $irpg_bot;?> REMOVEME
|
</code>
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command :^)</p>
|
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command :^)</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Changing Your Alignment</h2>
|
<h2>Changing Your Alignment</h2>
|
||||||
|
|
||||||
<p>To change your alignment, simply:</p>
|
<p>To change your alignment, simply:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> ALIGN <good|neutral|evil>
|
||||||
/msg <?echo $irpg_bot;?> ALIGN <good|neutral|evil>
|
</code>
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
||||||
<p>Your alignment can affect certain aspects of the game. You may align
|
<p>Your alignment can affect certain aspects of the game. You may align
|
||||||
with good, neutral, or evil. 'Good' users have a 10% boost to their item
|
with good, neutral, or evil. 'Good' users have a 10% boost to their item
|
||||||
@@ -105,73 +84,54 @@
|
|||||||
off as neutral.</p>
|
off as neutral.</p>
|
||||||
<p>I haven't run the numbers to see which alignment it is better to
|
<p>I haven't run the numbers to see which alignment it is better to
|
||||||
follow, so the stats for this feature may change in the future.</p>
|
follow, so the stats for this feature may change in the future.</p>
|
||||||
|
|
||||||
|
<a name="info"></a>
|
||||||
<a name="info"></a><h2>Obtaining Bot Info</h2>
|
|
||||||
|
<h2>Obtaining Bot Info</h2>
|
||||||
<p>To see some simple information on the bot, simply:</p>
|
<p>To see some simple information on the bot, simply:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> INFO
|
||||||
/msg <?echo $irpg_bot;?> INFO
|
</code>
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
||||||
<p>This command gives info such as to which server the bot is connected
|
<p>This command gives info such as to which server the bot is connected
|
||||||
and the nicknames of online bot admins.</p>
|
and the nicknames of online bot admins.</p>
|
||||||
<p>This command is optional, and may be disabled by your bot admin.</p>
|
<p>This command is optional, and may be disabled by your bot admin.</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>Levelling</h2>
|
<h2>Levelling</h2>
|
||||||
|
|
||||||
<p>To gain levels, you must only be logged in and idle. The time
|
<p>To gain levels, you must only be logged in and idle. The time
|
||||||
between levels is based on your character level, and is calculated
|
between levels is based on your character level, and is calculated
|
||||||
by the formula:</p>
|
by the formula:</p>
|
||||||
|
<p>600*(1.16^YOUR_LEVEL)</p>
|
||||||
600*(1.16^YOUR_LEVEL)
|
|
||||||
|
|
||||||
<p>Where ^ represents the exponentiation operator.</p>
|
<p>Where ^ represents the exponentiation operator.</p>
|
||||||
<p>Very high levels are calculated differently as of version 3.0. Levels
|
<p>Very high levels are calculated differently as of version 3.0. Levels
|
||||||
after level 60 have a next time to level of:</p>
|
after level 60 have a next time to level of:</p>
|
||||||
|
<p>(time to level @ 60) + ((1 day) * (level - 60))</p>
|
||||||
(time to level @ 60) + ((1 day) * (level - 60))
|
|
||||||
|
|
||||||
<p>The exponent method code had simply gotten to that point that levels
|
<p>The exponent method code had simply gotten to that point that levels
|
||||||
were taking too long to complete.</p>
|
were taking too long to complete.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Checking the Active Quest</h2>
|
<h2>Checking the Active Quest</h2>
|
||||||
|
|
||||||
<p>To see the active quest, its users, and its time left to
|
<p>To see the active quest, its users, and its time left to
|
||||||
completion:</p>
|
completion:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> QUEST
|
||||||
/msg <?echo $irpg_bot;?> QUEST
|
</code>
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Checking Your Online Status</h2>
|
<h2>Checking Your Online Status</h2>
|
||||||
|
|
||||||
<p>To see whether you are logged on, simply:</p>
|
<p>To see whether you are logged on, simply:</p>
|
||||||
|
<code>
|
||||||
<code>
|
/msg <?php echo $irpg_bot; ?> WHOAMI
|
||||||
/msg <?echo $irpg_bot;?> WHOAMI
|
</code>
|
||||||
</code>
|
|
||||||
|
|
||||||
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
<p>This is a p0 (see <a href="#penalties">Penalties</a>) command.</p>
|
||||||
|
|
||||||
|
|
||||||
<a name="penalties"></a><h2>Penalties</h2>
|
<a name="penalties"></a>
|
||||||
|
|
||||||
|
<h2>Penalties</h2>
|
||||||
<p>If you do something other than idle, like part, quit, talk in the
|
<p>If you do something other than idle, like part, quit, talk in the
|
||||||
channel, change your nick, or notice the channel, you are
|
channel, change your nick, or notice the channel, you are
|
||||||
penalized. The penalties are time, in seconds, added to your next
|
penalized. The penalties are time, in seconds, added to your next
|
||||||
time to level and are based on your character level. The formulae
|
time to level and are based on your character level. The formulae
|
||||||
are as follows:</p>
|
are as follows:</p>
|
||||||
|
|
||||||
<table id="penalty" class="penalty">
|
<table id="penalty" class="penalty">
|
||||||
<tr>
|
<tr>
|
||||||
<th>Nick change</th>
|
<th>Nick change</th>
|
||||||
@@ -208,10 +168,8 @@
|
|||||||
<p>Penalty shorthand is p[num]. So, a nick change is a p30 event,
|
<p>Penalty shorthand is p[num]. So, a nick change is a p30 event,
|
||||||
parting the channel is a p200 event, and quitting IRC is a p20 event.
|
parting the channel is a p200 event, and quitting IRC is a p20 event.
|
||||||
Messages and notices are p[length of message in characters].</p>
|
Messages and notices are p[length of message in characters].</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Items</h2>
|
<h2>Items</h2>
|
||||||
|
|
||||||
<p>Each time you level, you find an item. You can find an item as
|
<p>Each time you level, you find an item. You can find an item as
|
||||||
high as 1.5*YOUR_LEVEL (unless you find a <a href="#uniqueitems">
|
high as 1.5*YOUR_LEVEL (unless you find a <a href="#uniqueitems">
|
||||||
unique item</a>). There are 10 types of items: rings,
|
unique item</a>). There are 10 types of items: rings,
|
||||||
@@ -223,82 +181,59 @@
|
|||||||
enabled, but you cannot see which items you have over IRC (only your
|
enabled, but you cannot see which items you have over IRC (only your
|
||||||
total item sum). You can, however, see which items you have on the web
|
total item sum). You can, however, see which items you have on the web
|
||||||
<a href="players.php">here</a>.</p>
|
<a href="players.php">here</a>.</p>
|
||||||
|
|
||||||
<p>As you may guess, you have a higher chance of rolling an item of a
|
<p>As you may guess, you have a higher chance of rolling an item of a
|
||||||
lower value than you do of rolling one of a higher value level. The exact
|
lower value than you do of rolling one of a higher value level. The exact
|
||||||
formula is as follows:</p>
|
formula is as follows:</p>
|
||||||
|
<p>for each 'number' from 1 to YOUR_LEVEL*1.5<br />
|
||||||
|
you have a 1 / ((1.4)^number) chance to find an
|
||||||
for each 'number' from 1 to YOUR_LEVEL*1.5<br />
|
item at this level<br />
|
||||||
you have a 1 / ((1.4)^number) chance to find an
|
end for<p>
|
||||||
item at this level<br />
|
|
||||||
end for
|
|
||||||
|
|
||||||
|
|
||||||
<p>As for item type, you have an equal chance to roll any type.</p>
|
<p>As for item type, you have an equal chance to roll any type.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Battle</h2>
|
||||||
<h2>Battle</h2>
|
|
||||||
|
|
||||||
<p>Each time you level, if your level is less than 25, you have a 25%
|
<p>Each time you level, if your level is less than 25, you have a 25%
|
||||||
chance to challenge someone to combat. If your level is greater than or
|
chance to challenge someone to combat. If your level is greater than or
|
||||||
equal to 25, you have a 100% chance to challenge someone. A pool of
|
equal to 25, you have a 100% chance to challenge someone. A pool of
|
||||||
opponents is chosen of all online players, and one is chosen randomly. If
|
opponents is chosen of all online players, and one is chosen randomly. If
|
||||||
there are no other online players, you fight no one. However, if you do
|
there are no other online players, you fight no one. However, if you do
|
||||||
challenge someone, this is how the victor is decided:</p>
|
challenge someone, this is how the victor is decided:</p>
|
||||||
|
|
||||||
<ul>
|
<ul>
|
||||||
<li>Your item levels are summed.</li>
|
<li>Your item levels are summed.</li>
|
||||||
<li>Their item levels are summed.</li>
|
<li>Their item levels are summed.</li>
|
||||||
<li>A random number between zero and your sum is taken.</li>
|
<li>A random number between zero and your sum is taken.</li>
|
||||||
<li>A random number between zero and their sum is taken.</li>
|
<li>A random number between zero and their sum is taken.</li>
|
||||||
<li>If your roll is larger than theirs, you win.</li>
|
<li>If your roll is larger than theirs, you win.</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>If you win, your time towards your next level is lowered. The amount
|
<p>If you win, your time towards your next level is lowered. The amount
|
||||||
that it is lowered is based on your opponent's level. The formula is:</p>
|
that it is lowered is based on your opponent's level. The formula is:</p>
|
||||||
|
<p>((the larger number of (OPPONENT_LEVEL/4) and 7) / 100) *
|
||||||
|
YOUR_NEXT_TIME_TO_LEVEL</p>
|
||||||
((the larger number of (OPPONENT_LEVEL/4) and 7) / 100) *
|
|
||||||
YOUR_NEXT_TIME_TO_LEVEL
|
|
||||||
|
|
||||||
|
|
||||||
<p>This means that you lose no less than 7% from your next time to level.
|
<p>This means that you lose no less than 7% from your next time to level.
|
||||||
If you win, your opponent is not penalized any time, unless you land a
|
If you win, your opponent is not penalized any time, unless you land a
|
||||||
<a href="#critstrike">Critical Strike</a>.</p>
|
<a href="#critstrike">Critical Strike</a>.</p>
|
||||||
|
|
||||||
<p>If you lose, you will be penalized time. The penalty is calculated
|
<p>If you lose, you will be penalized time. The penalty is calculated
|
||||||
using the formula:</p>
|
using the formula:</p>
|
||||||
|
<p>((the larger number of (OPPONENT_LEVEL/7) and 7) / 100) *
|
||||||
|
YOUR_NEXT_TIME_TO_LEVEL</p>
|
||||||
((the larger number of (OPPONENT_LEVEL/7) and 7) / 100) *
|
|
||||||
YOUR_NEXT_TIME_TO_LEVEL
|
|
||||||
|
|
||||||
|
|
||||||
<p>This means that you gain no less than 7% of your next time to level.
|
<p>This means that you gain no less than 7% of your next time to level.
|
||||||
If you lose, your opponent is not awarded any time.</p>
|
If you lose, your opponent is not awarded any time.</p>
|
||||||
|
|
||||||
<p>Battling the IRPG bot is a special case. The bot has an item sum of
|
<p>Battling the IRPG bot is a special case. The bot has an item sum of
|
||||||
1+[highest item sum of all players]. The percent awarded if you win is a
|
1+[highest item sum of all players]. The percent awarded if you win is a
|
||||||
constant 20%, and the percent penalized if you lose is a constant 10%.</p>
|
constant 20%, and the percent penalized if you lose is a constant 10%.</p>
|
||||||
|
|
||||||
<p>As of version 3.0, if more than 15% of online players are level 45 or
|
<p>As of version 3.0, if more than 15% of online players are level 45 or
|
||||||
higher, then a random level 45+ user will battle another random player
|
higher, then a random level 45+ user will battle another random player
|
||||||
every hour. This is to speed up levelling among higher level players.</p>
|
every hour. This is to speed up levelling among higher level players.</p>
|
||||||
|
|
||||||
<p>Also as of version 3.0, there is a grid system. The grid is a 500 x 500
|
<p>Also as of version 3.0, there is a grid system. The grid is a 500 x 500
|
||||||
area in which players may walk. If you encounter another player on the
|
area in which players may walk. If you encounter another player on the
|
||||||
grid, you have a 1 / (NUMBER_OF_ONLINE_PLAYERS) chance to battle them.
|
grid, you have a 1 / (NUMBER_OF_ONLINE_PLAYERS) chance to battle them.
|
||||||
Battle awards are calculated using the above formulae. More information
|
Battle awards are calculated using the above formulae. More information
|
||||||
on the grid system is available <a href="#grid">here</a>.</p>
|
on the grid system is available <a href="#grid">here</a>.</p>
|
||||||
|
|
||||||
<p>Also as of version 3.0, a successful battle may result an item being
|
<p>Also as of version 3.0, a successful battle may result an item being
|
||||||
<a href="#stealing">stolen</a>.</p>
|
<a href="#stealing">stolen</a>.</p>
|
||||||
|
|
||||||
|
<a name="uniqueitems"></a>
|
||||||
<a name="uniqueitems"></a><h2>Unique Items</h2>
|
|
||||||
|
<h2>Unique Items</h2>
|
||||||
<p>As of v2.1.2, after level 25, you have a chance to roll items
|
<p>As of v2.1.2, after level 25, you have a chance to roll items
|
||||||
significantly higher than items you would normally find at that level.
|
significantly higher than items you would normally find at that level.
|
||||||
These are unique items, and have the following stats:</p>
|
These are unique items, and have the following stats:</p>
|
||||||
@@ -358,34 +293,28 @@
|
|||||||
<td>1 / 40</td>
|
<td>1 / 40</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<h2>The Hand of God</h2>
|
<h2>The Hand of God</h2>
|
||||||
|
|
||||||
<p>As of v3.0, every online user has a (roughly) 1/20 chance per day
|
<p>As of v3.0, every online user has a (roughly) 1/20 chance per day
|
||||||
of a "Hand of God" affecting them. A HoG can help or hurt your character
|
of a "Hand of God" affecting them. A HoG can help or hurt your character
|
||||||
by carrying it between 5 and 75 percent towards or away from its next time
|
by carrying it between 5 and 75 percent towards or away from its next time
|
||||||
to level. The odds are in your favor, however, with an 80% chance to help
|
to level. The odds are in your favor, however, with an 80% chance to help
|
||||||
your character, and only a 20% chance of your character being smitten.</p>
|
your character, and only a 20% chance of your character being smitten.</p>
|
||||||
|
|
||||||
<p>In addition to occurring randomly, admins may summon the HoG at their
|
<p>In addition to occurring randomly, admins may summon the HoG at their
|
||||||
whim.</p>
|
whim.</p>
|
||||||
|
|
||||||
|
|
||||||
<a name="critstrike"></a><h2>Critical Strike</h2>
|
<a name="critstrike"></a>
|
||||||
|
|
||||||
|
<h2>Critical Strike</h2>
|
||||||
<p>As of v2.0.4, if a challenger beats his opponent in battle, he has a
|
<p>As of v2.0.4, if a challenger beats his opponent in battle, he has a
|
||||||
1/35 chance of landing a Critical Strike. If this occurs, his opponent
|
1/35 chance of landing a Critical Strike. If this occurs, his opponent
|
||||||
is penalized time towards his next time to level. This amount is
|
is penalized time towards his next time to level. This amount is
|
||||||
calculated by the formula:</p>
|
calculated by the formula:</p>
|
||||||
|
<p>((random number from 5 to 25) / 100) * OPPONENT'S_NEXT_TIME_TO_LEVEL</p>
|
||||||
((random number from 5 to 25) / 100) * OPPONENT'S_NEXT_TIME_TO_LEVEL
|
|
||||||
|
|
||||||
<p>Meaning he gains no less than 5% and no more than 25% of his next time
|
<p>Meaning he gains no less than 5% and no more than 25% of his next time
|
||||||
to level.</p>
|
to level.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Team Battles</h2>
|
<h2>Team Battles</h2>
|
||||||
|
|
||||||
<p>As of v3.0, every online user has (roughly) 1/4 chance per day of
|
<p>As of v3.0, every online user has (roughly) 1/4 chance per day of
|
||||||
being involved in a 'team battle.' Team battles pit three online
|
being involved in a 'team battle.' Team battles pit three online
|
||||||
players against three other online players. Each side's items are summed,
|
players against three other online players. Each side's items are summed,
|
||||||
@@ -393,34 +322,24 @@
|
|||||||
the second group in combat, 20% of the lowest of the three's TTL is
|
the second group in combat, 20% of the lowest of the three's TTL is
|
||||||
removed from their clocks. If the first group loses, 20% of their lowest
|
removed from their clocks. If the first group loses, 20% of their lowest
|
||||||
member's TTL is added to their TTL.</p>
|
member's TTL is added to their TTL.</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Calamities</h2>
|
<h2>Calamities</h2>
|
||||||
|
|
||||||
<p>As of v3.0, every online user has a (roughly) 1/8 chance per day of a
|
<p>As of v3.0, every online user has a (roughly) 1/8 chance per day of a
|
||||||
calamity occurring to them. A calamity is a bit of extremely bad luck that
|
calamity occurring to them. A calamity is a bit of extremely bad luck that
|
||||||
either:<br />
|
either:<br />
|
||||||
|
|
||||||
a) slows a player 5-12% of their next time to level<br />
|
a) slows a player 5-12% of their next time to level<br />
|
||||||
b) lowers one of their item's value by 10%
|
b) lowers one of their item's value by 10%
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Godsends</h2>
|
<h2>Godsends</h2>
|
||||||
|
|
||||||
<p>As of v3.0, every online user has a (roughly) 1/8 chance per day of a
|
<p>As of v3.0, every online user has a (roughly) 1/8 chance per day of a
|
||||||
godsend occurring to them. A godsend is a bit of extremely good luck that
|
godsend occurring to them. A godsend is a bit of extremely good luck that
|
||||||
either:<br />
|
either:<br />
|
||||||
|
|
||||||
a) accelerates a player 5-12% of their next time to level<br />
|
a) accelerates a player 5-12% of their next time to level<br />
|
||||||
b) increases one of their item's value by 10%
|
b) increases one of their item's value by 10%
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<h2>Quests</h2>
|
<h2>Quests</h2>
|
||||||
|
|
||||||
<p>As of v2.3, there are Quests. Four level 40+ users that have been
|
<p>As of v2.3, there are Quests. Four level 40+ users that have been
|
||||||
online for more than ten hours are chosen to represent and assist the
|
online for more than ten hours are chosen to represent and assist the
|
||||||
Realm by going on a quest. If all four users make it to the quest's end,
|
Realm by going on a quest. If all four users make it to the quest's end,
|
||||||
@@ -433,48 +352,50 @@
|
|||||||
must reach certain points on the map for their quest to be complete. If
|
must reach certain points on the map for their quest to be complete. If
|
||||||
the quest is not completed, ALL online users are penalized a p15 as
|
the quest is not completed, ALL online users are penalized a p15 as
|
||||||
punishment.</p>
|
punishment.</p>
|
||||||
|
|
||||||
|
<a name="grid"></a>
|
||||||
<a name="grid"></a><h2>Grid System</h2>
|
|
||||||
|
<h2>Grid System</h2>
|
||||||
<p>As of v3.0, the IRPG has a grid system. The grid can be considered
|
<p>As of v3.0, the IRPG has a grid system. The grid can be considered
|
||||||
a 500 x 500 point map on which the players may walk. Every second, each
|
a 500 x 500 point map on which the players may walk. Every second, each
|
||||||
player has an equal chance to step up, down, or neither, and an equal
|
player has an equal chance to step up, down, or neither, and an equal
|
||||||
chance to step left, right, or neither. If a user encounters another
|
chance to step left, right, or neither. If a user encounters another
|
||||||
player, there is a 1/(NUMBER_OF_ONLINE_PLAYERS) chance that they will
|
player, there is a 1/(NUMBER_OF_ONLINE_PLAYERS) chance that they will
|
||||||
battle one another. Normal battling rules apply.</p>
|
battle one another. Normal battling rules apply.</p>
|
||||||
|
|
||||||
<p>Some quests require that users walk to certain points on the map. In
|
<p>Some quests require that users walk to certain points on the map. In
|
||||||
the spirit of IRPG, of course, the trek is made for you. Your character
|
the spirit of IRPG, of course, the trek is made for you. Your character
|
||||||
will automatically walk in the direction that it is supposed to, although
|
will automatically walk in the direction that it is supposed to, although
|
||||||
at a much slower than normal pace (to avoid accidents, of course. you
|
at a much slower than normal pace (to avoid accidents, of course. you
|
||||||
don't want to fall down and risk a Realm-wide p15!).</p>
|
don't want to fall down and risk a Realm-wide p15!).</p>
|
||||||
|
|
||||||
|
<a name="stealing"></a>
|
||||||
<a name="stealing"></a><h2>Item Stealing</h2>
|
|
||||||
|
<h2>Item Stealing</h2>
|
||||||
<p>As of v3.0, the IRPG has item stealing. After each battle, if the
|
<p>As of v3.0, the IRPG has item stealing. After each battle, if the
|
||||||
challenger wins, he has a slightly less than 2% chance of stealing an
|
challenger wins, he has a slightly less than 2% chance of stealing an
|
||||||
item from the challengee. Only items of a higher value are stolen, and
|
item from the challengee. Only items of a higher value are stolen, and
|
||||||
the challenger's old item is given to the challengee in a moment of pity.
|
the challenger's old item is given to the challengee in a moment of pity.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<h2>Credits</h2>
|
||||||
<h2>Credits</h2>
|
|
||||||
|
|
||||||
<p>Many thanks to version 3.0's map creators, res0 and Jeb! The game
|
<p>Many thanks to version 3.0's map creators, res0 and Jeb! The game
|
||||||
wouldn't be the same without you.</p>
|
wouldn't be the same without you.</p>
|
||||||
<p>
|
<p>The IRPG would not be possible without help from a lot of people.
|
||||||
The IRPG would not be possible without help from a lot of people.
|
|
||||||
To jwbozzy, yawnwraith, Tosirap, res0, dwyn, Parallax, protomek,
|
To jwbozzy, yawnwraith, Tosirap, res0, dwyn, Parallax, protomek,
|
||||||
Bert, clavicle, drdink, jeff, rasher, Sticks, Nerje, Asterax,
|
Bert, clavicle, drdink, jeff, rasher, Sticks, Nerje, Asterax,
|
||||||
emad, inkblot(!), schmolli, mikegrb, mumkin, sean, Minhiriath,
|
emad, inkblot(!), schmolli, mikegrb, mumkin, sean, Minhiriath,
|
||||||
and Dan, I give many thanks. Unfortunately, this list has grown too
|
and Dan, I give many thanks. Unfortunately, this list has grown too
|
||||||
large to maintain. More user contributions can be seen in the
|
large to maintain. More user contributions can be seen in the
|
||||||
<a href="http://idlerpg.net/ChangeLog.txt">ChangeLog</a>.
|
ChangeLog.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<?include("footer.php");?>
|
<h2>Source</h2>
|
||||||
|
<p><a href="https://gitemall.devemall.int.eu.org/TommySalami/IdleRPG">The new source code</a>,
|
||||||
|
modified, released and maintained by TommySalami</p>
|
||||||
|
<p>based on</p>
|
||||||
|
<p><a href="http://idlerpg.net/">The old source code</a>,
|
||||||
|
originally written and released in 2004 by jotun, jotun@idlerpg.net, et al.</p>
|
||||||
|
|
||||||
|
<?php
|
||||||
|
include("footer.php");
|
||||||
|
?>
|
||||||
@@ -1,20 +1,19 @@
|
|||||||
<?
|
<?php
|
||||||
include("config.php");
|
include("config.php");
|
||||||
session_start(); // sessions to generate only one map / person / 20s
|
|
||||||
|
// use sessions to generate only one map / person / 20s
|
||||||
|
session_start();
|
||||||
if (isset($_SESSION['time']) && time()-$_SESSION['time'] < 20) {
|
if (isset($_SESSION['time']) && time()-$_SESSION['time'] < 20) {
|
||||||
header("Location: maperror.png");
|
header("Location: maperror.png");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
$_SESSION['time']=time();
|
$_SESSION['time']=time();
|
||||||
|
|
||||||
$map = imageCreate(500,500);
|
$map = imageCreate(500,500);
|
||||||
|
|
||||||
$user = substr($_GET['player'],0,30);
|
$user = substr($_GET['player'],0,30);
|
||||||
|
|
||||||
$stringx=$stringy=-1;
|
$stringx=$stringy=-1;
|
||||||
|
|
||||||
$file = file($irpg_db);
|
$file = file($irpg_db);
|
||||||
unset($file[0]);
|
unset($file[0]);
|
||||||
|
|
||||||
foreach ($file as $line) {
|
foreach ($file as $line) {
|
||||||
list($username,,,,,,,,,,$x,$y) = explode("\t",trim($line));
|
list($username,,,,,,,,,,$x,$y) = explode("\t",trim($line));
|
||||||
if ($username == $user) {
|
if ($username == $user) {
|
||||||
@@ -39,7 +38,6 @@
|
|||||||
imageColorTransparent($map,$magenta);
|
imageColorTransparent($map,$magenta);
|
||||||
$brown = imagecolorallocate($map, 102, 51, 0);
|
$brown = imagecolorallocate($map, 102, 51, 0);
|
||||||
$parchment = imagecolorallocate($map, 255, 255, 204);
|
$parchment = imagecolorallocate($map, 255, 255, 204);
|
||||||
|
|
||||||
// Avoid drawing a brown dot on a brown area
|
// Avoid drawing a brown dot on a brown area
|
||||||
$rgb = imageColorAt($map, $x, $y);
|
$rgb = imageColorAt($map, $x, $y);
|
||||||
if ($rgb > 0) { // $rgb is 0 on our parchment-colored areas
|
if ($rgb > 0) { // $rgb is 0 on our parchment-colored areas
|
||||||
@@ -54,6 +52,7 @@
|
|||||||
// text itself
|
// text itself
|
||||||
imageString($map,5,$stringx+7+($width/2),$stringy-($height/2)-1,$user,$parchment);
|
imageString($map,5,$stringx+7+($width/2),$stringy-($height/2)-1,$user,$parchment);
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Content-type: image/png");
|
header("Content-type: image/png");
|
||||||
imagePNG($map);
|
imagePNG($map);
|
||||||
imageDestroy($map);
|
imageDestroy($map);
|
||||||
@@ -1,15 +1,15 @@
|
|||||||
<?
|
<?php
|
||||||
include("config.php");
|
include("config.php");
|
||||||
$file = fopen($irpg_db,"r");
|
|
||||||
fgets($file,1024);
|
|
||||||
|
|
||||||
session_start(); // sessions to generate only one map / person / 20s
|
// use sessions to generate only one map / person / 20s
|
||||||
|
session_start();
|
||||||
if (isset($_SESSION['time']) && time()-$_SESSION['time'] < 20) {
|
if (isset($_SESSION['time']) && time()-$_SESSION['time'] < 20) {
|
||||||
header("Location: maperror.png");
|
header("Location: maperror.png");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
$_SESSION['time']=time();
|
$_SESSION['time']=time();
|
||||||
$file = fopen($irpg_qfile,"r");
|
|
||||||
|
$file = fopen($irpg_qfile,"r");
|
||||||
$type=0;
|
$type=0;
|
||||||
while ($line=fgets($file,1024)) {
|
while ($line=fgets($file,1024)) {
|
||||||
$arg = explode(" ",trim($line));
|
$arg = explode(" ",trim($line));
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
<?
|
<?php
|
||||||
include("config.php");
|
include("config.php");
|
||||||
$file = fopen($irpg_db,"r");
|
|
||||||
fgets($file);
|
|
||||||
|
|
||||||
session_start(); // sessions to generate only one map / person / 20s
|
// use sessions to generate only one map / person / 20s
|
||||||
|
session_start();
|
||||||
if (isset($_SESSION['time']) && time()-$_SESSION['time'] < 20) {
|
if (isset($_SESSION['time']) && time()-$_SESSION['time'] < 20) {
|
||||||
header("Location: maperror.png");
|
header("Location: maperror.png");
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
$_SESSION['time']=time();
|
$_SESSION['time']=time();
|
||||||
|
|
||||||
|
$file = fopen($irpg_db,"r");
|
||||||
|
fgets($file);
|
||||||
$map = imageCreate(500,500);
|
$map = imageCreate(500,500);
|
||||||
$magenta = ImageColorAllocate($map, 255, 0, 255);
|
$magenta = ImageColorAllocate($map, 255, 0, 255);
|
||||||
$blue = imageColorAllocate($map, 0, 128, 255);
|
$blue = imageColorAllocate($map, 0, 128, 255);
|
||||||
@@ -20,6 +21,7 @@
|
|||||||
if ($online == 1) imageFilledEllipse($map, $x, $y, 3, 3, $blue);
|
if ($online == 1) imageFilledEllipse($map, $x, $y, 3, 3, $blue);
|
||||||
else imageFilledEllipse($map, $x, $y, 3, 3, $red);
|
else imageFilledEllipse($map, $x, $y, 3, 3, $red);
|
||||||
}
|
}
|
||||||
|
|
||||||
header("Content-type: image/png");
|
header("Content-type: image/png");
|
||||||
imagePNG($map);
|
imagePNG($map);
|
||||||
imageDestroy($map);
|
imageDestroy($map);
|
||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
@@ -1,10 +1,10 @@
|
|||||||
<?
|
<?php
|
||||||
include("config.php");
|
include("config.php");
|
||||||
include("commonfunctions.php");
|
include("commonfunctions.php");
|
||||||
$irpg_page_title = "Player Info";
|
$irpg_page_title = "Players";
|
||||||
|
$irpg_page_desc = "IdleRPG Players";
|
||||||
include("header.php");
|
include("header.php");
|
||||||
?>
|
?>
|
||||||
|
|
||||||
<h1>Players</h1>
|
<h1>Players</h1>
|
||||||
<h2>Pick a player to view</h2>
|
<h2>Pick a player to view</h2>
|
||||||
<p class="small">[gray=offline]</p>
|
<p class="small">[gray=offline]</p>
|
||||||
@@ -15,23 +15,20 @@
|
|||||||
usort($file, 'cmp_level_desc');
|
usort($file, 'cmp_level_desc');
|
||||||
foreach ($file as $line) {
|
foreach ($file as $line) {
|
||||||
list($user,,,$level,$class,$secs,,,$online) = explode("\t",trim($line));
|
list($user,,,$level,$class,$secs,,,$online) = explode("\t",trim($line));
|
||||||
|
|
||||||
$class = htmlentities($class);
|
$class = htmlentities($class);
|
||||||
$next_level = duration($secs);
|
$next_level = duration($secs);
|
||||||
|
echo " <li".(!$online?" class=\"offline\"":"")."><a".
|
||||||
print " <li".(!$online?" class=\"offline\"":"")."><a".
|
(!$online?" class=\"offline\"":"").
|
||||||
(!$online?" class=\"offline\"":"").
|
" href=\"playerview.php?player=".urlencode($user).
|
||||||
" href=\"playerview.php?player=".urlencode($user).
|
"\">".htmlentities($user).
|
||||||
"\">".htmlentities($user).
|
"</a>, the level $level $class. Next level in $next_level.</li>\n";
|
||||||
"</a>, the level $level $class. Next level in $next_level.</li>\n";
|
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</ol>
|
</ol>
|
||||||
<p>For a script to view player stats from a terminal, try <a
|
<p>For a script to view player stats from a terminal, try
|
||||||
href="idlerpg-adv.txt">this</a> perl script by
|
<a href="idlerpg-adv.txt">this</a> perl script by
|
||||||
<a href="mailto:daxxar@mental.mine.nu">daxxar</a>.</p>
|
<a href="mailto:daxxar@mental.mine.nu">daxxar</a>.</p>
|
||||||
|
|
||||||
<p>See player stats in <a href="db.php">table format</a>.</p>
|
<p>See player stats in <a href="db.php">table format</a>.</p>
|
||||||
|
<?php
|
||||||
<?include("footer.php")?>
|
include("footer.php");
|
||||||
|
?>
|
||||||
@@ -1,18 +1,15 @@
|
|||||||
<?php
|
<?php
|
||||||
include("config.php");
|
include("config.php");
|
||||||
|
|
||||||
$_GET['player'] = substr($_GET['player'],0,30);
|
|
||||||
|
|
||||||
/* Determine if a Player was entered. If not, redirect. */
|
/* Determine if a Player was entered. If not, redirect. */
|
||||||
if ($_GET['player']=="") header('Location: http://'.$_SERVER['SERVER_NAME'].
|
$_GET['player'] = substr($_GET['player'],0,30);
|
||||||
($_SERVER['SERVER_PORT']!=80?':'.$_SERVER['SERVER_PORT']:'').$BASEURL.
|
if ($_GET['player']=="") header('Location: '.$irpg_base_dir.'players.php');
|
||||||
'players.php');
|
|
||||||
|
|
||||||
$irpg_page_title = "Player Info: " . htmlentities($_GET['player']);
|
|
||||||
$showmap = $_GET['showmap'];
|
|
||||||
|
|
||||||
include("header.php");
|
|
||||||
include("commonfunctions.php");
|
include("commonfunctions.php");
|
||||||
|
$irpg_page_title = "Player Info: " . htmlentities($_GET['player']);
|
||||||
|
$irpg_page_desc = "IdleRPG Player Info";
|
||||||
|
$showmap = $_GET['showmap'];
|
||||||
|
include("header.php");
|
||||||
echo "<h1>Player Info</h1>";
|
echo "<h1>Player Info</h1>";
|
||||||
$file = fopen($irpg_db,"r");
|
$file = fopen($irpg_db,"r");
|
||||||
fgets($file,1024); // skip top comment
|
fgets($file,1024); // skip top comment
|
||||||
@@ -101,7 +98,6 @@
|
|||||||
" </p>".
|
" </p>".
|
||||||
" <h2>Penalties</h2>\n".
|
" <h2>Penalties</h2>\n".
|
||||||
" <p>\n";
|
" <p>\n";
|
||||||
|
|
||||||
ksort($pen);
|
ksort($pen);
|
||||||
$sum = 0;
|
$sum = 0;
|
||||||
foreach ($pen as $key => $val) {
|
foreach ($pen as $key => $val) {
|
||||||
@@ -109,7 +105,6 @@
|
|||||||
$sum += $val;
|
$sum += $val;
|
||||||
}
|
}
|
||||||
echo " <br />\n total: ".duration($sum)."</p>\n";
|
echo " <br />\n total: ".duration($sum)."</p>\n";
|
||||||
|
|
||||||
$file = fopen($irpg_mod,"r");
|
$file = fopen($irpg_mod,"r");
|
||||||
$temp = array();
|
$temp = array();
|
||||||
while ($line=fgets($file,1024)) {
|
while ($line=fgets($file,1024)) {
|
||||||
@@ -124,9 +119,9 @@
|
|||||||
}
|
}
|
||||||
fclose($file);
|
fclose($file);
|
||||||
if (!is_null($temp) && count($temp)) {
|
if (!is_null($temp) && count($temp)) {
|
||||||
echo('<h2>');
|
echo "<h2>";
|
||||||
echo $_GET['allmods']!=1?"Recent ":"";
|
echo $_GET['allmods']!=1?"Recent ":"";
|
||||||
echo('Character Modifiers</h2><p>');
|
echo "Character Modifiers</h2><p>";
|
||||||
if ($_GET['allmods'] == 1 || count($temp) < 6) {
|
if ($_GET['allmods'] == 1 || count($temp) < 6) {
|
||||||
foreach ($temp as $line) {
|
foreach ($temp as $line) {
|
||||||
$line=htmlentities(trim($line));
|
$line=htmlentities(trim($line));
|
||||||
@@ -144,13 +139,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($_GET['allmods'] != 1 && count($temp) > 5) {
|
if ($_GET['allmods'] != 1 && count($temp) > 5) {
|
||||||
?>
|
echo " <br />\n".
|
||||||
<br />
|
" [<a href=\"".$_SERVER['PHP_SELF']."?player=".urlencode($user)."&allmods=1\">View all Character Modifiers</a> (".count($temp).")]\n".
|
||||||
[<a href="<?php echo $_SERVER['PHP_SELF']."?player=".urlencode($user);?>&allmods=1">View all Character Modifiers</a> (<?=count($temp)?>)]
|
" </p>\n";
|
||||||
</p>
|
|
||||||
<?php
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
include("footer.php");
|
include("footer.php");
|
||||||
?>
|
?>
|
||||||
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
<?php
|
<?php
|
||||||
include("config.php");
|
include("config.php");
|
||||||
|
include("commonfunctions.php");
|
||||||
$irpg_page_title = "Quest Info";
|
$irpg_page_title = "Quest Info";
|
||||||
|
$irpg_page_desc = "IdleRPG Quest Info";
|
||||||
include("header.php");
|
include("header.php");
|
||||||
echo " <h1>Current Quest</h1>\n";
|
echo " <h1>Current Quest</h1>\n";
|
||||||
include("commonfunctions.php");
|
|
||||||
$file = fopen($irpg_qfile,"r");
|
$file = fopen($irpg_qfile,"r");
|
||||||
$type=0;
|
$type=0;
|
||||||
while ($line=fgets($file,1024)) {
|
while ($line=fgets($file,1024)) {
|
||||||
117
irpg-web/rw.css
Normal file
@@ -0,0 +1,117 @@
|
|||||||
|
body {
|
||||||
|
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
|
||||||
|
background-color: #202020;
|
||||||
|
background-image: url(wall.gif);
|
||||||
|
color: #c0c0c0;
|
||||||
|
margin: 10px;
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 { margin-bottom: 0px; margin-top: 0px; }
|
||||||
|
h2 { margin-bottom: 0px; }
|
||||||
|
|
||||||
|
p.small { margin: 0px; font-size: smaller; }
|
||||||
|
|
||||||
|
a { text-decoration: none; color: #FF4040; }
|
||||||
|
a:hover { text-decoration: underline; color: #FF8080; }
|
||||||
|
|
||||||
|
div.head {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
text-align: left;
|
||||||
|
width: 100%;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
background: #151515;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.menu {
|
||||||
|
width: 120px;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
background: #151515;
|
||||||
|
}
|
||||||
|
div#menu a.home { color: #c0c0c0; background: #202020; border: 1px solid #c0c0c0; }
|
||||||
|
div#menu a.home:hover { background: #202020; border: 1px solid #c0c0c0; }
|
||||||
|
div#menu a {
|
||||||
|
text-align: center;
|
||||||
|
width: 118px;
|
||||||
|
margin: 0px;
|
||||||
|
display: block;
|
||||||
|
border: 1px solid #c0c0c0
|
||||||
|
}
|
||||||
|
|
||||||
|
div#menu a:hover { border: 1px solid #c0c0c0; background: #202020; text-decoration: none; }
|
||||||
|
|
||||||
|
div.content {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
margin-left: 130px;
|
||||||
|
margin-top: 0px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #202020;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.footer {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
margin-left: 130px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding: 10px;
|
||||||
|
background: #202020;
|
||||||
|
text-align: center
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table.uniques {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
padding: 5px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.uniques td {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.penalty {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
padding: 5px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
table.penalty th {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
table.penalty td {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Styles for the userlist */
|
||||||
|
li.online { font-weight: bold; }
|
||||||
|
li.offline { color: #c0c0c0; }
|
||||||
|
a.offline { color: #707070; }
|
||||||
|
#map {
|
||||||
|
width: 500px;
|
||||||
|
height: 500px;
|
||||||
|
background-image: url(newmap.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table.forum {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
table-layout: fixed;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.forum td,tr,caption,thead,tfoot,th {
|
||||||
|
padding-left: 10px;
|
||||||
|
padding-right: 10px;
|
||||||
|
}
|
||||||
|
.tdblue { background-color: #ffffdf; }
|
||||||
|
.tdgray { background-color: #eeeee0; }
|
||||||
|
.tdred {
|
||||||
|
border: 1px solid red;
|
||||||
|
background-color: #202020;
|
||||||
|
}
|
||||||
|
.smallest {
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 829 B After Width: | Height: | Size: 829 B |
|
Before Width: | Height: | Size: 88 B After Width: | Height: | Size: 88 B |
BIN
irpg-web/wall.gif
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
@@ -1,6 +1,7 @@
|
|||||||
<?
|
<?php
|
||||||
include("config.php");
|
include("config.php");
|
||||||
$irpg_page_title = "World Map";
|
$irpg_page_title = "World Map";
|
||||||
|
$irpg_page_desc = "IdleRPG World Map";
|
||||||
include("header.php");
|
include("header.php");
|
||||||
?>
|
?>
|
||||||
|
|
||||||
@@ -11,12 +12,12 @@
|
|||||||
<div id="map">
|
<div id="map">
|
||||||
<img src="makeworldmap.php" alt="IdleRPG World Map" title="IdleRPG World Map" usemap="#world" border="0" />
|
<img src="makeworldmap.php" alt="IdleRPG World Map" title="IdleRPG World Map" usemap="#world" border="0" />
|
||||||
<map id="world" name="world">
|
<map id="world" name="world">
|
||||||
<?
|
<?php
|
||||||
$file = fopen($irpg_db,"r");
|
$file = fopen($irpg_db,"r");
|
||||||
fgets($file);
|
fgets($file);
|
||||||
while($location=fgets($file)) {
|
while($location=fgets($file)) {
|
||||||
list($who,,,,,,,,,,$x,$y) = explode("\t",trim($location));
|
list($who,,,,,,,,,,$x,$y) = explode("\t",trim($location));
|
||||||
print " <area shape=\"circle\" coords=\"".$x.",".$y.",4\" alt=\"".htmlentities($who).
|
echo " <area shape=\"circle\" coords=\"".$x.",".$y.",4\" alt=\"".htmlentities($who).
|
||||||
"\" href=\"playerview.php?player=".urlencode($who)."\" title=\"".htmlentities($who)."\" />\n";
|
"\" href=\"playerview.php?player=".urlencode($who)."\" title=\"".htmlentities($who)."\" />\n";
|
||||||
}
|
}
|
||||||
fclose($file);
|
fclose($file);
|
||||||
@@ -24,4 +25,6 @@
|
|||||||
</map>
|
</map>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<?include("footer.php");?>
|
<?php
|
||||||
|
include("footer.php");
|
||||||
|
?>
|
||||||
@@ -1,20 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
header("Content-Type: text/xml");
|
header("Content-Type: text/xml");
|
||||||
header("Pragma: no-cache");
|
header("Pragma: no-cache");
|
||||||
|
|
||||||
include("config.php");
|
include("config.php");
|
||||||
|
|
||||||
$_GET['player'] = substr($_GET['player'],0,30);
|
|
||||||
|
|
||||||
/* Determine if a Player was entered. If not, redirect. */
|
/* Determine if a Player was entered. If not, redirect. */
|
||||||
if ($_GET['player']=="") header('Location: http://'.$_SERVER['SERVER_NAME'].
|
$_GET['player'] = substr($_GET['player'],0,30);
|
||||||
($_SERVER['SERVER_PORT']!=80?':'.$_SERVER['SERVER_PORT']:'').$BASEURL.
|
if ($_GET['player']=="") header('Location: '.$irpg_base_dir.'players.php');
|
||||||
'players.php');
|
|
||||||
|
|
||||||
$file = fopen($irpg_db,"r");
|
$file = fopen($irpg_db,"r");
|
||||||
fgets($file,1024); // skip top comment
|
fgets($file,1024); // skip top comment
|
||||||
|
|
||||||
while ($line=fgets($file,1024)) {
|
while ($line=fgets($file,1024)) {
|
||||||
if (substr($line,0,strlen($_GET['player'])+1) == $_GET['player']."\t") {
|
if (substr($line,0,strlen($_GET['player'])+1) == $_GET['player']."\t") {
|
||||||
list($user,,$isadmin,$level,$class,$secs,,$uhost,$online,$idled,
|
list($user,,$isadmin,$level,$class,$secs,,$uhost,$online,$idled,
|
||||||
@@ -48,17 +42,17 @@
|
|||||||
?>
|
?>
|
||||||
|
|
||||||
<player>
|
<player>
|
||||||
<username><?php print $user?></username>
|
<username><?php echo $user; ?></username>
|
||||||
<isadmin><?php print $isadmin?></isadmin>
|
<isadmin><?php echo $isadmin; ?></isadmin>
|
||||||
<level><?php print $level?></level>
|
<level><?php echo $level; ?></level>
|
||||||
<class><?php print $class?></class>
|
<class><?php echo $class; ?></class>
|
||||||
<ttl><?php print $secs?></ttl>
|
<ttl><?php echo $secs; ?></ttl>
|
||||||
<userhost><?php print $uhost?></userhost>
|
<userhost><?php echo $uhost; ?></userhost>
|
||||||
<online><?php print $online?></online>
|
<online><?php echo $online; ?></online>
|
||||||
<totalidled><?php print $idled?></totalidled>
|
<totalidled><?php echo $idled; ?></totalidled>
|
||||||
<xpos><?php print $x?></xpos>
|
<xpos><?php echo $x; ?></xpos>
|
||||||
<ypos><?php print $y?></ypos>
|
<ypos><?php echo $y; ?></ypos>
|
||||||
<alignment><?php print $alignment?></alignment>
|
<alignment><?php echo $alignment; ?></alignment>
|
||||||
<penalties>
|
<penalties>
|
||||||
<?php
|
<?php
|
||||||
$sum=0;
|
$sum=0;
|
||||||
42
irpg/README
@@ -1,42 +0,0 @@
|
|||||||
------------------------------------------
|
|
||||||
IRPG Website Code README v1.1 (2004-06-27)
|
|
||||||
------------------------------------------
|
|
||||||
|
|
||||||
-----------
|
|
||||||
Notes
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Homepage: http://idlerpg.net
|
|
||||||
License : Public Domain
|
|
||||||
|
|
||||||
-----------
|
|
||||||
Versions
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Site: v0.5 [current/changes courtesy of res0], Released July 17th, 2004.
|
|
||||||
Bot : v3.1.2 [current], Released June 6th, 2004.
|
|
||||||
|
|
||||||
------------
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
1. Make sure you have the bot functional and running.
|
|
||||||
2. Copy all the files here to your public_html or some folder.
|
|
||||||
3. Edit config.php with your favorite editor.
|
|
||||||
4. chmod 644 * && chmod 666 hits.db
|
|
||||||
5. If you change the default settings in the IRPG bot (for example, if you turn
|
|
||||||
off the option to write quest info to file, you'll have to manually edit
|
|
||||||
some scripts to take this into account. If you disable the INFO command,
|
|
||||||
you might want to remove it from the index.php page.
|
|
||||||
6. Some code in this package requires that your system have GD 2.0+ (or have it
|
|
||||||
enabled in your php.ini, on Win32). If you don't want this functionality to
|
|
||||||
be available, edit the script playerview.php to remove the use of the map
|
|
||||||
and header.php to remove the links to the world map and the quest info page.
|
|
||||||
You can also delete the worldmap.php, makeworldmap.php, makemap.php,
|
|
||||||
quest.php, and makequestmap.php scripts.
|
|
||||||
7. Edit the website ANY WAY you see fit. You don't have to keep all of the links
|
|
||||||
to me, I just thought they might be useful or interesting to users :^)
|
|
||||||
8. The best way to receive support for these scripts is to post to the Help
|
|
||||||
section of the forum, http://idlerpg.net/forum.php, not via e-mail or IRC.
|
|
||||||
If you notice a bug, however, you may use any method to contact me.
|
|
||||||
Thanks :^)
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
$admin_email="you@host.com";
|
|
||||||
$admin_nick="HiASL";
|
|
||||||
|
|
||||||
// nickname of your bot
|
|
||||||
$irpg_bot="bot";
|
|
||||||
|
|
||||||
// your game's server
|
|
||||||
$irpg_network="irc.mynet.org";
|
|
||||||
|
|
||||||
// your game's channel
|
|
||||||
$irpg_chan="#G7";
|
|
||||||
|
|
||||||
// full or relative pathname to the DBs:
|
|
||||||
|
|
||||||
// character database
|
|
||||||
$irpg_db="/home/jotun/irpg.db";
|
|
||||||
|
|
||||||
// time modifiers file
|
|
||||||
$irpg_mod="/home/jotun/modifiers.txt";
|
|
||||||
|
|
||||||
// active quest info file
|
|
||||||
$irpg_qfile="/home/jotun/questinfo.txt";
|
|
||||||
|
|
||||||
// image to use for the top logo
|
|
||||||
$irpg_logo="idlerpg.png";
|
|
||||||
|
|
||||||
// directory in which your site is located from the root directory. my site
|
|
||||||
// is http://jotun.ultrazone.org/g7/, so it's "/g7/"
|
|
||||||
$BASEURL="/g7/";
|
|
||||||
|
|
||||||
// width-wise dimension of your map file
|
|
||||||
$mapx = 500;
|
|
||||||
|
|
||||||
// length-wise dimension of your map file
|
|
||||||
$mapy = 500;
|
|
||||||
|
|
||||||
?>
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
include("config.php");
|
|
||||||
|
|
||||||
$irpg_page_title = "Contact";
|
|
||||||
|
|
||||||
include("header.php");
|
|
||||||
|
|
||||||
echo "<h1>Contact</h1>";
|
|
||||||
if ($_POST['from'] && $_POST['text']) {
|
|
||||||
mail($admin_email,"IRPG: ".$_POST['from'],
|
|
||||||
"Name: ".$_POST['name']."\nE-mail: ".$_POST['from']."\n\n".
|
|
||||||
$_POST['text'],"From: ".$_POST['from']."\r\n");
|
|
||||||
echo(' <blockquote>Thanks for your submission.</blockquote>');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
echo('
|
|
||||||
<form method="post" action="contact.php">
|
|
||||||
<table border="0">
|
|
||||||
<tr>
|
|
||||||
<th align="left"><label for="from">Your e-mail address</label>:</th>
|
|
||||||
<td align="right">
|
|
||||||
<input type="text" size="20" maxlength="50" name="from" id="from" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th align="left"><label for="name">Your name</label>:</th>
|
|
||||||
<td align="right">
|
|
||||||
<input type="text" size="20" maxlength="50" name="name" id="name" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2">
|
|
||||||
<textarea name="text" rows="6" cols="44"></textarea><br />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="2" align="right">
|
|
||||||
<input type="submit" value="Send" />
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</form>
|
|
||||||
');
|
|
||||||
}
|
|
||||||
include("footer.php");
|
|
||||||
?>
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
</div>
|
|
||||||
<div class="footer">
|
|
||||||
<p class="small">
|
|
||||||
Questions? Comments? Suggestions? Bugs? Naked pics?
|
|
||||||
<a href="contact.php"><?php print $admin_email?></a> or <?php print $admin_nick?>@IRC.
|
|
||||||
<?php
|
|
||||||
$hits = file("hits.db");
|
|
||||||
$fp = fopen("hits.db", "w");
|
|
||||||
$thispage = explode("/",$_SERVER['PHP_SELF']);
|
|
||||||
$thispage = array_pop($thispage);
|
|
||||||
if ($fp == false) {
|
|
||||||
echo "Error: could not open file hits.db.";
|
|
||||||
}
|
|
||||||
foreach ($hits as $line) {
|
|
||||||
list($page,$numhits,$date) = explode("\t",trim($line));
|
|
||||||
if ($page == $thispage) {
|
|
||||||
++$numhits;
|
|
||||||
echo " $numhits hits since $date";
|
|
||||||
$found = 1;
|
|
||||||
}
|
|
||||||
if ($fp) {
|
|
||||||
fwrite($fp,"$page\t$numhits\t$date\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!$found && $fp) {
|
|
||||||
echo " 1 hit since ".date("M j, Y",time());
|
|
||||||
fwrite($fp,$thispage."\t1\t".date("M j, Y",time())."\n");
|
|
||||||
}
|
|
||||||
fclose($fp);
|
|
||||||
?>
|
|
||||||
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Strict//EN"
|
|
||||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title><?echo $irpg_chan;?> Idle RPG: <?echo $irpg_page_title;?></title>
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
||||||
<link rel="stylesheet" type="text/css" href="g7.css" />
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<!-- Idle RPG Logo -->
|
|
||||||
|
|
||||||
<div class="head">
|
|
||||||
<?php
|
|
||||||
echo(' <img src="'. $irpg_logo .'" alt="'. $irpg_chan .' Idle RPG" title="'. $irpg_chan .' Idle RPG" width="338" height="115" />');
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="menu" class="menu">
|
|
||||||
|
|
||||||
<?php
|
|
||||||
$topbarurl = array(
|
|
||||||
'Game Info' => $BASEURL . 'index.php',
|
|
||||||
'Player Info' => $BASEURL . 'players.php',
|
|
||||||
'Contact' => $BASEURL . 'contact.php',
|
|
||||||
'Source' => 'http://idlerpg.net/source.php',
|
|
||||||
'Other IRPGs' => 'http://idlerpg.net/others.php',
|
|
||||||
'Site Source' => 'http://idlerpg.net/sitesource.php',
|
|
||||||
'World Map' => $BASEURL . 'worldmap.php',
|
|
||||||
'Quest Info' => $BASEURL . 'quest.php',
|
|
||||||
'Forum' => 'http://idlerpg.net/forum.php',
|
|
||||||
'moo.' => 'http://cowcult.org',
|
|
||||||
);
|
|
||||||
|
|
||||||
foreach ($topbarurl as $key => $value) {
|
|
||||||
if ($topbarurl[$key] == $_SERVER['PHP_SELF']) {
|
|
||||||
echo " <a class=\"home\" href=\"$value\">$key</a>\n";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
echo " <a href=\"$value\">$key</a>\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
16
irpg/hits.db
@@ -1,16 +0,0 @@
|
|||||||
contact.php 3992 Apr 22, 2003
|
|
||||||
db.php 5869 Jun 13, 2003
|
|
||||||
index.php 66845 Apr 22, 2003
|
|
||||||
playerview.php 144029 Apr 5, 2004
|
|
||||||
players.php 51366 Apr 5, 2004
|
|
||||||
source.php 13036 Apr 5, 2004
|
|
||||||
sitesource.php 7956 Apr 5, 2004
|
|
||||||
others.php 13649 Apr 5, 2004
|
|
||||||
donate.php 1333 Apr 5, 2004
|
|
||||||
donated.php 4 Apr 6, 2004
|
|
||||||
forum.php 1799 Jul 13, 2004
|
|
||||||
quest.php 242 Jul 13, 2004
|
|
||||||
worldmap.php 235 Jul 13, 2004
|
|
||||||
1 Jul 15, 2004
|
|
||||||
g7.css 1 Jul 15, 2004
|
|
||||||
idlerpg.png 1 Jul 15, 2004
|
|
||||||
BIN
screenshot1.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
screenshot2.png
Normal file
|
After Width: | Height: | Size: 78 KiB |