![]() |
|
[Pawn] I need help with Assembly (#emit or __emit) - Printable Version +- open.mp forum (https://forum.open.mp) +-- Forum: SA-MP (https://forum.open.mp/forumdisplay.php?fid=3) +--- Forum: Pawn Scripting (https://forum.open.mp/forumdisplay.php?fid=10) +--- Thread: [Pawn] I need help with Assembly (#emit or __emit) (/showthread.php?tid=2433) |
I need help with Assembly (#emit or __emit) - Otakeiro - 2023-07-26 I want to make a simple hook through the #emit PHP Code: native CallLocalFunction(const funcname[], const format[], {Float,_}:...);
native printf(const output[], {Float,_}:...);
stock __CallLocalFunction(const funcname[], const format[], {Float,_}:...) {
static retval;
if(funcidx(funcname) == -1) {
retval = 0;
printf("Function not defined: %s.\n", funcname);
} else {
if(numargs() == 2) {
retval = CallLocalFunction(funcname, format);
} else {
// "emit" code to call function with args and return value to "retval"
}
}
return retval;
}
If possible comment the code so I can study it RE: I need help with Assembly (#emit or __emit) - N0FeaR - 2024-03-04 Try this PHP Code: native CallLocalFunction(const funcname[], const format[], {Float,_}:...);
native printf(const output[], {Float,_}:...);
stock __CallLocalFunction(const funcname[], const format[], {Float,_}:...) {
static retval;
if (funcidx(funcname) == -1) {
retval = 0;
printf("Function not defined: %s.\n", funcname);
} else {
if (numargs() == 2) {
retval = CallLocalFunction(funcname, format);
} else {
new arguments[128];
formatex(arguments, sizeof(arguments), format);
#emit __emit_function_call funcname arguments
}
}
return retval;
}
public __emit_function_call(const funcname[], arguments[]) {
new Function:func = funcidx(funcname);
new result;
switch (numargs(arguments)) {
case 0: result = CallLocalFunction(funcname); break;
case 1: result = CallLocalFunction(funcname, arguments[0]); break;
case 2: result = CallLocalFunction(funcname, arguments[0], arguments[1]); break;
}
// Store the result
retval = result;
}
|