Ondersteuning toevoegen voor een nieuwe game
Benodigdheden
- Toegang tot een terminal om commando’s als
php -v
uit te voeren en enigzins bekend te zijn met programmeren
Als u Azuriom hebt geïnstalleerd, kunt u de installatie stap overslaan.
Als u Azuriom nooit hebt geïnstalleerd, moet u het eerst installeren. Tijdens de installatie wordt je gevraagd om een spel te kiezen.
U navigeert naar de URL /install/game/custom
. Met dat in gedachten kunt u nu de installatie-instructies volgen.
Nadat Azuriom is geïnstalleerd, kunt u de volgende opdracht in een terminal uitvoeren om een beheerdersgebruiker aan te maken:
php artisan user:create --admin
Opstelling
U kunt de volgende opdracht uitvoeren om de project layout voor uw spel te genereren, met MyNewGame
de naam van uw spel:
php artisan game:create MyNewGame
Azuriom verbinden met een game
Aangepaste database gebruiken
Ga naar plugins/mynewgame/src/Providers/MyNewGameServiceProvider.php
en bewerk het bestand
Onder use Azuriom\Extensions\Plugin\BasePluginServiceProvider;
plak use Illuminate\Support\Facades\DB;
Zoek nu de boot
methode en voeg onder $this->registerUserNavigation();
dit $this->setupDatabaseConnection();
toe
Je kunt nu de functie hieronder plakken net onder de }
van de opstartmethode.
protected function setupDatabaseConnection()
{
$driver = 'mysql'; // Kan ook pgsql, sqlsrv zijn
$config = config('database.connections.'.$driver);
/**
* Om inloggegevens in het .env-bestand te gebruiken, kunt u het configuratiebestand van uw plug-in gebruiken.
* in plugins/mynewgame/config/azuriom_mynewgame.php, ziet u standaard slechts één 'custom_config' sleutel.
* maar je kunt meer toevoegen zoals 'CUSTOM_DB_ADDRESS' => env('CUSTOM_DB_ADDRESS', '127.0.0.1')
*
* Om toegang te krijgen: config('azuriom_mynewgame.CUSTOM_DB_ADDRESS');
*
*/
$config['host'] = config('azuriom_mynewgame.CUSTOM_DB_ADDRESS');
$config['port'] = config('azuriom_mynewgame.CUSTOM_DB_PORT');
$config['username'] = config('azuriom_mynewgame.CUSTOM_DB_USER');
$config['password'] = config('azuriom_mynewgame.CUSTOM_DB_PASSWORD');
$config['database'] = config('azurion_mynewgame.CUSTOM_DB_DATABASE');
config(['database.connections.my-custom-connection' => $config]);
DB::purge();
}
Nu kunt u uw eerste model maken bet behulp van uw game database verbinding. Ga naar plugins/mynewgame/src/Models
,
maak een nieuw bestand Character.php
en voeg de volgende code toe:
<?php
namespace Azuriom\Plugin\MyNewGame\Models;
use Illuminate\Database\Eloquent\Model;
class Character extends Model
{
protected $connection = 'my-custom-connection';
}
Bewerk nu plugins/mynewgame/src/Controllers/Admin/AdminController.php
en onder use Azuriom\Http\Controllers\Controller;
,
voeg use Azuriom\Plugin\MyNewGame\Models\Character;
toe
Vervang dan de functie index
door:
public function index()
{
$characters = Character::paginate();
return view('mynewgame::admin.index', ['characters' => $characters]);
}
Om nu de karakters in je admin-menu te tonen, bewerk je plugins/mynewgame/resources/views/admin/index.blade.php
en vervang je
<p>This is the admin page of your plugin</p>
met:
@foreach($characters as $character)
<p>{{$character->name}}</p> {{-- "name" kan elke eigenschap uit je database zijn --}}
@endforeach
{{ $characters->links() }}
RCON/API gebruiken en/of opdrachten uitvoeren
Ga naar plugins/mynewgame/src/Games/MyNewGameServerBridge.php
en bekijk de inhoud.
Om een voorbeeld uit de echte wereld te hebben, kunt u een kijkje nemen op:
- Dofus Game die een SSL verbinding gebruikt om opdrachten naar de spelserver te versturen.
- Flyff Game die een aangepaste codering gebruikt en bescherming met een wachtwoord. (Het stuurt ook items naar de database als terugvalmechanismen).
Binnen de sendCommands()
methode, moet je afhandelen of een speler in het spel is verbonden of niet en de juiste acties ondernemen
zoals hier in de flyff game.