Freeciv
Advertisement
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.

Advertisement