SHOW:
|
|
- or go back to the newest paste.
1 | /* | |
2 | ||
3 | VIP ir ADMIN su laiku @ MartynasK | |
4 | Už idėja dėkoju Renas!. | |
5 | ||
6 | */ | |
7 | - | #define VERSIJA "0.1" |
7 | + | #define VERSIJA "0.2" |
8 | #define mySQL_HOST "localhost" | |
9 | #define mySQL_USER "root" | |
10 | #define mySQL_DATA "test" | |
11 | #define mySQL_PASS "" | |
12 | #define USERS_TABLE "zaidejai" | |
13 | ||
14 | - | #define MAX_PLAYERS 10 |
14 | + | #define MAX_PLAYERS 10 |
15 | #define p playerid | |
16 | ||
17 | #include <a_samp> | |
18 | #include <a_mysql> | |
19 | #include <zmcd> | |
20 | #include <sscanf2> | |
21 | ||
22 | enum playerInfo | |
23 | { | |
24 | Admin, | |
25 | AdminL, | |
26 | Vip, | |
27 | VipL | |
28 | } | |
29 | new pData[ MAX_PLAYERS ][ playerInfo ]; | |
30 | ||
31 | main( ) | |
32 | { | |
33 | print( "# VIP and ADMIN privileges ( v"VERSIJA" ) for 30 days by MartynasK" ); | |
34 | } | |
35 | ||
36 | public OnGameModeInit() | |
37 | { | |
38 | mysql_debug( true ); | |
39 | mysql_connect( mySQL_HOST, mySQL_USER, mySQL_DATA, mySQL_PASS ); | |
40 | print( "# Jungiamasi prie mySQL..." ); | |
41 | if( mysql_ping( ) >= 1 ) | |
42 | { | |
43 | print( "# Prie mySQL prisijungta sėkmingai." ); | |
44 | ||
45 | } else { | |
46 | ||
47 | print( "# Prie mySQL prisijungti nepavyko. Serveris išjungiamas." ); | |
48 | SendRconCommand( "exit" ); | |
49 | } | |
50 | return 1; | |
51 | } | |
52 | ||
53 | public OnGameModeExit() | |
54 | { | |
55 | mysql_close( ); | |
56 | return 1; | |
57 | } | |
58 | ||
59 | CMD:p( playerid, params[] ) | |
60 | { | |
61 | if( isnull( params ) ) return SendClientMessage( playerid, 0xFFFFFFFF, "[ > ] {ff7e7e}Pirkimai: /p admin, /p vip" ); | |
62 | ||
63 | - | Check [ 1 ][ 10 ]; |
63 | + | if( !strcmp( params, "admin", true ) ) |
64 | { | |
65 | - | sscanf( params, "s[ 10 ]", Check[ 0 ] ) ); |
65 | + | |
66 | pData[ playerid ][ Admin ] = 1; | |
67 | - | if( !strcmp( Check[ 0 ], "admin", true ) ) |
67 | + | pData[ playerid ][ AdminL ] = gettime( ) + 86400 * 30; |
68 | SendClientMessage( playerid, 0xFFFFFFFF, "[ > ] {ff7e7e}Jūsų administratoriaus statusas aktyvuotas 30 dienų." ); | |
69 | return true; | |
70 | } | |
71 | - | pData[ playerid ][ AdminL ] = gettime( ) + 86400000 * 30; |
71 | + | |
72 | else if( !strcmp( params, "vip", true ) ) | |
73 | { | |
74 | if( pData[ playerid ][ Vip ] > 0 ) return SendClientMessage( playerid, 0xFFFFFFFF, "[ > ] {ff7e7e}Jūs jau turite VIP privilegijas." ); | |
75 | pData[ playerid ][ Vip ] = 1; | |
76 | - | else if( !strcmp( Check[ 0 ], "vip", true ) ) |
76 | + | pData[ playerid ][ VipL ] = gettime( ) + 86400 * 30; |
77 | SendClientMessage( playerid, 0xFFFFFFFF, "[ > ] {ff7e7e}Jūsų VIP statusas aktyvuotas 30 dienų." ); | |
78 | return true; | |
79 | } | |
80 | - | pData[ playerid ][ VipL ] = gettime( ) + 86400000 * 30; |
80 | + | |
81 | } | |
82 | ||
83 | public OnPlayerConnect(playerid) | |
84 | { | |
85 | LoadPlayer( playerid ); | |
86 | return 1; | |
87 | } | |
88 | ||
89 | public OnPlayerDisconnect(playerid, reason) | |
90 | { | |
91 | SavePlayer( playerid ); | |
92 | return 1; | |
93 | } | |
94 | ||
95 | public OnPlayerSpawn(playerid) | |
96 | { | |
97 | if( pData[ playerid ][ AdminL ] < gettime( ) ) | |
98 | { | |
99 | if( pData[ playerid ][ Admin ] > 0 ) | |
100 | { | |
101 | SendClientMessage( playerid, 0xFFFFFFFF, "[ > ] {ff7e7e}Deja, bet jūsų ADMIN laikas baigėsi, todėl privilegijos jums nuimamos." ); | |
102 | pData[ playerid ][ Admin ] = 0; | |
103 | return true; | |
104 | } | |
105 | } | |
106 | ||
107 | else if( pData[ playerid ][ VipL ] < gettime( ) ) | |
108 | { | |
109 | if( pData[ playerid ][ Vip ] > 0 ) | |
110 | { | |
111 | SendClientMessage( playerid, 0xFFFFFFFF, "[ > ] {ff7e7e}Deja, bet jūsų VIP laikas baigėsi, todėl privilegijos jums nuimamos." ); | |
112 | pData[ playerid ][ Vip ] = 0; | |
113 | return true; | |
114 | } | |
115 | } | |
116 | return 1; | |
117 | } | |
118 | ||
119 | stock LoadPlayer( playerid ) | |
120 | { | |
121 | new | |
122 | Query [ 100 ], | |
123 | tempInt; | |
124 | ||
125 | format( Query, sizeof( Query ), "SELECT Admin, AdminL, Vip, VipL FROM "USERS_TABLE" WHERE Vardas = '%s'", zVardas( playerid ) ); | |
126 | - | Query [ 280 ], |
126 | + | |
127 | - | Fetch [ 280 ], |
127 | + | |
128 | if( myqsl_fetch_field_row_format( Query, "|" ) ) | |
129 | { | |
130 | - | format( Query, sizeof( Query ), "SELECT * FROM "USERS_TABLE" WHERE Vardas = '%s'", zVardas( playerid ) ); |
130 | + | sscanf( Query, "p<|>iiii>", pData[ playerid ][ Admin ], pData[ playerid ][ AdminL ], pData[ playerid ][ Vip ], pData[ playerid ][ VipL ] ); |
131 | mysql_free_result( ); | |
132 | } | |
133 | - | mysql_retrieve_row( ); |
133 | + | |
134 | ||
135 | - | mysql_fetch_field_row( Fetch, "Admin" ); |
135 | + | |
136 | - | sscanf( Fetch, "i", pData[ playerid ][ Admin ] ); |
136 | + | |
137 | new | |
138 | - | mysql_fetch_field_row( Fetch, "AdminL" ); |
138 | + | |
139 | - | sscanf( Fetch, "i", pData[ playerid ][ AdminL ] ); |
139 | + | |
140 | format( Query, sizeof( Query ), "UPDATE "USERS_TABLE" SET Admin = '%i', AdminL = '%i', Vip = '%i', VipL = '%i' WHERE Vardas = '%s'", pData[p][Admin], pData[p][AdminL], pData[p][Vip], pData[p][VipL], zVardas( playerid ) ); | |
141 | - | mysql_fetch_field_row( Fetch, "Vip" ); |
141 | + | |
142 | - | sscanf( Fetch, "i", pData[ playerid ][ Vip ] ); |
142 | + | |
143 | ||
144 | - | mysql_fetch_field_row( Fetch, "VipL" ); |
144 | + | |
145 | - | sscanf( Fetch, "i", pData[ playerid ][ VipL ] ); |
145 | + | |
146 | new pName[ MAX_PLAYER_NAME ]; | |
147 | - | mysql_free_result( ); |
147 | + | |
148 | return pName; | |
149 | } |