Age | Commit message (Collapse) | Author | Files | Lines |
|
It's easier to just talk about world data and to modify it as a whole.
If there is really a need to separate it, a project can still choose to do
that (and in whatever suitable way). There is no need to enforce this
separation or to do it in our example.
Reviewed-by: Erik Schilling
|
|
Just defined an inline function to make talking to the player easier.
Would be nice when NPC scripts could look more like this by default.
Also indented with 4 spaces, which we do in C++ so why not Lua files
(the file had mixed 2 and 4 space indentation before).
|
|
Based on a templated helper class, MapObject references in Lua scripts are now
full user data objects. Using the '__index' member of their metatable, a
library is associated with it so that member functions can be called directly
on the object.
Reviewed-by: Yohann Ferreira
Reviewed-by: Erik Schilling
|
|
The function will cause a global announcement.
If no sender ist set "Server" will be used.
Reviewed-by: Bjorn.
|
|
Those will make the scripters able to get a full view
of the current player's possessions. Use with care.
+ Fixes following Ablu's review.
Resolves: Mana-Mantis #207.
Reviewed-by: Ablu
|
|
the function can now count in the inventory
and/or the player's equipment.
I also fixed the script function and added a use case
in the example map.
+ Fixes after Ablu's review.
+ 2nd fix after Ablu's review: Fix the inventory remove behaviour.
Resolves: Mana-Mantis #288
Reviewed-by: Ablu
|
|
Reviewed-by: o11c, bjorn, Bertram.
|
|
Reviewed-by: Bertram.
|
|
These scripts could trivially share one script state, since the methods
called on them from the server are not overlapping. This does leave them
open to access each other's global variables, but that's the problem
with global variables.
The one remaining global script file name is now configurable, so that
it may also be set to a script in a different scripting language. The
two related script options are:
script_mainFile (default: scripts/main.lua)
script_defaultEngine (default: lua) - renamed from defaultScriptEngine
Reviewed-by: jurkan
Reviewed-by: Yohann Ferreira
|
|
Conflicts:
src/game-server/accountconnection.cpp
|
|
At the moment it is the responsibility of the script to make sure any
references to beings passed into script functions are valid.
This means you can't schedule delayed scripts like the one making
maggots say 'Roaaarrrr!!!', since the being might have been removed
before the script gets executed. In the case of this bug the maggots are
removed by some script code testing 'mana.monster_remove'.
We should of course fix the way actor handles are used in Lua so that
scripts can't end up crashing the server.
Mantis-issue: 384
Reviewed-by: Yohann Ferreira
|
|
|
|
|
|
equipment-fix
Conflicts:
example/serverdata/scripts/maps/desert.lua
|
|
|
|
Made the server handle only one slot type requirement since
it's irrelevant to have more anyway.
Plus, it simplifies the code for both equipping/unequipping.
I also added a dagger to show how equipping/unequipping
is working.
|
|
You now can change the anger of a monster to a being using
mana.monster_change_anger(monster, being, anger)
Resolves: Mana-Mantis #366.
|
|
You now can change the anger of a monster to a being using
mana.monster_change_anger(monster, being, anger)
Resolves: Mana-Mantis #366.
|
|
Resolves: Mana-Mantis #318.
Reviewed-by: Bertram.
|
|
You can now use either the name or the id of the item in the LUA
functions chr_inv_change, monster_create, item_drop.
Part of: Mana-Mantis #318.
Reviewed-by: Bertram.
|
|
I also changed the chatmessage function to chat_message
to follow the coding standard.
|
|
mana.monster_remove(monster) can now be used to remove a monster
from a map.
Resolves: Mana-Mantis #352.
Reviewed-by: Bertram.
|
|
You can now call mana.get_distance(being1, being2) or
mana.get_distance(x1, y1, x2, y2) for calculating distances.
Reviewed-by: Jaxad0127, Bertram.
Resolves: Mana-Mantis #370.
|
|
(trivial change)
|
|
A client can craft something using the @craft command.
The command needs a list of item names and amounts. The gameserver checks
if the character has these items in the inventory and then passes the list
together with the character handle to the lua script function on_craft in
the script file scripts/crafting.lua.
This function can then be used to evaluate if the list is a valid crafting
combination and when this is the case take or give items.
Implemented two example crafting scripts there, one which enforces exact
item order and amount and one which doesn't. Both are disabled per default
and one needs to be enabled by uncommenting a line.
Also gave the player group permission to use the @craft command in
permissions.xml and added two new items (wood and iron) required for the
example crafting combination.
Resolves: #333
Reviewed-by: bcs86, Bertram
|
|
... And one when she's coming back.
Reviewed-by: Jaxad0127.
|
|
The new lua function mana.chr_shake_screen can cause a screen shake
for a single client with variable x-intensity, y-intensity, decay and
duration.
I also added an example script which causes tremors for nearby characters
with intensity and direction relative to a specific point. The function
is not referenced on the example map because it is quite distracting.
|
|
This should do the trick until we have a better time management
system.
This closed issue: Mana-Mantis #205.
|
|
Even when events are inserted before game state update time,
the monsters don't speak since they still don't have an id (-1).
As I thought that reworking the mapcomposite engine for that particular
point was ineffective, here is another working way to make monsters
speak at spawn time by using the schedule_in function with
0.3 second (or 3 ticks).
Resolves: Mana-Mantis #205.
Reviewed-by: Thorbjorn.
|
|
Reviewed-by: Thorbjorn
|
|
|
|
|
|
They're both using a fully working merchant lua function.
Resolves: Mana-mantis #295.
|
|
|
|
The function is named mana.chr_get_gender. It returns 0 for male
and 1 for female. libmana-constants.lua defines the variables
GENDER_MALE and GENDER_FEMALE with these values. Also made the
banker NPC refer to the gender of the player character.
Reviewed-by: Jaxad0127
|
|
|
|
|
|
- Fixed monsters Id.
- Added collision layer to the desert map.
- Added a few simple NPCs on the map (They still need a sprite.)
- Added player and hairstyles sprites files and definition in items.xml.
|
|
I also replaced certain files with newer version, just as the items.xml file.
And I started to split test npcs from the tmwserv repository into reusable
pieces.
Big but trivial.
Part of the Mana-Mantis issue: #231.
|
|
character.
Added script call for getting the cost of a special (recharge only for now)
Deleting specials works server-sided but the client isn't informed about it properly. Specials without recharge cost don't appear for the player. Both of these features require an additional netcode message.
Reviewed-by: Freeyorp
|
|
Reviewed-by: Thorbjorn
|
|
The dummy data is currently mostly empty data though, so still nothing
to see as far as the example content is concerned.
Reviewed-by: Bertram
|