#include <amxmodx>
#include <amxmisc>
#pragma semicolon 1
#define ALKOTO ""
#define VERZIO ""
#define PLUGIN ""
#define IDOTARTAM 14 //Két hét
new g_iVip[ 33 ];
new g_iDatum;
public plugin_init()
{
register_plugin( PLUGIN, VERZIO, ALKOTO );
register_clcmd( "say /veszek", "VESZ" );
new sDatum[ 16 ];
get_time( "%Y%m%d", sDatum, charsmax( sDatum ) );
g_iDatum = str_to_num( sDatum );
}
public client_connect( id )
{
g_iVip[ id ]
//Betoltes( id );
if( g_iVip[ id ] < g_iDatum )
g_iVip[ id ] = 0;
}
public client_disconnect( id )
{
//Mentes( id );
}
public VESZ( id )
{
new sEv[ 8 ], sHonap[ 4 ], sNap[ 4 ], iEv, iHonap, iNap;
get_time( "%Y", sEv, charsmax( sEv ) );
get_time( "%m", sHonap, charsmax( sHonap ) );
get_time( "%d", sNap, charsmax( sNap ) );
iEv = str_to_num( sEv );
iHonap = str_to_num( sHonap );
iNap = str_to_num( sNap );
iNap += IDOTARTAM;
while( iNap > GetDaysInMonth( iHonap, iEv ) )
{
++iHonap;
iNap -= GetDaysInMonth( iHonap, iEv );
}
while( iHonap > 12 )
{
++iEv;
iHonap -= 12;
}
new sDatum[ 16 ];
formatex( sDatum, charsmax( sDatum ), "%i%i%i", iEv, iHonap, iNap );
g_iVip = str_to_num( sDatum );
}
GetDaysInMonth( iMonth, iYear=0 ) //Gag menüből
{
switch( iMonth )
{
case 1: return 31;
case 2: return ( ( iYear % 4 ) == 0 ) ? 29 : 28;
case 3: return 31;
case 4: return 30;
case 5: return 31;
case 6: return 30;
case 7: return 31;
case 8: return 31;
case 9: return 30;
case 10: return 31;
case 11: return 30;
case 12: return 31;
}
return 30;
}
Vmi ilyesmiből ki lehet indulni, nem teszteltem, fordítani se próbáltam csak gyors összedobtam.
#define IDOTARTAM -nál adod meg, hogy hány napra kapja, g_iVip[ id ] -t kell menteni, ebben van a lejárati dátum, ha nem vip akkor 0 az értéke, szóval úgy működik mint a többi vipes cuccban, csak itt 1 helyett a lejárati dátum lesz benne.
pl:
"ha vip"
if( g_iVip[ id ] ) { }
"ha nem vip"
if( !g_iVip[ id ] ) { }