Jump to content

PHP [WIP] Intersect Panel


Nichos69

Recommended Posts

Version française : https://nichos.fr/blog/2


Intersect Panel, what is it?

It is first of all a tool that gives the player using the Intersect engine (By AscensionGameDev) the possibility to connect with the game account. It allows you to list all the characters in the account. For each character, you have the ability to view the inventory, quests (finished or in progress) and variables related to your character.

You also have a ranking system to locate yourself in the server. With regard to the account itself, you can change your email and/or password. And it also displays the rank (Moderator or player).

Administration side: you can view all NPCs (non-player characters), maps, items, banned list and modification of the config.json directly. You are not required (except at installation) to edit the config.json file to modify a value.


How long have I been on it?

Since March 28, 2019 (2 weeks at the time of writing). I try to make big updates once a week. But having another project on the side, I can't guarantee anything.


What's in it?

Here is a short list of available functions:

  • Account and character management
    • Possibility to edit your email and password
    • Allows you to see all the characters in the account
  • An administration panel with:
    • List of maps
    • List of accounts
    • List of bans
    • List of objects
    • Edit config.json
    • List of NPCs
  • The character can see:
    • The inventory (if the object is equipped or not)
    • Quests (with the different steps and if it is finished)
    • Variables (if visible)
    • Location in the map (map name, direction and position)
    • Rank system
  • API

 

What's next?

Here is a small overview of what I have planned to implement. Of course, I have other ideas but I limit myself to that:

In the next version 0.8 :

  • [V0.8] Server management
  • [V0.8] Multilingual support
  • [V0.8] Create a cache for SQL queries (currently too many)

 

In another version:

  • [V0.?] A simple and efficient installer
  • [V0.?] Encyclopedia
  • [V0.?] List of all events
  • [V0.?] API to retrieve events
  • [V0.?] All details and variables of each type (NPCS, Event, Maps,...)
  • [V0.?] Ability to delete/edit/add information in the administration panel
  • [V0.?] The panel adaptable on phones / tablets /....

 

Version 0.7 then?

I update the changelog of the git to see it advance. I am currently at version 0.7 because before, I was not sure of my motivation and my result. But several people encourage me so here is this version.

  • Editing the json config.json in the administration panel
  • Added Copyright Intersect;)
  • Add time to generate the page (in s)
  • Added the number of sql requests made for this page
  • Problem set to retrieve a value in the config.json (Router)
  • Simplification of the database layer
  • Adds more modularity allowing to add databases as much as you want.... It's optional, why? I don't know.
  • Added an Itable interface to create cohesion between each database entity
  • Adding a WebServer class for later (this one is not used yet)
  • Added a ranking system with 2 possible types (level, xp, variable,...) => Warning: The system does not currently create a cache. It sometimes takes a while to calculate everything (depending on the number of players registered in the server)
  • Added documentation for config.json and api

 

What about the source code?

Everything is open source. This is my gitlab: https://gitlab.com/The-Nico26/web-intersect... (Yes, I'm on Gitlab ;) )

 

Attention: the project is at the beginning of its journey! Currently, you need to know yourself in PHP before you can modify the functions. If you have any questions, remarks, suggestions or others, I will write them down and see if it is possible. However, the configuration is explained in the gitlab documentation (Documentation/config folder) allowing you to test the panel on your server.

 

Pictures?

Spoiler

Login :

23945a70ad2c9422887e0769d920f945.png

Account:

c7ed211b7718b5905530b0a9f44a4a78.png

Character:

a80592d527e9196a6e818691600b8afd.png

 

Hoping that I have been able to explain most of the things. There's a first time for everything and for me, applying for a project like this is not easy ^^
I wish you a beautiful day
Nicolas (Nichos69)

Link to comment
Share on other sites

Hello,

Thank you very much for your messages:)

 

@Dashplant: It's okay, I deleted the email

 

@The Bunny Gamer: Text files? it's pure PHP and you need a PHP server to run it (no database is required at the moment). And to configure the panel: you have to create config.json so an example can be found: example-config.json.  I realized that I forgot to update with the latest config.... I will do it this weekend with the update that will come:)

Link to comment
Share on other sites

12 minutes ago, Nichos69 said:

@The Bunny Gamer: Text files? it's pure PHP and you need a PHP server to run it (no database is required at the moment). And to configure the panel: you have to create config.json so an example can be found: example-config.json.  I realized that I forgot to update with the latest config.... I will do it this weekend with the update that will come:)

 

Sorry in English please? :p

Link to comment
Share on other sites

:;p thanks

 

1 hour ago, Nichos69 said:

Oki, I will create a tutorial this week-end ;) But you can to wait version 0.9. Because inside, there will be an installer to simplify everything :D

 

Link to comment
Share on other sites

Version française : https://nichos.fr/blog/3


Version 0.8 has been released with a lot of new features. The main ones are:

  • Adding a cache
  • Translation of the site from several languages
  • Quick installation via console or interface
  • Server management (On/Off)

Version 0.8

Here is all the information about this update:

 

Spoiler

 

  • Adding a cache for all SQL queries
  • Adding a cache for the rank system
  • Added cache durability in the json config.json. This allows the entire cache to be refreshed at a given time interval (default 7200s (equivalent to 2 hours)
  • Added a variable in the config.json to define if the site should use the cache or not
  • Added an optional dependency via dial which is "Linfo". It is used to have the computer hardware of the computer. (The option can be enabled in the config.json)
  • Creating a folder with all the user's templates
  • Creation of the different languages (English and French) and the whole site is translated by this folder (everything in the "language" folder)
  • Deletion of the name in the json config.json for the website. Redundancy between "title" and "name"
  • Tool to install the platform via CLI (console) or GUI Interface
    •  3 options:
      •  Creating a new intersect server with the panel
      • Connection of the local server to the panel (If you have already installed an Intersect server)
      • Remote server connection to the panel (MySQL requirement for both tables (Player and Game)
  • Creation of a "Server" class with all references of the Intersect configuration server and the platform
  • Changing the method for the link to the database and the link to the configuration config.json (App.php)
  • Adding graphics with RAM and processor in the administration page
  • Added Intersect server management (On or Off)
  • [Fix] Displays the url if there is no function
  • [Fix] Status in the API
  • [Fix] The experience was not displayed in the character
  • [Fix] The number of items in the inventory
  • [Fix] Quests are not displayed in the character
  • [Fix] Some information was not check correctly (Check.php)

 

 

What happens next?

Here is the rest of the program:

Version 0.9 with:

  • The events
  • The platform for Linux

Version 0.10 or higher with:

  • The encyclopedia of the whole game
  • The API is rebuilt (with the latest functionality)
  • Shop and Craft
  • Telephone/tablet compatible site

The installation

You have to download either:

    On the console (CLI): https://gitlab.com/The-Nico26/web-intersect/raw/U0_9/install/cli.php
    On the website (GUI): https://gitlab.com/The-Nico26/web-intersect/raw/U0_9/install/gui.php

Then follow the steps indicated by the selected interface

 

Steps:

The steps to follow for installation:
You save one of the two files in the "www" web space (default) and launch
Either by console:

  • php cli.php

Either by interface (in your web browser):

Then you follow the written instructions at each step.

 

Images:

 

Spoiler

Here are some images that represent the creation of the panel:

GUI:
a71a204b2f4c1c0620d2969d7ce83485.png

 

And console (CLI)

:b2727d06a8ce360ee76f2ba6d02969c4.png

 

That all :)

Nicolas (Nichos69)

Link to comment
Share on other sites

Hello,
It's my fault (wanting to simplify certain things...)

 

I resolve bug and the update is :

 

But if you want to see my first answer:

Spoiler

 

All changes are made in the file: config.json

For databases: (id_0 = ID for your server)

  • If your server is in the same computer/server:
    • > servers > "id_0" > "intersect_folder_server" : Check if this is the right location
  • If your server is other computer/server
    • > servers > "id_0" > "config_server" : have 2 configurations : "GameDatabase" and "PlayerDatabase". If not present, it's problem and I resolve this night.

For "500 Error Server: panel"

Check in config.json :

  • > website > path : And the value is equal : "/panel" ?

What is the installation done? CLI or GUI ?
Nicolas

 

 

Edited by Nichos69
Fix bug in my computer
Link to comment
Share on other sites

Version française : https://nichos.fr/blog/4

Hello,

This version 0.9 is minor because it only adds events for the back-end. Several features have been simplified and removed but nothing important. I also solved several problems for the installation by graphical interface or console.


Change:

  • Add Event in backend
  • Add shop and future encyclopedia (not implement yet)
  • Add Jquery
  • Remove json() in entities class
  • Transform class Quest (implement Table)
  • Add Controller method : indexAction for each file
  • Add in class Table blob (type blob for sqlite)
  • [Fix] GUI / CLI installation

Not much but it is the preparation for the next update (0.10) that will have many new features such as the encyclopedia ;)

Here's a little news to say that the project is still alive.

 

Nicolas

Info: Version 0.10 will not arrive right away because there are many functions to code

Link to comment
Share on other sites

Sorry I seriously have absolutely no clue what I'm supposed to do and have struggled for about an hour - please can you provide a step by step tutorial starting from the very start (e.g. downloading PHP even).

 

I've reached the stage where I have the web GUI in front of me but every single input doesn't make sense - for instance one just says "server" which I don't know what to do with. I'm using the SQLite version of intersect. If you could help that'd be greatly appreciated - thanks!!!

 

(I also don't know how to use PHP. Could you convert it into a .exe or even python file?)

Link to comment
Share on other sites

  • 6 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...