AMX Mod X - vše co potřebuješ k serveru
Prostor pro Vaši reklamu - napište nám

Pokročilé hledání





Všechny časy jsou v UTC


 [ Příspěvků: 8 ] 
Autor Zpráva
 Předmět příspěvku: Itemy v menu
PříspěvekNapsal: úte 20. lis 2018 19:59:01 
Offline
AMXX Newbie
AMXX Newbie
Uživatelský avatar

Registrován: úte 31. črc 2018 18:16:48
Příspěvky: 268
Poděkoval: 28 x
Obdržel poděkování: 10 x
Ahoj, potřebuji pomoct s menu. Chci tam udělat že když jsi hráč koupil regeneraci na 10s, tak ať jsi zas může po těch 10s koupit znova

Spoiler:
Kód:
public show_items_menu(id)
{
   new szMenuBody[1024];
   
   new nLen = format( szMenuBody, 1023, "\yItemy:^nBody: %d^n", body[id]);
   nLen += format( szMenuBody[nLen], 1023-nLen, "^n\y2. \wRegenerace HP \r[ZOMBIE] \w[10s]");
   if (!g_iszombie[id]) nLen += format( szMenuBody[nLen], 1023-nLen, "^n    \wCena: -NENI DOSTUPNE PRO STAVITELE-")
   else
   {
      if (g_item_reg[id]) nLen += format( szMenuBody[nLen], 1023-nLen, "^n    \wCena: \rEfekt jiz pusobi");
      else
      {
         if (access(id, NORMAL)) nLen += format( szMenuBody[nLen], 1023-nLen, "^n    \wCena: \r300")
         else nLen += format( szMenuBody[nLen], 1023-nLen, "^n    \wCena: \r300 bodu^n");
      }
   }
   nLen += format( szMenuBody[nLen], 1023-nLen, "^n\y3. \wDvojnasobny damage \y[STAVITEL] \w[15s]");
   if (g_iszombie[id]) nLen += format( szMenuBody[nLen], 1023-nLen, "^n    \wCena: -NENI DOSTUPNE PRO ZOMBIE-")
   else
   {
      if (g_item_dbdmg[id] || g_iszombie[id]) nLen += format( szMenuBody[nLen], 1023-nLen, "^n    \wCena: \rEfekt jiz pusobi");
      else
      {
         if (access(id, NORMAL)) nLen += format( szMenuBody[nLen], 1023-nLen, "^n    \wCena: \r500 bodu")
         else nLen += format( szMenuBody[nLen], 1023-nLen, "^n    \wCena: \r500 bodu^n");
      }
   }
   nLen += format( szMenuBody[nLen], 1023-nLen, "^n^n\y9. \wCerny trh" );
   nLen += format( szMenuBody[nLen], 1023-nLen, "^n\y0. \wOdejit" );
   
   show_menu(id,IT_ITE,szMenuBody,-1,"ItemsMenuItems")
}

public items_menu_pressed(id,key)
{
   switch(key)
   {
      case 0:
      {
         if (!access(id, NORMAL))
         {
            if (body[id]>=300 && !g_item_reg[id])
            {
               client_cmd(id, "spk %s", g_ItemMenuBuy);
               g_item_reg[id] = true
               body[id]-=300
               casreg[id]=10
               set_task(0.1, "regenerace", id+1200)
               hasbought=true
            }
         } else {
            if (body[id]>=300 && !g_item_reg[id])
            {
               g_item_reg[id] = true
               body[id]-=300
               casreg[id]=10
               set_task(0.1, "regenerace", id+1200)
               hasbought=true
            }
         }
         show_items_menu(id)
      }
      case 1:
      {
         if (g_iszombie[id])
         {
            show_items_menu(id)
            return PLUGIN_HANDLED
         }
         if (!access(id, NORMAL))
         {
            if (body[id]>=500 && !g_item_dbdmg[id])
            {
               client_cmd(id, "spk %s", g_ItemMenuBuy);
               g_item_dbdmg[id] = true
               casdbdmg[id]=15
               body[id]-=500
               hasbought=true
            }
         } else {
            if (body[id]>=500 && !g_item_dbdmg[id])
            {
               g_item_dbdmg[id] = true
               casdbdmg[id]=15
               body[id]-=500
               hasbought=true
            }
         }
         show_items_menu(id)
      }
      case 8: show_market_menu(id)
      case 9: return PLUGIN_HANDLED
   }
   if (!hasbought)
   {
      client_print(id, print_center, "*** Tento predmet si nemuzes koupit ***")
   }
   return PLUGIN_HANDLED;
}

_________________
BaseBuilder = 50% Obrázek

ObrázekObrázek


Nahoru
  
 
 Předmět příspěvku: Re: Itemy v menu
PříspěvekNapsal: stř 21. lis 2018 18:11:12 
Offline
Globální Moderátor
Uživatelský avatar

Registrován: pát 06. led 2012 16:48:51
Příspěvky: 2583
Bydliště: SK > BB > BS
Poděkoval: 38 x
Obdržel poděkování: 283 x
Do funkcie, ktorú voláš set_taskom udaj g_item_reg[id] = false takže keď skončí regenerácia, tak by sa vynulovala tá premenná ktorá mu dovolí znovu použiť tento item. :)

_________________
Všetko čo potrebujete vedieť je na jednom mieste.
My life path has ended up with AMXX as I am tired and retired of it. Thank you community for your positive/negative feedbacks and wish you all the best. *HI*


Nahoru
  
 
 Předmět příspěvku: Re: Itemy v menu
PříspěvekNapsal: čtv 22. lis 2018 16:27:19 
Offline
AMXX Newbie
AMXX Newbie
Uživatelský avatar

Registrován: úte 31. črc 2018 18:16:48
Příspěvky: 268
Poděkoval: 28 x
Obdržel poděkování: 10 x
Děkuji, a když už mám založenou tému nemáte script pro hook, aby se hráči mohli přitahovat pomocí r (bind "key" "+reload") plugin už mám akorát nevím co to tam mám přidat

_________________
BaseBuilder = 50% Obrázek

ObrázekObrázek


Nahoru
  
 
 Předmět příspěvku: Re: Itemy v menu
PříspěvekNapsal: čtv 22. lis 2018 18:45:22 
Offline
Globální Moderátor
Uživatelský avatar

Registrován: pát 06. led 2012 16:48:51
Příspěvky: 2583
Bydliště: SK > BB > BS
Poděkoval: 38 x
Obdržel poděkování: 283 x
Kód:
/* Plugin generated by AMXX-Studio */

#include < amxmodx >
#include < fakemeta >

public plugin_init()
{
    
register_forwardFM_CmdStart"fw_CmdStart" );
}

public 
fw_CmdStartiduc_handlerandseed )
{
    if( !( 
is_user_connectedid ) ) || !( is_user_aliveid ) ) )
        return 
FMRES_IGNORED;
    new 
button get_ucuc_handle UC_Buttons );
    new 
oldbutton pevidpev_oldbuttons );
    if( 
button IN_RELOAD && !( oldbutton IN_RELOAD ) )
    {
        
// my stuff here or some public function name to call
    
}
    return 
FMRES_IGNORED;

_________________
Všetko čo potrebujete vedieť je na jednom mieste.
My life path has ended up with AMXX as I am tired and retired of it. Thank you community for your positive/negative feedbacks and wish you all the best. *HI*


Nahoru
  
 
 Předmět příspěvku: Re: Itemy v menu
PříspěvekNapsal: čtv 22. lis 2018 21:16:12 
Offline
AMXX Newbie
AMXX Newbie
Uživatelský avatar

Registrován: úte 31. črc 2018 18:16:48
Příspěvky: 268
Poděkoval: 28 x
Obdržel poděkování: 10 x
Nemám to udělat jako tohle?
Spoiler:
Kód:
public fw_CmdGrab( id, uc_handle, randseed )
{
   if (!g_isconnected[id] || !g_isalive[id])
      return FMRES_IGNORED

   new button = get_uc( uc_handle , UC_Buttons );
   new oldbutton = pev(id, pev_oldbuttons)

   if( button & IN_USE && !(oldbutton & IN_USE) && !g_iOwnedEnt[id])
      cmdGrabEnt(id)
   else if( oldbutton & IN_USE && !(button & IN_USE) && g_iOwnedEnt[id])
      cmdStopEnt(id)

   return FMRES_IGNORED;
}


protože to mám stejně při tom pluginu ( hook_on(id), hook_off(id) ) a pak bych jen nahradil to IN_USE za IN_RELOAD

_________________
BaseBuilder = 50% Obrázek

ObrázekObrázek


Nahoru
  
 
 Předmět příspěvku: Re: Itemy v menu
PříspěvekNapsal: čtv 22. lis 2018 21:24:29 
Offline
Globální Moderátor
Uživatelský avatar

Registrován: pát 06. led 2012 16:48:51
Příspěvky: 2583
Bydliště: SK > BB > BS
Poděkoval: 38 x
Obdržel poděkování: 283 x
Vieš, zatiaľ ma nikto nenaučil čarovať a čítať myšlienky iných, ináč by to bolo jednoduchšie. Nedodal si zdrojový kód toho hook pluginu tak som spravil to, čo som považoval za tvoje najlepšie riešenie. Samozrejme odpoveďou je, že môžeš zameniť IN_USE za IN_RELOAD.

_________________
Všetko čo potrebujete vedieť je na jednom mieste.
My life path has ended up with AMXX as I am tired and retired of it. Thank you community for your positive/negative feedbacks and wish you all the best. *HI*


Nahoru
  
 
 Předmět příspěvku: Re: Itemy v menu
PříspěvekNapsal: pát 23. lis 2018 8:35:34 
Offline
AMXX Newbie
AMXX Newbie
Uživatelský avatar

Registrován: úte 31. črc 2018 18:16:48
Příspěvky: 268
Poděkoval: 28 x
Obdržel poděkování: 10 x
Můžete lock už to funguje tu máte kod kdyby ho někdo hledal

Spoiler:
Kód:
public hook_on( id )
{
   if ( get_user_team( id ) != 2 ){
      return PLUGIN_HANDLED;
   }
   if ( IsBuildPhase() )
   {
      get_user_origin( id, gHookOrigins[ id ], 3 );
      g_bHook[ id ] = true;
      set_task( 0.1, "hook_task", id, "", 0, "ab" );
      hook_task( id );
   }
   return PLUGIN_HANDLED;
}

public hook_off( id )
{
   remove_hook( id );
   return PLUGIN_HANDLED;
}

public hook_task( id )
{
   if( !is_user_connected( id ) || !is_user_alive( id ) )
      remove_hook( id );
   
   remove_beam( id );
   draw_hook( id );
   new iOrigin[ 3 ], Float:fVelocity[ 3 ];
   get_user_origin( id, iOrigin );
   new iDistance = get_distance( gHookOrigins[ id ], iOrigin);
   if ( iDistance > 25 )
   {
      fVelocity[ 0 ] = ( gHookOrigins[ id ][ 0 ] - iOrigin[ 0 ] ) * ( 2.0 * 300 / iDistance );
      fVelocity[ 1 ] = ( gHookOrigins[ id ][ 1 ] - iOrigin[ 1 ] ) * ( 2.0 * 300 / iDistance );
      fVelocity[ 2 ] = ( gHookOrigins[ id ][ 2 ] - iOrigin[ 2 ] ) * ( 2.0 * 300 / iDistance );
      entity_set_vector( id, EV_VEC_velocity, fVelocity );
   } else {
      entity_set_vector( id, EV_VEC_velocity, Float:{0.0,0.0,0.0} );
      remove_hook( id );
   }
}

public draw_hook( id )
{
   message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
   write_byte( 1 );           
   write_short( id );     
   write_coord( gHookOrigins[ id ][ 0 ] );   
   write_coord( gHookOrigins[ id ][ 1 ] ); 
   write_coord( gHookOrigins[ id ][ 2 ] );   
   write_short( g_iHook );         
   write_byte( 0 );             
   write_byte( 0 );             
   write_byte( 100 );         
   write_byte( 10 );           
   write_byte( 0 );             
   write_byte( random_num(0, 255) );   
   write_byte( random_num(0, 255) );     
   write_byte( random_num(0, 255) );     
   write_byte( 250 );       
   write_byte( 1 );               
   message_end( );
}

public remove_hook( id )
{
   if( task_exists( id ) )
      remove_task( id );
       
   remove_beam(id);
   g_bHook[ id ] = false;
}

public remove_beam(id)
{
   message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
   write_byte( 99 );
   write_short( id );
   message_end( );
}


a tu aby to šlo na +reload

Kód:
register_forward( FM_CmdStart, "fw_CmdHook" );


Spoiler:
Kód:
public fw_CmdHook( id, uc_handle, randseed )
{
   if (!g_isconnected[id] || !g_isalive[id])
      return FMRES_IGNORED

   new button = get_uc( uc_handle , UC_Buttons );
   new oldbutton = pev(id, pev_oldbuttons)

   if( button & RELOAD && !(oldbutton & RELOAD) )
      hook_on( id )
   else if( oldbutton & IN_RELOAD && !(button & RELOAD) )
      hook_off( id )

   return FMRES_IGNORED;
}

_________________
BaseBuilder = 50% Obrázek

ObrázekObrázek


Nahoru
  
 
 Předmět příspěvku: Re: Itemy v menu
PříspěvekNapsal: pát 23. lis 2018 10:51:53 
Offline
Globální Moderátor
Uživatelský avatar

Registrován: pát 06. led 2012 16:48:51
Příspěvky: 2583
Bydliště: SK > BB > BS
Poděkoval: 38 x
Obdržel poděkování: 283 x
Keď už ti niekto pomôže, tak sa to oceňuje tlačítkom Obrázek *THUMBS UP*

_________________
Všetko čo potrebujete vedieť je na jednom mieste.
My life path has ended up with AMXX as I am tired and retired of it. Thank you community for your positive/negative feedbacks and wish you all the best. *HI*


Nahoru
  
 
 [ Příspěvků: 8 ] 

Všechny časy jsou v UTC


Kdo je online

Uživatelé procházející toto fórum: CommonCrawl [Bot] a 0 návštevníků



Nemůžete zakládat nová témata v tomto fóru
Nemůžete odpovídat v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete přikládat soubory v tomto fóru

Přejít na:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All rights reserved 2007 - 2019 © by AMXMODX.cz, kopírování textů nebo grafických prvků z této stránky je bez souhlasu administrátora (jab.jab@seznam.cz) přísně zakázáno!


TOPlist