Fancy defines - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Fancy defines (
/showthread.php?tid=457364)
Fancy defines -
theYiin - 11.08.2013
what is wrong with this code and how to fix it?
Код:
#include <a_samp>
#define ha_%0::%1.%2(%3) (2*%3)
#define lol:%0) ha_%0)
main() {
printf("%i", onConnect(42));
}
onConnect(lol:lol)
{
// return (2*6);
return ha_lol::ha.hi(6); // line 12
}
Код:
input(12) : error 1: expected token: ";", but found "::"
input(12) : error 29: invalid expression, assumed zero
input(12) : error 17: undefined symbol "ha"
input(12) : fatal error 107: too many error messages on one line
Error: The compiler failed. (no error code)
Re: Fancy defines -
Misiur - 11.08.2013
Run pawncc with -l to find out. Those macros are broken though:
pawn Код:
main() {
printf("%i", onConnect(42));
}
onConnect(ha_lol)
{
return ha_lol::ha.hi(6);
}
#e:
Ok, I've found the problem - and it's quite tricky (and I've learned cool things from this).
The code:
pawn Код:
#include <a_samp>
#define ha::%0::%1.%2(%3) (2*%3)
#define lol:%0) ha_%0)
main() {
printf("%i", onConnect(42));
}
onConnect(lol:lol)
{
return ha::lol::ha.hi(6); // line 12
}
http://forum.sa-mp.com/showthread.ph...175#post785175 In that tutorial you can find out how macros are built and stuff, but there is one little error - % is a valid character in macro definition, and you need invalid character to start 2 part of macro.
won't work, because _ is legal character. You have to change _ to some illegal char, like : to make it work.
#e2:
My explanation isn't valid, but results are