This is a historic page, please remove the {{historic}} tag if you plan to revive it.
For C coders[]
Let's say you wish to add a turn-started signal with two arguments: turn number and year number.
You need to do this to add a new signal type; in server/scripting/script_signal.c append to signals_create:
script_signal_create('turn-started', 2, API_TYPE_INT, API_TYPE_INT);
Now you need to emit the signal in the proper place in the server/ code:
script_signal_emit('turn-started', 2, API_TYPE_INT, turn, API_TYPE_INT, year);
That's it!
Hint: See server/scripting/script_signal.h for a complete list of possible argument types.
For Lua scripters[]
Let's say you want to trigger a message action when a turn starts...
Open data/default/script.lua.
Add this to the main body of the script:
signal.connect('turn-started', 'my_callback')
Then add the my_callback function:
function my_callback(turn, year) notify.all('New Turn!') end
Now, let's say you wanted a more complex notify with internationalization markup and everything:
function my_callback(turn, year) notify.event(nil, nil, E.DIPLOMACY, _('New Turn %d, year %d!'), turn, year) end
Hint: You may want to see the Events Reference Manual for more info.