Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef union ScriptArg {
- unsigned int ui;
- float f;
- int i;
- char *str;
- };
- void _triggerScriptEvent(ScriptArg* Args, int ArgCount, int BitsetPlayer) {
- int Bitset = 0;
- SET_BIT(&Bitset, BitsetPlayer);
- if (Bitset != 0) {
- TRIGGER_SCRIPT_EVENT(1, Args, ArgCount, Bitset);
- }
- }
- void ToArray(ScriptArg *out, int n, ...) {
- va_list vl;
- va_start(vl, n);
- for (int i = 0; i<n; i++) {
- ScriptArg num = va_arg(vl, ScriptArg);
- out[i] = num;
- }
- va_end(vl);
- }
- #define TriggerScriptEvent(player, nargs, ...) \
- do { \
- ScriptArg *args = (ScriptArg *)calloc(nargs, sizeof(ScriptArg)); \
- ToArray(args, nargs, __VA_ARGS__); \
- _triggerScriptEvent(args, nargs, player); \
- free(args); \
- } \
- while(0);
- Usage:
- int playerIdx = 0;
- TriggerScriptEvent(playerIdx, 3, 0xD8, playerIdx, 10000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement