Szerző Téma: SAMPCommand v1.0  (Megtekintve 1158 alkalommal)

SAMPCommand v1.0
« Dátum: 2012. november 05. - 14:40:44 »
+2 Show voters
Elég sok parancsfeldolgozót csináltam már, de ez lett a leggyorsabb.
FCMD: 1718

ZCMD: 586


SAMPCommand:
534
teszt script
Használata:
 
#define     ERROR_COLOR     (-1) // A szín amivel majd ki írja azt az üzenetet amikor rossz parancsot gépelünk be.
#define     COMMAND_ERROR   \"Sajnálom, a szerveren nincs ilyen parancs.\" // A szöveg mikor rossz parancsot gépelünk be.
#include < sampcmd >
SAMPCommand:test( playerid, params[ ] ) {
return 1;
}

 


SAMPCommand:

 
#if !defined ERROR_COLOR
#error \"Elõször definiáld a hibás színt! (ERROR_COLOR)\"
#endif
#if !defined COMMAND_ERROR
#error \"Elõször definiáld a hiba üzenetet! (COMMAND_ERROR)\"
#endif
#define     SAMPCommand:%0(%1,%2) \\
   forward sampc_%0(%1,%2); \\
   public sampc_%0(%1,%2)
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
new params[ 128 + 1 ],
   Spaces,
   i_Space,
   g_szrCommand[ 128 + 1 ];
i_Space = strfind( cmdtext, \" \" );
if( i_Space == (-1) ) i_Space = strlen( cmdtext );
strmid( g_szrCommand, cmdtext, 0, i_Space );
new com_idx[ 128 + 1 ];
format( com_idx, (128), \"sampc_%s\", g_szrCommand[1] );
if( funcidx(com_idx) == (-1) ) return SendClientMessage( playerid, ERROR_COLOR, COMMAND_ERROR );
strmid( params, cmdtext, i_Space + 1, strlen(cmdtext) );
for( new x; x < strlen(params); x++ )
{
    if( params
  • == \' \' )

{
        Spaces ++;
}
}
if( i_Space == (strlen(cmdtext)) || Spaces == strlen(params) ) return CallLocalFunction( com_idx, \"is\", playerid, \"\\1\" );
CallLocalFunction( com_idx, \"is\", playerid, params );
return 1;
}
#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText sampcommand_OnPlayerCommandText
forward sampcommand_OnPlayerCommandText( playerid, cmdtext[ ] );

 
Ékezeteket támogató verzió (LASSABB):
 
#if !defined ERROR_COLOR
#error \"Elõször definiáld a hibás színt! (ERROR_COLOR)\"
#endif
#if !defined COMMAND_ERROR
#error \"Elõször definiáld a hiba üzenetet! (COMMAND_ERROR)\"
#endif
#define     SAMPCommand:%0(%1,%2) \\
   forward sampc_%0(%1,%2); \\
   public sampc_%0(%1,%2)
public OnPlayerCommandText( playerid, cmdtext[ ] )
{
new ekezetek[ ][ ] =
{
    { \'é\', \'e\' },
    { \'á\', \'a\' },
    { \'ö\', \'o\' },
    { \'õ\', \'o\' },
    { \'ü\', \'u\' },
    { \'û\', \'u\' },
    { \'ó\', \'o\' },
    { \'í\', \'i\' }
};
for( new i_Acc; i_Acc < strlen(cmdtext); i_Acc ++ )
{
    for( new i_Ekezet; i_Ekezet < 8; i_Ekezet ++ )
{
       if( cmdtext[i_Acc] == ekezetek[i_Ekezet][0] )
       {
           cmdtext[i_Acc] = ekezetek[i_Ekezet][1];
   }
}
}
// -----------------------------------------
new params[ 128 + 1 ],
   Spaces,
   i_Space,
   g_szrCommand[ 128 + 1 ];
i_Space = strfind( cmdtext, \" \" );
if( i_Space == (-1) ) i_Space = strlen( cmdtext );
strmid( g_szrCommand, cmdtext, 0, i_Space );
new com_idx[ 128 + 1 ];
format( com_idx, (128), \"sampc_%s\", g_szrCommand[1] );
if( funcidx(com_idx) == (-1) ) return SendClientMessage( playerid, ERROR_COLOR, COMMAND_ERROR );
strmid( params, cmdtext, i_Space + 1, strlen(cmdtext) );
for( new x; x < strlen(params); x++ )
{
    if( params
  • == \' \' )

{
        Spaces ++;
}
}
if( i_Space == (strlen(cmdtext)) || Spaces == strlen(params) ) return CallLocalFunction( com_idx, \"is\", playerid, \"\\1\" );
CallLocalFunction( com_idx, \"is\", playerid, params );
return 1;
}
#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText sampcommand_OnPlayerCommandText
forward sampcommand_OnPlayerCommandText( playerid, cmdtext[ ] );
« Utoljára szerkesztve: 2012. november 05. - 20:00:05 írta Fl0rian »

SAMPCommand v1.0
« Válasz #1 Dátum: 2012. november 05. - 18:59:44 »
0 Show voters
Itt engedi az ékezeteket?

SAMPCommand v1.0
« Válasz #2 Dátum: 2012. november 05. - 19:53:05 »
0 Show voters
Nincs benne ékzet támogatás de 1 pillanat és megalkotom.

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
SAMPCommand v1.0
« Válasz #3 Dátum: 2012. november 05. - 21:36:52 »
0 Show voters
Ez nagyon gyönyörû lett nekem tetszik lenne egy kérdésem ezekrõl van egy tutorial, hogy lehet készíteni ilyesmit?.. Mert engemet is érdekelne a dolog :D

SAMPCommand v1.0
« Válasz #4 Dátum: 2012. november 06. - 07:09:09 »
0 Show voters
Nincs, mert csak logika az egész.
Az elv amin próbálj gondolkodni: a szöveg szétválasztása az elsõ szóköz mentén a lehetõ leggyorsabban.
És köszi. :D

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal