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
 

WSP3S - zdjęcie

WSP3S

Rejestracja: 13.05.2012
Aktualnie: Nieaktywny
Poza forum Ostatnio: 18.11.2012 18:43
-----

#472256 [ROZWIĄZANE] Prośba o zrobienie VIP'a! x2

Napisane przez Gość w 28.10.2012 14:18

t


#472328 [ROZWIĄZANE] Prośba o zrobienie VIP'a! x2

Napisane przez Gość w 28.10.2012 17:02

Oba. Zmień
524288 == 524288
na
read_flags("t");
Oznacza to i tak to samo. Każda flaga odpowiada liczbie równej dwa do potęgi kolejności litery w alfabecie angielskim, np. a=1, b=2, c=4, d=8, itd., możesz wtedy śmiało zmieniać flagi na inne, nawet dodając kilka naraz, np. zamiast
if(get_user_flags(id) & 524288 == 524288){
ustalając
if(get_user_flags(id) & read_flags("bu")){
co wymaga posiadania flag "b" i "u".


#472364 [ROZWIĄZANE] Prośba o zrobienie VIP'a! x2

Napisane przez K!113r w 28.10.2012 17:53


#define ADMIN_ALL 0 /* everyone */
#define ADMIN_IMMUNITY (1<<0) /* flag "a" */
#define ADMIN_RESERVATION (1<<1) /* flag "b" */
#define ADMIN_KICK (1<<2) /* flag "c" */
#define ADMIN_BAN (1<<3) /* flag "d" */
#define ADMIN_SLAY (1<<4) /* flag "e" */
#define ADMIN_MAP (1<<5) /* flag "f" */
#define ADMIN_CVAR (1<<6) /* flag "g" */
#define ADMIN_CFG (1<<7) /* flag "h" */
#define ADMIN_CHAT (1<<8) /* flag "i" */
#define ADMIN_VOTE (1<<9) /* flag "j" */
#define ADMIN_PASSWORD (1<<10) /* flag "k" */
#define ADMIN_RCON (1<<11) /* flag "l" */
#define ADMIN_LEVEL_A (1<<12) /* flag "m" */
#define ADMIN_LEVEL_B (1<<13) /* flag "n" */
#define ADMIN_LEVEL_C (1<<14) /* flag "o" */
#define ADMIN_LEVEL_D (1<<15) /* flag "p" */
#define ADMIN_LEVEL_E (1<<16) /* flag "q" */
#define ADMIN_LEVEL_F (1<<17) /* flag "r" */
#define ADMIN_LEVEL_G (1<<18) /* flag "s" */
#define ADMIN_LEVEL_H (1<<19) /* flag "t" */
#define ADMIN_MENU (1<<20) /* flag "u" */
#define ADMIN_ADMIN (1<<24) /* flag "y" */
#define ADMIN_USER (1<<25) /* flag "z" */

Zamiast liczby 524288 można użyć ADMIN_LEVEL_H i oznacza to to samo, czyli podmieniasz sobie ładnie daną liczbę pod flagę, np. ADMIN_LEVEL_F

http://amxx.pl/dokum.../get-user-flags
  • +
  • -
  • 1


#472399 /monster, poprawka pluginu.

Napisane przez AztekHQS w 28.10.2012 19:48

Nie wiem co chcesz tym pluginem osiągnać, nawet nie opisałeś go dokładnie.
Kto dostaje HP, Speed ITD...

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "AztekHQS"

new pCvarHP, pCvarGravity, pCvarSpeed
new bool:Wlaczony = false
new bool:Monster[33] = false
new Speed[33] = false

new const model[] = "monster12"

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

register_clcmd("say /monster", "Dodaj")
register_clcmd("say /monsteroff", "Usun")

register_logevent("KoniecRundy", 2, "1=Round_End")
RegisterHam(Ham_Touch, "weaponbox", "DotykBroni")
RegisterHam(Ham_Touch, "armoury_entity", "DotykBroni")
register_forward(FM_CmdStart, "Stalosci")

pCvarHP = register_cvar("amx_monster_health", "10000")
pCvarGravity = register_cvar("amx_monster_gravity", "500.0")
pCvarSpeed = register_cvar("amx_monster_speed", "300.0")
}

public plugin_precache() {
static nazwa[128]
formatex(nazwa, 127, "models/player/%s/%s.mdl", model, model)
engfunc(EngFunc_PrecacheModel, nazwa)
}

public KoniecRundy() {
for(new id = 1; id <= get_maxplayers(); id++) {
if(is_user_connected(id) && Wlaczony) {
Monster[id] = false
Speed[id] = 6
}
}
Wlaczony = false
}

public DotykBroni(weapon, id) {
if(!is_user_connected(id) || !is_user_alive(id)) return HAM_IGNORED

if(Monster[id]) return HAM_SUPERCEDE

return HAM_IGNORED
}

public Stalosci(id, uc_handle, seed) {
if(is_user_alive(id) && is_user_connected(id)) {
if(Wlaczony && Speed[id] == 1) {
fm_set_user_gravity(id, get_pcvar_float(pCvarGravity))
fm_set_user_maxspeed(id, get_pcvar_float(pCvarSpeed))
if(Monster[id]) engclient_cmd(id, "weapon_knife")
}
return FMRES_IGNORED
}
return FMRES_HANDLED
}

public Dodaj(id) {
if(!has_flag(id, "a") || Wlaczony) return PLUGIN_HANDLED

fm_set_user_health(id, get_pcvar_num(pCvarHP))
cs_set_user_model(id, model)
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
Wlaczony = true
Monster[id] = true
for(new i = 1; i <= get_maxplayers(); i++)
if(is_user_connected(i) && is_user_alive(i)) Speed[id] = 1

return PLUGIN_HANDLED
}

public Usun(id) {
if(!has_flag(id, "a") || !Monster[id] || !Wlaczony) return PLUGIN_HANDLED

fm_set_user_health(id, 100)
cs_reset_user_model(id)
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
Monster[id] = false
for(new i = 1; i <= get_maxplayers(); i++)
if(is_user_connected(i) && is_user_alive(i)) Speed[id] = 6

return PLUGIN_HANDLED
}



#471923 /monster, poprawka pluginu.

Napisane przez AztekHQS w 27.10.2012 13:47

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <cstrike>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "AztekHQS"

new pCvarHP, pCvarGravity, pCvarSpeed
new bool: Uzyl = false

new const model[] = "monster12"

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

register_clcmd("say /monster", "Dodaj")
register_clcmd("say /monsteroff", "Usun")

register_logevent("KoniecRundy", 2, "1=Round_End")

pCvarHP = register_cvar("amx_monster_health", "10000")
pCvarGravity = register_cvar("amx_monster_gravity", "500.0")
pCvarSpeed = register_cvar("amx_monster_speed", "300.0")
}

public plugin_precache() {
static nazwa[128]
formatex(nazwa, 127, "models/player/%s/%s.mdl", model, model)
engfunc(EngFunc_PrecacheModel, nazwa)
}

public KoniecRundy() Uzyl = false

public Dodaj(id) {
if(!has_flag(id, "a")) return PLUGIN_HANDLED

fm_set_user_health(id, get_pcvar_num(pCvarHP))
fm_set_user_gravity(id, get_pcvar_float(pCvarGravity))
cs_set_user_model(id, model)
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_set_user_maxspeed(id, get_pcvar_float(pCvarSpeed))
Uzyl = true
return PLUGIN_HANDLED
}

public Usun(id) {
if(!has_flag(id, "a")) return PLUGIN_HANDLED

if(Uzyl) {
fm_set_user_health(id, 100)
fm_set_user_gravity(id, 1.0)
cs_reset_user_model(id)
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_set_user_maxspeed(id, 250.0)
}
return PLUGIN_HANDLED
}



#471604 [ROZWIĄZANE] Prośba o zrobienie VIP'a! x2

Napisane przez Gość w 26.10.2012 17:20

Ścieżka vipa:
  • models/player/ct/ct.mdl
  • models/player/tt/tt.mdl

Możesz to zmienić, ale pamiętaj, że ten adres am określony format.
Do tego podałeś niepełne informacje dot. adresu, więc jak chcesz, to musisz sobie go zmienić.
Załączony plik  standard_vip.sma   4,68 KB  44 Ilość pobrań
  standard_vip.amxx

Podobnie tutaj, możesz śmiało edytować, dałem
  • models/player/uct/uct.mdl
  • models/player/utt/utt.mdl
Z tym platynowym AWP z 2 razy wiekszymi obrażeniami, to poproś kogoś o edycję, bazę masz.
Załączony plik  ultimate_vip.sma   4,87 KB  21 Ilość pobrań
  ultimate_vip.amxx


#471434 /monster, poprawka pluginu.

Napisane przez AztekHQS w 25.10.2012 22:08

Co do modelu to napisałem, że nie wiem czy będzie działać, bo pierwszy raz spróbowałem zrobić ustawienie cvarem
Jeśli będzie działać model napisz a dorobię pozostałe opcje.

sprawdź:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fakemeta_util>
#include <cstrike>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "AztekHQS"

new pCvarHP, pCvarGravity, pCvarSpeed, pCvarModel
new bool: Uzyl = false
new cvar[32]

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

register_clcmd("say /monster", "Dodaj")
register_clcmd("say /monsteroff", "Usun")

register_logevent("KoniecRundy", 2, "1=Round_End")

pCvarHP = register_cvar("amx_monster_health", "10000")
pCvarGravity = register_cvar("amx_monster_gravity", "500.0")
pCvarSpeed = register_cvar("amx_monster_speed", "300.0")
pCvarModel = register_cvar("amx_monster_model", "monster12")
}

public plugin_precache() {
static nazwa[128]
get_pcvar_string(pCvarModel, cvar, 31)
formatex(nazwa, 127, "models/player/%s/%s.mdl", cvar, cvar)
engfunc(EngFunc_PrecacheModel, nazwa)
}

public KoniecRundy() Uzyl = false

public Dodaj(id) {
if(!has_flag(id, "a")) return PLUGIN_HANDLED

fm_set_user_health(id, get_pcvar_num(pCvarHP))
fm_set_user_gravity(id, get_pcvar_float(pCvarGravity))
get_pcvar_string(pCvarModel, cvar, 31)
cs_set_user_model(id, cvar)
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_set_user_maxspeed(id, get_pcvar_float(pCvarSpeed))
Uzyl = true
return PLUGIN_HANDLED
}

public Usun(id) {
if(!has_flag(id, "a")) return PLUGIN_HANDLED

fm_set_user_health(id, 100)
fm_set_user_gravity(id, 1.0)
cs_reset_user_model(id)
fm_strip_user_weapons(id)
fm_give_item(id, "weapon_knife")
fm_set_user_maxspeed(id, 250.0)
Uzyl = false
return PLUGIN_HANDLED
}



#432157 Poszukuje działającego vipa / perków / klas

Napisane przez bialy223 w 14.07.2012 20:31

Łap tu masz ze 3 całkiem fajne perki.

Załączone pliki


  • +
  • -
  • 1


#431846 [Prośba] O 4 klasy premium.

Napisane przez GeDox w 14.07.2012 06:37

a czy tutaj z generatora nie bedzie kosa na PPM + LPM ?

O to martwi się zmienna ostatnio_prawym.

Oraz czy z generatora da sie zrobić : gdy kuca z nożem

Da...
  • +
  • -
  • 1


#431836 [Prośba] O 4 klasy premium.

Napisane przez GabrieL w 14.07.2012 01:26

Lekki snajper.
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

new const nazwa[] = "Lekki Snajper[premium]";
new const opis[] = "Posiada 1/2 szansy na zabicie ze scouta, widoczność gdy kuca z nożem 10/255, Auto BH, 3 skoki w powietrzu";
new const bronie = (1<<CSW_SCOUT);
new const zdrowie = 10;
new const kondycja = 10;
new const inteligencja = 10;
new const wytrzymalosc = 10;

new skoki[33];

new ma_klase[33];

public plugin_init()
{
register_plugin(nazwa, "1.0", "GabrieL");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

register_forward(FM_PlayerPreThink, "fwPrethink_Niewidzialnosc", 1);


register_forward(FM_CmdStart, "fwCmdStart_MultiJump");


register_forward(FM_PlayerPreThink, "fwPrethink_AutoBH");


RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");

}

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Lekki Snajper[premium]] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ma_klase[id] = true;

return COD_CONTINUE;
}

public cod_class_disabled(id)
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
ma_klase[id] = false;

}


//Przy kucaniu
public fwPrethink_Niewidzialnosc(id)
{
if(!ma_klase[id])
return;

new button = get_user_button(id);
if( button & IN_DUCK && get_user_weapon(id) == CSW_KNIFE)
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 10);
}
else
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}
}

public fwCmdStart_MultiJump(id, uc_handle)
{
if(!is_user_alive(id) || !ma_klase[id])
return FMRES_IGNORED;

new flags = pev(id, pev_flags);

if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
{
skoki[id]--;
new Float:velocity[3];
pev(id, pev_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity,velocity);
}
else if(flags & FL_ONGROUND)
skoki[id] = 3;

return FMRES_IGNORED;
}

public fwPrethink_AutoBH(id)
{
if(!ma_klase[id])
return PLUGIN_CONTINUE

if (pev(id, pev_button) & IN_JUMP) {
new flags = pev(id, pev_flags)

if (flags & FL_WATERJUMP)
return FMRES_IGNORED;
if ( pev(id, pev_waterlevel) >= 2 )
return FMRES_IGNORED;
if ( !(flags & FL_ONGROUND) )
return FMRES_IGNORED;

new Float:velocity[3];
pev(id, pev_velocity, velocity);
velocity[2] += 250.0;
set_pev(id, pev_velocity, velocity);

set_pev(id, pev_gaitsequence, 6);

}
return FMRES_IGNORED;
}

public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 2) != 1 )
return HAM_IGNORED;

cs_set_user_armor(this, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(this) + 1));

return HAM_HANDLED;
}


Komandor:

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

new const nazwa[] = "Komandor (Premium)";
new const opis[] = "Posiada M3/XM1014 (1/4), Kosa(1/1 LPM), 120HP bazowe, widocznosc na nozu 180/255, 20 dodatkowej szybkości, 1 skok w powietrzu";
new const bronie = (1<<CSW_XM1014)|(1<<CSW_M3);
new const zdrowie = 10;
new const kondycja = 20;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new skoki[33];

new ostatnio_prawym[33];

new ma_klase[33];

public plugin_init()
{
register_plugin(nazwa, "1.0", "GabrieL");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");


register_forward(FM_CmdStart, "fwCmdStart_MultiJump");


RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");


RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenCios");
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwPrimaryAttack_JedenCios");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fwSecondaryAttack_JedenCios");

}

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Komandor (Premium)] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ma_klase[id] = true;

return COD_CONTINUE;
}

public cod_class_disabled(id)
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
ma_klase[id] = false;

}

public eventKnife_Niewidzialnosc(id)
{
if(!ma_klase[id])
return;

if( read_data(2) == CSW_KNIFE )
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 180);
}
else
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}
}

public fwCmdStart_MultiJump(id, uc_handle)
{
if(!is_user_alive(id) || !ma_klase[id])
return FMRES_IGNORED;

new flags = pev(id, pev_flags);

if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
{
skoki[id]--;
new Float:velocity[3];
pev(id, pev_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity,velocity);
}
else if(flags & FL_ONGROUND)
skoki[id] = 1;

return FMRES_IGNORED;
}

public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 4) != 1 )
return HAM_IGNORED;

cs_set_user_armor(this, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(this) + 1));

return HAM_HANDLED;
}

public fwTakeDamage_JedenCios(id, ent, attacker)
{
if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE && !ostatnio_prawym[id])
{
cs_set_user_armor(id, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(id) + 1));
return HAM_HANDLED;
}
return HAM_IGNORED;
}

public fwPrimaryAttack_JedenCios(ent)
{
new id = pev(ent, pev_owner);
ostatnio_prawym[id] = 1;
}

public fwSecondaryAttack_JedenCios(ent)
{
new id = pev(ent, pev_owner);
ostatnio_prawym[id] = 0;
}


Cieżki snajper:

#include <codmod>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

new const nazwa[] = "Ciezki Prof. Snajper";
new const opis[] = "Posiada AWP (1/1), Kosa(1/1 LPM), 150HP bazowe, widocznosc na nożu 150/255, 40 dodatkowej szybkości, 2 skoki w powietrzu";
new const bronie = (1<<CSW_AWP);
new const zdrowie = 25;
new const kondycja = 40;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new skoki[33];

new ostatnio_prawym[33];

new ma_klase[33];

public plugin_init()
{
register_plugin(nazwa, "1.0", "GabrieL");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");


register_forward(FM_CmdStart, "fwCmdStart_MultiJump");


RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");


RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenCios");
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwPrimaryAttack_JedenCios");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fwSecondaryAttack_JedenCios");

}

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Ciezki Prof. Snajper] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ma_klase[id] = true;

return COD_CONTINUE;
}

public cod_class_disabled(id)
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
ma_klase[id] = false;

}

public eventKnife_Niewidzialnosc(id)
{
if(!ma_klase[id])
return;

if( read_data(2) == CSW_KNIFE )
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 150);
}
else
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}
}

public fwCmdStart_MultiJump(id, uc_handle)
{
if(!is_user_alive(id) || !ma_klase[id])
return FMRES_IGNORED;

new flags = pev(id, pev_flags);

if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
{
skoki[id]--;
new Float:velocity[3];
pev(id, pev_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity,velocity);
}
else if(flags & FL_ONGROUND)
skoki[id] = 2;

return FMRES_IGNORED;
}

public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 1) != 1 )
return HAM_IGNORED;

cs_set_user_armor(this, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(this) + 1));

return HAM_HANDLED;
}

public fwTakeDamage_JedenCios(id, ent, attacker)
{
if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE && !ostatnio_prawym[id])
{
cs_set_user_armor(id, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(id) + 1));
return HAM_HANDLED;
}
return HAM_IGNORED;
}

public fwPrimaryAttack_JedenCios(ent)
{
new id = pev(ent, pev_owner);
ostatnio_prawym[id] = 1;
}

public fwSecondaryAttack_JedenCios(ent)
{
new id = pev(ent, pev_owner);
ostatnio_prawym[id] = 0;
}



Lekki snajper :

#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

new const nazwa[] = "Lekki Prof. Snajper";
new const opis[] = "Posiada Scout (1/1), Kosa(1/1 LPM), 180HP bazowe, widoczność na nożu 120/255, 60 dodatkowej szybkości, 3 skoki w powietrzu";
new const bronie = (1<<CSW_SCOUT);
new const zdrowie = 40;
new const kondycja = 60;
new const inteligencja = 0;
new const wytrzymalosc = 0;

new skoki[33];

new ostatnio_prawym[33];

new ma_klase[33];

public plugin_init()
{
register_plugin(nazwa, "1.0", "GabrieL");

cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");


register_forward(FM_CmdStart, "fwCmdStart_MultiJump");


RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenZ");


RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenCios");
RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "fwPrimaryAttack_JedenCios");
RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "fwSecondaryAttack_JedenCios");

}

public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Lekki Prof. Snajper] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ma_klase[id] = true;

return COD_CONTINUE;
}

public cod_class_disabled(id)
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
ma_klase[id] = false;

}

public eventKnife_Niewidzialnosc(id)
{
if(!ma_klase[id])
return;

if( read_data(2) == CSW_KNIFE )
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 120);
}
else
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}
}

public fwCmdStart_MultiJump(id, uc_handle)
{
if(!is_user_alive(id) || !ma_klase[id])
return FMRES_IGNORED;

new flags = pev(id, pev_flags);

if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
{
skoki[id]--;
new Float:velocity[3];
pev(id, pev_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity,velocity);
}
else if(flags & FL_ONGROUND)
skoki[id] = 3;

return FMRES_IGNORED;
}

public fwTakeDamage_JedenZ(this, idInf, idAtt, Float:fDmg, dmgBits){
if(!is_user_alive(idAtt) || !ma_klase[idAtt] || !(dmgBits & (1<<1) ) || random_num(1, 1) != 1 )
return HAM_IGNORED;

cs_set_user_armor(this, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(this) + 1));

return HAM_HANDLED;
}

public fwTakeDamage_JedenCios(id, ent, attacker)
{
if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE && !ostatnio_prawym[id])
{
cs_set_user_armor(id, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(id) + 1));
return HAM_HANDLED;
}
return HAM_IGNORED;
}

public fwPrimaryAttack_JedenCios(ent)
{
new id = pev(ent, pev_owner);
ostatnio_prawym[id] = 1;
}

public fwSecondaryAttack_JedenCios(ent)
{
new id = pev(ent, pev_owner);
ostatnio_prawym[id] = 0;
}


Do takich klas masz generator...