native test(&int);
cell AMX_NATIVE_CALL test(AMX* amx, cell* params) { cell *dest = NULL; amx_GetAddr(amx,params[1],&dest); dest= (cell*)1; return 1; }
new inter; test(inter); printf("%d", inter);
//This function demonstrates: How to pass parameters by reference. //PAWN native: native SetPawnReferenceVars(&value1, &Float:value2); cell AMX_NATIVE_CALL SetPawnReferenceVars(AMX* amx, cell* params) { const int val = 65; const float val2 = 84.54f; cell* addr[2] = {NULL, NULL}; //Get the addresses of "value1" and "value2" amx_GetAddr(amx, params[1], &addr[0]); amx_GetAddr(amx, params[2], &addr[1]); //Dereference our pointers and assign our values. Remember to ALWAYS use the macro "amx_ftoc" to convert floats into //cells (the appropriate float format for PAWN)! *addr[0] = val; *addr[1] = amx_ftoc(val2); return 1; }
new array[32][32]; SetArray(array, sizeof(array));
cell *arr = NULL; amx_GetAddr(amx,params[2],&arr); amx_SetString(&arr[0], "test0", 0, 0, strlen("test") + 1); amx_SetString(&arr[1], "test1", 0, 0, strlen("test") + 1); amx_SetString(&arr[2], "test2", 0, 0, strlen("test") + 1); amx_SetString(&arr[3], "test3", 0, 0, strlen("test") + 1);
ttttest3 |