Szerző Téma: I_ZCMD  (Megtekintve 1703 alkalommal)

Nem elérhető kos

  • 292
    • Profil megtekintése
I_ZCMD
« Dátum: 2017. július 22. - 20:02:01 »
0 Show voters
Üdv!
 
A kérdésem következő, a régi ZCMD-ben ugye az ékezetes megoldásom a zcmd.inc be raktam.
 

funcname[pos-1] = replaceaccent(funcname[pos-1]);

 
Na most, az új I_ZCMD-ben módosítani kellene ezt. Hogyan kéne átírnom ezt?
 
valamint, ha jól sejtem az újban ide kellene rakni ezt a módosítást, de ha nem azt is megköszönöm h hova kéne. 

pos = strlen(cmdtext);
// ezek közé raknám de ha nem ide kellene a modosított parancsot írjátok le h hova rakjam akkor
funcname[pos] = replaceaccent(funcname[pos]);

 
 

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
I_ZCMD
« Válasz #1 Dátum: 2017. július 22. - 20:14:56 »
0 Show voters
én elolvastam 5 -ször a kérdést és nem értem, most mivan? xd 

Nem elérhető kos

  • 292
    • Profil megtekintése
I_ZCMD
« Válasz #2 Dátum: 2017. július 22. - 20:17:44 »
0 Show voters
Idézetet írta: ZyZu date=1500747296


   
      én elolvastam 5 -ször a kérdést és nem értem, most mivan? xd 
   


Ezt a kódot, ugyebár én a zcmd.inc fáljban használtam
 



   
      funcname[pos-1] = replaceaccent(funcname[pos-1]);
   

[/quote]
 
és ezt kéne módosítani, hogy az új i_zcmd.inc fáljban működjön
 
ez az ékezetes karakteres megoldás csak .inc fáljban

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
I_ZCMD
« Válasz #3 Dátum: 2017. július 22. - 20:24:59 »
0 Show voters

Nem elérhető kos

  • 292
    • Profil megtekintése
I_ZCMD
« Válasz #4 Dátum: 2017. július 22. - 20:32:47 »
0 Show voters
Idézetet írta: ZyZu date=1500747899


   
      /index.php?/forums/topic/27650-zcmd-%C3%A9kezetes-parancsok/\" rel=\"\">https://gtakozosseg.hu/index.php?/forums/topic/27650-zcmd-ékezetes-parancsok/
   


erről beszélek h ez nem jó.... ez a régi zcmd vel kompatibilitis
 
nemek egy ennek módosított változata kéne az új i_zcmd-hez
 
mert teljesen át van írva
 
 
 
nem vagyok hülye, ha lenne az új i_zcmd hez topic nyílván már megtaláltam volna..
 
amit küldtél az a régi sima zcmd hez való
« Utoljára szerkesztve: 2017. július 22. - 20:33:41 írta kos »

Nem elérhető kos

  • 292
    • Profil megtekintése
I_ZCMD
« Válasz #5 Dátum: 2017. július 22. - 20:35:28 »
0 Show voters
Régóta használom azt amit linkeltél de az új 0.2.2 i_zcmd be akarom ezt a tecnikát belerakni csak annyira át van írva h nem tudom h kéne módosítani azt a megoldást.
« Utoljára szerkesztve: 2017. július 22. - 20:35:45 írta kos »

Nem elérhető kos

  • 292
    • Profil megtekintése
I_ZCMD
« Válasz #6 Dátum: 2017. július 22. - 22:51:15 »
0 Show voters
Csak hogy világos legyen.
 
/index.php?/forums/topic/58110-include-improved-zcmd-by-yashas-leggyorsabb-parancs-feldolgoz%C3%B3/\" rel=\"\">gtaközösség topicnál az új I_ZCMD
 
Hivatalos fórum új I_ZCMD
 
és ehhez kéne módosítani a régi ékezetes zcmd kódot
 



   
      funcname[pos-1] = replaceaccent(funcname[pos-1]);
   

[/quote]
 
mert ez az újban már nem működik révén h az új másképpen van megírva. 

I_ZCMD
« Válasz #7 Dátum: 2017. július 23. - 11:14:39 »
+1 Show voters
Én már rákérdeztem régebben. Nem megoldható az ékezet ebben a verzióban.
 
http://forum.sa-mp.com/showthread.php?p=3813934#post3813934

Nem elérhető kos

  • 292
    • Profil megtekintése
I_ZCMD
« Válasz #8 Dátum: 2017. július 23. - 16:32:11 »
+1 Show voters
Idézetet írta: zsoolt997 date=1500801279


   
      Én már rákérdeztem régebben. Nem megoldható az ékezet ebben a verzióban.
   
   
      http://forum.sa-mp.com/showthread.php?p=3813934#post3813934
   


Már megcsináltam  de köszönöm a linket, valamiért nem találtam nagyon rá, hogy foglalkoznak e ezzel mások is. A lényeg h megoldható.

I_ZCMD
« Válasz #9 Dátum: 2017. július 23. - 18:10:30 »
0 Show voters
Kíváncsi lennék rá, hogy hogy oldható meg, ha lehetséges :D

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
I_ZCMD
« Válasz #10 Dátum: 2017. július 23. - 18:21:28 »
+1 Show voters
Én is kíváncsi vagyok a megoldásra, írtam a hivatalos fórum témájába, kíváncsi leszek, biztos fog írni valami zseni xd
« Utoljára szerkesztve: 2017. július 23. - 18:21:48 írta ZyZu »

Nem elérhető gbr333

  • 670
    • Profil megtekintése
I_ZCMD
« Válasz #11 Dátum: 2017. július 23. - 19:33:18 »
+3 Show voters
Nekem így sikerült:
 

/*******************************************************************************************************************************
 Improved ZCMD (iZCMD)
 This include is just a re-make of the ZCMD Command Processor ( V0.3.1 31/10/2009) originnaly developed by Zeex.
 Version: 0.2.3.0 (August 1st 2016)
 GitHub Link: https://github.com/YashasSamaga/I-ZCMD
 Credits:
 Zeex for ZCMD (the very idea of making publics for each command was introduced by Zeex in ZCMD)
 Yashas
 Rolux - Accent
*******************************************************************************************************************************/
#if defined _I_ZCMD_INCLUDED
#endinput
#endif
#define _I_ZCMD_INCLUDED
#define _I_ZCMD_INCLUDED_V0_2_3_0_
/******************************************************************************************************************************/
#define MAX_CLIENT_MSG_LENGTH (144)
#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)
#define CMD_SUCCESS 1
#define CMD_FAILURE 0
#if !defined isnull
        #define isnull(%1) ((!(%1[0])) || (((%1[0]) == \'\\1\') && (!(%1[1]))))
#endif
/******************************************************************************************************************************/
#if defined OnPlayerCommandReceived
forward OnPlayerCommandReceived(playerid,cmdtext[]);
#endif
#if defined OnPlayerCommandPerformed
forward OnPlayerCommandPerformed(playerid,cmdtext[], success);
#endif
/******************************************************************************************************************************/
public OnPlayerCommandText(playerid, cmdtext[])
{
new c_str[MAX_CLIENT_MSG_LENGTH-1];
format(c_str,sizeof(c_str)-1,\"%s\",StringFix(cmdtext));
#if defined OnPlayerCommandReceived
    if(!OnPlayerCommandReceived(playerid, c_str)) return 1;
#endif

static funcname[MAX_CLIENT_MSG_LENGTH] = \"cmd_\";
#if defined IZCMD_ENABLE_CASE_SENSITIVITY
   static pos;
   if((pos = strfind(c_str, \" \", false, 1)) == -1)
   {
            funcname[4] = 0;
      strcat(funcname, c_str[1], MAX_FUNC_NAME - 4);
         #if defined OnPlayerCommandPerformed
          return OnPlayerCommandPerformed(playerid, c_str, CallLocalFunction(funcname, \"is\", playerid, \"\\1\"));
      #else
         return CallLocalFunction(funcname, \"is\", playerid, \"\\1\");
      #endif
   }
   else
   {
      funcname[4] = 0;
      strcat(funcname, c_str[1], pos + 4);
       while (c_str[pos] == \' \') pos++;
      if(c_str[pos])
      {
           #if defined OnPlayerCommandPerformed
            return OnPlayerCommandPerformed(playerid, c_str, CallLocalFunction(funcname, \"is\", playerid, c_str[pos]));
         #else
            return CallLocalFunction(funcname, \"is\", playerid, c_str[pos]);
         #endif
      }
      else
      {
            #if defined OnPlayerCommandPerformed
            return OnPlayerCommandPerformed(playerid, c_str, CallLocalFunction(funcname, \"is\", playerid, \"\\1\"));
         #else
            return CallLocalFunction(funcname, \"is\", playerid, \"\\1\");
         #endif
      }
   }
#else
   new pos = 1, tmp;
   while((tmp = c_str[pos]) > \' \')
      if(\'A\' <= tmp <= \'Z\') funcname[pos++ + 3] = tmp | 0x20;
      else funcname[pos++ + 3] = tmp;
   funcname[pos + 3] = 0;
   while (c_str[pos] == \' \') pos++;

   if(c_str[pos])
   {
        #if defined OnPlayerCommandPerformed
         return OnPlayerCommandPerformed(playerid, c_str, CallLocalFunction(funcname, \"is\", playerid, c_str[pos]));
      #else
         return CallLocalFunction(funcname, \"is\", playerid, c_str[pos]);
      #endif
   }
   else
   {
         #if defined OnPlayerCommandPerformed
         return OnPlayerCommandPerformed(playerid, c_str, CallLocalFunction(funcname, \"is\", playerid, \"\\1\"));
      #else
         return CallLocalFunction(funcname, \"is\", playerid, \"\\1\");
      #endif
   }
#endif
}
stock StringFix(sztring[])
{
new   pos,fsz[MAX_CLIENT_MSG_LENGTH-1];
strins(fsz,sztring,0);
    while (sztring[pos++] > \' \')
{
        fsz[pos-1] = replaceaccent(fsz[pos-1]);
}
return fsz;
}
stock replaceaccent(ch)
{
#if defined IZCMD_ENABLE_CASE_SENSITIVITY
switch(ch)
{
   case \'á\': return \'a\';
   case \'é\': return \'e\';
   case \'í\': return \'i\';
   case \'ő\',\'ó\',\'ö\',\'o\': return \'o\';
   case \'ű\',\'ú\',\'ü\',\'u\': return \'u\';
   case \'Á\': return \'A\';
   case \'É\': return \'E\';
   case \'Í\': return \'I\';
   case \'Ő\',\'Ó\',\'Ö\': return \'O\';
   case \'Ű\',\'Ú\',\'Ü\': return \'U\';
}
#else
switch(ch)
{
   case \'á\': return \'a\';
   case \'é\': return \'e\';
   case \'í\': return \'i\';
   case \'ő\',\'ó\',\'ö\',\'o\': return \'o\';
   case \'ű\',\'ú\',\'ü\',\'u\': return \'u\';
}   
#endif
return ch;
}

 
Valószínüleg létezik rá jobb megoldás is. :D
« Utoljára szerkesztve: 2017. július 23. - 19:57:53 írta RoLuX »

Nem elérhető kos

  • 292
    • Profil megtekintése
I_ZCMD
« Válasz #12 Dátum: 2017. július 23. - 21:49:39 »
+1 Show voters
4x argumentumban 2 változó van így sok idő a lefutás. De ez is remek megoldás.  Nem rossz ötlet, ahogyan csináltad.
 
 
 
Amúgy én megoldásom az hogy, felcseréltem az egészet. Succes értékeket helyeztem előrébb később a karakterláncot, valamint 1 stockal csináltam  Na hogy mi az értelme hosszabbra megírni a kódolást? Mert zavart, hogy nem írta ki ellenőrzésnél az ékezetet. Neked is ajánlom RoLuX. (persze csak ha használod valamilyen gm-hez)
 



   
      format(c_str,sizeof(c_str)-1,\"%s\",StringFix(cmdtext));
   

[/quote]
 
ha kevesebb warrningot akarsz, akkor
 
format(c_str,32-1,\"%s\",StringFix(cmdtext)); // (31)
 
#define IZCMD_ENABLE_CASE_SENSITIVITY ezt is érdemes bele rakni hogy ne gm-be kelljen definiálni
 
persze mindenki úgy igazítja ahogy gondolja 
« Utoljára szerkesztve: 2017. július 23. - 23:46:05 írta kos »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal