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 skilla


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

#1 SkinnerBox

    Pomocny

  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:70
  • Lokalizacja:Sopot
Offline

Napisano 23.06.2009 21:53

Witam,
myślałem ostatnio nad rozwiązaniem problemu na serwerach z modami, na których czasami admini zabraniają używania skilla przez np. pierwsze 8 sekund rundy. W związku z tym, że nie jestem zaawansowanym programistą PAWN'a (czyt. amatorem ;)) mam prośbę o napisanie takiego właśnie plugina. Najlepiej jeżeli używałby 2 cvarów - w jednym wpisywałoby się funkcje która ma być blokowana np. ultimate lub +pokeskill, drugi określałby czas od początku rundy, podczas którego nie można używać właśnie klawiszy odpowiedzialnych za czynności wymienione wyżej.
Mam nadzieję, że ktoś pomoże mi i napisze ten plugin. Oczywiście nie będe chytry i nacisne klawisz pomógł :> .
  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 23.06.2009 22:12

ultimate
war3, jeśli dobrze pamiętam jest tam cvar określający czas ładowania mocy ultimate

+pokeskill
nie znam pokemoda, jeśli nie ma cvara to taki plugin byłby bardzo łatwy do napisania
  • +
  • -
  • 0

#3 SkinnerBox

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:70
  • Lokalizacja:Sopot
Offline

Napisano 24.06.2009 11:24

Głównie zależy mi na blokowaniu skilla w Pokemodzie. Z tego co wyczytałem nie ma w nim cvara odpowiedzialnego za czas ładowania mocy na początku rundy. Oczywiście tego rodzaju plugin można wykorzystać nie tylko do blokowania +pokeskill, ale np. strzelania na mapach typu aim...
Jeśli byłbyś tak miły to możesz napisać dla mnie ten plugin?
Zapomniałem jeszcze napisać wcześniej, ale mógłbyś jeszcze dopisać informacje w say'u dla gracza, który nacisnąłby klawisz odpowiedzialny za +pokeskill w czasie szybszym niż pierwsze 10 sekund rundy (np. Skilla możesz używać dopiero po 10 sekundach rundy! - lub coś w tym rodzaju...).
  • +
  • -
  • 0

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 24.06.2009 12:14

Nie da się złapać komend takich +attack, +attack2,+use zwykłym register_clcmd() :D

W załączniku blokada +pokeskill, ważne: plugin musi być wyżej na liście plugins.ini od pokemoda

Załączone pliki


  • +
  • -
  • 0

#5 naven

    Hero

  • Power User

Reputacja: 204
Profesjonalista

  • Postów:1 088
  • GG:
  • Imię:Adam
  • Lokalizacja:Cieszyn
Offline

Napisano 24.06.2009 12:17

Co do +pokeskill to można w defines pokemoda ustawić co ile działa...
  • +
  • -
  • 0

#6 SkinnerBox

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:70
  • Lokalizacja:Sopot
Offline

Napisano 24.06.2009 13:43

R3X, dzięki. Wszystko ładnie działa :).

naven, wiem, że można ustawić co ile ma działać, ale mi chodziło o to żeby nie działało na samym początku rundy.

EDIT:
Aha, jeżeli chciałbym dodać więcej klawiszy, które mają być blokowane to co muszę dopisać?
Zrobiłem tak, ale jest to dosyć dziwny sposób i myślę, że masz może jakiś szybszy/lepszy...
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Block Commands"
#define VERSION "1.0"
#define AUTHOR "R3X"

new gStartRound=0;
new gcvarPokeDelay;

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_event("HLTV", "eventRoundInit", "a", "1=0", "2=0");
	
	gcvarPokeDelay=register_cvar("pokeskill_delay","10");
	
	register_clcmd("+pokeskill","cmd_block");
	register_clcmd("+pokeskill1","cmd_block2");
	register_clcmd("+pokeskill2","cmd_block3");
}
public cmd_block(id){
	new iDelay=get_systime()-gStartRound;
	new iCmdDelay=get_pcvar_num(gcvarPokeDelay);
	if(iDelay < iCmdDelay){
		client_print(id, print_center, "Mozesz uzyc za %d sekund", iCmdDelay-iDelay);
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}
public cmd_block2(id){
	new iDelay=get_systime()-gStartRound;
	new iCmdDelay=get_pcvar_num(gcvarPokeDelay);
	if(iDelay < iCmdDelay){
		client_print(id, print_center, "Mozesz uzyc za %d sekund", iCmdDelay-iDelay);
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}
public cmd_block3(id){
	new iDelay=get_systime()-gStartRound;
	new iCmdDelay=get_pcvar_num(gcvarPokeDelay);
	if(iDelay < iCmdDelay){
		client_print(id, print_center, "Mozesz uzyc za %d sekund", iCmdDelay-iDelay);
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}
public eventRoundInit()
	gStartRound=get_systime();


  • +
  • -
  • 0

#7 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 24.06.2009 16:53

new const gszCmds[][]={
	"+pokeskill",
	"+pokeskill1",
	"+pokeskill2"
}
new const giDelay[]={
	10,
	10,
	20
}
Takie coś wystarczy czy chcesz konfigurację w pliku .ini?

Załączone pliki


  • +
  • -
  • 0

#8 SkinnerBox

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 11
Początkujący

  • Postów:70
  • Lokalizacja:Sopot
Offline

Napisano 24.06.2009 17:02

Dziękuje, wystarczy :D .
  • +
  • -
  • 0




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

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