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
 

vaverix - zdjęcie

vaverix

Rejestracja: 02.03.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 15.09.2013 21:03
*****

#281909 Pisz po x sec nie wiem jak inaczej nazwać.

Napisane przez vaverix w 12.08.2011 14:00

Proszę, nie, nie piszcie takich głupot bo nie da się tego czytać...

I to jeszcze często się zdarza, że to Support Team. Ratujcie mnie. Proponowałbym, żeby w support team był ktoś, kto na prawdę się na tym zna...

Chociażby coś takiego:

#include <amxmodx>

#define PLUGIN "1 2 3"
#define VERSION "0.01"
#define AUTHOR "vaverix"

new step[33];

public plugin_init()
{
	register_plugin(PLUGIN,VERSION,AUTHOR);
}

public client_connect(id)
	set_task(3.0, "display_msg", id);

public client_disconnect(id)
	step[id] = 0;

public display_msg(id)
{
	switch(step[id])
	{
		case 0:
		{
			client_print(id, print_chat, "No nie! Ukradli mi moje naboje!");
			set_task(3.0, "display_msg", id);
		}
		case 1:
		{
			client_print(id, print_chat, "proszę, zdobadz dla mnie Gumowe Naboje...");
			set_task(3.0, "display_msg", id);
		}
		case 2: client_print(id, print_chat, "Doskonale, Dziekuje ci!");
	}
	step[id]++;
}

  • +
  • -
  • 1


#267038 Pobieranie tekstu

Napisane przez vaverix w 06.07.2011 15:20

Witam.

Nie ma co domniemywać, czy to będzie działało, czy nie, po prostu sprawdźcie kod, zanim go zamieścicie...

Proszę:

/*
	vaverix, amxx-dev.pl, amxx.pl
*/

#include <amxmodx>

#define MAX 128	// maksymalna dlugosc wiadomosci

new g_text[128];

public plugin_init()
{
	register_plugin("Nowy Plugin","1.0","#Vaverix.");
	register_clcmd("say","cmd_say");
	register_clcmd("say_team","cmd_say");
}

public cmd_say(id)
{
	new arg[MAX];			// deklarujemy zmienną w której będzie wysłana wiadomość
	read_argv(1, arg, MAX-1);	// pobieramy wiadomość (można też przez read_args, bez znaczenia)

	if(!equal("!",arg,1))			// sprawdzamy, czy na początku wiadomości znajduję się wykrzyknik
		return PLUGIN_CONTINUE;		// jeśli nie, to zostawiamy wiadomość w spokoju

	// jeśli tak to informujemy o tym gracza
	client_print(id, print_chat, "Twoja wiadomosc zawiera wykrzyknik i zostala przechowana w zmiennej g_text...");

	replace(arg, MAX-1, "!", "");	// usuwamy wykrzynik na początku wiadomości
	copy(g_text, MAX-1, arg);	// zapisujemy wiadomość bez wykrzyknika do stringu g_text

	return PLUGIN_HANDLED;	// i nie pokazujemy tej wiadomości na czacie...
}

Coś takiego?

ogólnie to chodzi mi o to, żeby pobierało mi tekst gdy jest na początku ! (dla przykładu)


W efekcie jak wyślesz wiadomość zawierającą na początku wykrzyknik, to zostanie ona zapisana do stringu g_text, czyli dokładnie tak, jak chciałeś...

Pozdrawiam.
  • +
  • -
  • 1


#265790 Info HUD (dead)

Napisane przez vaverix w 03.07.2011 14:30

W poście #8 nie ma zdefiniowanego identyfikatora gracza, więc zmienna id przyjmuje wartość 0.

Jak wszyscy wiedzą, zero to albo serwer, albo wszyscy gracze, zależy od funkcji, dlatego też plugin nie działa. :)

Zamień:
public plugin_cfg(){     
    new Float:fCzas;
    
    fCzas = get_pcvar_float(cvar_spec);
    set_task(floatmax(fCzas, 1.0), "PokazSpec", 567,_,_, "b")
    
    fCzas = get_pcvar_float(cvar_death);
    set_task(floatmax(fCzas, 1.0), "PokazDeath",456,_,_, "b")
}

na:

public plugin_cfg(){     
    new Float:fCzas_s = get_pcvar_float(cvar_spec);
    new Float:fCzas_d = get_pcvar_float(cvar_death);

    for(new id = 1; id < 33; id++) {
        set_task(floatmax(fCzas_s, 1.0), "PokazSpec", id,_,_, "b") 
        set_task(floatmax(fCzas_d, 1.0), "PokazDeath",id,_,_, "b")
    }
}

lub:

public plugin_connect(id){     
    new Float:fCzas_s = get_pcvar_float(cvar_spec);
    new Float:fCzas_d = get_pcvar_float(cvar_death);

    set_task(floatmax(fCzas_s, 1.0), "PokazSpec", id,_,_, "b") 
    set_task(floatmax(fCzas_d, 1.0), "PokazDeath",id,_,_, "b")
}

Jak wolisz...

A jeszcze lepiej i prościej:

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Nowy plugin"
#define VERSION "1.0"
#define AUTHOR "#Vaverix."

new cvar_info;

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
    
	cvar_info = register_cvar("amx_info_frequency", "30");
}

public client_connect(id)
{
	new Float:kiedy = get_pcvar_float(cvar_info);
	set_task(floatmax(kiedy, 1.0), "show_info", id, _, _, "b");
}

public client_disconnect(id)
	remove_task(id, 0);

public show_info(id)
{
	if(is_user_hltv(id) || is_user_bot(id)) // i tak dalej, i tak dalej...
		return PLUGIN_HANDLED;

	if(!is_user_alive(id) && (get_user_team(id) != 3))	// tutaj to samo co wyzej, tez tych warunkow troche moze byc...
	{
		client_print(id, print_chat, "Jestes martwy...");
	}

	if(get_user_team(id)==3) // j.w
	{
		client_print(id, print_chat, "Jestes spect'em...");
	}
	return PLUGIN_HANDLED;
}

  • +
  • -
  • 1


#265772 AmxPsayChat - prywatna wiadomość na czacie

Napisane przez vaverix w 03.07.2011 13:53

Dołączona grafika

Z uwagi na nieporęczność komendy amx_psay służącej adminom do wysyłania prywatnych wiadomości do konkretnego użytkownika - napisałem ten malutki plugin. Był on na użytek własny, ale może komuś się przyda.

Już nie będzie sytuacji, w których Ty jako administrator wysyłając wiadomość w konsoli przez amx_psay nie zauważysz na czacie treści skierowanych właśnie do Ciebie!
Opcjonalnie, żeby wzbogacić swój serwer o następną użyteczną opcję, możesz ustawić plugin tak, aby inni gracze też mogli z niego skorzystać!
Sam proces użytkowania tego pluginu jest bardzo prosty, a zarazem szybki, co czyni go idealną alternatywą.

Dołączona grafika

amx_psaychat_onlyforadmins "1" // plugin tylko dla administratorów?
amx_psaychat_sendtoadmins "1" // inni admini też widzą wiadomość?

Dołączona grafika

 say /nick wiadomość

Przykład:

 say /kowalski czesc, dawno Cie nie widzialem!

Dodatkowo, nie trzeba pisać całego nicku, plugin sam zlokalizuje gracza!
Przykład:

 say /kow czesc, dawno Cie nie widzialem!

Dołączona grafika

 <amxmodx>
 <amxmisc>
 <colorchat>

Dołączona grafika

Dołączona grafika

Dołączona grafika

Dołączona grafika

Mały ChangeLog:

 1.2c - obsługa say_team, prawdopodobnie finalna wersja
 1.2b - mała optymalizacja
 1.2a - dodane cvary
 1.1 - dodany moduł ColorChat
 1.0 - pierwsze wydanie

PS. W załączniku jest najnowsza wersja, tylko w #define VERSION zapomniałem zmienić, wybaczcie mi.

Dołączona grafika

W załączniku, lub tutaj

_______________________
Pozdrawiam serdecznie.

Załączone pliki


  • +
  • -
  • 13


#249241 Optymalizacja pluginów - Jak?

Napisane przez vaverix w 14.05.2011 15:50

Cześć,

może tutaj coś dla siebie znajdziesz, niestety - po angielsku.

Optimizing Plugins (AMX Mod X Scripting)

Ogólnie, coś podobnego jak na stronie wyżej można znaleźć tutaj, w dziale tutoriale ;)


Pozdrawiam.
  • +
  • -
  • 1


#248872 Przerobienie radaru

Napisane przez vaverix w 13.05.2011 14:13

Witam,

proszę bardzo:

#include <amxmodx>

#define MAX_PLAYERS 20

new g_enemy, g_enemydie;

public plugin_init() 
{
	register_concmd("testradar","radar_scan");
	register_logevent("nowa_runda",2,"1=Round_Start");
	
	g_enemy = get_user_msgid("HostagePos");
	g_enemydie = get_user_msgid("HostageK");
}

public client_disconnect(id)
{
	if(task_exists(id))
		remove_task(id);
}

public nowa_runda()
{
	for(new i=1;i<33;i++)
	{
		if(task_exists(i))
			remove_task(i);
	}
}

public radar_scan(id)
{
	if(!(get_user_flags(id) & ADMIN_IMMUNITY) || !is_user_alive(id))
		return PLUGIN_HANDLED;
	
	new PlayerCoords[3];
    
	for (new i=1; i<=MAX_PLAYERS; i++)
	{
		if(!is_user_connected(i) || !is_user_alive(i) || get_user_team(i) == get_user_team(id)) 
			continue;
		
		get_user_origin(i, PlayerCoords);
		
		message_begin(MSG_ONE_UNRELIABLE, g_enemy, {0,0,0}, id);
		write_byte(id);
		write_byte(i);
		write_coord(PlayerCoords[0]);
		write_coord(PlayerCoords[1]);
		write_coord(PlayerCoords[2]);
		message_end();
		
		message_begin(MSG_ONE_UNRELIABLE, g_enemydie, {0,0,0}, id);
		write_byte(i);
		message_end();
	}
	if(!task_exists(id))
		set_task(2.0, "radar_scan", id, _, _, "b");
	
	return PLUGIN_HANDLED;
}	

*.sma i *.amxx w załączniku :)

Załączone pliki


  • +
  • -
  • 1


#248852 Czas grania na serwerze

Napisane przez vaverix w 13.05.2011 12:51

Witaj,

tak się dzieje, z tego powodu, iż poprzez set_task nie przekazujesz id'a żadnego gracza.

To co zmieniłeś - wywal, następnie zamień:

public client_connect(id)
	wczytaj_czas_gry(id);
public client_disconnect(id)
{
	zapisz_czas_gry(id);
	czas_gry[id] = 0;
}

na:

public client_connect(id)
{
	wczytaj_czas_gry(id);
	set_task(60.0, "pokaz_czas_gry", id,_,_,"b");
}
public client_disconnect(id)
{
	zapisz_czas_gry(id);
	czas_gry[id] = 0;

	if(task_exists(id))
		remove_task(id);
}

Mam nadzieję, że pomogłem :)

Gotowy plugin w załączniku.

@ amxxmaster

Będzie ciężko zrobić to na nvault, ale jak znajdę chwilę czasu, to postaram się zająć tym...

Załączone pliki


  • +
  • -
  • 2


#248563 Czas grania na serwerze

Napisane przez vaverix w 12.05.2011 00:58

Witam serdecznie.

Na wstępie chciałbym zaznaczyć, że pracując na dystrybucji Linuxowej (tak - mam Linuxa, nie - nie mam na żadnym z dysków Windowsa, tak - działa mi steam, tak - działa mi Counter Strike ;)) nie posiadam Amx Mod Studio, bo takowy w wersji natywnej na tenże system nie wyszedł (co jest paradoksem swoją drogą)...

Działa mi natomiast Pawn Studio (w Wine), lecz teraz byłem po formacie i nie zdążyłem zainstalować.

Tak więc proszę mi wybaczyć ewentualne błędy, aczkolwiek powinno wszystko ładnie współpracować, tak jak być powinno ;)

A oto plugin:

#include <amxmodx>
#include <nvault>

#define PLUGIN	"Save Player's playing time"
#define VERSION	"1.0"
#define AUTHOR	"#Vaverix."

new czas_gry[33];
new g_vault;

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say /gametime","pokaz_czas_gry");
	register_clcmd("say /playingtime","pokaz_czas_gry");
	register_clcmd("say /czasgry","pokaz_czas_gry");
	g_vault = nvault_open("SPPT");
	
	if (g_vault == INVALID_HANDLE)
		set_fail_state( "Nie udalo sie otworzyc pliku nvault!");
}
public client_connect(id)
	wczytaj_czas_gry(id);
public client_disconnect(id)
{
	zapisz_czas_gry(id);
	czas_gry[id] = 0;
}

public wczytaj_czas_gry(id)
{
	new name[35],vaultkey[64],vaultdata[256];
	
	get_user_name(id,name,34);
	format(vaultkey,63,"%s-gametime",name);
	
	nvault_get(g_vault,vaultkey,vaultdata,255);
	
	czas_gry[id] = str_to_num(vaultdata);
	
	return PLUGIN_CONTINUE;
}


public zapisz_czas_gry(id)
{
	new name[35],vaultkey[64],vaultdata[256];
	
	get_user_name(id,name,34);
	czas_gry[id] += get_user_time(id, 1);
	
	format(vaultkey,63,"%s-gametime",name);
	format(vaultdata, 255, "%d", czas_gry[id]);
	
	nvault_set(g_vault,vaultkey,vaultdata)
	
	czas_gry[id] = str_to_num(vaultdata);
	
	return PLUGIN_CONTINUE;
}

public pokaz_czas_gry(id)
{
	new sekundy = (czas_gry[id] + get_user_time(id, 1)), minuty, godziny;
	
	while(sekundy >= 60)
	{
		sekundy -= 60;
		minuty++;
		
	}
	while(minuty >= 60)
	{
		minuty -= 60;
		godziny++;
		
	}
	client_print(id,print_chat,"Grasz juz %ih %imin %is na tym serwerze!", godziny, minuty, sekundy);
	
	return PLUGIN_HANDLED;
}

public plugin_end()
        nvault_close(g_vault);

@ warring - DarkGL

Oczywiście chodziło o Amxx Studio ;P

PS.1 Kod można jeszcze skrócić (zresztą sam w sobie jest krótki), ale chciałem, żeby był w miare przejrzysty ;)
PS.2 Ten post ma tylko i wyłącznie na celu pomóc w problemie zaistniałym w tym temacie, a nie jest to forma jakiegokolwiek żalenia się, chwalenia, czy próby sprowokowania miłośników Windows'a
PS.3 Przy takiej porze, wydajność pracy mózgu spada do minimum :>

Pozdrawiam.

Załączone pliki


  • +
  • -
  • 2


#248339 nVault, a boolean

Napisane przez vaverix w 10.05.2011 23:30

Możesz to w taki sposób zapisać:

%i - czyli wartość integer [liczba całkowita]

format(vaultdata,255,"%i#%i", ma_spadochron[id], ma_wiecejdmg[id]);

Pozdrawiam ;)
  • +
  • -
  • 1


#248330 nVault, a boolean

Napisane przez vaverix w 10.05.2011 22:43

Cześć.

W Pawnie (i nie tylko) cyfra 0 jest przyjmowana jako logiczna wartość false (fałsz), a 1 jako true (prawda).

Tak więc w taki też sposób zapisuj ;)

@ up

Ubiegł mnie...

@ down

Bez sensu...

Pewnie, że tak, ale nie rozumiem sensu tej wypowiedzi...
  • +
  • -
  • 1


#234797 Podmiana modeli.

Napisane przez vaverix w 09.04.2011 11:39

Na FTP serwera, do katalogu cstrike/models
  • +
  • -
  • 1


#233617 vm.amxx przerobka

Napisane przez vaverix w 05.04.2011 17:36

Przepraszam, w
#define ADMIN_VOICE ADMIN_BAN
wkradła się jedna spacja więcej, teraz powinno być już okej.
  • +
  • -
  • 1


#233600 vm.amxx przerobka

Napisane przez vaverix w 05.04.2011 17:14

Łap, powinno działać, a jak nie, to wołaj.

Pozdrawiam.

Załączone pliki


  • +
  • -
  • 1


#233592 Modyfikacja komendy /admin

Napisane przez vaverix w 05.04.2011 17:03

Proszę, w załączniku *.sma jak i *.amxx

Załączone pliki


  • +
  • -
  • 1


#226304 Diablo Mod brak expa

Napisane przez vaverix w 17.03.2011 15:56

Linijka 4 i 5 :
        get_players(Players, zablokuj, "ch");
        if(zablokuj < 4 && amount < 200) return PLUGIN_CONTINUE;

Jeśli nie chcesz blokady w ogóle, to wywal to, a jak chcesz od określonej ilości graczy, to zmień tą czwórkę na liczbę graczy jaką preferujesz.
  • +
  • -
  • 1