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
 

ThreeNight - zdjęcie

ThreeNight

Rejestracja: 01.05.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 08.01.2013 19:30
-----

#493584 Interp

Napisane przez DriveR.` w 25.12.2012 16:52

Plugin tylko na serwery STEAM
Spoiler

  • +
  • -
  • 1


#372136 Naprawa: Bug rakiety nowa runda

Napisane przez Maciek332 w 27.02.2012 19:19

Witam, nie widziałem na forum podobnego tematu (szukałem w google), więc postanowiłem takowy napisać. Dowiecie się tutaj, jak zlikwidować bug rakiety, która wystrzelona tuż przed nową rundą, przechodzi do następnej, raniąc ludzi na respie.
Poradnik by JA :)
Do dzieła ^D^

Znajdź:
public NowaRunda()


i zmień to:

public NowaRunda()
{
freezetime = true;
new iEnt = find_ent_by_class(-1, "Mine");
while(iEnt > 0)
{
remove_entity(iEnt);
iEnt = find_ent_by_class(iEnt, "Mine");
}
}


na to:

public NowaRunda()
{
freezetime = true;
new iEnt = find_ent_by_class(-1, "Mine");
while(iEnt > 0)
{
remove_entity(iEnt);
iEnt = find_ent_by_class(iEnt, "Mine");
}

new iEnts = find_ent_by_class(-1, "Rocket");
while(iEnts > 0)
{
remove_entity(iEnts);
iEnts = find_ent_by_class(iEnts, "Rocket");
}
}


KONIEC :)

Jeśli ktoś używa czasowej blokady rakiety z tego tematu: http://amxx.pl/topic...blokada-rakiet/

to public NowaRunda() należy podmienić na ten:

public NowaRunda()
{
freezetime = true;
new iEnt = find_ent_by_class(-1, "Mine");
while(iEnt > 0)
{
remove_entity(iEnt);
iEnt = find_ent_by_class(iEnt, "Mine");
}
mozna = false;
{
set_task(12.0,"odblokuj",666)
ColorChat(0,RED,"Rakiety i dynamity zablokowane na 10 sekund !")
}

new iEnts = find_ent_by_class(-1, "Rocket");
while(iEnts > 0)
{
remove_entity(iEnts);
iEnts = find_ent_by_class(iEnts, "Rocket");
}
}

  • +
  • -
  • 5


#358709 Itemy dla VIP

Napisane przez radim w 05.02.2012 13:03


if(informacje_przedmiotu_gracza[id][0] == 45 && (get_user_flags(id) & ADMIN_LEVEL_A))

    {

        maksymalne_zdrowie_gracza[id] += 1000;

    }

  • +
  • -
  • 3


#301387 Napiszcie poradnik jak zrobić klasę premium

Napisane przez radim w 28.09.2011 18:44

1. Dodajesz klasę tak jak wszystkie inne..
2. Szukasz public WybierzKlase_Handle(id, menu, item) i pod:
if(item == klasa_gracza[id])
				return PLUGIN_CONTINUE;
dodajesz to:
if(item == xx && !(get_user_flags(id) & ADMIN_LEVEL_H))
		{
				client_print(id, print_chat, "[COD:MW] Nie masz uprawnien aby kozystac z klasy premium.");
				WybierzKlase(id);
				return PLUGIN_CONTINUE;
		}
a.) w miejsce xx wpisujesz nazwę klasy, ta klasa ma być identyczna jak w linijce:
enum { NONE = 0, Snajper, Komandos, Strzelec, Obronca, Medyk, Wsparcie, Saper, Demolitions, Rusher, Rambo};
Czyli jak chcemy dodać klasę o nazwie "BOT" to w tej linijce dodajemy:
enum { NONE = 0, Snajper, Komandos, Strzelec, Obronca, Medyk, Wsparcie, Saper, Demolitions, Rusher, Rambo, Bot};
i potem zamiast xx wpisujemy Bot. Albo gdy w tej linijce wpiszemy:
enum { NONE = 0, Snajper, Komandos, Strzelec, Obronca, Medyk, Wsparcie, Saper, Demolitions, Rusher, Rambo, boT};
to w xx wpisujemy boT. Uwzględniamy wielkość liter !
b.) ta klasa będzie na flagę "t" bo jest ADMIN_LEVEL_H. Oczywiście wy możecie podać inną flagę.
  • +
  • -
  • 1


#5907 Jak zainstalować PodBot'y do Amx Mod X

Napisane przez baku w 17.05.2008 16:16

A więc najpierw sciągasz PodBoty :
http://www.sendspace.pl/file/acJqww7E/

Wrzucasz je do cstrike/addons

Następnie w addons/metamod/plugins.ini dopisujesz linike :
;; PodBot
win32 addons/podbot/podbot_mm.dll
linux addons/podbot/podbot_mm_i386.so
Wchodzimy do: /cstrike/addons/podbot i otwieramy notatnikiem podbot.cfg. Szukamy linijki pb_password "pomiędzy cudzysłowami wpisz twoje hasło"

Teraz załączasz cs'a i w konsoli wpisujesz :
setinfo _pbadminpw "tutaj wpisz hasło ktore wpisałeś w podbot.cfg"
A tu zrób sobie binda na menu :
bind "=" "pb menu"
Pod przyciskiem = masz podbota

I to wszystko ;]


Tutorial wykonany dla www.amxx.pl
Copyright � 2008 baku. Kopiowanie zabronione.

  • +
  • -
  • 114


#300166 Item Działko Orbitalne

Napisane przez radim w 25.09.2011 13:34

1. Rozpoczynamy od tworzenia normalnego itemu. Po ostatnim twoim itemie dodajesz:
"Działko Orbitalne"

2. Następnym krokiem jest opis tego przedmiotu. Po ostatnim opisie itemu, dodajesz opis działka:
"Po uzyciu zostaje wystrzelona wiazka laserowa niszczaca wszystkich wrogow w zasiegu 5,000u. Item mozna uzyc tylko raz na runde"

UWAGA ! Pamiętaj, że ostatni item oraz jego opis nie może mieć przecinka na końcu !

3. Dodajesz pod includami:
#define MAKE_ENTITY 564

4. Następnie nad public plugin_initD() dodajesz:
new const W_MODEL[] = "models/w_battery.mdl";
new const SOUND_APPROACH[] = "ioncannon/ic_approaching.wav"
new const SOUND_BEACON[] = "ioncannon/ic_beacon_set.wav"
new const SOUND_STOP[] = "vox/_comma.wav"
new const SOUND_BEEP[] = "ioncannon/ic_beacon_beep.wav"
new const SOUND_ATTACK[] = "ioncannon/ic_attack.wav"
new const SOUND_READY[] = "ioncannon/ic_ready.wav"
new const SOUND_PLANT[] = "ioncannon/ic_beacon_plant.wav"

new BlueFire,
	LaserFlame,
	IonBeam,
	Shockwave,
	BlueFlare
;

new IonShake;

new bool:g_bUsed[33];

new Float:g_fBeamOrigin[33][8][3],
	Float:g_fBeamMidOrigin[33][3],
	Float:g_fRotationSpeed[33],
	Float:g_fDegrees[33][8],
	Float:g_fDistance[33],
	Float:g_fBeaconTime[33]
;
	

new g_iEnt[33],
	g_iPitch[33],
	g_iIonState[33]
;


enum {
	NONE = 0,
	PLANTING,
	PLANTED
};


5. W public plugin_init() dodajemy:
IonShake = get_user_msgid("ScreenShake")

6. W public plugin_precache() dodajemy:
	LaserFlame = precache_model("sprites/ioncannon/ic_laserflame.spr");
	IonBeam = precache_model("sprites/ioncannon/ic_ionbeam.spr");
	Shockwave = precache_model("sprites/shockwave.spr")
	BlueFlare = precache_model("sprites/ioncannon/ic_bflare.spr")
	
	engfunc(EngFunc_PrecacheSound, SOUND_APPROACH)
	engfunc(EngFunc_PrecacheSound, SOUND_BEACON)
	engfunc(EngFunc_PrecacheSound, SOUND_BEEP)
	engfunc(EngFunc_PrecacheSound, SOUND_STOP)
	engfunc(EngFunc_PrecacheSound, SOUND_ATTACK)
	engfunc(EngFunc_PrecacheSound, SOUND_READY)
	engfunc(EngFunc_PrecacheSound, SOUND_PLANT)
	
	precache_model(W_MODEL)

7. Szukamy public CmdStart i tam dodajemy:
if(informacje_przedmiotu_gracza[id][0] == xx) // xx - numer twojego itemu
	{
		if(g_iIonState[id] == NONE && !g_bUsed[id] && (Button & IN_USE) && !(OldButton & IN_USE) && get_user_weapon(id) == CSW_KNIFE)
		{
				g_iPitch[id] = 97
				g_fBeaconTime[id] = 1.12
	
				emit_sound(id, CHAN_WEAPON, SOUND_BEACON, VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
	
				message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id)
				write_byte(5)
				write_byte(0)
				message_end()
	
				g_iIonState[id] = PLANTING
				set_task(5.0, "MakeTransmiter", id+MAKE_ENTITY)
				return FMRES_IGNORED
			}
	
		if(g_iIonState[id] == PLANTING && (Button & (IN_ATTACK | IN_ATTACK2 | IN_BACK | IN_FORWARD | IN_CANCEL | IN_JUMP | IN_MOVELEFT | IN_MOVERIGHT | IN_RIGHT)))
			{
				remove_task(id+MAKE_ENTITY)
				message_begin(MSG_ONE, get_user_msgid("BarTime"), {0, 0, 0}, id)
				write_byte(0)
				write_byte(0)
				message_end()
				g_iIonState[id] = NONE
				emit_sound(id, CHAN_WEAPON, SOUND_BEACON, VOL_NORM, ATTN_NORM, (1<<5), PITCH_NORM)
				return FMRES_IGNORED
		}
	}

8. Szukasz public ResetHUD(id) i tam dodajesz:
g_bUsed[id] = false

9. Na koniec sma dodajesz:
Spoiler

I to wszystko !

Załączone pliki


  • +
  • -
  • 8


#311533 Klasa Zlodziej Expa

Napisane przez radim w 21.10.2011 21:29

Dołączona grafika
Nazwa klasy: Zlodziej Expa
Opis klasy: 1/10 na kradzież (v.1.2 -dwa cvar'y: jeden od tego aby ustawić ilość exp'a ile mamy dostawać za skradnięcie go, a drugi od tego ile exp'a ma zabrać ofierze. naprawiony bug, gdy kradliśmy ofierze exp'a, który miał mniej exp'a niż wyznaczony cvar od kradnięcia, to ofiara po kradzieży miała minusowy exp. dodana nowa wiadomość w say'u) (v1.1 - określoną ilość xp'a wyznaczoną cvarem + inteligencja[1 punkt inteligencji = 2 punkty doświadczenia]) (v1.1 - określoną ilość xp'a wyznaczoną cvar'em)
Bronie: AUG, Flash, HE
Zdrowie: 15
Kondycja: 30
Inteligencja: 15
Wytrzymalosc: 0

Zabójca nie kradnie exp'a wtedy, gdy ofiara ma mniej exp'a niż wyznaczona ilość do kradzieży.
Gdy exp zostanie skradziony, u ofiary pisze: "Twoj exp zostal skradziony przez XXX"
XXX - nick zabójcy
Gdy exp zostanie skradziony, u zabójcy pisze: "Ukradles ... exp'a graczu YYY" czyli np. "Ukradles 100 exp'a graczu radim"
... - ilość exp'a skradziondzionego
YYY - nick ofiary
Gdy ofiara ma mniej exp'a niż wyznaczony przez was cvar cod_zlodziejxp_for_killer to u zabójcy pisze: "Nie ukradłeś exp'a graczu YYY gdyż ma za mało exp'a" czyli np. "Nie ukradłeś exp'a graczu radim gdyż ma za mało expa"
YYY - nick ofiary
Dołączona grafika
	cod_zlodziejxp_for_killer 50 // exp dla zabójcy
	cod_zlodziejxp_from_victim 20 // exp zabierany ofierze
Dołączona grafika
codclass_zlodziejexpa*.sma do folderu scripting
codclass_zlodziejexpa*.amxx do folderu plugins
codclass_zlodziejexpa.amxx do plugins-codmod.ini
Dołączona grafika
ChangeLog:
Spoiler

Załączone pliki


  • +
  • -
  • 10


#300461 Klasa Inżynier

Napisane przez radim w 26.09.2011 13:32

Pokażę jak zrobić klasę Inżynier pod Starego CodMod'a
Zaczynamy !

1. Dodajemy nowy include:
#include <fakemeta_util>

2. Pod includami dodajemy to:
#define SENTRY_THINK 0.3
 
#define OFFSET_WPN_LINUX  4
#define OFFSET_WPN_WIN	   41
 
#define fm_point_contents(%1) engfunc(EngFunc_PointContents, %1)
 
#define fm_DispatchSpawn(%1) dllfunc(DLLFunc_Spawn, %1)
3. Następnie nad public plugin_init() dodajemy to:
new pMenuExplode[33];
new gMenuDzialko[33]
new bool:bInzynier[33]
new mdl_gib_build1,mdl_gib_build2,mdl_gib_build3,mdl_gib_build4
new g_maxplayers;
new pcvarPercent,pcvarHealth,pcvarDamage;
 
static const g_szWpnEntNames[][] = { "", "weapon_p228", "", "weapon_scout", "weapon_hegrenade", "weapon_xm1014", "weapon_c4", "weapon_mac10",
	"weapon_aug", "weapon_smokegrenade", "weapon_elite", "weapon_fiveseven", "weapon_ump45", "weapon_sg550",
	"weapon_galil", "weapon_famas", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
	"weapon_m3", "weapon_m4a1", "weapon_tmp", "weapon_g3sg1", "weapon_flashbang", "weapon_deagle", "weapon_sg552",
	"weapon_ak47", "weapon_knife", "weapon_p90" }

4. Do public plugin_init() dodajemy:
for (new i = 1; i < sizeof g_szWpnEntNames; i++){
		if (g_szWpnEntNames[i][0]) RegisterHam(Ham_Item_Deploy, g_szWpnEntNames[i], "ham_ItemDeploy_Post", 1)
	}
 
RegisterHam(Ham_TraceAttack, "func_breakable", "fw_TraceAttack_Building")
 
register_think("sentry_shot","sentry_shot")
 
g_maxplayers = get_maxplayers();
 
pcvarPercent = register_cvar("inzynier_percent","4") // ile procent daje jedno uderzenie w działko (przy budowaniu)
	pcvarHealth = register_cvar("inzynier_health","600") // ile hp ma dzialko
	pcvarDamage = register_cvar("inzynier_damage","15.0"); //[font=monospace] [/font]ile dmg zadaje dzialko przy trafieniu podajemy liczbę rzeczywistą !

5. Do public plugin_precache() dodajemy:
precache_sound("sentry_shoot.wav");
	
	precache_model("models/QTM_CodMod/v_tfc_spanner.mdl")
	precache_model("models/QTM_CodMod/base2.mdl")
	precache_model("models/QTM_CodMod/sentry2.mdl")
	
	mdl_gib_build1 = engfunc(EngFunc_PrecacheModel,"models/mbarrel.mdl")
	mdl_gib_build2 = engfunc(EngFunc_PrecacheModel,"models/computergibs.mdl")
	mdl_gib_build3 = engfunc(EngFunc_PrecacheModel,"models/metalplategibs.mdl")
	mdl_gib_build4 = engfunc(EngFunc_PrecacheModel,"models/cindergibs.mdl")
	
	precache_sound("debris/bustmetal1.wav");
	precache_sound("debris/bustmetal2.wav");

6. Do public NowaRunda() dodajemy:
	remove_entity_name("sentry_base")
	remove_entity_name("sentry_shot")

7. Na samym końcu sma dodajemy:
Spoiler


8. W public Odrodzenie(id) dodajemy case naszej klasy i w niej msui być:
bInzynier[id] = true;
Czyli np. wygląda to tak(moja klasa ma galil'a i p228):
case xx:   // w miejsce xx wpisujesz nazwe klasy
		{
			give_item(id, "weapon_galil")
			give_item(id, "weapon_p228")
			bInzynier[id] = true;
		}

9. Na początku public Odrodzenie(id) pod:
if(nowa_klasa_gracza[id])
	{
dodajemy:
bInzynier[id] = false;

10. W public client_connect(id) dodajemy:
bInzynier[id] = false;
gMenuDzialko[id] = 0;
pMenuExplode[id] = 0;

I to wszystko ;)
  • +
  • -
  • 15


#295547 Jak dodać statystykę GRAWITACJA

Napisane przez radim w 12.09.2011 21:01

1. Otwieramy nasze sma z codmodem i szukamy:
new Float:szybkosc_gracza[33];
i pod tym dodajemy:
new grawitacja_gracza[33];
2. Następnie szukamy:
public client_connect(id) i pod:
inteligencja_gracza[id] = 0;
wpisujemy:
grawitacja_gracza[id] = 0;
3. W public PrzydzielPunkty(id) szukamy:
new tytul[25];
i pod tym dodajemy:
new grawitacja[60];
W tym samym publicu szukamy:
format(kondycja, 59, "Kondycja: \r%i \y(Zwieksza tempo chodu)", kondycja_gracza[id]);
i pod tym dodajemy:
format(grawitacja, 59, "Grawitacja: \r%i \y(Zmniejsza grawitacje)", grawitacja_gracza[id]);
Nadal pozostajemy w tym samym publicu i szukamy:
menu_additem(menu, kondycja);
i pod tym dopisujemy:
menu_additem(menu, grawitacja);
4. W public PrzydzielPunkty_Handler(id, menu, item) szukamy:
case 3:
{
if(kondycja_gracza[id]<100)
kondycja_gracza[id]++;
else
ColorChat(id,GREEN," [CoD MoD]^x01 Maksymalny poziom^x03 zwinnosci^x01 osiagniety.^x03 [%i]", kondycja_gracza[id]);
  }
i pod tym dodajemy:
case 4:
{
if(grawitacja_gracza[id]<100)
grawitacja_gracza[id]++;
else
ColorChat(id,GREEN," [CoD MoD]^x01 Maksymalny poziom^x03 grawitacji^x01 osiagniety.^x03 [%i]", grawitacja_gracza[id]);
  }
czyli całość ma wyglądać tak:
Spoiler


5. Nastepnie w public ResetujPunkty(id) szukamy:
wytrzymalosc_gracza[id] = 0;
i pod tym dodajemy:
grawitacja_gracza[id] = 0;
6. Cały nasz public ZapiszDane(id) podmieniamy z tym:
public ZapiszDane(id)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-cod", nazwa_gracza[id], klasa_gracza[id]);
format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], grawitacja_gracza[id]);
nvault_set(g_vault,vaultkey,vaultdata);
}

7. Cały nasz public WczytajDane(id, klasa) podmieniamy z tym:
public WczytajDane(id, klasa)
{
new vaultkey[64],vaultdata[256];
format(vaultkey,63,"%s-%i-cod", nazwa_gracza[id], klasa);
format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], grawitacja_gracza[id]);
nvault_get(g_vault,vaultkey,vaultdata,255);

replace_all(vaultdata, 255, "#", " ");

  new doswiadczeniegracza[32], poziomgracza[32], inteligencjagracza[32], silagracza[32], zrecznoscgracza[32], zwinnoscgracza[32], grawitacja[32];

  parse(vaultdata, doswiadczeniegracza, 31, poziomgracza, 31, inteligencjagracza, 31, silagracza, 31, zrecznoscgracza, 31, zwinnoscgracza, 31, grawitacja, 31);

doswiadczenie_gracza[id] = str_to_num(doswiadczeniegracza);
poziom_gracza[id] = str_to_num(poziomgracza)>0?str_to_num(poziomgracza):1;
inteligencja_gracza[id] = str_to_num(inteligencjagracza);
zdrowie_gracza[id] = str_to_num(silagracza);
wytrzymalosc_gracza[id] = str_to_num(zrecznoscgracza);
kondycja_gracza[id] = str_to_num(zwinnoscgracza);
grawitacja_gracza[id] = str_to_num(grawitacja);
  punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-grawitacja_gracza[id];
}

7. Cały nasz public SprawdzPoziom(id) podmieniamy z tym:
public SprawdzPoziom(id)
{
if(poziom_gracza[id] < 201)
{
while(doswiadczenie_gracza[id] >= doswiadczenie_poziomu[poziom_gracza[id]])
{
poziom_gracza[id]++;
set_hudmessage(60, 200, 25, -1.0, 0.25, 2, 1.0, 2.0, 0.1, 0.2, 2)
ShowSyncHudMsg(id, SyncHudObj3, "Awansowales do poziomu %i!", poziom_gracza[id]);
client_cmd(id, "spk QTM_CodMod/levelup");
}

  punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-grawitacja_gracza[id];
}
ZapiszDane(id);
}
8. W public UstawSzybkosc(id) szukamy:
if(klasa_gracza[id])
i od razu pod tym dodajemy:
new grav = grawitacja_gracza[id] / 500;
set_user_gravity(id, get_user_gravity(id)-float(grav));

I to wszystko, życzę miłej gry ;P


!!! UWAGA !!!

PRAWA ZASTRZEŻONE. ZAKAZ KOPIOWANIA NA INNE FORA.



@Edit Poprawka jednego szczegółu
  • +
  • -
  • 11