SA-MP Forums

SA-MP Forums (https://forum.sa-mp.com/index.php)
-   Scripting Help (https://forum.sa-mp.com/forumdisplay.php?f=12)
-   -   Issue on creating DynamicObject using y_hooks (https://forum.sa-mp.com/showthread.php?t=673450)

pollo97 27/03/2020 09:33 AM

Issue on creating DynamicObject using y_hooks
 
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.

Symon 27/03/2020 10:42 AM

Re: Issue on creating DynamicObject using y_hooks
 
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.

pollo97 27/03/2020 10:57 AM

Re: Issue on creating DynamicObject using y_hooks
 
Quote:

Originally Posted by Symon (Post 4136220)
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.


All times are GMT. The time now is 07:20 AM.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.