int GetParams(cell* params, const char *pArgs, ... ) { va_list vArguments; va_start( vArguments, pArgs ); unsigned long varadr; int paramcount; while( *pArgs ) { if( *pArgs == 'i' ) { paramcount++; varadr = va_arg(vArguments, unsigned long); *(int*)varadr = params[paramcount]; logprintf("paramcount: %i ivar: %i", paramcount, params[paramcount]); } else if (*pArgs == 'f') { paramcount++; float fvar = amx_ctof(params[paramcount]); *(float*)varadr = fvar; logprintf("paramcount: %i fvar: %f", paramcount, fvar); } else if (*pArgs == 's') { paramcount++; // not coded yet } ++pArgs; } } // ..... //---------------------------------------------------------- // public OnPlayerRequestClass(playerid, classid); samp_call_begin(c_OnPlayerRequestClass, 2) int playerid; float classid; GetParams(params, "if", &playerid, &classid); logprintf("OnPlayerRequestClass %i %f", playerid, classid); samp_call_end