hlmod.hu
https://hlmod.hu/

Szöveg beírás.
https://hlmod.hu/viewtopic.php?f=9&t=26159
Oldal: 1 / 2

Szerző:  PikHácsúú# [ 2016.09.10. 16:07 ]
Hozzászólás témája:  Szöveg beírás.

Hali. Szeretnék csinálni egy olyan menüpontot, hogy karakter.
Azt szeretném, hogy ha rányom a karakter menüpontra, akkor ő írja be a karakter nevét, majd mikor enterezni maradjon is úgy. Előre is köszönöm a válaszokat.

Szerző:  6almasok [ 2016.09.10. 17:11 ]
Hozzászólás témája:  Re: Szöveg beírás.

Gondolom ebből az egyik régebbi példámból kitudsz indulni. A g_szValami a beírt karaktered neve.

  1. /* Plugin generated by AMXX-Studio */
  2.  
  3. #include <amxmodx>
  4.  
  5. #define PLUGIN "New Plug-In"
  6. #define VERSION "1.0"
  7. #define AUTHOR "author"
  8.  
  9. new g_szValami[33][100]
  10.  
  11. public plugin_init() {
  12.     register_plugin(PLUGIN, VERSION, AUTHOR)
  13.    
  14.     register_clcmd("say /karakter", "cmdWrite")
  15.     register_clcmd("WRITE_SOMETHING", "cmdReadArgs")
  16.     // Add your code here...
  17. }
  18. public cmdWrite(id) client_cmd(id, "messagemode WRITE_SOMETHING")
  19. public cmdReadArgs(id)
  20. {
  21.     read_args(g_szValami[id], 99)
  22.     remove_quotes(g_szValami[id])
  23.    
  24.     client_print(id, print_chat, "A beirt szavad: %s", g_szValami[id])
  25.  
  26.     return PLUGIN_HANDLED
  27. }

Szerző:  PikHácsúú# [ 2016.09.11. 10:52 ]
Hozzászólás témája:  Re: Szöveg beírás.

Annyi, hogy én menüpontba szeretném ezt, mintha reg rendszer lenne.

Szerző:  InEr [ 2016.09.11. 11:52 ]
Hozzászólás témája:  Re: Szöveg beírás.

Gondolom igy
  1. .  
  2.     register_clcmd("say /menu", "Fomenu")

Szerző:  PikHácsúú# [ 2016.09.11. 13:47 ]
Hozzászólás témája:  Re: Szöveg beírás.

:lol: :lol: :lol: :lol: Ez nem menü. Ez Kliens parancs. Köze nincs hozzá.

menu_additem(menu, "Karakter: %s", karakter_neve[id]) Menübe szeretném kijelezni, mintha reg rendszer lenne, viszont akkor nem elég a client_printet átirni gondolom.

Szerző:  6almasok [ 2016.09.11. 17:14 ]
Hozzászólás témája:  Re: Szöveg beírás.

PikHácsúú# írta:
Annyi, hogy én menüpontba szeretném ezt, mintha reg rendszer lenne.

Mint írtam a g_szValami-t kell lekérd. (menu_additem(menu, "Karakter: %s", g_szValami[id]))

Szerző:  PikHácsúú# [ 2016.09.12. 17:04 ]
Hozzászólás témája:  Re: Szöveg beírás.

Nem azt csinálja amit kéne.
Tehát nekem menüpontba van a Karakter menüpont.

1. Karakter

Ha rányom írja ki, hogy
1. karaktered neve: %s, de ha még nem írt neki nevet akkor írja azt pl, hogy NONE.
Mikor rányom akkor tudjon nevet váltani a karakternek.

Vázolás.


Főmenü:
1. Karakter

Almenü:
1. Karaktered neve: NONE

Almenü (rányom az 1-es-re)
Jön a messagemod KARAKTERED_NEVE: laci

Almenü:
1. Karaktered: neve: laci

Szerző:  6almasok [ 2016.09.12. 17:50 ]
Hozzászólás témája:  Re: Szöveg beírás.

1.
  1. menu_additem(menu, "Karaktered Neve: %s", g_szValami[id][0] == EOS ? "NONE" : g_szValami[id])

2. Megadod a játékosnak a példában leírt parancsot
  1. cmdWrite(id)

Szerző:  PikHácsúú# [ 2016.09.15. 20:18 ]
Hozzászólás témája:  Re: Szöveg beírás.

Nem sikerült. Végül egy módszerrel megoldottam.

Megoldás:
Kód:
new karakter_neve[33][100]
new karakter_irt[33]

public characterasd(id)
{
   new menu = menu_create("Karaktered", "handler_asdasd")
   new cim[121]
   if(karakter_irt[id] == 0){
      format(cim, charsmax(cim), "\yKaraktered neve: \rNINCS NEVE")
   }
   else
   {
      format(cim, charsmax(cim), "\yKaraktered neve: \r%s", karakter_neve[id])
   }
   menu_additem(menu, cim, "0", 0)
   menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
   menu_display(id, menu, 0);
}
public handler_asdasd(id, menu, item)
{
   if( item == MENU_EXIT )
   {
      menu_destroy(menu);
      return PLUGIN_HANDLED;
   }
   new data[9], szName[64];
   new access, callback;
   menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
   new key = str_to_num(data);
   switch(key)
   {
      case 0:{
         client_cmd(id, "messagemode karakter_neve")
         karakter_irt[id] = 1
      }
   }
   menu_destroy(menu)
   return PLUGIN_HANDLED
}
public karakterbemenet(id){
   new szoveg[32]
   read_args(szoveg, charsmax(szoveg))
   remove_quotes(szoveg)
   
   karakter_neve[id] = szoveg
   characterasd(id)
   ColorChat(id, RED, "^1megvaltoztattad a karaktered nevet erre: ^4%s", karakter_neve[id])
}

Szerző:  6almasok [ 2016.09.15. 20:51 ]
Hozzászólás témája:  Re: Szöveg beírás.

PikHácsúú# írta:
Nem sikerült. Végül egy módszerrel megoldottam.

Megoldás:
Kód:
new karakter_neve[33][100]
new karakter_irt[33]

public characterasd(id)
{
   new menu = menu_create("Karaktered", "handler_asdasd")
   new cim[121]
   if(karakter_irt[id] == 0){
      format(cim, charsmax(cim), "\yKaraktered neve: \rNINCS NEVE")
   }
   else
   {
      format(cim, charsmax(cim), "\yKaraktered neve: \r%s", karakter_neve[id])
   }
   menu_additem(menu, cim, "0", 0)
   menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
   menu_display(id, menu, 0);
}
public handler_asdasd(id, menu, item)
{
   if( item == MENU_EXIT )
   {
      menu_destroy(menu);
      return PLUGIN_HANDLED;
   }
   new data[9], szName[64];
   new access, callback;
   menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
   new key = str_to_num(data);
   switch(key)
   {
      case 0:{
         client_cmd(id, "messagemode karakter_neve")
         karakter_irt[id] = 1
      }
   }
   menu_destroy(menu)
   return PLUGIN_HANDLED
}
public karakterbemenet(id){
   new szoveg[32]
   read_args(szoveg, charsmax(szoveg))
   remove_quotes(szoveg)
   
   karakter_neve[id] = szoveg
   characterasd(id)
   ColorChat(id, RED, "^1megvaltoztattad a karaktered nevet erre: ^4%s", karakter_neve[id])
}

Te most tényleg ennyire nem érted vagy csak tetteted? Gyakorlatilag megírtam neked az egészet csak CTRL+C CTRL+V kellet volna nyomj és kész. Nem értem mit kell túlbonyolítani ezen.

Oldal: 1 / 2 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/