From The Mana World
Line 1: Line 1:
This proposal is to enable npc creation from Tiled.
This proposal is to enable npc creation from Tiled.
Should not be used for floating npcs (no map).
Should not be used for floating npcs (no map).
For the examples below we will use the map 009-1 and position 25, 25;


= Usage =
= Usage =
For the examples below we will use the map 009-1 and position 25, 25.
== Basic npc ==
== Basic npc ==
Object type: NPC<br>
Object type: NPC<br>

Revision as of 00:06, 18 March 2015

This proposal is to enable npc creation from Tiled. Should not be used for floating npcs (no map).

Usage

For the examples below we will use the map 009-1 and position 25, 25.

Basic npc

Object type: NPC
Object name: FooBar#Baz

Property Value
callfunc Qux

Gives:

009-1,25,25,0|script|FooBar#Baz|127
{
    set @npcname$, "FooBar";
    callfunc "Qux";
    end;
}

That's nice but the NPC does not have a visible sprite, it defaults to 127. Let's add a sprite.

Adding a sprite

Object type: NPC
Object name: FooBar#Baz

Property Value
sprite 161
callfunc Qux

Gives:

009-1,25,25,0|script|FooBar#Baz|161
{
    set @npcname$, "FooBar";
    callfunc "Qux";
    end;
}

The "sprite" property is non-mandatory and defaults to 127 when not set.

Setting the direction

Object type: NPC
Object name: FooBar#Baz

Property Value
direction 3
sprite 161
callfunc Qux

Gives:

009-1,25,25,3|script|FooBar#Baz|161
{
    set @npcname$, "FooBar";
    callfunc "Qux";
    end;
}

Setting as debug npc

Object type: NPC
Object name: FooBar#Baz

Property Value
debug true
direction 3
sprite 161
callfunc Qux

Gives:

009-1,25,25,3|script|FooBar#Baz|161
{
    set @npcname$, "FooBar";
    callfunc "Qux";
    end;
OnInit:
    if(DEBUG) end;
    disablenpc "FooBar#Baz";
    end;
}

Adding a trigger area

Object type: NPC
Object name: FooBar#Baz

Property Value
trigger 2,4
debug true
direction 3
sprite 161
callfunc Qux

Gives:

009-1,25,25,3|script|FooBar#Baz|161,2,4
{
    end;
OnTouch:
    set @npcname$, "FooBar";
    callfunc "Qux";
    end;
OnInit:
    if(DEBUG) end;
    disablenpc "FooBar#Baz";
    end;
}

Adding custom variables

Object type: NPC
Object name: FooBar#Baz

Property Value
@foo 19
@bar$ baz
trigger 2,4
debug true
direction 3
sprite 161
callfunc Qux

Gives:

009-1,25,25,3|script|FooBar#Baz|161,2,4
{
    end;
OnTouch:
    set @foo, 19;
    set @bar$, "baz";
    set @npcname$, "FooBar";
    callfunc "Qux";
    end;
OnInit:
    if(DEBUG) end;
    disablenpc "FooBar#Baz";
    end;
}

Any property starting with @ is treated as a custom variable. Only temporary variables (@) can be set through NPC objects. To set global variables, please manually add a floating NPC.