←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Jak zablokowac buy ale pozwolić wykonać si...

GT Team's Photo GT Team 19.06.2014

Potrzebuję zablokować otwieranie się menu "buy" tzn tego motd i tam te bronie... ale również chcę by zamiast tego pojawiłosię moje menu, pod przyciskiem b

 

Jak zrobię taką funkcję

public BlockBuy(){
    remove_entity_name( "info_map_parameters" );
    remove_entity_name( "func_buyzone" );
    
    new iEntity = create_entity( "info_map_parameters" );
        
    DispatchKeyValue( iEntity, "buying", "3" );
    DispatchSpawn( iEntity );
}

 

To

1) Blokuje buyzone

2) Unieważnia przycisk B

 

A przy

    register_clcmd("buy", "cmdmenuGuns")
    register_clcmd("buyequip", "cmdmenuGuns")

Mogę wciskać tylko "o" czyli buyequip, a "b" czyli "buy" w ogole nie raguję ...

 

Jak wykonać taką ów funkcję ?

Quote

  • +
  • -
BlackPerfum's Photo BlackPerfum 20.06.2014

Przez to:

DispatchKeyValue( iEntity, "buying", "3" )

amxx nie złapie komendy buy użyj innego sposobu na zablokowanie tej komendy :D

Np.:

public BlockBuy()
{
    remove_entity_name( "info_map_parameters" );
    remove_entity_name( "func_buyzone" );
    register_clcmd("buy", "BlockFunc")
}

public BlockFunc(id) return PLUGIN_HANDLED_MAIN
Quote

GT Team's Photo GT Team 20.06.2014

tzn gdy zostawie tylko

DispatchKeyValue( iEntity, "buying", "3" )

To amxx wyłapie "buy" ?

 

edit

 

 

Chodzi o to, ze gdy nacisne B i "buyammo1" i "buyammo2" to amxx wychwyci to bez dalszych problemow, jednak by pojawienie sie menu z broniami ( przy klawiszu B ) albo kupienie amunicji (buyammo1+1) bylo zablokowane, ale amxx wychwycal ten moment, Orpheu nawet moze byc... ale orpheu nie kminie ;d

Quote

  • +
  • -
BlackPerfum's Photo BlackPerfum 21.06.2014

Przez to:
DispatchKeyValue( iEntity, "buying", "3" )
amxx nie złapie komendy buy użyj innego sposobu na zablokowanie tej komendy
Np.:
public BlockBuy()
{
remove_entity_name( "info_map_parameters" );
remove_entity_name( "func_buyzone" );
register_clcmd("buy", "BlockFunc")
}

public BlockFunc(id) return PLUGIN_HANDLED_MAIN

Nie...

 

 

 

To amxx wyłapie "buy" ?

Też nie

 

 

Niestety ta komenda jest blokowana w hl ale jest inna mozliwośc jej złapania :D

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

public plugin_init()
{
	register_plugin("...","Beta","BlackPerfum")
	register_clcmd("client_buy_open","BuyOpen")
}

public BuyOpen(id)
{
	if(!is_user_alive(id))	return PLUGIN_CONTINUE

	static msg_buyclose
	if(!msg_buyclose)	msg_buyclose = get_user_msgid("BuyClose")
	
	message_begin(MSG_ONE, msg_buyclose, _, id)
	message_end()
	
	CommandBuy(id)

	return PLUGIN_CONTINUE
}

public CommandBuy(id)
{
	client_print(id,print_chat,"Zlapales komende buy")
}

Aby to działało nie możesz użyć tego:

public BlockBuy(){
    remove_entity_name( "info_map_parameters" );
    remove_entity_name( "func_buyzone" );
    
    new iEntity = create_entity( "info_map_parameters" );
        
    DispatchKeyValue( iEntity, "buying", "3" );
    DispatchSpawn( iEntity );
}

Dodatkowo to działa tylko w buyzone dlatego polecam ci zrobic tak:

• zrobić buyzone na całą mapę

• zablokowac inne komendy kupowania (innym sposobem)

• usunąć ikonkę buyzone

 

I normalny gracz nie zauważy buyzone a komendę "buy" złapiesz

Quote

GT Team's Photo GT Team 21.06.2014

Buyzone jest już na całej mapie ( w każdej mapie w tower defense xD ) zablokować komendy kupuwania, ok, ikonka ma być

 

//e dit

 

Super, działa, dzięki misiek: D

 

jest tylko jeden mały bug, MOTD wyświetla się dosłownie na ułamek sekundy xD, ale menu moje się otwiera :P


Edited by GT Team, 21.06.2014 14:11.
Quote