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

Blokowanie pułapek(Buttona)


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

#1 ammo19

    Zaawansowany

  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:92
  • Lokalizacja:Łódź
Offline

Napisano 01.05.2011 10:55

Witam!
Piszę z prośbą o napisanie pluginu który będzie blokował wybrane przez Admina buttony, tak aby pułapka nie działała i wyświetlał się na środku w HUD informację na żółto: Nie krecimy.
Bardzo proszę o pomoc!
Z góry dziękuję!
Pozdrawiam.

#2 frN

    Początkujący

  • Użytkownik

Reputacja: 9
Nowy

  • Postów:13
  • GG:
  • Steam:steam
  • Imię:Mikołaj
  • Lokalizacja:Poznań
Offline

Napisano 01.05.2011 15:26

Use Button Once
Ten plugin ma funkcje blokowania wybranych przycisków :)
  • +
  • -
  • 1
Dołączona grafikaDołączona grafika

#3 ammo19

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:92
  • Lokalizacja:Łódź
Offline

Napisano 01.05.2011 16:21

A dałoby wyciągnąć z niego tylko tą opcję? Bo nie jest Mi potrzebny tak obszerny plugin :)
Z góry dzięki :)

Użytkownik ammo19 edytował ten post 08.05.2011 22:05


#4 ammo19

    Zaawansowany

  • Autor tematu
  • Zbanowany

Reputacja: 19
Początkujący

  • Postów:92
  • Lokalizacja:Łódź
Offline

Napisano 08.05.2011 22:05

Pomoże ktoś?
Bardzo proszę o pomoc ponieważ strasznie zależy Mi na tym pluginie.

Użytkownik ammo19 edytował ten post 08.05.2011 22:06


#5 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 08.05.2011 22:39

#include <amxmodx>
#include <engine>
#include <hamsandwich>

#define MAX_ENT (900+32*15)
#define PLAYERS 32

#define VERSION "0.1"
#define TASK_INFO 1337
new bool:gbButtonBlocked[MAX_ENT];
new bool:gbShowing[PLAYERS + 1];

new const gszToBlock[][] = {
"button_target",
"func_rot_button",
"func_button"
};

public plugin_init(){
register_plugin("Deathrun blocker", VERSION, "diablix");
register_clcmd("say /blok", "cmdBlokuj");
RegisterHam(Ham_Use, gszToBlock[2], "fwdButtonUsed");
RegisterHam(Ham_Use, gszToBlock[1], "fwdButtonUsed");
RegisterHam(Ham_Use, gszToBlock[0], "fwdButtonUsed");
}

public cmdBlokuj(id){
new ent, body, szClassName[32];
get_user_aiming(id, ent, body);
entity_get_string(ent, EV_SZ_classname, szClassName, sizeof szClassName - 1);

for(new i = 0; i < sizeof gszToBlock ; i ++){
if(equal(szClassName, gszToBlock[i])){
gbButtonBlocked[ent] = !gbButtonBlocked[ent];
client_print(id, 3, "[AMXX.PL] %s ten przycisk!", gbButtonBlocked[ent] ? "Zablokowales" : "Odblokowales");
}
break;
}
return 1;
}

public fwdButtonUsed(this, idcaller, idactivator, use_type, Float:value){
if(idcaller != idactivator) return HAM_IGNORED;
if(this == 0) return HAM_IGNORED;

if(gbButtonBlocked[this]){
if(!gbShowing[idcaller]){
client_cmd(idcaller, "spk fvox/blip");
gbShowing[idcaller] = true;
client_print(idcaller, 3, "[AMXX.PL] Ta pulapka zostala zablokowana przez admina!");
}

if(!task_exists(idcaller + TASK_INFO))
set_task(2.5, "removeShow", idcaller + TASK_INFO);

return HAM_SUPERCEDE;
}
return HAM_IGNORED;
}

public removeShow(idcaller){
idcaller -= TASK_INFO;

gbShowing[idcaller] = false;
}


Najedz na przycisk i wpisz na chatcie
/blok

Użytkownik diablix edytował ten post 08.05.2011 22:40

  • +
  • -
  • 0

#6 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

  • Postów:11 980
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 09.05.2011 18:09

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

#define PLAYERS         32

#define VERSION "0.1"

new const gszToBlock[][] = {
	"button_target",
	"func_rot_button",
	"func_button"
};

new Array:gButton;

public plugin_init(){
	register_plugin("Deathrun blocker", VERSION, "diablix");
	register_clcmd("say /blok", "cmdBlokuj",ADMIN_BAN);
	
	for(new i = 0;i < sizeof gszToBlock;i++){
		RegisterHam(Ham_Use, gszToBlock[i], "fwdButtonUsed");
	}
	
	gButton = ArrayCreate(1,10);
	
	loadEnts()
}

public plugin_end(){
	saveEnts()
	ArrayDestroy(gButton)
}

public saveEnts(){
	new szPath[256];
	get_configsdir(szPath,charsmax(szPath));
	
	new szMap[64];
	get_mapname(szMap,charsmax(szMap))
	
	format(szPath,charsmax(szPath),"%s/blockButtons/%s",szPath,szMap)
	
	if(file_exists(szPath)){
		delete_file(szPath);
	}
	
	new szTmp[16]
	for(new i = 0; i < ArraySize(gButton);i++){
		num_to_str(ArrayGetCell(gButton,i),szTmp,charsmax(szTmp))
		write_file(szPath,szTmp,-1);
	}
}

public loadEnts(){
	new szPath[256];
	get_configsdir(szPath,charsmax(szPath));
	
	format(szPath,charsmax(szPath),"%s/blockButtons",szPath)
	
	mkdir(szPath)
	
	new szMap[64];
	get_mapname(szMap,charsmax(szMap))
	
	format(szPath,charsmax(szPath),"%s/%s",szMap)
	
	new fp = fopen(szPath,"rt");
	new szLine[16]
	while(!feof(fp)){
		fgets(fp, szLine, charsmax(szLine));
		ArrayPushCell(gButton,str_to_num(szLine))
	}
}

public cmdBlokuj(id,level,cid){
	if(!cmd_access(id,level,cid,1)){
		return PLUGIN_CONTINUE;
	}
	new ent, body, szClassName[32];
	get_user_aiming(id, ent, body);
	
	if(!is_valid_ent(ent)){
		return PLUGIN_CONTINUE;
	}
	
	entity_get_string(ent, EV_SZ_classname, szClassName, sizeof szClassName - 1);
	
	for(new i = 0; i < sizeof gszToBlock ; i ++){
		if(equal(szClassName, gszToBlock[i])){
			for(new i = 0; i < ArraySize(gButton);i++){
				if(ent == ArrayGetCell(gButton,i)){
					ArrayDeleteItem(gButton,i)
					client_print(id, 3, "[AMXX.PL] Odblokowales ten przycisk!");
					return PLUGIN_CONTINUE;
				}
			}
			ArrayPushCell(gButton,ent)
			client_print(id, 3, "[AMXX.PL] Zablokowales ten przycisk!");
		}
		break;
	}
	return PLUGIN_CONTINUE;
}

public fwdButtonUsed(this, idcaller, idactivator, use_type, Float:value){
	if(idcaller != idactivator) return HAM_IGNORED;
	if(this == 0) return HAM_IGNORED;
	
	for(new i = 0; i < ArraySize(gButton);i++){
		if(this == ArrayGetCell(gButton,i)){
			client_cmd(idcaller, "spk fvox/blip");
			client_print(idcaller, 3, "[AMXX.PL] Ta pulapka zostala zablokowana przez admina!");
			return HAM_SUPERCEDE;
		}
	}
	return HAM_IGNORED;
}
poprawione tylko admin może blokować , zapisywanie blokowanych przycisków po zmianie mapy , oparcie o dynamiczne tablice
  • +
  • -
  • 1

#7 diablix

    emeryt

  • Przyjaciel

Reputacja: 507
Wszechwiedzący

  • Postów:663
  • GG:
  • Steam:steam
  • Imię:Daniel
  • Lokalizacja:Warszawa
Offline

Napisano 09.05.2011 23:25

if(is_valid_ent(ent)){
return PLUGIN_CONTINUE;
}


->

if(!is_valid_ent(ent)){
return PLUGIN_CONTINUE;
}

  • +
  • -
  • 1




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

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