admin Дата: Понедельник, 19.09.2011, 18:15:53 | Сообщение # 1
Группа: Администраторы
Сообщений: 3869
Для начала качаем архив и заливаем себе. После этого открываем мод и пишем верху мода: Code
#include <YSI\y_ini> //если уже прописано в моде то 2 раз можно не писать #include < foreach > //если уже прописано в моде то 2 раз можно не писать #define rTime 5000 // мил.секунды #define rRecTarget "rRecord.sav" #define Public:%0(%1) forward %0( %1 ); public %0( %1 ) #define FormatMSG(%0,%1,%2,%3)\ do\ {\ format( _S_T_R_, 10000, (%2), %3 );\ SendClientMessage((%0),(%1), _S_T_R_);\ }\ while ( False ) new H[ 1 + 1 ], _S_T_R_[ 1000 ], rPlayers, rNRec[ MAX_PLAYER_NAME ], rARec, rDRec[ 3 ], rHRec[ 2 ] ; new rMounth[ 12 ][ ] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; stock bool:False = false ;
После этого ищем public OnGameModeInit и туда вставляем: Code
rPlayers = OnlinePlayers( ); INI_ParseFile(rRecTarget, "pRecord"); gettime( H[ 0 ], H[ 1 ] ); printf( "|| %02d:%02d || ", H[ 0 ], H[ 1 ] );
примерно так должен быть public: Code
public OnGameModeInit( ) { rPlayers = OnlinePlayers( ); INI_ParseFile(rRecTarget, "pRecord"); gettime( H[ 0 ], H[ 1 ] ); printf( "|| %02d:%02d || ", H[ 0 ], H[ 1 ] ); return ( 1 ); }
После этог ищем public OnGameModeExit и туда вставляем: Code
gettime( H[ 0 ], H[ 1 ] ); print( "========================================== " ); printf( "|| %02d:%02d || ", H[ 0 ], H[ 1 ] );
Примерно так должен быть public: Code
public OnGameModeExit( ) { gettime( H[ 0 ], H[ 1 ] ); print( "========================================== " ); printf( "|| %02d:%02d || ", H[ 0 ], H[ 1 ] ); return ( 1 ); }
После этого ищем public OnPlayerConnect и туда вставляем: Code
INI_ParseFile(rRecTarget, "pRecord"); // SetTimerEx( "rRecord", rTime, false, "d", playerid );
Примерно так должен быть public: Code
public OnPlayerConnect( playerid ) { INI_ParseFile(rRecTarget, "pRecord"); // SetTimerEx( "rRecord", rTime, false, "d", playerid ); return ( 1 ); }
После этого ищем public OnPlayerDisconnect и туда вставляем: Примерно так должен быть public: Code
public OnPlayerDisconnect( playerid, reason ) { rPlayers --; return( 1 ); }
После этого в любое место вставляем функции: Code
OnlinePlayers( ) { new rConn; foreach(Player, i) rConn++; return ( rConn ); } Public:rRecord( playerid ) { rPlayers ++; if( rARec ) FormatMSG( playerid, -1, "• Рекод посещение сервера: {97FA17}%d{FFFFFF}, зафиксирован {97FA17}%d %s %d{FFFFFF}, на {97FA17}%d:%d{FFFFFF} by {97FA17}%s{FFFFFF}.", rARec, rDRec[ 0 ], rMounth[ rDRec[ 1 ] - 1 ], rDRec[ 2 ], rHRec[ 0 ], rHRec[ 1 ], rNRec ); if( rARec < rPlayers ) { new Date[ 5 ]; getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] ); gettime( Date[ 3 ], Date[ 4 ] ); format( rNRec, sizeof rNRec, "%s", pName( playerid ) ); rARec = OnlinePlayers( ); foreach(Player, i) FormatMSG( i, -1, "• Новый рекорд посещение сервера: {97FA17}%d{FFFFFF}, фиксируется на {97FA17}%d %s %d{FFFFFF}, на {97FA17}%d:%d{FFFFFF} by {97FA17}%s{FFFFFF}.", OnlinePlayers( ), Date[ 2 ], rMounth[ Date[ 1 ] - 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ], pName( playerid ) ); rSaveRec( ); } } Public:pRecord( name[ ], value[ ] ) { if( !strcmp ( name, "rName" ) ) { format( rNRec, sizeof rNRec, "%s", value ); } if( !strcmp ( name, "rNumber" ) ) { rARec = strval( value ); } if( !strcmp ( name, "rDay" ) ) { rDRec[ 0 ] = strval( value ); } if( !strcmp ( name, "rMonth" ) ) { rDRec[ 1 ] = strval( value ); } if( !strcmp ( name, "rYear" ) ) { rDRec[ 2 ] = strval( value ); } if( !strcmp ( name, "rHour" ) ) { rHRec[ 0 ] = strval( value ); } if( !strcmp ( name, "rMins" ) ) { rHRec[ 1 ] = strval( value ); } } rSaveRec( ) { gettime( rHRec[ 0 ], rHRec[ 1 ] ); getdate( rDRec[ 2 ], rDRec[ 1 ], rDRec[ 0 ] ); new INI:rRec = INI_Open( rRecTarget ); INI_WriteString( rRec, "rName", rNRec ); INI_WriteInt( rRec, "rNumber", OnlinePlayers( ) ); INI_WriteInt( rRec, "rDay", rDRec[ 0 ] ); INI_WriteInt( rRec, "rMonth", rDRec[ 1 ] ); INI_WriteInt( rRec, "rYear", rDRec[ 2 ] ); INI_WriteInt( rRec, "rHour", rHRec[ 0 ] ); INI_WriteInt( rRec, "rMins", rHRec[ 1 ] ); INI_Close( rRec ); } pName( p ) { new NAME[ MAX_PLAYER_NAME ]; GetPlayerName( p, NAME, MAX_PLAYER_NAME ); return ( NAME ); } stock rDate( Sec = false ) { new zStr[ 30 ]; if ( Sec ) { new Date[ 6 ]; getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] ); gettime( Date[ 3 ], Date[ 4 ], Date[ 5 ] ); format( zStr, 30, "{97FA17}%d %s %d{FFFFFF}, at {97FA17}%d:%d:%d{FFFFFF}", Date[ 2 ], Date[ 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ], Date[ 5 ] ); } else { new Date[ 5 ]; getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] ); gettime( Date[ 3 ], Date[ 4 ] ); format( zStr, 30, "{97FA17}%d %s %d{FFFFFF}, at {97FA17}%d:%d{FFFFFF}", Date[ 2 ], rMounth[ Date[ 1 ] - 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ] ); } return ( zStr ); }
Урок by - 26_RUSSS
zm-jail.ru Разработка сайта samp-pawno.ru
Сообщение Для начала качаем архив и заливаем себе. После этого открываем мод и пишем верху мода: Code
#include <YSI\y_ini> //если уже прописано в моде то 2 раз можно не писать #include < foreach > //если уже прописано в моде то 2 раз можно не писать #define rTime 5000 // мил.секунды #define rRecTarget "rRecord.sav" #define Public:%0(%1) forward %0( %1 ); public %0( %1 ) #define FormatMSG(%0,%1,%2,%3)\ do\ {\ format( _S_T_R_, 10000, (%2), %3 );\ SendClientMessage((%0),(%1), _S_T_R_);\ }\ while ( False ) new H[ 1 + 1 ], _S_T_R_[ 1000 ], rPlayers, rNRec[ MAX_PLAYER_NAME ], rARec, rDRec[ 3 ], rHRec[ 2 ] ; new rMounth[ 12 ][ ] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; stock bool:False = false ;
После этого ищем public OnGameModeInit и туда вставляем: Code
rPlayers = OnlinePlayers( ); INI_ParseFile(rRecTarget, "pRecord"); gettime( H[ 0 ], H[ 1 ] ); printf( "|| %02d:%02d || ", H[ 0 ], H[ 1 ] );
примерно так должен быть public: Code
public OnGameModeInit( ) { rPlayers = OnlinePlayers( ); INI_ParseFile(rRecTarget, "pRecord"); gettime( H[ 0 ], H[ 1 ] ); printf( "|| %02d:%02d || ", H[ 0 ], H[ 1 ] ); return ( 1 ); }
После этог ищем public OnGameModeExit и туда вставляем: Code
gettime( H[ 0 ], H[ 1 ] ); print( "========================================== " ); printf( "|| %02d:%02d || ", H[ 0 ], H[ 1 ] );
Примерно так должен быть public: Code
public OnGameModeExit( ) { gettime( H[ 0 ], H[ 1 ] ); print( "========================================== " ); printf( "|| %02d:%02d || ", H[ 0 ], H[ 1 ] ); return ( 1 ); }
После этого ищем public OnPlayerConnect и туда вставляем: Code
INI_ParseFile(rRecTarget, "pRecord"); // SetTimerEx( "rRecord", rTime, false, "d", playerid );
Примерно так должен быть public: Code
public OnPlayerConnect( playerid ) { INI_ParseFile(rRecTarget, "pRecord"); // SetTimerEx( "rRecord", rTime, false, "d", playerid ); return ( 1 ); }
После этого ищем public OnPlayerDisconnect и туда вставляем: Примерно так должен быть public: Code
public OnPlayerDisconnect( playerid, reason ) { rPlayers --; return( 1 ); }
После этого в любое место вставляем функции: Code
OnlinePlayers( ) { new rConn; foreach(Player, i) rConn++; return ( rConn ); } Public:rRecord( playerid ) { rPlayers ++; if( rARec ) FormatMSG( playerid, -1, "• Рекод посещение сервера: {97FA17}%d{FFFFFF}, зафиксирован {97FA17}%d %s %d{FFFFFF}, на {97FA17}%d:%d{FFFFFF} by {97FA17}%s{FFFFFF}.", rARec, rDRec[ 0 ], rMounth[ rDRec[ 1 ] - 1 ], rDRec[ 2 ], rHRec[ 0 ], rHRec[ 1 ], rNRec ); if( rARec < rPlayers ) { new Date[ 5 ]; getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] ); gettime( Date[ 3 ], Date[ 4 ] ); format( rNRec, sizeof rNRec, "%s", pName( playerid ) ); rARec = OnlinePlayers( ); foreach(Player, i) FormatMSG( i, -1, "• Новый рекорд посещение сервера: {97FA17}%d{FFFFFF}, фиксируется на {97FA17}%d %s %d{FFFFFF}, на {97FA17}%d:%d{FFFFFF} by {97FA17}%s{FFFFFF}.", OnlinePlayers( ), Date[ 2 ], rMounth[ Date[ 1 ] - 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ], pName( playerid ) ); rSaveRec( ); } } Public:pRecord( name[ ], value[ ] ) { if( !strcmp ( name, "rName" ) ) { format( rNRec, sizeof rNRec, "%s", value ); } if( !strcmp ( name, "rNumber" ) ) { rARec = strval( value ); } if( !strcmp ( name, "rDay" ) ) { rDRec[ 0 ] = strval( value ); } if( !strcmp ( name, "rMonth" ) ) { rDRec[ 1 ] = strval( value ); } if( !strcmp ( name, "rYear" ) ) { rDRec[ 2 ] = strval( value ); } if( !strcmp ( name, "rHour" ) ) { rHRec[ 0 ] = strval( value ); } if( !strcmp ( name, "rMins" ) ) { rHRec[ 1 ] = strval( value ); } } rSaveRec( ) { gettime( rHRec[ 0 ], rHRec[ 1 ] ); getdate( rDRec[ 2 ], rDRec[ 1 ], rDRec[ 0 ] ); new INI:rRec = INI_Open( rRecTarget ); INI_WriteString( rRec, "rName", rNRec ); INI_WriteInt( rRec, "rNumber", OnlinePlayers( ) ); INI_WriteInt( rRec, "rDay", rDRec[ 0 ] ); INI_WriteInt( rRec, "rMonth", rDRec[ 1 ] ); INI_WriteInt( rRec, "rYear", rDRec[ 2 ] ); INI_WriteInt( rRec, "rHour", rHRec[ 0 ] ); INI_WriteInt( rRec, "rMins", rHRec[ 1 ] ); INI_Close( rRec ); } pName( p ) { new NAME[ MAX_PLAYER_NAME ]; GetPlayerName( p, NAME, MAX_PLAYER_NAME ); return ( NAME ); } stock rDate( Sec = false ) { new zStr[ 30 ]; if ( Sec ) { new Date[ 6 ]; getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] ); gettime( Date[ 3 ], Date[ 4 ], Date[ 5 ] ); format( zStr, 30, "{97FA17}%d %s %d{FFFFFF}, at {97FA17}%d:%d:%d{FFFFFF}", Date[ 2 ], Date[ 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ], Date[ 5 ] ); } else { new Date[ 5 ]; getdate( Date[ 0 ], Date[ 1 ], Date[ 2 ] ); gettime( Date[ 3 ], Date[ 4 ] ); format( zStr, 30, "{97FA17}%d %s %d{FFFFFF}, at {97FA17}%d:%d{FFFFFF}", Date[ 2 ], rMounth[ Date[ 1 ] - 1 ], Date[ 0 ], Date[ 3 ], Date[ 4 ] ); } return ( zStr ); }
Урок by - 26_RUSSS Автор - admin Дата добавления - 19.09.2011 в 18:15:53