Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Blokowanie buyzone nie zawsze działa


Najlepsza odpowiedź ^Technik^ , 12.08.2014 19:14



#include <amxmodx>
#include <amxmisc>
#include <engine>



static const buy_classes[][] = {
"func_buyzone",
"info_map_parameters"
}


public plugin_precache(){
register_plugin(PLUGIN, VERSION, AUTHOR);
createInfoMapParameters();
}
isBuyClass(ent, const szParam[] = ""){
new szClassName[32];

if(szParam[0])
copy(szClassName, 31, szParam);
else
entity_get_string(ent, EV_SZ_classname, szClassName, 31);

for(new i=0;i if(equal(buy_classes[i], szClassName)){
if(is_valid_ent(ent))
return true;
}
}
return false;
}
public pfn_spawn(ent){
if(is_valid_ent(ent) && isBuyClass(ent))
remove_entity(ent);
}
//Block buying
createInfoMapParameters(){
new ent = create_entity("info_map_parameters");
DispatchKeyValue(ent, "buying", "3");
DispatchSpawn(ent);
}

Przejdź do postu


  • Zamknięty Temat jest zamknięty
6 odpowiedzi w tym temacie

#1 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 12.08.2014 18:37

Witam.
Uzywam tego kodu na blokowanie boyzone, ale nie zawsze działa.
#include <amxmodx>
#include <hamsandwich> 

public plugin_init() 
   register_plugin(PLUGIN, VERSION, AUTHOR)

public plugin_precache()
        RegisterHam(Ham_Spawn,"func_buyzone","stworz_buyzone") 

public stworz_buyzone(id) // po co tu jest id ???
    return HAM_SUPERCEDE;
pominąłem define z autorem (FORMOZA) itp.

Ten kod działa na np. DD2, ale nie działa na aim_desertfort (na tej mapie można kupować, jest ikonka koszyka). Co jest nie tak? Moze nie ma takiego bytu?
  • +
  • -
  • 0

#2 ^Technik^

    Zaawansowany

  • Zbanowany

Reputacja: 35
Życzliwy

  • Postów:93
  • GG:
  • Imię:Damian
  • Lokalizacja:Płock
Offline

Napisano 12.08.2014 19:14   Najlepsza odpowiedź



#include <amxmodx>
#include <amxmisc>
#include <engine>



static const buy_classes[][] = {
"func_buyzone",
"info_map_parameters"
}


public plugin_precache(){
register_plugin(PLUGIN, VERSION, AUTHOR);
createInfoMapParameters();
}
isBuyClass(ent, const szParam[] = ""){
new szClassName[32];

if(szParam[0])
copy(szClassName, 31, szParam);
else
entity_get_string(ent, EV_SZ_classname, szClassName, 31);

for(new i=0;i if(equal(buy_classes[i], szClassName)){
if(is_valid_ent(ent))
return true;
}
}
return false;
}
public pfn_spawn(ent){
if(is_valid_ent(ent) && isBuyClass(ent))
remove_entity(ent);
}
//Block buying
createInfoMapParameters(){
new ent = create_entity("info_map_parameters");
DispatchKeyValue(ent, "buying", "3");
DispatchSpawn(ent);
}



#3 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 12.08.2014 20:25

Za co odpowiada info_map_parameters?
Tylko za kupowanie, buyzone?
  • +
  • -
  • 0

#4 ^Technik^

    Zaawansowany

  • Zbanowany

Reputacja: 35
Życzliwy

  • Postów:93
  • GG:
  • Imię:Damian
  • Lokalizacja:Płock
Offline

Napisano 12.08.2014 20:30

tak

 



#5 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.08.2014 07:42

Hmmm. Ja mam takie pytanie jeszcze.
Czemu nie można by było tak jak w pluginie który podałem? Ham_Spawn + zwrocenie supercede.
  • +
  • -
  • 0

#6 Sloenthran

    Profesjonalista

  • Użytkownik

Reputacja: 161
Profesjonalista

  • Postów:169
  • Steam:steam
  • Imię:Dawid
  • Lokalizacja:-
Offline

Napisano 13.08.2014 07:48

Jeszcze można tak to rozwiązać:

public RemoveBuyZone()
{

	new Ent = -1;
    
	while((Ent = find_ent_by_class(Ent, "func_buyzone")))
	{
		
		entity_set_int(Ent, EV_INT_team, 3);
		
	}

}

I dorzucić to do plugin_init() :)


  • +
  • -
  • 0

#7 Rivit

    Godlike

  • Autor tematu
  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 13.08.2014 08:33

func_buyzone blokuje prawidłowo (plugin z pierwszego posta). Nie potrzebne mi już blokowanie func_buyzone.
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych