Aktarus Posted August 21, 2017 Share Posted August 21, 2017 (edited) Hello Everyone, I am trying to create a class in C# that change the behavior of all characters (pedestrians) that are around the player. I have seen some sample of codes (moment0's code BTW) around here but it doesn't work for me. Here is my code: using CitizenFX.Core; using CitizenFX.Core.Native; public Class1() { const int numElements = 10; const int arraySize = numElements * 2 + 2; //Start at index 2, and the odd elements are padding int[] peds = new int[arraySize]; //Setup the array peds[0] = numElements; //0 index is the size of the array int localPlayerId = Game.Player.Handle; // Get the ID of the player Ped player = Function.Call(Hash.GET_PLAYER_PED, localPlayerId); // Get the Ped of the player int count = Function.Call(Hash.GET_PED_NEARBY_PEDS, player, peds, -1); // Scan the ped around the player and fill the array for (int i = 0; i < count; ++i) { int offsettedID = i * 2 + 2; if (Function.Call(Hash.DOES_ENTITY_EXIST, peds[offsettedID])) { Function.Call(Hash.SET_PED_COMBAT_MOVEMENT, peds[offsettedID], 3); Function.Call(Hash.SET_PED_COMBAT_RANGE, peds[offsettedID], 2); Function.Call(Hash.SET_PED_COMBAT_ATTRIBUTES, peds[offsettedID], 5, true); } Visual studio noticed me 3 errors. The following line make an error CS0029 (Cannot implicitly convert type 'void' to 'CitizenFX.Core.Ped') Function.Call(Hash.GET_PLAYER_PED, localPlayerId); The following line, as well, make an error CS0029 (Cannot implicitly convert type 'void' to 'Bool') Function.Call(Hash.DOES_ENTITY_EXIST, peds[offsettedID]) Also the argument "peds" in this line make an error CS1503 (Argument 3: cannot convert from 'int[]' to 'CitizenFX.Core.Native.InputArgument'): int count = Function.Call(Hash.GET_PED_NEARBY_PEDS, player, peds, -1); I don't understand what is wrong. Does any one can help me? Thanks Edited August 21, 2017 by Aktarus Link to comment Share on other sites More sharing options...
Saltyq Posted August 22, 2017 Share Posted August 22, 2017 You need to change the return type for the Function.Call method, This should solve your first two problems: Function.Call<Ped>(Hash.GET_PLAYER_PED, localPlayerId); and Function.Call<bool>(Hash.DOES_ENTITY_EXIST, peds[offsettedID]) Link to comment Share on other sites More sharing options...
Aktarus Posted August 22, 2017 Author Share Posted August 22, 2017 Thanks FIFSA! Your code works. Rest the last error. Normally 'peds' in this case (GET_PED_NEARBY_PEDS function) should be a pointer to an array as it is stated to the documentation: PED::GET_PED_NEARBY_PEDSHashes: 0x23F8F5FC7E8C4A6B 0x4D3325F4int GET_PED_NEARBY_PEDS(Ped ped, int *sizeAndPeds, int ignore)// 0x23F8F5FC7E8C4A6B 0x4D3325F4 sizeAndPeds - is a pointer to an array. The array is filled with peds found nearby the ped supplied to the first argument.ignore - ped type to ignoreReturn value is the number of peds found and added to the array passed. But how can I get a pointer of array? I have tried many different things, such as: fixed(int* p = peds[0]); But it doesn't work at all! Any help guys? Link to comment Share on other sites More sharing options...
Zeziroth Posted September 14, 2017 Share Posted September 14, 2017 Hi, im sry to ask this in your Thread. I want to include the same thing in my external. Does anyone know the Pointer to the beginning of the PED Pool? Link to comment Share on other sites More sharing options...