Szerző Téma: Ékezetes több elemes parancsok  (Megtekintve 1341 alkalommal)

Nem elérhető Zsoma

  • 516
    • Profil megtekintése
Ékezetes több elemes parancsok
« Dátum: 2012. május 31. - 00:54:57 »
0 Show voters
Hali.
A cím egy kicsit utal a kérdésemre. Kicsit bõvebben:
Hogyan készíthetnék ékezetet tartalmazó több \"al parancs elemet\" magába foglaló parancsot?
Például: \"/szétszed [mit] [hány darabra]\"
A példa egy hülyeség, dee nagyjából szemlélteti a gondom.
Ötlet tanács?  :-[

Nem elérhető zeteni

  • 1970
  • Ex-Scripter
    • Profil megtekintése
Ékezetes több elemes parancsok
« Válasz #1 Dátum: 2012. május 31. - 10:26:22 »
0 Show voters
Az \"alparancs elemhez\" használj sscanf-ot. Ékezethez nem tudom. A ZCMD nem ismeri fel. Lehet az STRCMP felismeri

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Ékezetes több elemes parancsok
« Válasz #2 Dátum: 2012. május 31. - 11:48:08 »
0 Show voters
Most nem értelek? Mit használsz ZCMD vagy cmdtext -et? Mert ami alapból benne van a pawn -ban az ékezetes és a ZCMD az meg nem..  :question:

Ékezetes több elemes parancsok
« Válasz #3 Dátum: 2012. május 31. - 14:27:42 »
0 Show voters
darabolásra az
utils.inc

 kell neked, az ékezethez meg strcmp

Nem elérhető Zsoma

  • 516
    • Profil megtekintése
Ékezetes több elemes parancsok
« Válasz #4 Dátum: 2012. május 31. - 16:04:25 »
0 Show voters
Idézetet írta: ZyZu date=1338457688\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22201\" data-ipsquote-contentclass=\"forums_Topic
Most nem értelek? Mit használsz ZCMD vagy cmdtext -et? Mert ami alapból benne van a pawn -ban az ékezetes és a ZCMD az meg nem..  :question:
 
cmdtextet használok és ezt is szeretnék. Mert összetett parancsokat használnék, de zcmdvel ugye nem lehet ékezet! az meg gáz.
sscanf + strcmp?  ::|

Nem elérhető zeteni

  • 1970
  • Ex-Scripter
    • Profil megtekintése
Ékezetes több elemes parancsok
« Válasz #5 Dátum: 2012. május 31. - 16:21:50 »
0 Show voters
Szerintem azzal is mûködik. És jobb mint az strtok  :-\\

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
Ékezetes több elemes parancsok
« Válasz #6 Dátum: 2012. május 31. - 17:46:09 »
0 Show voters
Nekem a strcmd az nekem egy kicsit magass..

Nem elérhető JBauer

  • 1407
    • Profil megtekintése
Ékezetes több elemes parancsok
« Válasz #7 Dátum: 2012. május 31. - 20:06:04 »
0 Show voters
ZCMD-vel is megoldható az ékezet. Nem tudom ki írta, nem saját, de itt van a ZCMD.inc ami tartalmazza az ékezetes parancsokat.
(Kimásolod, majd beilleszted)
 
/**********************************
*                                *
*   @Author:      ZeeX           *
*   @Version:     0.3.1          *
*   @Released:    31/10/2009     *
*                                *
**********************************/
#if defined _zcmd_included
#endinput
#endif   
#define _zcmd_included
#define MAX_FUNC_NAME (32)
#define COMMAND:%1(%2)          \\
   forward cmd_%1(%2); \\
   public cmd_%1(%2)      
#define CMD:%1(%2) \\
   COMMAND:%1(%2)
#define command(%1,%2,%3) \\
   COMMAND:%1(%2, %3)     
     
#define cmd(%1,%2,%3) \\
   COMMAND:%1(%2, %3)
#if !defined isnull
#define isnull(%1) \\
      ((!(%1[0])) || (((%1[0]) == \'\\1\') && (!(%1[1]))))
#endif
 
forward OnPlayerCommandReceived(playerid, cmdtext[]);
forward OnPlayerCommandPerformed(playerid, cmdtext[], success);
 
static
bool:zcmd_g_HasOPCS = false,
bool:zcmd_g_HasOPCE = false;
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
zcmd_g_HasOPCS = funcidx(\"OnPlayerCommandReceived\") != -1;
zcmd_g_HasOPCE = funcidx(\"OnPlayerCommandPerformed\") != -1;
    return CallLocalFunction(\"zcmd_OnFilterScriptInit\", \"\");
}
#if defined _ALS_OnFilterScriptInit
    #undef OnFilterScriptInit
#else
    #define _ALS_OnFilterScriptInit
#endif
#define OnFilterScriptInit zcmd_OnFilterScriptInit
forward zcmd_OnFilterScriptInit();
#else /*not a filterscript*/
public OnGameModeInit()
{
zcmd_g_HasOPCS = funcidx(\"OnPlayerCommandReceived\") != -1;
zcmd_g_HasOPCE = funcidx(\"OnPlayerCommandPerformed\") != -1;
if (funcidx(\"zcmd_OnGameModeInit\") != -1)
{
return CallLocalFunction(\"zcmd_OnGameModeInit\", \"\");
}   
return 1;
}
#if defined _ALS_OnGameModeInit
    #undef OnGameModeInit
#else
    #define _ALS_OnGameModeInit
#endif
#define OnGameModeInit zcmd_OnGameModeInit
forward zcmd_OnGameModeInit();
#endif /*if defined FILTERSCRIPT*/
stock strfindex(string[], sub[], start = 0, &pos = 0)
{
new r;
r = strfind(string, sub, false, start);
pos = r;
return r;
}
stock replacesubstr(string[],sub[],to[])
{
new
pos,
sublen = strlen(sub),
stringlen = strlen(string);
do
{
pos = strfindex(string, sub);
if(pos >= 0)
{
    strdel(string, pos, pos + sublen);
    strins(string, to, pos, stringlen);
}
else return 1;
}
while(strfindex(string, sub, pos, pos) >= 0);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (zcmd_g_HasOPCS && !CallLocalFunction(\"OnPlayerCommandReceived\", \"is\", playerid, cmdtext))
    {
        return 1;
    }
    new
        pos,
        funcname[MAX_FUNC_NAME];
    while (cmdtext[++pos] > \' \')
{
funcname[pos-1] = tolower(cmdtext[pos]);
}
format(funcname, sizeof(funcname), \"cmd_%s\", funcname);
replacesubstr(funcname, \"ö\", \"_chr0_\");
replacesubstr(funcname, \"Ö\", \"_chr1_\");
replacesubstr(funcname, \"ü\", \"_chr2_\");
replacesubstr(funcname, \"Ü\", \"_chr3_\");
replacesubstr(funcname, \"ó\", \"_chr4_\");
replacesubstr(funcname, \"Ó\", \"_chr5_\");
replacesubstr(funcname, \"õ\", \"_chr6_\");
replacesubstr(funcname, \"Õ\", \"_chr7_\");
replacesubstr(funcname, \"ú\", \"_chr8_\");
replacesubstr(funcname, \"Ú\", \"_chr9_\");
replacesubstr(funcname, \"é\", \"_chr10_\");
replacesubstr(funcname, \"É\", \"_chr11_\");
replacesubstr(funcname, \"á\", \"_chr12_\");
replacesubstr(funcname, \"Á\", \"_chr13_\");
replacesubstr(funcname, \"û\", \"_chr14_\");
replacesubstr(funcname, \"Û\", \"_chr15_\");
replacesubstr(funcname, \"í\", \"_chr16_\");
replacesubstr(funcname, \"Í\", \"_chr17_\");
    while (cmdtext[pos] == \' \') pos++;
if (!cmdtext[pos])
{
if (zcmd_g_HasOPCE)
{
   return CallLocalFunction(\"OnPlayerCommandPerformed\", \"isi\", playerid, cmdtext, CallLocalFunction(funcname, \"is\", playerid, \"\\1\"));
}
return CallLocalFunction(funcname, \"is\", playerid, \"\\1\");   
}
if (zcmd_g_HasOPCE)
{
return CallLocalFunction(\"OnPlayerCommandPerformed\", \"isi\", playerid, cmdtext, CallLocalFunction(funcname, \"is\", playerid, cmdtext[pos]));
}
return CallLocalFunction(funcname, \"is\", playerid, cmdtext[pos]);
}
#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText zcmd_OnPlayerCommandText
forward zcmd_OnPlayerCommandText(playerid, cmdtext[]);

 
Ezek az ékezetek. Jelmagyarázat: \"Ú\" - betû amit helyettesít ; \"_chr9_\" - ezt kell beírnod a parancsba!
Példa parancs:
 
CMD:tesztel_chr10_s(playerid)
{
SendClientMessage(playerid, 0xFFFFFFFF, \"A /tesztelés parancs lefutott...\");
return 1;
}

 
Az összes ékezet listája:
/*
A saját karaktert így kell megadni: _chrAZONOSÍTÓ_
Lista:
ö - _chr0_
Ö - _chr1_
ü - _chr2_
Ü - _chr3_
ó - _chr4_
Ó - _chr5_
õ - _chr6_
Õ - _chr7_
ú - _chr8_
Ú - _chr9_
é - _chr10_
É - _chr11_
á - _chr12_
Á - _chr13_
û - _chr14_
Û - _chr15_
í - _chr16_
Í - _chr17_
*/

 
Remélem érthetõ!
Üdv.
JBauer

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal