ISNOGI [Developmental Discussion]

05/31/2012 09:33 adam_j#61
Quote:
Originally Posted by kingasian View Post
wud dedicate a lot of time and $ if this ish happened.
It is happening. That's what the thread is about..?
05/31/2012 22:52 kingasian#62
Quote:
Originally Posted by adam_j View Post
It is happening. That's what the thread is about..?
Oh...
haha could I join the Skype chat?
06/01/2012 10:18 adam_j#63
Quote:
Originally Posted by kingasian View Post
Oh...
haha could I join the Skype chat?
Join the IRC, and ask whoever's there.
06/07/2012 05:08 Monotoma#64
How do you connect to the IRC chat? I've tried a few times and it won't let me type anything.

Edit:

I joined the IRC but nobody is ever there
06/29/2012 20:41 KMW#65
How did you start to develop this?
In Korea, we believe that pleione engine is not developable.
I am just so curious about the steps you went through
(although i don't know anything about developing.. :(.. )
I just want so badly to develop the old mabi in korea.
These days, mabi ruined with so many updates and changed fighting system.
06/30/2012 00:38 adam_j#66
Quote:
Originally Posted by KMW View Post
How did you start to develop this?
In Korea, we believe that pleione engine is not developable.
I am just so curious about the steps you went through
(although i don't know anything about developing.. :(.. )
I just want so badly to develop the old mabi in korea.
These days, mabi ruined with so many updates and changed fighting system.
Firstly:

[Only registered and activated users can see links. Click Here To Register...]

Secondly, they aren't building on the Pleione engine, they're building a server, which will communicate with the client, so I'm not even sure I understand what you're trying to say there.
09/19/2012 19:20 ghost50505#67
:rtfm:
Quote:
Originally Posted by Kevsprk View Post
This is not a release.

What the hell is ISNOGI?

ISNOGI is the (as of this posting) the most advanced Mabinogi private server in development. Its current incarnation was started in August 2011. I've worked on it off and on as a side project since then.

What is this thread for, then?

It's been boring on this forum for a while, so I'd like to start up some constructive discussion. Plus, I'm sure many people really are looking forward to a private server in the future, as more Nexon branches close down and with the addition of all the updates destructive to the gameplay.

Gimme some more info on the project!

I'm writing it in pure C#. Some people would criticize this, but because of this, the server boasts full compatibility with both Windows and Linux. It uses a MySQL database for saving characters, NPC spawn locations, and everything else.

Currently, the project is about 7,500 lines in total.

Is it JUST you?

Yes. I haven't gotten anyone else to collaborate mostly because I'm a dick when I think things should be done a certain way. I think working with someone would be more of a burden than a blessing.

What works?

Movement, portals, etc. (Basically, you can get around)
NPC Conversations, shops, and (very dynamic) scripting
Items, item scripting
Chat
Lots of fun GM commands
Very, very basic combat

What doesn't (or is incomplete)

Quests and skills (the scripting systems are in place for both of these, however)
Leveling/Exp (will be easy once combat is complete)
Other less important stuff

What are your plans for release?

For obvious reasons, I do not have any plans for release as of now. This will most likely change eventually, or if Nexon stops hosting Mabinogi on all regional servers. For now, I am sticking with small play tests with just people in a few skype groups I'm in that don't annoy the hell out of me.

Some scripting examples?

Here's an example of an NPC script (still very incomplete, but this gives you a rough idea)

Code:
using System;
using MabiScript;
using MabiWorld;

public class TurtleScript : NPCScript
{
	private MabiVertex spawnLocation;
	private int wanderDist = 600;

	public override void OnInitialize()
	{
		SetName("Turtle the Test AI");
		SetRace(10002);
		SetFace(16, 32, 176, 2);
		SetBody((float)0.1, (float)0.7, (float)0.7, (float)0.7);
		SetDirection(121);
		
		SetItem(GetItem(6900, 16, 4535369, 4294967295), 3, 0, 0); // Head
		SetItem(GetItem(4007, 268435490, 0, 1122876), 4, 0, 0); // Hair
		SetItem(GetItem(15168, 0x422878, 0x422878, 0x422878), 5, 0, 0);
		SetItem(GetItem(17012, 0x422878, 0, 0), 7, 0, 0);
		
		spawnLocation = NPC.GetPosition();
		
		setupShop();

		registerScriptEventHandlers();
	}

	private void setupShop()
	{
		AddToShop("[0]TestTab", GetItem(1000, 0, 0, 0));
	}

	private void registerScriptEventHandlers()
	{
		RegisterScriptEventHandler("turtle_testevent", ScriptTestEventHandler);
	}

	public void ScriptTestEventHandler(MabiWorldEntity sender, object args)
	{
		Say("Got test event!");
	}

	public override void OnChatBegin(MabiCreature sourcePlayer, MabiCreature targetNPC)
	{
		SendChatMessage(sourcePlayer, "Yo, I am Turtle the Test AI.<button title ='Shop' keyword='@shop'/><button title ='Wander' keyword='@wander'/><button title ='FIGHT ME!' keyword='@fight'/><button title ='Call test event' keyword='@testevent'/>");
		GetChatResponse(sourcePlayer, "@shop", "@wander", "@fight", "@testevent");
	}

	public override void OnChatResponse(MabiCreature sourcePlayer, MabiCreature targetNPC, string response)
	{
		switch(response)
		{
			case "@shop":
				SendChatMessage(sourcePlayer, "This is my shop!");
				DisplayShop(sourcePlayer);
				break;
			case "@wander":
				SendChatMessage(sourcePlayer, "Idle wandering!");
				IdleWander();
				break;
			case "@fight":
				SendChatMessage(sourcePlayer, "You asked for it!");
				Fight(sourcePlayer);
				break;
			case "@testevent":
				SendChatMessage(sourcePlayer, "Calling test event!");
				CallScriptEvent(NPC, "turtle_testevent", null);
				break;
		}
	}

	public override void OnChatEnd(MabiCreature sourcePlayer, MabiCreature targetNPC)
	{
		Say("Chat ended!");
	}

	public void IdleWander()
	{
		AIStackClear();
		Random random = new Random();
		for (int i = 0; i < 20; i++)
		{
			AIStackAddMove((UInt32)(spawnLocation.X + (random.Next(-1 * wanderDist, wanderDist))), (UInt32)(spawnLocation.Y + (random.Next(-1 * wanderDist, wanderDist))), true);
			AIStackAddWait((UInt32)random.Next(4000, 10000));
		}
		AIStackAddRepeat();
	}

	public void Fight(MabiCreature target)
	{
		AIStackClear();
		AIStackAddNormalAttack(target);
		AIStackAddRepeat();
	}
}
Pics or it didn't happen!

In some (one?) of these pics, I am naked/headless. Ignore that, it was due to a bug that's long been fixed.

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

(I'll add more pics later, I am not currently at home. There's more pics in my signature)

I HAVE AN IDEA FOR THE SERVER!!!

Join the IRC and discuss it. The IRC channel is mentioned below.

Other stuff

If you're working on a private server, I'd love to discuss projects. You can PM me. For everyone else, I made a #ISNOGI channel on the Rizon IRC network. You can use a webclient [Only registered and activated users can see links. Click Here To Register...] to connect. We mostly discuss ideas for the server there. Feel free to ask either on this thread or on the IRC channel any questions you have.
09/22/2012 15:10 Undead_Angel#68
^ stfu and read the damn thread before posting useless bullshit.
09/22/2012 15:40 Kilo511#69
Quote:
Originally Posted by Undead_Angel View Post
^ stfu and read the damn thread before posting useless bullshit.
heres some useful bullshit.
[Only registered and activated users can see links. Click Here To Register...]
10/08/2012 06:03 ass69#70
whats the ip
10/08/2012 07:04 shadowsforu#71
Quote:
Originally Posted by ass69 View Post
whats the ip
127.0.0.1
10/08/2012 09:34 EliteFAGGOT#72
Quote:
Originally Posted by shadowsforu View Post
127.0.0.1
I'm going to ddos the shit out of it.
10/08/2012 12:49 jas161#73
Quote:
Originally Posted by shadowsforu View Post
127.0.0.1
Awesome I'll use that to find out some personal info :bandit:
10/09/2012 00:51 adam_j#74
Quote:
Originally Posted by jas161 View Post
Awesome I'll use that to find out some personal info :bandit:
It'd be hilariously sad if you managed to find nothing out about the owner of that IP.
10/09/2012 02:26 shadowsforu#75
Quote:
Originally Posted by adam_j View Post
It'd be hilariously sad if you managed to find nothing out about the owner of that IP.
Is this like, the non-ironic thread? Because if so, we're horribly off-topic.