Issue on creating DynamicObject using y_hooks
#1

Hi to everyone!
I'm programming using modules and in a first try I separeted my maps in three different files, hooking those to OnGameModeInit callback, but I noticed that only 1000 out of 1300 objects were created.
I tried to move all the maps under OnGameModeInitEx, that is the first OnGameModeInit being called and it worked!
In the 'main.pwn' I've got this code:

Code:
#include <a_samp>
public OnGameModeInit()
{

    OnGameModeInitEx();

    #if defined main_OnGameModeInit
        return main_OnGameModeInit();
    #else
        return 1;
    #endif
}
#if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
#else
    #define _ALS_OnGameModeInit
#endif
 
#define OnGameModeInit main_OnGameModeInit
#if defined main_OnGameModeInit
    forward main_OnGameModeInit();
#endif
 
// includes and definitions

OnGameModeInitEx()
{
    // maps here works
}
Instead, in one of the map file where I hook OnGameModeInit, the code is:
Code:
#include <YSI_Coding\y_hooks>

hook OnGameModeInit()
{
  // CreateDynamicObject
  return 1;
}
I want to understand if there are some problems related with streamer and hooks or if is due to my inexperience in hooking callbacks.
Reply
#2

You don't have to hook anything if you're just adding objects (AFAIK).

All you have to do is create a map file which contains all objets (i'd call maps.pwn).

In that file create a function like CreateServerObjects() and put all your objects there.

Then include maps.pwn in your main game using:

pawn Code:
#include "maps.pwn"
After add CreateServerObjects() in OnGameModeInit on your main gamemode as well.

Note the include code i posted retrieves the maps.pwn file from inside gamemodes folder. You might want to change it based on your needs.
Reply
#3

Quote:
Originally Posted by Symon
View Post
You don't have to hook anything if you're just adding objects (AFAIK).

All you have to do is create a map file which contains all objets (i'd call maps.pwn).

In that file create a function like CreateServerObjects() and put all your objects there.

Then include maps.pwn in your main game using:

pawn Code:
#include "maps.pwn"
After add CreateServerObjects() in OnGameModeInit on your main gamemode as well.

Note the include code i posted retrieves the maps.pwn file from inside gamemodes folder. You might want to change it based on your needs.
I made as you said in my second attempt but I'd like to know why write the map under the hook of OnGameModeInit doesn't work. There is something I don't know about the hooks?

(Btw thank you for respond! I'll use this method for sure, but as I said, I want to know if I'm missing something)

UPDATE:
Solved, my mistake.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)