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 |