Fandom

Freeciv

Signal Tutorial

704pages on
this wiki
Add New Page
Talk1 Share

For C coders Edit

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 Edit

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.

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Also on Fandom

Random Wiki