[Tutorial] Modular Programming
#21

Quote:
Originally Posted by SickAttack
View Post
No, as long as you include it before the other includes.

Includes are copied and pasted into the gamemode.
False, y_hooks is built to be included in each include/module it is used in. That's how it works. So YES, you do need to include y_hooks in every module it is used otherwise it'll attempt to redefine the same names.
Reply
#22

Quote:
Originally Posted by AndySedeyn
View Post
Changing their position:
PHP Code:
#include "./AntiCheat/ac_health.pwn"
#include "./AntiCheat/ac_money.pwn" 
Now it will pop the error: "Anti money hack not included'.

Putting them together in one file works, but I don't want that obviously. Any suggestion on why that could happen? The rest of my modules get included perfectly.
Do:

PHP Code:
#include "AntiCheat\ac_health.pwn"
#include "AntiCheat\ac_money.pwn" 
Not:

PHP Code:
#include "AntiCheat/ac_health.pwn"
#include "AntiCheat/ac_money.pwn" 
Reply
#23

Quote:
Originally Posted by OneDay
View Post
Do:

PHP Code:
#include "AntiCheat\ac_health.pwn"
#include "AntiCheat\ac_money.pwn" 
Not:

PHP Code:
#include "AntiCheat/ac_health.pwn"
#include "AntiCheat/ac_money.pwn" 
I fixed that the day I posted it; 8 months ago.
Reply
#24

Quote:
Originally Posted by Kimble
View Post
If i include y_hooks in main do i still need to include it in every other module?
Yes, you do. It is the only one you need to.

y_hooks will assign a new ID to each script every time it's included, example with OnPlayerConnect:

Code:
public OnPlayerConnect1(); //first time it's included
public OnPlayerConnect2(); //second time it's included
If you only define it once and have OnPlayerConnect in more than one script, it will define all of them as OnPlayerConnect1, which of course will give you problems.
Reply
#25

A couple of years or so back I was playing around with modules in Pawn - I wanted it to be so that I could drag/drop and just add an #include line, so modules would be interchangeable.

Below is the code I used to achieve it - more for educational purposes than actual production value.

If you are writing something large enough to require modularity I would recommend SampSharp or Shoebill - as these provide an interface with enterprise level programming languages built around the idea of large, OOP, modular projects.


metarpg/modules.inc
(defines a unique Module: token, calculating a new one every time you include it.)
PHP Code:
#if __Pawn != 0x030A
    #error Use the improved compiler
#endif
#if !defined  @__this
    #define @__this 1
    #define Module: @1@
#else
    #if @__this == 1
        #undef Module
        #undef @__this
        #define @__this 2
        #define Module: @2@
        
    #elseif @__this == 2
        #undef Module
        #undef @__this
        #define @__this 3
        #define Module: @3@
        
    #elseif @__this == 3
        #undef Module
        #undef @__this
        #define @__this 4
        #define Module: @4@
        
    #elseif @__this == 4
        #undef Module
        #undef @__this
        #define @__this 5
        #define Module: @5@
        
    #elseif @__this == 5
        #undef Module
        #undef @__this
        #define @__this 6
        #define Module: @6@
        
    #elseif @__this == 6
        #undef Module
        #undef @__this
        #define @__this 7
        #define Module: @7@
        
    #elseif @__this == 7
        #undef Module
        #undef @__this
        #define @__this 8
        #define Module: @8@
        
    #elseif @__this == 8
        #undef Module
        #undef @__this
        #define @__this 9
        #define Module: @9@
        
    #elseif @__this == 9
        #undef Module
        #undef @__this
        #define @__this 10
        #define Module: @10@
        
    #elseif @__this == 10
        #undef Module
        #undef @__this
        #define @__this 11
        #define Module: @11@
        
    #elseif @__this == 11
        #undef Module
        #undef @__this
        #define @__this 12
        #define Module: @12@
        
    #elseif @__this == 12
        #undef Module
        #undef @__this
        #define @__this 13
        #define Module: @13@
        
    #elseif @__this == 13
        #undef Module
        #undef @__this
        #define @__this 14
        #define Module: @14@
        
    #elseif @__this == 14
        #undef Module
        #undef @__this
        #define @__this 15
        #define Module: @15@
        
    #elseif @__this == 15
        #undef Module
        #undef @__this
        #define @__this 16
        #define Module: @16@
        
    #elseif @__this == 16
        #undef Module
        #undef @__this
        #define @__this 17
        #define Module: @17@
        
    #elseif @__this == 17
        #undef Module
        #undef @__this
        #define @__this 18
        #define Module: @18@
        
    #elseif @__this == 18
        #undef Module
        #undef @__this
        #define @__this 19
        #define Module: @19@
        
    #elseif @__this == 19
        #undef Module
        #undef @__this
        #define @__this 20
        #define Module: @20@
        
    #elseif @__this == 20
        #undef Module
        #undef @__this
        #define @__this 21
        #define Module: @21@
        
    #elseif @__this == 21
        #undef Module
        #undef @__this
        #define @__this 22
        #define Module: @22@
        
    #elseif @__this == 22
        #undef Module
        #undef @__this
        #define @__this 23
        #define Module: @23@
        
    #elseif @__this == 23
        #undef Module
        #undef @__this
        #define @__this 24
        #define Module: @24@
        
    #elseif @__this == 24
        #undef Module
        #undef @__this
        #define @__this 25
        #define Module: @25@
        
    #elseif @__this == 25
        #undef Module
        #undef @__this
        #define @__this 26
        #define Module: @26@
        
    #elseif @__this == 26
        #undef Module
        #undef @__this
        #define @__this 27
        #define Module: @27@
        
    #elseif @__this == 27
        #undef Module
        #undef @__this
        #define @__this 28
        #define Module: @28@
        
    #elseif @__this == 28
        #undef Module
        #undef @__this
        #define @__this 29
        #define Module: @29@
        
    #elseif @__this == 29
        #undef Module
        #undef @__this
        #define @__this 30
        #define Module: @30@
        
    #elseif @__this == 30
        #undef Module
        #undef @__this
        #define @__this 31
        #define Module: @31@
        
    #elseif @__this == 31
        #undef Module
        #undef @__this
        #define @__this 32
        #define Module: @32@
        
    #elseif @__this == 32
        #undef Module
        #undef @__this
        #define @__this 33
        #define Module: @33@
        
    #elseif @__this == 33
        #undef Module
        #undef @__this
        #define @__this 34
        #define Module: @34@
        
    #elseif @__this == 34
        #undef Module
        #undef @__this
        #define @__this 35
        #define Module: @35@
        
    #elseif @__this == 35
        #undef Module
        #undef @__this
        #define @__this 36
        #define Module: @36@
        
    #elseif @__this == 36
        #undef Module
        #undef @__this
        #define @__this 37
        #define Module: @37@
        
    #elseif @__this == 37
        #undef Module
        #undef @__this
        #define @__this 38
        #define Module: @38@
        
    #elseif @__this == 38
        #undef Module
        #undef @__this
        #define @__this 39
        #define Module: @39@
        
    #elseif @__this == 39
        #undef Module
        #undef @__this
        #define @__this 40
        #define Module: @40@
        
    #elseif @__this == 40
        #undef Module
        #undef @__this
        #define @__this 41
        #define Module: @41@
        
    #elseif @__this == 41
        #undef Module
        #undef @__this
        #define @__this 42
        #define Module: @42@
        
    #elseif @__this == 42
        #undef Module
        #undef @__this
        #define @__this 43
        #define Module: @43@
        
    #elseif @__this == 43
        #undef Module
        #undef @__this
        #define @__this 44
        #define Module: @44@
        
    #elseif @__this == 44
        #undef Module
        #undef @__this
        #define @__this 45
        #define Module: @45@
        
    #elseif @__this == 45
        #undef Module
        #undef @__this
        #define @__this 46
        #define Module: @46@
        
    #elseif @__this == 46
        #undef Module
        #undef @__this
        #define @__this 47
        #define Module: @47@
        
    #elseif @__this == 47
        #undef Module
        #undef @__this
        #define @__this 48
        #define Module: @48@
        
    #elseif @__this == 48
        #undef Module
        #undef @__this
        #define @__this 49
        #define Module: @49@
        
    #elseif @__this == 49
        #undef Module
        #undef @__this
        #define @__this 50
        #define Module: @50@
        
    #elseif @__this == 50
        #undef Module
        #undef @__this
        #define @__this 51
        #define Module: @51@
        
    #elseif @__this == 51
        #undef Module
        #undef @__this
        #define @__this 52
        #define Module: @52@
        
    #elseif @__this == 52
        #undef Module
        #undef @__this
        #define @__this 53
        #define Module: @53@
        
    #elseif @__this == 53
        #undef Module
        #undef @__this
        #define @__this 54
        #define Module: @54@
        
    #elseif @__this == 54
        #undef Module
        #undef @__this
        #define @__this 55
        #define Module: @55@
        
    #elseif @__this == 55
        #undef Module
        #undef @__this
        #define @__this 56
        #define Module: @56@
        
    #elseif @__this == 56
        #undef Module
        #undef @__this
        #define @__this 57
        #define Module: @57@
        
    #elseif @__this == 57
        #undef Module
        #undef @__this
        #define @__this 58
        #define Module: @58@
        
    #elseif @__this == 58
        #undef Module
        #undef @__this
        #define @__this 59
        #define Module: @59@
        
    #elseif @__this == 59
        #undef Module
        #undef @__this
        #define @__this 60
        #define Module: @60@
        
    #elseif @__this == 60
        #undef Module
        #undef @__this
        #define @__this 61
        #define Module: @61@
        
    #elseif @__this == 61
        #undef Module
        #undef @__this
        #define @__this 62
        #define Module: @62@
        
    #elseif @__this == 62
        #undef Module
        #undef @__this
        #define @__this 63
        #define Module: @63@
        
    #elseif @__this == 63
        #undef Module
        #undef @__this
        #define @__this 64
        #define Module: @64@
        
    #elseif @__this == 64
        #undef Module
        #undef @__this
        #define @__this 65
        #define Module: @65@
        
    #elseif @__this == 65
        #undef Module
        #undef @__this
        #define @__this 66
        #define Module: @66@
        
    #elseif @__this == 66
        #undef Module
        #undef @__this
        #define @__this 67
        #define Module: @67@
        
    #elseif @__this == 67
        #undef Module
        #undef @__this
        #define @__this 68
        #define Module: @68@
        
    #elseif @__this == 68
        #undef Module
        #undef @__this
        #define @__this 69
        #define Module: @69@
        
    #elseif @__this == 69
        #undef Module
        #undef @__this
        #define @__this 70
        #define Module: @70@
        
    #elseif @__this == 70
        #undef Module
        #undef @__this
        #define @__this 71
        #define Module: @71@
        
    #elseif @__this == 71
        #undef Module
        #undef @__this
        #define @__this 72
        #define Module: @72@
        
    #elseif @__this == 72
        #undef Module
        #undef @__this
        #define @__this 73
        #define Module: @73@
        
    #elseif @__this == 73
        #undef Module
        #undef @__this
        #define @__this 74
        #define Module: @74@
        
    #elseif @__this == 74
        #undef Module
        #undef @__this
        #define @__this 75
        #define Module: @75@
        
    #elseif @__this == 75
        #undef Module
        #undef @__this
        #define @__this 76
        #define Module: @76@
        
    #elseif @__this == 76
        #undef Module
        #undef @__this
        #define @__this 77
        #define Module: @77@
        
    #elseif @__this == 77
        #undef Module
        #undef @__this
        #define @__this 78
        #define Module: @78@
        
    #elseif @__this == 78
        #undef Module
        #undef @__this
        #define @__this 79
        #define Module: @79@
        
    #elseif @__this == 79
        #undef Module
        #undef @__this
        #define @__this 80
        #define Module: @80@
        
    #elseif @__this == 80
        #undef Module
        #undef @__this
        #define @__this 81
        #define Module: @81@
        
    #elseif @__this == 81
        #undef Module
        #undef @__this
        #define @__this 82
        #define Module: @82@
        
    #elseif @__this == 82
        #undef Module
        #undef @__this
        #define @__this 83
        #define Module: @83@
        
    #elseif @__this == 83
        #undef Module
        #undef @__this
        #define @__this 84
        #define Module: @84@
        
    #elseif @__this == 84
        #undef Module
        #undef @__this
        #define @__this 85
        #define Module: @85@
        
    #elseif @__this == 85
        #undef Module
        #undef @__this
        #define @__this 86
        #define Module: @86@
        
    #elseif @__this == 86
        #undef Module
        #undef @__this
        #define @__this 87
        #define Module: @87@
        
    #elseif @__this == 87
        #undef Module
        #undef @__this
        #define @__this 88
        #define Module: @88@
        
    #elseif @__this == 88
        #undef Module
        #undef @__this
        #define @__this 89
        #define Module: @89@
        
    #elseif @__this == 89
        #undef Module
        #undef @__this
        #define @__this 90
        #define Module: @90@
        
    #elseif @__this == 90
        #undef Module
        #undef @__this
        #define @__this 91
        #define Module: @91@
        
    #elseif @__this == 91
        #undef Module
        #undef @__this
        #define @__this 92
        #define Module: @92@
        
    #elseif @__this == 92
        #undef Module
        #undef @__this
        #define @__this 93
        #define Module: @93@
        
    #elseif @__this == 93
        #undef Module
        #undef @__this
        #define @__this 94
        #define Module: @94@
        
    #elseif @__this == 94
        #undef Module
        #undef @__this
        #define @__this 95
        #define Module: @95@
        
    #elseif @__this == 95
        #undef Module
        #undef @__this
        #define @__this 96
        #define Module: @96@
        
    #elseif @__this == 96
        #undef Module
        #undef @__this
        #define @__this 97
        #define Module: @97@
        
    #elseif @__this == 97
        #undef Module
        #undef @__this
        #define @__this 98
        #define Module: @98@
        
    #elseif @__this == 98
        #undef Module
        #undef @__this
        #define @__this 99
        #define Module: @99@
        
    #elseif @__this == 99
        #undef Module
        #undef @__this
        #define @__this 100
        #define Module: @100@
        
    #elseif @__this == 100
        #undef Module
        #undef @__this
        #define @__this 101
        #define Module: @101@
        
    #elseif @__this == 101
        #undef Module
        #undef @__this
        #define @__this 102
        #define Module: @102@
        
    #elseif @__this == 102
        #undef Module
        #undef @__this
        #define @__this 103
        #define Module: @103@
        
    #elseif @__this == 103
        #undef Module
        #undef @__this
        #define @__this 104
        #define Module: @104@
        
    #elseif @__this == 104
        #undef Module
        #undef @__this
        #define @__this 105
        #define Module: @105@
        
    #elseif @__this == 105
        #undef Module
        #undef @__this
        #define @__this 106
        #define Module: @106@
        
    #elseif @__this == 106
        #undef Module
        #undef @__this
        #define @__this 107
        #define Module: @107@
        
    #elseif @__this == 107
        #undef Module
        #undef @__this
        #define @__this 108
        #define Module: @108@
        
    #elseif @__this == 108
        #undef Module
        #undef @__this
        #define @__this 109
        #define Module: @109@
        
    #elseif @__this == 109
        #undef Module
        #undef @__this
        #define @__this 110
        #define Module: @110@
        
    #elseif @__this == 110
        #undef Module
        #undef @__this
        #define @__this 111
        #define Module: @111@
        
    #elseif @__this == 111
        #undef Module
        #undef @__this
        #define @__this 112
        #define Module: @112@
        
    #elseif @__this == 112
        #undef Module
        #undef @__this
        #define @__this 113
        #define Module: @113@
        
    #elseif @__this == 113
        #undef Module
        #undef @__this
        #define @__this 114
        #define Module: @114@
        
    #elseif @__this == 114
        #undef Module
        #undef @__this
        #define @__this 115
        #define Module: @115@
        
    #elseif @__this == 115
        #undef Module
        #undef @__this
        #define @__this 116
        #define Module: @116@
        
    #elseif @__this == 116
        #undef Module
        #undef @__this
        #define @__this 117
        #define Module: @117@
        
    #elseif @__this == 117
        #undef Module
        #undef @__this
        #define @__this 118
        #define Module: @118@
        
    #elseif @__this == 118
        #undef Module
        #undef @__this
        #define @__this 119
        #define Module: @119@
        
    #elseif @__this == 119
        #undef Module
        #undef @__this
        #define @__this 120
        #define Module: @120@
        
    #elseif @__this == 120
        #undef Module
        #undef @__this
        #define @__this 121
        #define Module: @121@
        
    #elseif @__this == 121
        #undef Module
        #undef @__this
        #define @__this 122
        #define Module: @122@
        
    #elseif @__this == 122
        #undef Module
        #undef @__this
        #define @__this 123
        #define Module: @123@
        
    #elseif @__this == 123
        #undef Module
        #undef @__this
        #define @__this 124
        #define Module: @124@
        
    #elseif @__this == 124
        #undef Module
        #undef @__this
        #define @__this 125
        #define Module: @125@
        
    #elseif @__this == 125
        #undef Module
        #undef @__this
        #define @__this 126
        #define Module: @126@
        
    #elseif @__this == 126
        #undef Module
        #undef @__this
        #define @__this 127
        #define Module: @127@
        
    #elseif @__this == 127
        #undef Module
        #undef @__this
        #define @__this 128
        #define Module: @128@
        
    #elseif @__this == 128
        #undef Module
        #undef @__this
        #define @__this 129
        #define Module: @129@
        
    #elseif @__this == 129
        #undef Module
        #undef @__this
        #define @__this 130
        #define Module: @130@
        
    #elseif @__this == 130
        #undef Module
        #undef @__this
        #define @__this 131
        #define Module: @131@
        
    #elseif @__this == 131
        #undef Module
        #undef @__this
        #define @__this 132
        #define Module: @132@
        
    #elseif @__this == 132
        #undef Module
        #undef @__this
        #define @__this 133
        #define Module: @133@
        
    #elseif @__this == 133
        #undef Module
        #undef @__this
        #define @__this 134
        #define Module: @134@
        
    #elseif @__this == 134
        #undef Module
        #undef @__this
        #define @__this 135
        #define Module: @135@
        
    #elseif @__this == 135
        #undef Module
        #undef @__this
        #define @__this 136
        #define Module: @136@
        
    #elseif @__this == 136
        #undef Module
        #undef @__this
        #define @__this 137
        #define Module: @137@
        
    #elseif @__this == 137
        #undef Module
        #undef @__this
        #define @__this 138
        #define Module: @138@
        
    #elseif @__this == 138
        #undef Module
        #undef @__this
        #define @__this 139
        #define Module: @139@
        
    #elseif @__this == 139
        #undef Module
        #undef @__this
        #define @__this 140
        #define Module: @140@
        
    #elseif @__this == 140
        #undef Module
        #undef @__this
        #define @__this 141
        #define Module: @141@
        
    #elseif @__this == 141
        #undef Module
        #undef @__this
        #define @__this 142
        #define Module: @142@
        
    #elseif @__this == 142
        #undef Module
        #undef @__this
        #define @__this 143
        #define Module: @143@
        
    #elseif @__this == 143
        #undef Module
        #undef @__this
        #define @__this 144
        #define Module: @144@
        
    #elseif @__this == 144
        #undef Module
        #undef @__this
        #define @__this 145
        #define Module: @145@
        
    #elseif @__this == 145
        #undef Module
        #undef @__this
        #define @__this 146
        #define Module: @146@
        
    #elseif @__this == 146
        #undef Module
        #undef @__this
        #define @__this 147
        #define Module: @147@
        
    #elseif @__this == 147
        #undef Module
        #undef @__this
        #define @__this 148
        #define Module: @148@
        
    #elseif @__this == 148
        #undef Module
        #undef @__this
        #define @__this 149
        #define Module: @149@
        
    #elseif @__this == 149
        #undef Module
        #undef @__this
        #define @__this 150
        #define Module: @150@
        
    #elseif @__this == 150
        #undef Module
        #undef @__this
        #define @__this 151
        #define Module: @151@
        
    #elseif @__this == 151
        #undef Module
        #undef @__this
        #define @__this 152
        #define Module: @152@
        
    #elseif @__this == 152
        #undef Module
        #undef @__this
        #define @__this 153
        #define Module: @153@
        
    #elseif @__this == 153
        #undef Module
        #undef @__this
        #define @__this 154
        #define Module: @154@
        
    #elseif @__this == 154
        #undef Module
        #undef @__this
        #define @__this 155
        #define Module: @155@
        
    #elseif @__this == 155
        #undef Module
        #undef @__this
        #define @__this 156
        #define Module: @156@
        
    #elseif @__this == 156
        #undef Module
        #undef @__this
        #define @__this 157
        #define Module: @157@
        
    #elseif @__this == 157
        #undef Module
        #undef @__this
        #define @__this 158
        #define Module: @158@
        
    #elseif @__this == 158
        #undef Module
        #undef @__this
        #define @__this 159
        #define Module: @159@
        
    #elseif @__this == 159
        #undef Module
        #undef @__this
        #define @__this 160
        #define Module: @160@
        
    #elseif @__this == 160
        #undef Module
        #undef @__this
        #define @__this 161
        #define Module: @161@
        
    #elseif @__this == 161
        #undef Module
        #undef @__this
        #define @__this 162
        #define Module: @162@
        
    #elseif @__this == 162
        #undef Module
        #undef @__this
        #define @__this 163
        #define Module: @163@
        
    #elseif @__this == 163
        #undef Module
        #undef @__this
        #define @__this 164
        #define Module: @164@
        
    #elseif @__this == 164
        #undef Module
        #undef @__this
        #define @__this 165
        #define Module: @165@
        
    #elseif @__this == 165
        #undef Module
        #undef @__this
        #define @__this 166
        #define Module: @166@
        
    #elseif @__this == 166
        #undef Module
        #undef @__this
        #define @__this 167
        #define Module: @167@
        
    #elseif @__this == 167
        #undef Module
        #undef @__this
        #define @__this 168
        #define Module: @168@
        
    #elseif @__this == 168
        #undef Module
        #undef @__this
        #define @__this 169
        #define Module: @169@
        
    #elseif @__this == 169
        #undef Module
        #undef @__this
        #define @__this 170
        #define Module: @170@
        
    #elseif @__this == 170
        #undef Module
        #undef @__this
        #define @__this 171
        #define Module: @171@
        
    #elseif @__this == 171
        #undef Module
        #undef @__this
        #define @__this 172
        #define Module: @172@
        
    #elseif @__this == 172
        #undef Module
        #undef @__this
        #define @__this 173
        #define Module: @173@
        
    #elseif @__this == 173
        #undef Module
        #undef @__this
        #define @__this 174
        #define Module: @174@
        
    #elseif @__this == 174
        #undef Module
        #undef @__this
        #define @__this 175
        #define Module: @175@
        
    #elseif @__this == 175
        #undef Module
        #undef @__this
        #define @__this 176
        #define Module: @176@
        
    #elseif @__this == 176
        #undef Module
        #undef @__this
        #define @__this 177
        #define Module: @177@
        
    #elseif @__this == 177
        #undef Module
        #undef @__this
        #define @__this 178
        #define Module: @178@
        
    #elseif @__this == 178
        #undef Module
        #undef @__this
        #define @__this 179
        #define Module: @179@
        
    #elseif @__this == 179
        #undef Module
        #undef @__this
        #define @__this 180
        #define Module: @180@
        
    #elseif @__this == 180
        #undef Module
        #undef @__this
        #define @__this 181
        #define Module: @181@
        
    #elseif @__this == 181
        #undef Module
        #undef @__this
        #define @__this 182
        #define Module: @182@
        
    #elseif @__this == 182
        #undef Module
        #undef @__this
        #define @__this 183
        #define Module: @183@
        
    #elseif @__this == 183
        #undef Module
        #undef @__this
        #define @__this 184
        #define Module: @184@
        
    #elseif @__this == 184
        #undef Module
        #undef @__this
        #define @__this 185
        #define Module: @185@
        
    #elseif @__this == 185
        #undef Module
        #undef @__this
        #define @__this 186
        #define Module: @186@
        
    #elseif @__this == 186
        #undef Module
        #undef @__this
        #define @__this 187
        #define Module: @187@
        
    #elseif @__this == 187
        #undef Module
        #undef @__this
        #define @__this 188
        #define Module: @188@
        
    #elseif @__this == 188
        #undef Module
        #undef @__this
        #define @__this 189
        #define Module: @189@
        
    #elseif @__this == 189
        #undef Module
        #undef @__this
        #define @__this 190
        #define Module: @190@
        
    #elseif @__this == 190
        #undef Module
        #undef @__this
        #define @__this 191
        #define Module: @191@
        
    #elseif @__this == 191
        #undef Module
        #undef @__this
        #define @__this 192
        #define Module: @192@
        
    #elseif @__this == 192
        #undef Module
        #undef @__this
        #define @__this 193
        #define Module: @193@
        
    #elseif @__this == 193
        #undef Module
        #undef @__this
        #define @__this 194
        #define Module: @194@
        
    #elseif @__this == 194
        #undef Module
        #undef @__this
        #define @__this 195
        #define Module: @195@
        
    #elseif @__this == 195
        #undef Module
        #undef @__this
        #define @__this 196
        #define Module: @196@
        
    #elseif @__this == 196
        #undef Module
        #undef @__this
        #define @__this 197
        #define Module: @197@
        
    #elseif @__this == 197
        #undef Module
        #undef @__this
        #define @__this 198
        #define Module: @198@
        
    #elseif @__this == 198
        #undef Module
        #undef @__this
        #define @__this 199
        #define Module: @199@
        
    #elseif @__this == 199
        #undef Module
        #undef @__this
        #define @__this 200
        #define Module: @200@
        
    #elseif @__this == 200
        #undef Module
        #undef @__this
        #define @__this 201
        #define Module: @201@
        
    #elseif @__this == 201
        #undef Module
        #undef @__this
        #define @__this 202
        #define Module: @202@
        
    #elseif @__this == 202
        #undef Module
        #undef @__this
        #define @__this 203
        #define Module: @203@
        
    #elseif @__this == 203
        #undef Module
        #undef @__this
        #define @__this 204
        #define Module: @204@
        
    #elseif @__this == 204
        #undef Module
        #undef @__this
        #define @__this 205
        #define Module: @205@
        
    #elseif @__this == 205
        #undef Module
        #undef @__this
        #define @__this 206
        #define Module: @206@
        
    #elseif @__this == 206
        #undef Module
        #undef @__this
        #define @__this 207
        #define Module: @207@
        
    #elseif @__this == 207
        #undef Module
        #undef @__this
        #define @__this 208
        #define Module: @208@
        
    #elseif @__this == 208
        #undef Module
        #undef @__this
        #define @__this 209
        #define Module: @209@
        
    #elseif @__this == 209
        #undef Module
        #undef @__this
        #define @__this 210
        #define Module: @210@
        
    #elseif @__this == 210
        #undef Module
        #undef @__this
        #define @__this 211
        #define Module: @211@
        
    #elseif @__this == 211
        #undef Module
        #undef @__this
        #define @__this 212
        #define Module: @212@
        
    #elseif @__this == 212
        #undef Module
        #undef @__this
        #define @__this 213
        #define Module: @213@
        
    #elseif @__this == 213
        #undef Module
        #undef @__this
        #define @__this 214
        #define Module: @214@
        
    #elseif @__this == 214
        #undef Module
        #undef @__this
        #define @__this 215
        #define Module: @215@
        
    #elseif @__this == 215
        #undef Module
        #undef @__this
        #define @__this 216
        #define Module: @216@
        
    #elseif @__this == 216
        #undef Module
        #undef @__this
        #define @__this 217
        #define Module: @217@
        
    #elseif @__this == 217
        #undef Module
        #undef @__this
        #define @__this 218
        #define Module: @218@
        
    #elseif @__this == 218
        #undef Module
        #undef @__this
        #define @__this 219
        #define Module: @219@
        
    #elseif @__this == 219
        #undef Module
        #undef @__this
        #define @__this 220
        #define Module: @220@
        
    #elseif @__this == 220
        #undef Module
        #undef @__this
        #define @__this 221
        #define Module: @221@
        
    #elseif @__this == 221
        #undef Module
        #undef @__this
        #define @__this 222
        #define Module: @222@
        
    #elseif @__this == 222
        #undef Module
        #undef @__this
        #define @__this 223
        #define Module: @223@
        
    #elseif @__this == 223
        #undef Module
        #undef @__this
        #define @__this 224
        #define Module: @224@
        
    #elseif @__this == 224
        #undef Module
        #undef @__this
        #define @__this 225
        #define Module: @225@
        
    #elseif @__this == 225
        #undef Module
        #undef @__this
        #define @__this 226
        #define Module: @226@
        
    #elseif @__this == 226
        #undef Module
        #undef @__this
        #define @__this 227
        #define Module: @227@
        
    #elseif @__this == 227
        #undef Module
        #undef @__this
        #define @__this 228
        #define Module: @228@
        
    #elseif @__this == 228
        #undef Module
        #undef @__this
        #define @__this 229
        #define Module: @229@
        
    #elseif @__this == 229
        #undef Module
        #undef @__this
        #define @__this 230
        #define Module: @230@
        
    #elseif @__this == 230
        #undef Module
        #undef @__this
        #define @__this 231
        #define Module: @231@
        
    #elseif @__this == 231
        #undef Module
        #undef @__this
        #define @__this 232
        #define Module: @232@
        
    #elseif @__this == 232
        #undef Module
        #undef @__this
        #define @__this 233
        #define Module: @233@
        
    #elseif @__this == 233
        #undef Module
        #undef @__this
        #define @__this 234
        #define Module: @234@
        
    #elseif @__this == 234
        #undef Module
        #undef @__this
        #define @__this 235
        #define Module: @235@
        
    #elseif @__this == 235
        #undef Module
        #undef @__this
        #define @__this 236
        #define Module: @236@
        
    #elseif @__this == 236
        #undef Module
        #undef @__this
        #define @__this 237
        #define Module: @237@
        
    #elseif @__this == 237
        #undef Module
        #undef @__this
        #define @__this 238
        #define Module: @238@
        
    #elseif @__this == 238
        #undef Module
        #undef @__this
        #define @__this 239
        #define Module: @239@
        
    #elseif @__this == 239
        #undef Module
        #undef @__this
        #define @__this 240
        #define Module: @240@
        
    #elseif @__this == 240
        #undef Module
        #undef @__this
        #define @__this 241
        #define Module: @241@
        
    #elseif @__this == 241
        #undef Module
        #undef @__this
        #define @__this 242
        #define Module: @242@
        
    #elseif @__this == 242
        #undef Module
        #undef @__this
        #define @__this 243
        #define Module: @243@
        
    #elseif @__this == 243
        #undef Module
        #undef @__this
        #define @__this 244
        #define Module: @244@
        
    #elseif @__this == 244
        #undef Module
        #undef @__this
        #define @__this 245
        #define Module: @245@
        
    #elseif @__this == 245
        #undef Module
        #undef @__this
        #define @__this 246
        #define Module: @246@
        
    #elseif @__this == 246
        #undef Module
        #undef @__this
        #define @__this 247
        #define Module: @247@
        
    #elseif @__this == 247
        #undef Module
        #undef @__this
        #define @__this 248
        #define Module: @248@
        
    #elseif @__this == 248
        #undef Module
        #undef @__this
        #define @__this 249
        #define Module: @249@
        
    #elseif @__this == 249
        #undef Module
        #undef @__this
        #define @__this 250
        #define Module: @250@
        
    #elseif @__this == 250
        #undef Module
        #undef @__this
        #define @__this 251
        #define Module: @251@
        
    #elseif @__this == 251
        #undef Module
        #undef @__this
        #define @__this 252
        #define Module: @252@
        
    #elseif @__this == 252
        #undef Module
        #undef @__this
        #define @__this 253
        #define Module: @253@
        
    #elseif @__this == 253
        #undef Module
        #undef @__this
        #define @__this 254
        #define Module: @254@
        
    #elseif @__this == 254
        #undef Module
        #undef @__this
        #define @__this 255
        #define Module: @255@
        
    #elseif @__this == 255
        #undef Module
        #undef @__this
        #define @__this 256
        #define Module: @256@
        
    #elseif @__this == 256
        #undef Module
        #undef @__this
        #define @__this 257
        #define Module: @257@
        
    #elseif @__this == 257
        #undef Module
        #undef @__this
        #define @__this 258
        #define Module: @258@
        
    #elseif @__this == 258
        #undef Module
        #undef @__this
        #define @__this 259
        #define Module: @259@
        
    #elseif @__this == 259
        #undef Module
        #undef @__this
        #define @__this 260
        #define Module: @260@
        
    #elseif @__this == 260
        #undef Module
        #undef @__this
        #define @__this 261
        #define Module: @261@
        
    #elseif @__this == 261
        #undef Module
        #undef @__this
        #define @__this 262
        #define Module: @262@
        
    #elseif @__this == 262
        #undef Module
        #undef @__this
        #define @__this 263
        #define Module: @263@
        
    #elseif @__this == 263
        #undef Module
        #undef @__this
        #define @__this 264
        #define Module: @264@
        
    #elseif @__this == 264
        #undef Module
        #undef @__this
        #define @__this 265
        #define Module: @265@
        
    #elseif @__this == 265
        #undef Module
        #undef @__this
        #define @__this 266
        #define Module: @266@
        
    #elseif @__this == 266
        #undef Module
        #undef @__this
        #define @__this 267
        #define Module: @267@
        
    #elseif @__this == 267
        #undef Module
        #undef @__this
        #define @__this 268
        #define Module: @268@
        
    #elseif @__this == 268
        #undef Module
        #undef @__this
        #define @__this 269
        #define Module: @269@
        
    #elseif @__this == 269
        #undef Module
        #undef @__this
        #define @__this 270
        #define Module: @270@
        
    #elseif @__this == 270
        #undef Module
        #undef @__this
        #define @__this 271
        #define Module: @271@
        
    #elseif @__this == 271
        #undef Module
        #undef @__this
        #define @__this 272
        #define Module: @272@
        
    #elseif @__this == 272
        #undef Module
        #undef @__this
        #define @__this 273
        #define Module: @273@
        
    #elseif @__this == 273
        #undef Module
        #undef @__this
        #define @__this 274
        #define Module: @274@
        
    #elseif @__this == 274
        #undef Module
        #undef @__this
        #define @__this 275
        #define Module: @275@
        
    #elseif @__this == 275
        #undef Module
        #undef @__this
        #define @__this 276
        #define Module: @276@
        
    #elseif @__this == 276
        #undef Module
        #undef @__this
        #define @__this 277
        #define Module: @277@
        
    #elseif @__this == 277
        #undef Module
        #undef @__this
        #define @__this 278
        #define Module: @278@
        
    #elseif @__this == 278
        #undef Module
        #undef @__this
        #define @__this 279
        #define Module: @279@
        
    #elseif @__this == 279
        #undef Module
        #undef @__this
        #define @__this 280
        #define Module: @280@
        
    #elseif @__this == 280
        #undef Module
        #undef @__this
        #define @__this 281
        #define Module: @281@
        
    #elseif @__this == 281
        #undef Module
        #undef @__this
        #define @__this 282
        #define Module: @282@
        
    #elseif @__this == 282
        #undef Module
        #undef @__this
        #define @__this 283
        #define Module: @283@
        
    #elseif @__this == 283
        #undef Module
        #undef @__this
        #define @__this 284
        #define Module: @284@
        
    #elseif @__this == 284
        #undef Module
        #undef @__this
        #define @__this 285
        #define Module: @285@
        
    #elseif @__this == 285
        #undef Module
        #undef @__this
        #define @__this 286
        #define Module: @286@
        
    #elseif @__this == 286
        #undef Module
        #undef @__this
        #define @__this 287
        #define Module: @287@
        
    #elseif @__this == 287
        #undef Module
        #undef @__this
        #define @__this 288
        #define Module: @288@
        
    #elseif @__this == 288
        #undef Module
        #undef @__this
        #define @__this 289
        #define Module: @289@
        
    #elseif @__this == 289
        #undef Module
        #undef @__this
        #define @__this 290
        #define Module: @290@
        
    #elseif @__this == 290
        #undef Module
        #undef @__this
        #define @__this 291
        #define Module: @291@
        
    #elseif @__this == 291
        #undef Module
        #undef @__this
        #define @__this 292
        #define Module: @292@
        
    #elseif @__this == 292
        #undef Module
        #undef @__this
        #define @__this 293
        #define Module: @293@
        
    #elseif @__this == 293
        #undef Module
        #undef @__this
        #define @__this 294
        #define Module: @294@
        
    #elseif @__this == 294
        #undef Module
        #undef @__this
        #define @__this 295
        #define Module: @295@
        
    #elseif @__this == 295
        #undef Module
        #undef @__this
        #define @__this 296
        #define Module: @296@
        
    #elseif @__this == 296
        #undef Module
        #undef @__this
        #define @__this 297
        #define Module: @297@
        
    #elseif @__this == 297
        #undef Module
        #undef @__this
        #define @__this 298
        #define Module: @298@
        
    #elseif @__this == 298
        #undef Module
        #undef @__this
        #define @__this 299
        #define Module: @299@
        
    #elseif @__this == 299
        #undef Module
        #undef @__this
        #define @__this 300
        #define Module: @300@
        
    #elseif @__this == 300
        #undef Module
        #undef @__this
        #define @__this 301
        #define Module: @301@
        
    #elseif @__this == 301
        #undef Module
        #undef @__this
        #define @__this 302
        #define Module: @302@
        
    #elseif @__this == 302
        #undef Module
        #undef @__this
        #define @__this 303
        #define Module: @303@
        
    #elseif @__this == 303
        #undef Module
        #undef @__this
        #define @__this 304
        #define Module: @304@
        
    #elseif @__this == 304
        #undef Module
        #undef @__this
        #define @__this 305
        #define Module: @305@
        
    #elseif @__this == 305
        #undef Module
        #undef @__this
        #define @__this 306
        #define Module: @306@
        
    #elseif @__this == 306
        #undef Module
        #undef @__this
        #define @__this 307
        #define Module: @307@
        
    #elseif @__this == 307
        #undef Module
        #undef @__this
        #define @__this 308
        #define Module: @308@
        
    #elseif @__this == 308
        #undef Module
        #undef @__this
        #define @__this 309
        #define Module: @309@
        
    #elseif @__this == 309
        #undef Module
        #undef @__this
        #define @__this 310
        #define Module: @310@
        
    #elseif @__this == 310
        #undef Module
        #undef @__this
        #define @__this 311
        #define Module: @311@
        
    #elseif @__this == 311
        #undef Module
        #undef @__this
        #define @__this 312
        #define Module: @312@
        
    #elseif @__this == 312
        #undef Module
        #undef @__this
        #define @__this 313
        #define Module: @313@
        
    #elseif @__this == 313
        #undef Module
        #undef @__this
        #define @__this 314
        #define Module: @314@
        
    #elseif @__this == 314
        #undef Module
        #undef @__this
        #define @__this 315
        #define Module: @315@
        
    #elseif @__this == 315
        #undef Module
        #undef @__this
        #define @__this 316
        #define Module: @316@
        
    #elseif @__this == 316
        #undef Module
        #undef @__this
        #define @__this 317
        #define Module: @317@
        
    #elseif @__this == 317
        #undef Module
        #undef @__this
        #define @__this 318
        #define Module: @318@
        
    #elseif @__this == 318
        #undef Module
        #undef @__this
        #define @__this 319
        #define Module: @319@
        
    #elseif @__this == 319
        #undef Module
        #undef @__this
        #define @__this 320
        #define Module: @320@
        
    #elseif @__this == 320
        #undef Module
        #undef @__this
        #define @__this 321
        #define Module: @321@
        
    #elseif @__this == 321
        #undef Module
        #undef @__this
        #define @__this 322
        #define Module: @322@
        
    #elseif @__this == 322
        #undef Module
        #undef @__this
        #define @__this 323
        #define Module: @323@
        
    #elseif @__this == 323
        #undef Module
        #undef @__this
        #define @__this 324
        #define Module: @324@
        
    #elseif @__this == 324
        #undef Module
        #undef @__this
        #define @__this 325
        #define Module: @325@
        
    #elseif @__this == 325
        #undef Module
        #undef @__this
        #define @__this 326
        #define Module: @326@
        
    #elseif @__this == 326
        #undef Module
        #undef @__this
        #define @__this 327
        #define Module: @327@
        
    #elseif @__this == 327
        #undef Module
        #undef @__this
        #define @__this 328
        #define Module: @328@
        
    #elseif @__this == 328
        #undef Module
        #undef @__this
        #define @__this 329
        #define Module: @329@
        
    #elseif @__this == 329
        #undef Module
        #undef @__this
        #define @__this 330
        #define Module: @330@
        
    #elseif @__this == 330
        #undef Module
        #undef @__this
        #define @__this 331
        #define Module: @331@
        
    #elseif @__this == 331
        #undef Module
        #undef @__this
        #define @__this 332
        #define Module: @332@
        
    #elseif @__this == 332
        #undef Module
        #undef @__this
        #define @__this 333
        #define Module: @333@
        
    #elseif @__this == 333
        #undef Module
        #undef @__this
        #define @__this 334
        #define Module: @334@
        
    #elseif @__this == 334
        #undef Module
        #undef @__this
        #define @__this 335
        #define Module: @335@
        
    #elseif @__this == 335
        #undef Module
        #undef @__this
        #define @__this 336
        #define Module: @336@
        
    #elseif @__this == 336
        #undef Module
        #undef @__this
        #define @__this 337
        #define Module: @337@
        
    #elseif @__this == 337
        #undef Module
        #undef @__this
        #define @__this 338
        #define Module: @338@
        
    #elseif @__this == 338
        #undef Module
        #undef @__this
        #define @__this 339
        #define Module: @339@
        
    #elseif @__this == 339
        #undef Module
        #undef @__this
        #define @__this 340
        #define Module: @340@
        
    #elseif @__this == 340
        #undef Module
        #undef @__this
        #define @__this 341
        #define Module: @341@
        
    #elseif @__this == 341
        #undef Module
        #undef @__this
        #define @__this 342
        #define Module: @342@
        
    #elseif @__this == 342
        #undef Module
        #undef @__this
        #define @__this 343
        #define Module: @343@
        
    #elseif @__this == 343
        #undef Module
        #undef @__this
        #define @__this 344
        #define Module: @344@
        
    #elseif @__this == 344
        #undef Module
        #undef @__this
        #define @__this 345
        #define Module: @345@
        
    #elseif @__this == 345
        #undef Module
        #undef @__this
        #define @__this 346
        #define Module: @346@
        
    #elseif @__this == 346
        #undef Module
        #undef @__this
        #define @__this 347
        #define Module: @347@
        
    #elseif @__this == 347
        #undef Module
        #undef @__this
        #define @__this 348
        #define Module: @348@
        
    #elseif @__this == 348
        #undef Module
        #undef @__this
        #define @__this 349
        #define Module: @349@
        
    #elseif @__this == 349
        #undef Module
        #undef @__this
        #define @__this 350
        #define Module: @350@
        
    #elseif @__this == 350
        #undef Module
        #undef @__this
        #define @__this 351
        #define Module: @351@
        
    #elseif @__this == 351
        #undef Module
        #undef @__this
        #define @__this 352
        #define Module: @352@
        
    #elseif @__this == 352
        #undef Module
        #undef @__this
        #define @__this 353
        #define Module: @353@
        
    #elseif @__this == 353
        #undef Module
        #undef @__this
        #define @__this 354
        #define Module: @354@
        
    #elseif @__this == 354
        #undef Module
        #undef @__this
        #define @__this 355
        #define Module: @355@
        
    #elseif @__this == 355
        #undef Module
        #undef @__this
        #define @__this 356
        #define Module: @356@
        
    #elseif @__this == 356
        #undef Module
        #undef @__this
        #define @__this 357
        #define Module: @357@
        
    #elseif @__this == 357
        #undef Module
        #undef @__this
        #define @__this 358
        #define Module: @358@
        
    #elseif @__this == 358
        #undef Module
        #undef @__this
        #define @__this 359
        #define Module: @359@
        
    #elseif @__this == 359
        #undef Module
        #undef @__this
        #define @__this 360
        #define Module: @360@
        
    #elseif @__this == 360
        #undef Module
        #undef @__this
        #define @__this 361
        #define Module: @361@
        
    #elseif @__this == 361
        #undef Module
        #undef @__this
        #define @__this 362
        #define Module: @362@
        
    #elseif @__this == 362
        #undef Module
        #undef @__this
        #define @__this 363
        #define Module: @363@
        
    #elseif @__this == 363
        #undef Module
        #undef @__this
        #define @__this 364
        #define Module: @364@
        
    #elseif @__this == 364
        #undef Module
        #undef @__this
        #define @__this 365
        #define Module: @365@
        
    #elseif @__this == 365
        #undef Module
        #undef @__this
        #define @__this 366
        #define Module: @366@
        
    #elseif @__this == 366
        #undef Module
        #undef @__this
        #define @__this 367
        #define Module: @367@
        
    #elseif @__this == 367
        #undef Module
        #undef @__this
        #define @__this 368
        #define Module: @368@
        
    #elseif @__this == 368
        #undef Module
        #undef @__this
        #define @__this 369
        #define Module: @369@
        
    #elseif @__this == 369
        #undef Module
        #undef @__this
        #define @__this 370
        #define Module: @370@
        
    #elseif @__this == 370
        #undef Module
        #undef @__this
        #define @__this 371
        #define Module: @371@
        
    #elseif @__this == 371
        #undef Module
        #undef @__this
        #define @__this 372
        #define Module: @372@
        
    #elseif @__this == 372
        #undef Module
        #undef @__this
        #define @__this 373
        #define Module: @373@
        
    #elseif @__this == 373
        #undef Module
        #undef @__this
        #define @__this 374
        #define Module: @374@
        
    #elseif @__this == 374
        #undef Module
        #undef @__this
        #define @__this 375
        #define Module: @375@
        
    #elseif @__this == 375
        #undef Module
        #undef @__this
        #define @__this 376
        #define Module: @376@
        
    #elseif @__this == 376
        #undef Module
        #undef @__this
        #define @__this 377
        #define Module: @377@
        
    #elseif @__this == 377
        #undef Module
        #undef @__this
        #define @__this 378
        #define Module: @378@
        
    #elseif @__this == 378
        #undef Module
        #undef @__this
        #define @__this 379
        #define Module: @379@
        
    #elseif @__this == 379
        #undef Module
        #undef @__this
        #define @__this 380
        #define Module: @380@
        
    #elseif @__this == 380
        #undef Module
        #undef @__this
        #define @__this 381
        #define Module: @381@
        
    #elseif @__this == 381
        #undef Module
        #undef @__this
        #define @__this 382
        #define Module: @382@
        
    #elseif @__this == 382
        #undef Module
        #undef @__this
        #define @__this 383
        #define Module: @383@
        
    #elseif @__this == 383
        #undef Module
        #undef @__this
        #define @__this 384
        #define Module: @384@
        
    #elseif @__this == 384
        #undef Module
        #undef @__this
        #define @__this 385
        #define Module: @385@
        
    #elseif @__this == 385
        #undef Module
        #undef @__this
        #define @__this 386
        #define Module: @386@
        
    #elseif @__this == 386
        #undef Module
        #undef @__this
        #define @__this 387
        #define Module: @387@
        
    #elseif @__this == 387
        #undef Module
        #undef @__this
        #define @__this 388
        #define Module: @388@
        
    #elseif @__this == 388
        #undef Module
        #undef @__this
        #define @__this 389
        #define Module: @389@
        
    #elseif @__this == 389
        #undef Module
        #undef @__this
        #define @__this 390
        #define Module: @390@
        
    #elseif @__this == 390
        #undef Module
        #undef @__this
        #define @__this 391
        #define Module: @391@
        
    #elseif @__this == 391
        #undef Module
        #undef @__this
        #define @__this 392
        #define Module: @392@
        
    #elseif @__this == 392
        #undef Module
        #undef @__this
        #define @__this 393
        #define Module: @393@
        
    #elseif @__this == 393
        #undef Module
        #undef @__this
        #define @__this 394
        #define Module: @394@
        
    #elseif @__this == 394
        #undef Module
        #undef @__this
        #define @__this 395
        #define Module: @395@
        
    #elseif @__this == 395
        #undef Module
        #undef @__this
        #define @__this 396
        #define Module: @396@
        
    #elseif @__this == 396
        #undef Module
        #undef @__this
        #define @__this 397
        #define Module: @397@
        
    #elseif @__this == 397
        #undef Module
        #undef @__this
        #define @__this 398
        #define Module: @398@
        
    #elseif @__this == 398
        #undef Module
        #undef @__this
        #define @__this 399
        #define Module: @399@
        
    #elseif @__this == 399
        #undef Module
        #undef @__this
        #define @__this 400
        #define Module: @400@
        
    #elseif @__this == 400
        #undef Module
        #undef @__this
        #define @__this 401
        #define Module: @401@
        
    #elseif @__this == 401
        #undef Module
        #undef @__this
        #define @__this 402
        #define Module: @402@
        
    #elseif @__this == 402
        #undef Module
        #undef @__this
        #define @__this 403
        #define Module: @403@
        
    #elseif @__this == 403
        #undef Module
        #undef @__this
        #define @__this 404
        #define Module: @404@
        
    #elseif @__this == 404
        #undef Module
        #undef @__this
        #define @__this 405
        #define Module: @405@
        
    #elseif @__this == 405
        #undef Module
        #undef @__this
        #define @__this 406
        #define Module: @406@
        
    #elseif @__this == 406
        #undef Module
        #undef @__this
        #define @__this 407
        #define Module: @407@
        
    #elseif @__this == 407
        #undef Module
        #undef @__this
        #define @__this 408
        #define Module: @408@
        
    #elseif @__this == 408
        #undef Module
        #undef @__this
        #define @__this 409
        #define Module: @409@
        
    #elseif @__this == 409
        #undef Module
        #undef @__this
        #define @__this 410
        #define Module: @410@
        
    #elseif @__this == 410
        #undef Module
        #undef @__this
        #define @__this 411
        #define Module: @411@
        
    #elseif @__this == 411
        #undef Module
        #undef @__this
        #define @__this 412
        #define Module: @412@
        
    #elseif @__this == 412
        #undef Module
        #undef @__this
        #define @__this 413
        #define Module: @413@
        
    #elseif @__this == 413
        #undef Module
        #undef @__this
        #define @__this 414
        #define Module: @414@
        
    #elseif @__this == 414
        #undef Module
        #undef @__this
        #define @__this 415
        #define Module: @415@
        
    #elseif @__this == 415
        #undef Module
        #undef @__this
        #define @__this 416
        #define Module: @416@
        
    #elseif @__this == 416
        #undef Module
        #undef @__this
        #define @__this 417
        #define Module: @417@
        
    #elseif @__this == 417
        #undef Module
        #undef @__this
        #define @__this 418
        #define Module: @418@
        
    #elseif @__this == 418
        #undef Module
        #undef @__this
        #define @__this 419
        #define Module: @419@
        
    #elseif @__this == 419
        #undef Module
        #undef @__this
        #define @__this 420
        #define Module: @420@
        
    #elseif @__this == 420
        #undef Module
        #undef @__this
        #define @__this 421
        #define Module: @421@
        
    #elseif @__this == 421
        #undef Module
        #undef @__this
        #define @__this 422
        #define Module: @422@
        
    #elseif @__this == 422
        #undef Module
        #undef @__this
        #define @__this 423
        #define Module: @423@
        
    #elseif @__this == 423
        #undef Module
        #undef @__this
        #define @__this 424
        #define Module: @424@
        
    #elseif @__this == 424
        #undef Module
        #undef @__this
        #define @__this 425
        #define Module: @425@
        
    #elseif @__this == 425
        #undef Module
        #undef @__this
        #define @__this 426
        #define Module: @426@
        
    #elseif @__this == 426
        #undef Module
        #undef @__this
        #define @__this 427
        #define Module: @427@
        
    #elseif @__this == 427
        #undef Module
        #undef @__this
        #define @__this 428
        #define Module: @428@
        
    #elseif @__this == 428
        #undef Module
        #undef @__this
        #define @__this 429
        #define Module: @429@
        
    #elseif @__this == 429
        #undef Module
        #undef @__this
        #define @__this 430
        #define Module: @430@
        
    #elseif @__this == 430
        #undef Module
        #undef @__this
        #define @__this 431
        #define Module: @431@
        
    #elseif @__this == 431
        #undef Module
        #undef @__this
        #define @__this 432
        #define Module: @432@
        
    #elseif @__this == 432
        #undef Module
        #undef @__this
        #define @__this 433
        #define Module: @433@
        
    #elseif @__this == 433
        #undef Module
        #undef @__this
        #define @__this 434
        #define Module: @434@
        
    #elseif @__this == 434
        #undef Module
        #undef @__this
        #define @__this 435
        #define Module: @435@
        
    #elseif @__this == 435
        #undef Module
        #undef @__this
        #define @__this 436
        #define Module: @436@
        
    #elseif @__this == 436
        #undef Module
        #undef @__this
        #define @__this 437
        #define Module: @437@
        
    #elseif @__this == 437
        #undef Module
        #undef @__this
        #define @__this 438
        #define Module: @438@
        
    #elseif @__this == 438
        #undef Module
        #undef @__this
        #define @__this 439
        #define Module: @439@
        
    #elseif @__this == 439
        #undef Module
        #undef @__this
        #define @__this 440
        #define Module: @440@
        
    #elseif @__this == 440
        #undef Module
        #undef @__this
        #define @__this 441
        #define Module: @441@
        
    #elseif @__this == 441
        #undef Module
        #undef @__this
        #define @__this 442
        #define Module: @442@
        
    #elseif @__this == 442
        #undef Module
        #undef @__this
        #define @__this 443
        #define Module: @443@
        
    #elseif @__this == 443
        #undef Module
        #undef @__this
        #define @__this 444
        #define Module: @444@
        
    #elseif @__this == 444
        #undef Module
        #undef @__this
        #define @__this 445
        #define Module: @445@
        
    #elseif @__this == 445
        #undef Module
        #undef @__this
        #define @__this 446
        #define Module: @446@
        
    #elseif @__this == 446
        #undef Module
        #undef @__this
        #define @__this 447
        #define Module: @447@
        
    #elseif @__this == 447
        #undef Module
        #undef @__this
        #define @__this 448
        #define Module: @448@
        
    #elseif @__this == 448
        #undef Module
        #undef @__this
        #define @__this 449
        #define Module: @449@
        
    #elseif @__this == 449
        #undef Module
        #undef @__this
        #define @__this 450
        #define Module: @450@
        
    #elseif @__this == 450
        #undef Module
        #undef @__this
        #define @__this 451
        #define Module: @451@
        
    #elseif @__this == 451
        #undef Module
        #undef @__this
        #define @__this 452
        #define Module: @452@
        
    #elseif @__this == 452
        #undef Module
        #undef @__this
        #define @__this 453
        #define Module: @453@
        
    #elseif @__this == 453
        #undef Module
        #undef @__this
        #define @__this 454
        #define Module: @454@
        
    #elseif @__this == 454
        #undef Module
        #undef @__this
        #define @__this 455
        #define Module: @455@
        
    #elseif @__this == 455
        #undef Module
        #undef @__this
        #define @__this 456
        #define Module: @456@
        
    #elseif @__this == 456
        #undef Module
        #undef @__this
        #define @__this 457
        #define Module: @457@
        
    #elseif @__this == 457
        #undef Module
        #undef @__this
        #define @__this 458
        #define Module: @458@
        
    #elseif @__this == 458
        #undef Module
        #undef @__this
        #define @__this 459
        #define Module: @459@
        
    #elseif @__this == 459
        #undef Module
        #undef @__this
        #define @__this 460
        #define Module: @460@
        
    #elseif @__this == 460
        #undef Module
        #undef @__this
        #define @__this 461
        #define Module: @461@
        
    #elseif @__this == 461
        #undef Module
        #undef @__this
        #define @__this 462
        #define Module: @462@
        
    #elseif @__this == 462
        #undef Module
        #undef @__this
        #define @__this 463
        #define Module: @463@
        
    #elseif @__this == 463
        #undef Module
        #undef @__this
        #define @__this 464
        #define Module: @464@
        
    #elseif @__this == 464
        #undef Module
        #undef @__this
        #define @__this 465
        #define Module: @465@
        
    #elseif @__this == 465
        #undef Module
        #undef @__this
        #define @__this 466
        #define Module: @466@
        
    #elseif @__this == 466
        #undef Module
        #undef @__this
        #define @__this 467
        #define Module: @467@
        
    #elseif @__this == 467
        #undef Module
        #undef @__this
        #define @__this 468
        #define Module: @468@
        
    #elseif @__this == 468
        #undef Module
        #undef @__this
        #define @__this 469
        #define Module: @469@
        
    #elseif @__this == 469
        #undef Module
        #undef @__this
        #define @__this 470
        #define Module: @470@
        
    #elseif @__this == 470
        #undef Module
        #undef @__this
        #define @__this 471
        #define Module: @471@
        
    #elseif @__this == 471
        #undef Module
        #undef @__this
        #define @__this 472
        #define Module: @472@
        
    #elseif @__this == 472
        #undef Module
        #undef @__this
        #define @__this 473
        #define Module: @473@
        
    #elseif @__this == 473
        #undef Module
        #undef @__this
        #define @__this 474
        #define Module: @474@
        
    #elseif @__this == 474
        #undef Module
        #undef @__this
        #define @__this 475
        #define Module: @475@
        
    #elseif @__this == 475
        #undef Module
        #undef @__this
        #define @__this 476
        #define Module: @476@
        
    #elseif @__this == 476
        #undef Module
        #undef @__this
        #define @__this 477
        #define Module: @477@
        
    #elseif @__this == 477
        #undef Module
        #undef @__this
        #define @__this 478
        #define Module: @478@
        
    #elseif @__this == 478
        #undef Module
        #undef @__this
        #define @__this 479
        #define Module: @479@
        
    #elseif @__this == 479
        #undef Module
        #undef @__this
        #define @__this 480
        #define Module: @480@
        
    #elseif @__this == 480
        #undef Module
        #undef @__this
        #define @__this 481
        #define Module: @481@
        
    #elseif @__this == 481
        #undef Module
        #undef @__this
        #define @__this 482
        #define Module: @482@
        
    #elseif @__this == 482
        #undef Module
        #undef @__this
        #define @__this 483
        #define Module: @483@
        
    #elseif @__this == 483
        #undef Module
        #undef @__this
        #define @__this 484
        #define Module: @484@
        
    #elseif @__this == 484
        #undef Module
        #undef @__this
        #define @__this 485
        #define Module: @485@
        
    #elseif @__this == 485
        #undef Module
        #undef @__this
        #define @__this 486
        #define Module: @486@
        
    #elseif @__this == 486
        #undef Module
        #undef @__this
        #define @__this 487
        #define Module: @487@
        
    #elseif @__this == 487
        #undef Module
        #undef @__this
        #define @__this 488
        #define Module: @488@
        
    #elseif @__this == 488
        #undef Module
        #undef @__this
        #define @__this 489
        #define Module: @489@
        
    #elseif @__this == 489
        #undef Module
        #undef @__this
        #define @__this 490
        #define Module: @490@
        
    #elseif @__this == 490
        #undef Module
        #undef @__this
        #define @__this 491
        #define Module: @491@
        
    #elseif @__this == 491
        #undef Module
        #undef @__this
        #define @__this 492
        #define Module: @492@
        
    #else
        #error Out of Module: bounds!
    #endif
#endif
// Forward our basics!
forward Module:Load(); 

modules.pwn
(allows you to register and invoke other modules)
PHP Code:
#include <a_samp>
#include <amx_assembly\amx_header>
#include <amx_assembly\dynamic_call>
#include <amx_assembly\stack_trace>
#include <metarpg\module>
#include <metarpg\util>
enum E_MODULE
{
    
Module_Name[64],
    
Module_Description[128],
    
Module_Author[64],
    
Module_Version[32],
    
Module_Internal_Token[8]
};
stock g_Modules[64][E_MODULE];
stock g_Modules_Count 0;
#if !defined META_STANDALONE 
public OnFilterScriptInit()
    
Module_Initialize();
#endif
// This little trick lets us pass the module internal token when we register ourselves.
// Trick intellisense into including the parameters in its definition!
#if false 
    
native Module_Register(ModuleName[], ModuleAuthor[], ModuleVersion[], ModuleDescription[]); 
#endif
#define Module_Register(%1) _Module_Register(%1, .ModuleInternalToken = #Module:)
stock _Module_Register(ModuleName[64], ModuleAuthor[64]=""ModuleVersion[32]=""ModuleDescription[128]=""ModuleInternalToken[8])
{
    
set(g_Modules[g_Modules_Count][Module_Name], ModuleName64);
    
set(g_Modules[g_Modules_Count][Module_Author], ModuleAuthor64);
    
set(g_Modules[g_Modules_Count][Module_Version], ModuleVersion32);
    
set(g_Modules[g_Modules_Count][Module_Description], ModuleDescription128);
    
set(g_Modules[g_Modules_Count][Module_Internal_Token], ModuleInternalToken8);
    
    
g_Modules_Count++;
    
    return 
g_Modules_Count-1;
}
// Let's register ourself as a module!
public Module:Load()
    
Module_Register("Core - Modules""Alcatrik""2.0.0""Provides the infrastructure to allow for modularity throughout the gamemode.");
// Load all functions that end in @Load!
stock Module_Initialize()
{    
    new 
amxhdr[AMX_HDR];
    
GetAmxHeader(amxhdr);
    new 
pubs GetNumPublics(amxhdr);
    
    new 
count;
    
    for(new 
ipubsi++)
    {
        static 
name[128];
        
GetPublicNameFromIndex(iname128);
        new 
idx strlen(name)-strlen("@Load");
        
        if(
idx 0)
            continue;
        
        if(!
strcmp(name[idx], "@Load"))
        {
            
            
CallFunction(GetPublicAddressFromIndex(i));
            
            new 
this_module[128], this_module_idx;
            
strmid(this_modulename0idx+1);
            
this_module_idx Module_FindByToken(this_module);
            
            if(!
isnull(g_Modules[this_module_idx][Module_Name]))
                
printf("    -> %s initialised..."g_Modules[this_module_idx][Module_Name]);
            
            
count++;
        }
    }
    return 
count;
}
stock Module_GetName(Module)
{
    return 
g_Modules[Module][Module_Name];
}
stock Module_GetDescription(Module)
    return 
g_Modules[Module][Module_Description];
stock Module_GetAuthor(Module)
    return 
g_Modules[Module][Module_Author];
stock Module_GetVersion(Module)
    return 
g_Modules[Module][Module_Version];
stock Module_GetInternalToken(Module)
    return 
g_Modules[Module][Module_Internal_Token];
stock Module_GetFunction(ModuleFunc[])
{
    new 
tmp[128];
    
format(tmp128"%s%s"g_Modules[Module][Module_Internal_Token], Func)
    return 
GetPublicAddressFromName(tmp);
}
stock Module_FindByName(name[])
{
    for(new 
isizeof(g_Modules); i++)
    {
        if(
equal(g_Modules[i][Module_Name], name))
            return 
i;
    }
    return -
1;
}
stock Module_FindByToken(token[])
{
    for(new 
isizeof(g_Modules); i++)
    {
        if(
equal(g_Modules[i][Module_Internal_Token], token))
            return 
i;
    }
    return -
1;
}
stock Module_GetCount()
    return 
g_Modules_Count
events.pwn
(for dynamic event hooking)

PHP Code:
#include <a_samp>
#include <amx_assembly\amx_header>
#include <amx_assembly\dynamic_call>
#include <metarpg\module>
#include <metarpg\util>
enum 
{
    
Event_Hash,
    
Event_Address,
    
Event_Module
}
stock g_EventDictionary[4096][3];
stock g_EventCount 0;
stock g_EventHash;
stock g_EventCancelled 0;
// Given I can't put comments in the macro, and given there's a couple of counter intuitive things in this macro,
// I'll document the weirder things here:
// 1. The ;; - Pawn strips off the last ; in defines, so what this should actually be read as is Event_Call(%0);. This will
// cause an "Undefined symbol: Event_Call" error where people forget their semicolons but I can live with that given you are
// meant to terminate lines with semicolons with Pawn and anyone who doesn't is a heathen dog botherer.
// 2. YHash_Once - a little smart trick I came up with. It effectively caches the hash - meaing that it is only ran once. This
// does on the other hand mean that I need a separate function for if anyone ever wants to call an event dynamically (ie. with
// a generated event name rather than just a static OnPlayerUpdate or whatever). End result of this is that after the first event
// is ran, thereon event calls are as fast as FastCall was in previous versions of events.pwn.
#define Event_Call(%0);; \
{ \
    static 
hash; \
    static 
cancelled 0; \
    \
    
hash YHash_Once(hash, %0); \
    \
    
g_EventHash hash; \
    
g_EventCancelled cancelled; \
    \
    for(new 
__e__e g_EventCount__e++) \
    { \
        if(
g_EventDictionary[__e][Event_Hash] != hash) \
            continue; \
        \
        
CallFunction(g_EventDictionary[__e][Event_Address]); \
    } \
}
#define Event_CallEx(%0,%1);; \
{ \
    static 
hash; \
    static 
cancelled 0; \
    \
    
hash YHash_Once(hash, %0); \
    \
    
g_EventHash hash; \
    
g_EventCancelled cancelled; \
    \
    for(new 
__e__e g_EventCount__e++) \
    { \
        if(
g_EventDictionary[__e][Event_Hash] != hash) \
            continue; \
        \
        
CallFunction(g_EventDictionary[__e][Event_Address], %1); \
    } \
}
    
public 
Module:Load()
{
    
Module_Register("Core - Events""Alcatrik""4.0.0""Facilitates internally hooking multiple functions from a variety of modules to events within PAWN.");
    
// Search for shortcuts!
    
new amxhdr[AMX_HDR];
    
GetAmxHeader(amxhdr);
    new 
pubs GetNumPublics(amxhdr);
    
    for(new 
ipubsi++)
    {
        static 
name[128];
        
GetPublicNameFromIndex(iname128);
        
        new 
idx chrfindrev('@'name);
        if(
idx == -|| !beginsWith(name[idx+1], "e_"))
            continue;
        
        new 
module[8];
        
strmid(modulename0idx+1);
        
_Event_Hook(name[idx+3], name_module);
    }
}
#define Event_Hook(%0) _Event_Hook(%0, ._caller =#Module:)
stock _Event_Hook(EventName[], Callback[], afterModule[]=""_caller[])
{
    
assert(g_EventCount sizeof(g_EventDictionary));
    if(
funcidx(Callback) == -1)
        return 
false;
    
    new 
idx g_EventCounthash YHash(EventName);
    if(!
isnull(afterModule))
    {
        new 
target Module_FindByName(afterModule);
        for(new 
g_EventCount>= 0i--)
        {
            if(
g_EventDictionary[i][Event_Hash] == hash && g_EventDictionary[i][Event_Module] == target)
            {
                
idx i+1;
                break;
            }
        }
    }
    
    new 
data[3];
    
data[0] = hash;
    
data[1] = GetPublicAddressFromName(Callback); 
    
data[2] = Module_FindByToken(_caller);
    
array_insert_arr(g_EventDictionaryidxdata);
    
g_EventCount++;
    
    return 
true;
}
stock YHash_Once(var, str[], {_Float}:...)
{
    if(!var)
        return 
YHash(str);
    else
        return var;
}
stock Event_Cancel()
{
    
g_EventCancelled true;
    return 
1;
}
stock bool:Event_WasCancelled()
    return 
bool:g_EventCancelled;
    
// SA-MP callbacks
    
public OnPlayerConnect(playerid)
{
    
Event_CallEx("OnPlayerConnect"playerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerDisconnect(playeridreason)
{
    
Event_CallEx("OnPlayerDisconnect"playeridreason);
    return !
Event_WasCancelled();
}
public 
OnPlayerSpawn(playerid)
{
    
Event_CallEx("OnPlayerSpawn"playerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    
Event_CallEx("OnPlayerDeath"playeridkilleridreason);
    return !
Event_WasCancelled();
}
public 
OnVehicleSpawn(vehicleid)
{
    
Event_CallEx("OnVehicleSpawn"vehicleid);
    return !
Event_WasCancelled();
}
public 
OnVehicleDeath(vehicleidkillerid)
{
    
Event_CallEx("OnVehicleDeath"vehicleidkillerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerText(playeridtext[])
{
    
Event_CallEx("OnPlayerText"playeridref(text));
    return !
Event_WasCancelled();
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    
Event_CallEx("OnPlayerCommandText"playeridref(cmdtext));
    return 
Event_WasCancelled();
}
public 
OnPlayerRequestClass(playeridclassid)
{
    
Event_CallEx("OnPlayerRequestClass"playeridclassid);
    return !
Event_WasCancelled();
}
public 
OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
    
Event_CallEx("OnPlayerEnterVehicle"playeridvehicleidispassenger);
    return !
Event_WasCancelled();
}
public 
OnPlayerExitVehicle(playeridvehicleid)
{
    
Event_CallEx("OnPlayerExitVehicle"playeridvehicleid);
    return !
Event_WasCancelled();
}
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    
Event_CallEx("OnPlayerStateChange"playeridnewstateoldstate);
    return !
Event_WasCancelled();
}
public 
OnPlayerEnterCheckpoint(playerid)
{
    
Event_CallEx("OnPlayerEnterCheckpoint"playerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerLeaveCheckpoint(playerid)
{
    
Event_CallEx("OnPlayerLeaveCheckpoint"playerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerEnterRaceCheckpoint(playerid)
{
    
Event_CallEx("OnPlayerEnterRaceCheckpoint"playerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerLeaveRaceCheckpoint(playerid)
{
    
Event_CallEx("OnPlayerLeaveRaceCheckpoint"playerid);
    return !
Event_WasCancelled();
}
public 
OnRconCommand(cmd[])
{
    
Event_CallEx("OnRconCommand"ref(cmd));
    return 
Event_WasCancelled();
}
public 
OnPlayerRequestSpawn(playerid)
{
    
Event_CallEx("OnPlayerRequestSpawn"playerid);
    return !
Event_WasCancelled();
}
public 
OnObjectMoved(objectid)
{
    
Event_CallEx("OnObjectMoved"objectid);
    return !
Event_WasCancelled();
}
public 
OnPlayerObjectMoved(playeridobjectid)
{
    
Event_CallEx("OnPlayerObjectMoved"playeridobjectid);
    return !
Event_WasCancelled();
}
public 
OnPlayerPickUpPickup(playeridpickupid)
{
    
Event_CallEx("OnPlayerPickUpPickup"playeridpickupid);
    return !
Event_WasCancelled();
}
public 
OnVehicleMod(playeridvehicleidcomponentid)
{
    
Event_CallEx("OnVehicleMod"playeridvehicleidcomponentid);
    return !
Event_WasCancelled();
}
public 
OnEnterExitModShop(playeridenterexitinteriorid)
{
    
Event_CallEx("OnEnterExitModShop"playeridenterexitinteriorid);
    return !
Event_WasCancelled();
}
public 
OnVehiclePaintjob(playeridvehicleidpaintjobid)
{
    
Event_CallEx("OnVehiclePaintjob"playeridvehicleidpaintjobid);
    return !
Event_WasCancelled();
}
public 
OnVehicleRespray(playeridvehicleidcolor1color2)
{
    
Event_CallEx("OnVehicleRespray"playeridvehicleidcolor1color2);
    return !
Event_WasCancelled();
}
public 
OnVehicleDamageStatusUpdate(vehicleidplayerid)
{
    
Event_CallEx("OnVehicleDamageStatusUpdate"vehicleidplayerid);
    return !
Event_WasCancelled();
}
public 
OnUnoccupiedVehicleUpdate(vehicleidplayeridpassenger_seatFloat:new_xFloat:new_yFloat:new_z)
{
    
Event_CallEx("OnUnoccupiedVehicleUpdate"vehicleidplayeridpassenger_seatFloat:new_xFloat:new_yFloat:new_z);
    return !
Event_WasCancelled();
}
public 
OnPlayerSelectedMenuRow(playeridrow)
{
    
Event_CallEx("OnPlayerSelectedMenuRow"playeridrow);
    return !
Event_WasCancelled();
}
public 
OnPlayerExitedMenu(playerid)
{
    
Event_CallEx("OnPlayerExitedMenu"playerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerInteriorChange(playeridnewinterioridoldinteriorid)
{
    
Event_CallEx("OnPlayerInteriorChange"playeridnewinterioridoldinteriorid);
    return !
Event_WasCancelled();
}
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    
Event_CallEx("OnPlayerKeyStateChange"playeridnewkeysoldkeys);
    return !
Event_WasCancelled();
}
public 
OnRconLoginAttempt(ip[], password[], success)
{
    
Event_CallEx("OnRconLoginAttempt"ref(ip), ref(password), success);
    return !
Event_WasCancelled();
}
public 
OnPlayerUpdate(playerid)
{
    
Event_CallEx("OnPlayerUpdate"playerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerStreamIn(playeridforplayerid)
{
    
Event_CallEx("OnPlayerStreamIn"playeridforplayerid);
    return !
Event_WasCancelled();
}
public 
OnPlayerStreamOut(playeridforplayerid)
{
    
Event_CallEx("OnPlayerStreamOut"playeridforplayerid);
    return !
Event_WasCancelled();
}
public 
OnVehicleStreamIn(vehicleidforplayerid)
{
    
Event_CallEx("OnVehicleStreamIn"vehicleidforplayerid);
    return !
Event_WasCancelled();
}
public 
OnVehicleStreamOut(vehicleidforplayerid)
{
    
Event_CallEx("OnVehicleStreamOut"vehicleidforplayerid);
    return !
Event_WasCancelled();
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    
Event_CallEx("OnDialogResponse"playeriddialogidresponselistitemref(inputtext));
    return !
Event_WasCancelled();
}
public 
OnPlayerTakeDamage(playeridissueridFloat:amountweaponidbodypart)
{
    
Event_CallEx("OnPlayerTakeDamage"playeridissueridamountweaponidbodypart);
    return !
Event_WasCancelled();
}
public 
OnPlayerGiveDamage(playeriddamagedidFloat:amountweaponidbodypart)
{
    
Event_CallEx("OnPlayerGiveDamage"playeriddamagedidamountweaponidbodypart);
    return !
Event_WasCancelled();
}
public 
OnPlayerClickMap(playeridFloat:fXFloat:fYFloat:fZ)
{
    
Event_CallEx("OnPlayerClickMap"playeridfXfYfZ);
    return !
Event_WasCancelled();
}
public 
OnPlayerClickTextDraw(playeridText:clickedid)
{
    
Event_CallEx("OnPlayerClickTextDraw"playerid_:clickedid);
    return !
Event_WasCancelled();
}
public 
OnPlayerClickPlayerTextDraw(playeridPlayerText:playertextid)
{
    new 
wasCancelled;
    
Event_CallEx("OnPlayerClickPlayerTextDraw"playerid_:playertextid);
    
wasCancelled Event_WasCancelled()
    
Event_CallEx("OnPlayerClickPlayerTD"playerid_:playertextid);
    
    return !
wasCancelled && !Event_WasCancelled();
}
public 
OnPlayerClickPlayer(playeridclickedplayeridsource)
{
    
Event_CallEx("OnPlayerClickPlayer"playeridclickedplayeridsource);
    return !
Event_WasCancelled();
}
public 
OnPlayerSelectObject(playeridtypeobjectidmodelidFloat:fXFloat:fYFloat:fZ)
{
    
Event_CallEx("OnPlayerSelectObject"playeridtypeobjectidmodelidfXfYfZ);
    return !
Event_WasCancelled();
}
public 
OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ)
{
    
Event_CallEx("OnPlayerWeaponShot"playeridweaponidhittypehitidfXfYfZ);
    return !
Event_WasCancelled();
}
public 
OnGameModeExit()
{
    
Event_Call("OnScriptExit");
    return !
Event_WasCancelled();
}
public 
OnFilterScriptExit()
{
    
Event_Call("OnScriptExit");
    return !
Event_WasCancelled();

example:
PHP Code:
#include <a_samp>
#include <a_mysql>
#include <amx_assembly\amx_header>
#include <amx_assembly\dynamic_call>
#include <metarpg\module>
#include <metarpg\util>
forward Module:e_OnPlayerConnect(playerid);
forward Module:delegate_OnPlayerConnect(playerid);
forward Module:e_OnPlayerRequestClass(playeridclassid);
new 
g_PlayerAccount[MAX_PLAYERS][E_ACCOUNT];
static 
vw_Account_Login = -1;
public 
Module:e_OnPlayerConnect(playerid)
{
    
SetTimerEx(#Module:"delegate_OnPlayerConnect", 500, 0, "i", playerid);
}
public 
Module:delegate_OnPlayerConnect(playerid)
{
    if(
vw_Account_Login == -1)
        
vw_Account_Login Module_FindByName("vw_Account_Login");
    
    new 
Module_GetFunction(vw_Account_Login"Draw");
    
CallFunction(fplayerid);
}
stock LoadPlayerAccount(playerid)
{
    
Account_Load(g_PlayerAccount[playerid]);
    
Event_CallEx("OnPlayerLogin"playerid);
}
stock IsPlayerLoggedIn(playerid)
{
    return !
isnull(g_PlayerAccount[playerid][Account_Name]);
}
stock ORM:GetPlayerAccountOrm(playerid)
{
    return 
g_PlayerAccount[playerid][Account_Orm];
}
stock GetPlayerAccountId(playerid)
{
    return 
g_PlayerAccount[playerid][Account_Id];
}
stock GetPlayerAccountName(playerid)
{
    return 
g_PlayerAccount[playerid][Account_Name];
}
stock GetPlayerAccountEmail(playerid)
{
    return 
g_PlayerAccount[playerid][Account_Email];
}
stock GetPlayerAccountLastLogin(playerid)
{
    return 
g_PlayerAccount[playerid][Account_Time_LastLogin];
}
stock GetPlayerAccountCreated(playerid)
{
    return 
g_PlayerAccount[playerid][Account_Time_Created];
}
// Remove spawn button
public Module:e_OnPlayerRequestClass(playeridclassid)
    return 
0
Reply
#26

Quote:
Originally Posted by Crayder
View Post
False, y_hooks is built to be included in each include/module it is used in. That's how it works. So YES, you do need to include y_hooks in every module it is used otherwise it'll attempt to redefine the same names.
Most scripts separate stuff by: callbacks, commands, defines, variables, functions, etc.
Reply
#27

Quote:
Originally Posted by SickAttack
View Post
Most scripts separate stuff by: callbacks, commands, defines, variables, functions, etc.
That's perfectly fine, but unrelated. Even if they did they modules like that, they still have to include y_hooks in all files that it is used in (like I said in the comment you quoted).
Reply
#28

Quote:
Originally Posted by Crayder
View Post
That's perfectly fine, but unrelated. Even if they did they modules like that, they still have to include y_hooks in all files that it is used in (like I said in the comment you quoted).
Not sure why, because each module has its own unique dependency in that case.
Reply
#29

Can Somebody help me with this error?

in my gamemodes folder is the folder server with the file enums.pwn

in my main pwn its included with #include <server/enum.pwn>

but the error is
fatal error 100: cannot read from file: "../gamemodes/server/enum.pwn"
Reply
#30

Quote:
Originally Posted by theralio
View Post
Can Somebody help me with this error?

in my gamemodes folder is the folder server with the file enums.pwn

in my main pwn its included with #include <server/enum.pwn>

but the error is
fatal error 100: cannot read from file: "../gamemodes/server/enum.pwn"
Open a console (Command Line or PowerShell) instance in the root folder of your project, type tree and paste the result here.
Reply
#31

This is pretty cool and something that i am following to do atm which is what i think should have all upcoming gamemodes based on (seeing as gamemodes are meant to have lots of code), i would advise using y_hooks tho because using the ALS hooking method in each and every single file will just bore the shit out of you.
Reply
#32

I have attempted to write a gamemode in modules but I could not. I believe my main problem is the English language to categorize them correctly and threaded queries. How would you recommend doing it when the order is a must?

I want to retrieve the country of the player, then check if they are banned and last check if they are registered. Country is not related to account and ban is partially related.
Reply
#33

Quote:
Originally Posted by Calisthenics
View Post
I have attempted to write a gamemode in modules but I could not. I believe my main problem is the English language to categorize them correctly and threaded queries. How would you recommend doing it when the order is a must?

I want to retrieve the country of the player, then check if they are banned and last check if they are registered. Country is not related to account and ban is partially related.
Had the exactly the same issue when I tried to go full-modular, but what I've found it easy to break your defines, enumeration, functions, call backs in different files.

So utils.pwn, cmds.pwn, and so on. And it's just good enough for me.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)