Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

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
Zombie Plague 4.3

modyfikacja klas ludzi

zombie plague 4.3

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 jumper343

    Banned

  • Zbanowany

Reputacja: -4
Mniej niż zer0.

  • Postów:50
  • Lokalizacja:daleko
Offline

Napisano 03.12.2013 09:03

Siema 

Mam sprawę mam tutaj klasy ludzi do zombiemoda plague 4.3 z tego linka http://amxx.pl/topic...29-klasy-ludzi/ i dało by go poprawić bo ma bugi pierwszy bug to taki że klasa x-men ma zmniejszoną grawitacje tylko w 1rundzie a powinien mieć we wszystkich rundach 

drugi bug to taki że jak wezmne klase ludzi potem klase zombie mam 3k hp i jest dobrze ale jak jakis human mnie zabije a jestem zm jak się zreespie to mam 100HP i każdy zm tak ma możecie mi poprawić te 2bugi z góry thx 

 

 

 

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <engine>
#include <hamsandwich>
#include <nvault>
#include <ColorChat>
 
 
#define PLUGIN "Klasy Ludzi"
#define VERSION "1.5"
#define AUTHOR "LucKy_skiLL"
 
#define STANDARDOWA_SZYBKOSC 250.0
 
#define ZADANIE_POKAZ_INFORMACJE 672
#define ZADANIE_WSKRZES 704
#define ZADANIE_WYSZKOLENIE_SANITARNE 736
#define ZADANIE_POKAZ_REKLAME 768
#define ZADANIE_USTAW_SZYBKOSC 832
 
#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD (1<<0)
#define SCOREATTRIB_BOMB (1<<1)
#define SCOREATTRIB_VIP (1<<2)
 
//#define BOTY 1
 
new g_msg_screenfade;
 
new sprite_white;
new sprite_blast;
 
new g_vault;
 
new podkladajacy;
new rozbrajajacy;
 
new doswiadczenia_za_zabojstwo;
new doswiadczenie_za_bombe;
 
new Ubrania_CT[4][]={"sas","gsg9","urban","gign"};
new Ubrania_Terro[4][]={"arctic","leet","guerilla","terror"};
 
new const maxAmmo[31]={0,52,0,90,1,32,1,100,90,1,120,100,100,90,90,90,100,120,30,120,200,32,90,120,90,2,35,90,90,0,100};
 
new nazwa_gracza[33][64];
new klasa_gracza[33];
new poziom_gracza[33] = 1;
new doswiadczenie_gracza[33];
 
new nowa_klasa_gracza[33];
 
new const doswiadczenie_poziomu[] = {0,35,140,315,560,875,1260,1715,2240,2835,3500,4235,5040,5915,6860,7875,8960,10115,11340,12635,14000,15435,16940,18515,20160,21875,23660,25515,27440,29435,31500,33635,35840,38115,40460,42875,45360,47915,50540,53235,56000,58835,61740,64715,67760,70875,
74060,77315,80640,84035,87500,91035,94640,98315,102060,105875,109760,113715,117740,121835,126000,130235,134540,138915,143360,147875,152460,157115,161840,166635,171500,176435,181440,186515,191660,196875,202160,207515,212940,218435,224000,229635,235340,241115,246960,252875,258860,
264915,271040,277235,283500,289835,296240,302715,309260,315875,322560,329315,336140,343035,350000,357035,364140,371315,378560,385875,393260,400715,408240,415835,423500,431235,439040,446915,454860,462875,470960,479115,487340,495635,504000,512435,520940,529515,538160,546875,555660,564515,573440,
582435,591500,600635,609840,619115,628460,637875,647360,656915,666540,676235,686000,695835,705740,715715,725760,735875,746060,756315,766640,777035,787500,798035,808640,819315,830060,840875,851760,862715,873740,884835,896000,907235,918540,929915,941360,952875,964460,976115,987840,999635,1011500,1023435,1035440,
1047515,1059660,1071875,1084160,1096515,1108940,1121435,1134000,1146635,1159340,1172115,1184960,1197875,1210860,1223915,1237040,1250235,1263500,1276835,1290240,1303715,1317260,1330875,1344560,1358315,1372140,1386035,1400000};
 
new punkty_gracza[33];
new zdrowie_gracza[33];
new inteligencja_gracza[33];
new wytrzymalosc_gracza[33];
new Float:redukcja_obrazen_gracza[33];
new kondycja_gracza[33];
new maksymalne_zdrowie_gracza[33];
new Float:szybkosc_gracza[33];
 
new bool:gracz_resetuje[33];
 
enum { NONE = 0, Francis, Zoey, Rochelle, Nick, Bill };
new const zdrowie_klasy[] = { 0, 100, 100, 250, 100, 100};
new const Float:szybkosc_klasy[] = {0.0, 1.0, 1.2, 1.0, 1.0, 1.0};
new const pancerz_klasy[] = { 0, 0, 0, 0, 50, 150};
new const nazwy_klas[][] = {"Brak",
"Skoczek \y(Grawitacja)",
"Sprinter \y(Szybkosc)",
"Grubson \y(HP)",
"Obronca Krzyza \y(Armor)",
"X-Men \r(Premium)"
};
 
new const opisy_klas[][] = {"Brak",
"Dostaje mniejsza grawitacje",
"Dostaje szybki bieg",
"Dostaje 120 zycia",
"Dostaje 20 kamizelki",
"Poprostu pro ;p"
};
 
new ilosc_apteczek_gracza[33];
new ilosc_rakiet_gracza[33];
new Float:poprzednia_rakieta_gracza[33];
new ilosc_min_gracza[33];
new ilosc_dynamitow_gracza[33];
new ilosc_skokow_gracza[33];
 
new bool:freezetime = true;
 
public plugin_init() 
{
register_plugin(PLUGIN, VERSION, AUTHOR);
 
g_vault = nvault_open("CodMod");
 
register_think("Apteczka","ApteczkaThink");
 
RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1);
RegisterHam(Ham_Touch, "armoury_entity", "DotykBroni");
RegisterHam(Ham_Touch, "weapon_shield", "DotykBroni");
RegisterHam(Ham_Touch, "weaponbox", "DotykBroni");
 
register_forward(FM_CmdStart, "CmdStart");
register_forward(FM_EmitSound, "EmitSound");
 
 
register_event("SendAudio", "BombaRozbrojona", "a", "2&%!MRAD_BOMBDEF");
register_event("BarTime", "RozbrajaBombe", "be", "1=10", "1=5");
register_event("DeathMsg", "Death", "ade");
register_event("Damage", "Damage", "b", "2!=0");
register_event("CurWeapon","CurWeapon","be", "1=1");
register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
 
register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib");
 
 
register_touch("Rocket", "*" , "DotykRakiety");
register_touch("Mine", "player",  "DotykMiny");
 
register_cvar("cod_killxp", "0");
register_cvar("cod_bombxp", "0");
 
register_clcmd("say /klasa", "WybierzKlase");
register_clcmd("l4dhclass", "WybierzKlase");
 
//register_concmd("cod_setlvl", "cmd_setlvl", ADMIN_KICK, "<name> <level>");
 
g_msg_screenfade = get_user_msgid("ScreenFade");
doswiadczenia_za_zabojstwo = get_cvar_num("cod_killxp");
doswiadczenie_za_bombe = get_cvar_num("cod_bombxp");
 
}
 
public plugin_cfg() 
{
server_cmd("sv_maxspeed 1600");
}
 
public CmdStart(id, uc_handle)
{
if(!is_user_alive(id))
return FMRES_IGNORED;
 
new button = get_uc(uc_handle, UC_Buttons);
new oldbutton = get_user_oldbutton(id);
new flags = get_entity_flags(id);
 
if(cs_get_user_team(id) == CS_TEAM_CT && klasa_gracza[id] == Bill)
{
if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && ilosc_skokow_gracza[id] > 0)
{
ilosc_skokow_gracza[id]--;
new Float:velocity[3];
entity_get_vector(id,EV_VEC_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
entity_set_vector(id,EV_VEC_velocity,velocity);
}
else if(flags & FL_ONGROUND)
{
ilosc_skokow_gracza[id] = 0;
if(klasa_gracza[id] == Bill)
ilosc_skokow_gracza[id]++;
}
}
 
 
return FMRES_IGNORED;
}
 
public Odrodzenie(id)
{
if(!is_user_alive(id) || !is_user_connected(id))
return PLUGIN_CONTINUE;
 
if(nowa_klasa_gracza[id])
{
klasa_gracza[id] = nowa_klasa_gracza[id];
nowa_klasa_gracza[id] = 0;
strip_user_weapons(id);
give_item(id, "weapon_knife");
switch(get_user_team(id))
{
case 1: give_item(id, "weapon_glock18");
case 2: give_item(id, "weapon_usp");
}
WczytajDane(id, klasa_gracza[id]);
}
 
if(!klasa_gracza[id])
{
WybierzKlase(id);
return PLUGIN_CONTINUE;
}
 
switch(klasa_gracza[id])
{
case Francis:
{
}
case Zoey:
{
}
case Rochelle:
{
}
case Nick:
{
}
case Bill:
{
}
}
 
if(gracz_resetuje[id])
{
ResetujPunkty(id);
gracz_resetuje[id] = false;
}
 
if(punkty_gracza[id]>0)
 
    if(klasa_gracza[id] == Francis || klasa_gracza[id] == Bill)
        set_user_gravity(id,get_user_gravity(id) - 0.4);
 
new weapons[32];
new weaponsnum;
get_user_weapons(id, weapons, weaponsnum);
for(new i=0; i<weaponsnum; i++)
if(is_user_alive(id))
if(maxAmmo[weapons[i]] > 0)
cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
 
redukcja_obrazen_gracza[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(wytrzymalosc_gracza[id])))/100);
maksymalne_zdrowie_gracza[id] = zdrowie_klasy[klasa_gracza[id]]+zdrowie_gracza[id]*2;
szybkosc_gracza[id] = STANDARDOWA_SZYBKOSC*szybkosc_klasy[klasa_gracza[id]]+floatround(kondycja_gracza[id]*1.3);
 
set_user_armor(id, pancerz_klasy[klasa_gracza[id]]);
set_user_health(id, maksymalne_zdrowie_gracza[id]);
 
return PLUGIN_CONTINUE;
}
 
public PoczatekRundy()
{
freezetime = false;
for(new id=0;id<=32;id++)
{
if(!is_user_alive(id))
continue;
 
set_task(0.1, "UstawSzybkosc", id+ZADANIE_USTAW_SZYBKOSC);
 
switch(get_user_team(id))
{
}
}
}
 
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");
}
}
 
public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
{
if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker) || get_user_team(this) == get_user_team(idattacker) || !klasa_gracza[idattacker])
return HAM_IGNORED;
 
new health = get_user_health(this);
 
if(health < 2)
return HAM_IGNORED;
 
if(wytrzymalosc_gracza[this]>0)
damage -= redukcja_obrazen_gracza[this]*damage;
 
 
SetHamParamFloat(4, damage);
return HAM_IGNORED;
}
 
public Damage(id)
{
new attacker = get_user_attacker(id);
new damage = read_data(2);
if(!is_user_alive(attacker) || !is_user_connected(attacker) || id == attacker || !klasa_gracza[attacker])
return PLUGIN_CONTINUE;
 
if(get_user_team(id) != get_user_team(attacker))
{
while(damage>20)
{
damage-=20;
doswiadczenie_gracza[attacker]++;
}
}
SprawdzPoziom(attacker);
return PLUGIN_CONTINUE;
}
 
public Death()
{
new id = read_data(2);
new attacker = read_data(1);
 
if(!is_user_alive(attacker) || !is_user_connected(attacker))
return PLUGIN_CONTINUE;
 
if(get_user_team(id) != get_user_team(attacker) && klasa_gracza[attacker])
{
new nowe_doswiadczenie = 0;
 
nowe_doswiadczenie += doswiadczenia_za_zabojstwo;
 
if(klasa_gracza[id] == Bill && klasa_gracza[attacker] != Bill)
nowe_doswiadczenie += doswiadczenia_za_zabojstwo*2;
 
if(poziom_gracza[id] > poziom_gracza[attacker])
nowe_doswiadczenie += poziom_gracza[id] - poziom_gracza[attacker];
 
#if defined BOTY
if(is_user_bot2(attacker) && random(9) == 0)
WyrzucPrzedmiot(id);
#endif
 
 
doswiadczenie_gracza[attacker] += nowe_doswiadczenie;
}
 
SprawdzPoziom(attacker);
 
return PLUGIN_CONTINUE;
}
 
public client_connect(id)
{
//resetuje umiejetnosci
klasa_gracza[id] = 0;
poziom_gracza[id] = 0;
doswiadczenie_gracza[id] = 0;
punkty_gracza[id] = 0;
zdrowie_gracza[id] = 0;
inteligencja_gracza[id] = 0;
wytrzymalosc_gracza[id] = 0;
kondycja_gracza[id] = 0;
maksymalne_zdrowie_gracza[id] = 0;
szybkosc_gracza[id] = 0.0;
 
 
get_user_name(id, nazwa_gracza[id], 63);
 
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
remove_task(id+ZADANIE_POKAZ_REKLAME);
remove_task(id+ZADANIE_USTAW_SZYBKOSC);
remove_task(id+ZADANIE_WSKRZES);
remove_task(id+ZADANIE_WYSZKOLENIE_SANITARNE);
 
}
 
public client_disconnect(id)
{
remove_task(id+ZADANIE_POKAZ_INFORMACJE);
remove_task(id+ZADANIE_POKAZ_REKLAME);
remove_task(id+ZADANIE_USTAW_SZYBKOSC);
remove_task(id+ZADANIE_WSKRZES);
remove_task(id+ZADANIE_WYSZKOLENIE_SANITARNE);
 
ZapiszDane(id);
}
 
public RozbrajaBombe(id)
if(klasa_gracza[id])
rozbrajajacy = id;
 
public BombaPodlozona()
{
new Players[32], playerCount, id;
get_players(Players, playerCount, "aeh", "TERRORIST");
 
if(get_playersnum() > 1)
{
doswiadczenie_gracza[podkladajacy] += doswiadczenie_za_bombe;
for (new i=0; i<playerCount; i++) 
{
id = Players[i];
if(!klasa_gracza[id])
continue;
 
if(id != podkladajacy)
{
doswiadczenie_gracza[id] += doswiadczenia_za_zabojstwo;
ColorChat(id,GREEN,"[ZP]^x01 Dostales^x03 %i^x01 doswiadczenia za podlozenie bomby przez twoj team.", doswiadczenia_za_zabojstwo);
}
else
{
ColorChat(id,GREEN,"[ZP]^x01 Dostales^x03 %i^x01 doswiadczenia za podlozenie bomby.", doswiadczenie_za_bombe);
}
SprawdzPoziom(id);
}
}
}
 
public BombaRozbrojona()
{
new Players[32], playerCount, id;
get_players(Players, playerCount, "aeh", "CT");
 
doswiadczenie_gracza[rozbrajajacy] += doswiadczenie_za_bombe;
for (new i=0; i<playerCount; i++) 
{
id = Players[i];
if(!klasa_gracza[id])
continue;
if(id != rozbrajajacy)
{
doswiadczenie_gracza[id]+= doswiadczenia_za_zabojstwo;
ColorChat(id,GREEN,"[ZP]^x01 Dostales %i doswiadczenia za rozbrojenie bomby przez twoj team.", doswiadczenia_za_zabojstwo);
}
else
ColorChat(id,GREEN,"[ZP]^x01 Dostales %i doswiadczenia za rozbrojenie bomby.",doswiadczenie_za_bombe);
SprawdzPoziom(id);
}
}
 
public OpisKlasy(id)
{
new menu = menu_create("Wybierz klase:", "OpisKlasy_Handle");
for(new i=1; i<sizeof nazwy_klas; i++)
menu_additem(menu, nazwy_klas[i]);
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
 
}
 
public OpisKlasy_Handle(id, menu, item)
{
 
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
ColorChat(id,GREEN,"[ZP]^x01 %s: %s", nazwy_klas[item+1], opisy_klas[item+1]);
menu_display(id, menu);
 
return PLUGIN_CONTINUE;
}
 
public WybierzKlase(id)
{
new menu = menu_create("Wybierz klase:", "WybierzKlase_Handle");
new klasa[50];
for(new i=1; i<sizeof nazwy_klas; i++)
{
WczytajDane(id, i);
format(klasa, 49, "%s", nazwy_klas[i]);
menu_additem(menu, klasa);
}
 
WczytajDane(id, klasa_gracza[id]);
 
menu_setprop(menu, MPROP_EXITNAME, "Wyjdz");
menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona");
menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona");
menu_display(id, menu);
 
#if defined BOTY
if(is_user_bot2(id))
WybierzKlase_Handle(id, menu, random(sizeof nazwy_klas-1));
#endif
}
 
public WybierzKlase_Handle(id, menu, item)
{
 
if(item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
 
item++;
 
if(item == klasa_gracza[id])
return PLUGIN_CONTINUE;
 
if(item == Bill && !(get_user_flags(id) & ADMIN_LEVEL_H))
{
ColorChat(id,GREEN,"[ZP]^x01 Nie masz uprawnien do korzystania z klasy premium");
WybierzKlase(id);
return PLUGIN_CONTINUE;
}
 
if(klasa_gracza[id])
{
nowa_klasa_gracza[id] = item;
ColorChat(id,GREEN,"[ZP]^x01 Klasa zostanie zmieniona w nastepnej rundzie.");
}
else
{
klasa_gracza[id] = item;
WczytajDane(id, klasa_gracza[id]);
Odrodzenie(id);
}
return PLUGIN_CONTINUE;
}
 
public ResetujPunkty(id)
{
punkty_gracza[id] = poziom_gracza[id]*2-2;
inteligencja_gracza[id] = 0;
zdrowie_gracza[id] = 0;
kondycja_gracza[id] = 0;
wytrzymalosc_gracza[id] = 0;
}
 
public KomendaResetujPunkty(id)
{
ColorChat(id,GREEN,"[ZP]^x01 Umiejetnosci zostana zresetowane w nastepnej rundzie.");
gracz_resetuje[id] = true;
}
 
public StworzApteczke(id)
{
if (!ilosc_apteczek_gracza[id])
{
client_print(id, print_center, "Masz tylko 2 apteczki na runde!");
return PLUGIN_CONTINUE;
}
 
if(inteligencja_gracza[id] < 1)
client_print(id, print_center, "Aby wzmocnic apteczke, zwieksz inteligencje!");
 
ilosc_apteczek_gracza[id]--;
 
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
 
new ent = create_entity("info_target");
entity_set_string(ent, EV_SZ_classname, "Apteczka");
entity_set_edict(ent, EV_ENT_owner, id);
entity_set_int(ent, EV_INT_solid, SOLID_NOT);
entity_set_vector(ent, EV_VEC_origin, origin);
entity_set_float(ent, EV_FL_ltime, halflife_time() + 7 + 0.1);
 
 
entity_set_model(ent, "models/w_medkit.mdl");
set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) ;
drop_to_floor(ent);
 
entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.1);
 
return PLUGIN_CONTINUE;
}
 
public ApteczkaThink(ent)
{
new id = entity_get_edict(ent, EV_ENT_owner);
new totem_dist = 300;
new totem_heal = 5+floatround(inteligencja_gracza[id]*0.5);
if (entity_get_edict(ent, EV_ENT_euser2) == 1)
{
new Float:forigin[3], origin[3];
entity_get_vector(ent, EV_VEC_origin, forigin);
FVecIVec(forigin,origin);
 
new entlist[33];
new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist, 32,forigin);
 
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
 
if (get_user_team(pid) != get_user_team(id))
continue;
 
new zdrowie = get_user_health(pid);
new nowe_zdrowie = (zdrowie+totem_heal<maksymalne_zdrowie_gracza[pid])?zdrowie+totem_heal:maksymalne_zdrowie_gracza[pid];
if (is_user_alive(pid)) set_user_health(pid, nowe_zdrowie);
}
 
entity_set_edict(ent, EV_ENT_euser2, 0);
entity_set_float(ent, EV_FL_nextthink, halflife_time() + 1.5);
 
return PLUGIN_CONTINUE;
}
 
if (entity_get_float(ent, EV_FL_ltime) < halflife_time() || !is_user_alive(id))
{
remove_entity(ent);
return PLUGIN_CONTINUE;
}
 
if (entity_get_float(ent, EV_FL_ltime)-2.0 < halflife_time())
set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 ) ;
 
new Float:forigin[3], origin[3];
entity_get_vector(ent, EV_VEC_origin, forigin);
FVecIVec(forigin,origin);
 
//Find people near and give them health
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
write_byte( TE_BEAMCYLINDER );
write_coord( origin[0] );
write_coord( origin[1] );
write_coord( origin[2] );
write_coord( origin[0] );
write_coord( origin[1] + totem_dist );
write_coord( origin[2] + totem_dist );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 100 );// r, g, b
write_byte( 100 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 5 ); // speed
message_end();
 
entity_set_edict(ent, EV_ENT_euser2 ,1);
entity_set_float(ent, EV_FL_nextthink, halflife_time() + 0.5);
 
   
return PLUGIN_CONTINUE;
 
}
 
public StworzRakiete(id)
{
if (!ilosc_rakiet_gracza[id])
{
client_print(id, print_center, "Wykrzystales juz wszystkie rakiety!");
return PLUGIN_CONTINUE;
}
 
if(poprzednia_rakieta_gracza[id] + 2.0 > get_gametime())
{
client_print(id, print_center, "Rakiet mozesz uzywac co 2 sekundy!");
return PLUGIN_CONTINUE;
}
 
if (is_user_alive(id))
{
if(inteligencja_gracza[id] < 1)
client_print(id, print_center, "Aby wzmocnic rakiete, zwieksz inteligencje!");
 
poprzednia_rakieta_gracza[id] = get_gametime();
ilosc_rakiet_gracza[id]--;
 
new Float: Origin[3], Float: vAngle[3], Float: Velocity[3];
 
entity_get_vector(id, EV_VEC_v_angle, vAngle);
entity_get_vector(id, EV_VEC_origin , Origin);
 
new Ent = create_entity("info_target");
 
entity_set_string(Ent, EV_SZ_classname, "Rocket");
entity_set_model(Ent, "models/rpgrocket.mdl");
 
vAngle[0] *= -1.0;
 
entity_set_origin(Ent, Origin);
entity_set_vector(Ent, EV_VEC_angles, vAngle);
 
entity_set_int(Ent, EV_INT_effects, 2);
entity_set_int(Ent, EV_INT_solid, SOLID_BBOX);
entity_set_int(Ent, EV_INT_movetype, MOVETYPE_FLY);
entity_set_edict(Ent, EV_ENT_owner, id);
 
VelocityByAim(id, 1000 , Velocity);
entity_set_vector(Ent, EV_VEC_velocity ,Velocity);
}
return PLUGIN_CONTINUE;
}
 
public PolozDynamit(id)
{
if(!ilosc_dynamitow_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz caly dynamit!");
return PLUGIN_CONTINUE;
}
 
if(inteligencja_gracza[id] < 1)
client_print(id, print_center, "Aby wzmocnic dynamit, zwieksz inteligencje!");
 
ilosc_dynamitow_gracza[id]--;
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( id, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32);
write_byte(20);
write_byte(0);
message_end();
 
message_begin( MSG_BROADCAST, SVC_TEMPENTITY, iOrigin );
write_byte( TE_BEAMCYLINDER );
write_coord( iOrigin[0] );
write_coord( iOrigin[1] );
write_coord( iOrigin[2] );
write_coord( iOrigin[0] );
write_coord( iOrigin[1] + 300 );
write_coord( iOrigin[2] + 300 );
write_short( sprite_white );
write_byte( 0 ); // startframe
write_byte( 0 ); // framerate
write_byte( 10 ); // life
write_byte( 10 ); // width
write_byte( 255 ); // noise
write_byte( 255 ); // r, g, b
write_byte( 100 );// r, g, b
write_byte( 100 ); // r, g, b
write_byte( 128 ); // brightness
write_byte( 8 ); // speed
message_end();
 
new entlist[33];
new numfound = find_sphere_class(id, "player", 300.0 , entlist, 32);
 
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
 
if (!is_user_alive(pid) || get_user_team(id) == get_user_team(pid))
continue;
ExecuteHam(Ham_TakeDamage, pid, 0, id, 90.0+float(inteligencja_gracza[id]) , 1);
}
return PLUGIN_CONTINUE;
}
 
public PostawMine(id)
{
if (!ilosc_min_gracza[id])
{
client_print(id, print_center, "Wykorzystales juz wszystkie miny!");
return PLUGIN_CONTINUE;
}
 
if(inteligencja_gracza[id] < 1)
client_print(id, print_center, "Aby wzmocnic miny, zwieksz inteligencje!");
 
ilosc_min_gracza[id]--;
 
new Float:origin[3];
entity_get_vector(id, EV_VEC_origin, origin);
 
new ent = create_entity("info_target");
entity_set_string(ent ,EV_SZ_classname, "Mine");
entity_set_edict(ent ,EV_ENT_owner, id);
entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
entity_set_origin(ent, origin);
entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
 
entity_set_model(ent, "models/mine.mdl");
entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
 
drop_to_floor(ent);
 
entity_set_float(ent,EV_FL_nextthink,halflife_time() + 0.01) ;
 
set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
 
 
return PLUGIN_CONTINUE;
}
 
public DotykMiny(ent, id)
{
new attacker = entity_get_edict(ent, EV_ENT_owner);
if (get_user_team(attacker) != get_user_team(id))
{
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
new entlist[33];
new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
 
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
 
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
continue;
 
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencja_gracza[attacker]) , 1);
}
remove_entity(ent);
}
}
 
public DotykRakiety(ent)
{
if ( !is_valid_ent(ent))
return;
 
new attacker = entity_get_edict(ent, EV_ENT_owner);
 
new Float:fOrigin[3], iOrigin[3];
entity_get_vector( ent, EV_VEC_origin, fOrigin);
iOrigin[0] = floatround(fOrigin[0]);
iOrigin[1] = floatround(fOrigin[1]);
iOrigin[2] = floatround(fOrigin[2]);
 
message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
write_byte(TE_EXPLOSION);
write_coord(iOrigin[0]);
write_coord(iOrigin[1]);
write_coord(iOrigin[2]);
write_short(sprite_blast);
write_byte(32); // scale
write_byte(20); // framerate
write_byte(0);// flags
message_end();
 
new entlist[33];
new numfound = find_sphere_class(ent, "player", 230.0, entlist, 32);
 
for (new i=0; i < numfound; i++)
{
new pid = entlist[i];
 
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid))
continue;
ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 55.0+float(inteligencja_gracza[attacker]) , 1);
}
remove_entity(ent);
}
 
public CurWeapon(id)
{
if(freezetime || !klasa_gracza[id])
return PLUGIN_CONTINUE;
 
new weapon = read_data(2);
 
UstawSzybkosc(id);
 
if(weapon == CSW_C4)
podkladajacy = id;
return PLUGIN_CONTINUE;
}
 
public EmitSound(id, iChannel, szSound[], Float:fVol, Float:fAttn, iFlags, iPitch ) 
{
if(equal(szSound, "common/wpn_denyselect.wav"))
{
UzyjPrzedmiotu(id);
return FMRES_SUPERCEDE;
}
 
return FMRES_IGNORED;
}
 
public UzyjPrzedmiotu(id)
{
if(ilosc_apteczek_gracza[id]>0)
StworzApteczke(id);
if(ilosc_rakiet_gracza[id]>0)
StworzRakiete(id);
if(ilosc_min_gracza[id]>0)
PostawMine(id);
if(ilosc_dynamitow_gracza[id]>0)
PolozDynamit(id);
 
return PLUGIN_HANDLED;
}
 
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", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id]);
nvault_set(g_vault,vaultkey,vaultdata);
}
 
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", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_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];
 
parse(vaultdata, doswiadczeniegracza, 31, poziomgracza, 31, inteligencjagracza, 31, silagracza, 31, zrecznoscgracza, 31, zwinnoscgracza, 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);
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
 
 
public Wskrzes(id)
{
id-=ZADANIE_WSKRZES;
ExecuteHamB(Ham_CS_RoundRespawn, id);
}
 
public SprawdzPoziom(id)
{
if(poziom_gracza[id] < 201)
{
while(doswiadczenie_gracza[id] >= doswiadczenie_poziomu[poziom_gracza[id]])
{
poziom_gracza[id]++;
}
 
punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id];
}
ZapiszDane(id);
}
 
public UstawSzybkosc(id)
{
id -= id>32? ZADANIE_USTAW_SZYBKOSC: 0;
 
if(klasa_gracza[id])
set_user_maxspeed(id, szybkosc_gracza[id]);
}
 
public ZmienUbranie(id,reset)
{
if (id<1 || id>32 || !is_user_connected(id)) 
return PLUGIN_CONTINUE;
 
if (reset)
cs_reset_user_model(id);
else
{
new num = random_num(0,3);
switch(get_user_team(id))
{
case 1: cs_set_user_model(id, Ubrania_CT[num]);
case 2:cs_set_user_model(id, Ubrania_Terro[num]);
}
}
 
return PLUGIN_CONTINUE;
}
 
/*public cmd_setlvl(id, level, cid)
{
if(!cmd_access(id,level,cid,3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[6];
read_argv(1, arg1, 32);
read_argv(2, arg2, 5);
new player = cmd_target(id, arg1);
new value = str_to_num(arg2)-1;
 
doswiadczenie_gracza[player] = doswiadczenie_poziomu[value];
poziom_gracza[player] = 0;
SprawdzPoziom(player);
return PLUGIN_HANDLED;
}*/
 
public DotykBroni(weapon,id)
{
new model[23];
entity_get_string(weapon, EV_SZ_model, model, 22);
if (!is_user_connected(id) || entity_get_edict(weapon, EV_ENT_owner) == id || equal(model, "models/w_backpack.mdl"))
return HAM_IGNORED;
return HAM_SUPERCEDE;
}
 
stock bool:UTIL_In_FOV(id,target)
{
if (Find_Angle(id,target,9999.9) > 0.0)
return true;
 
return false;
}
#if defined BOTY
public is_user_bot2(id)
{
new ping, loss
get_user_ping(id, ping, loss)
if(ping > 0 && loss > 0)
return false
return true
}
#endif
 
stock Float:Find_Angle(Core,Target,Float:dist)
{
new Float:vec2LOS[2];
new Float:flDot;
new Float:CoreOrigin[3];
new Float:TargetOrigin[3];
new Float:CoreAngles[3];
 
pev(Core,pev_origin,CoreOrigin);
pev(Target,pev_origin,TargetOrigin);
 
if (get_distance_f(CoreOrigin,TargetOrigin) > dist)
return 0.0;
 
pev(Core,pev_angles, CoreAngles);
 
for ( new i = 0; i < 2; i++ )
vec2LOS[i] = TargetOrigin[i] - CoreOrigin[i];
 
new Float:veclength = Vec2DLength(vec2LOS);
 
//Normalize V2LOS
if (veclength <= 0.0)
{
vec2LOS[0] = 0.0;
vec2LOS[1] = 0.0;
}
else
{
new Float:flLen = 1.0 / veclength;
vec2LOS[0] = vec2LOS[0]*flLen;
vec2LOS[1] = vec2LOS[1]*flLen;
}
 
//Do a makevector to make v_forward right
engfunc(EngFunc_MakeVectors,CoreAngles);
 
new Float:v_forward[3];
new Float:v_forward2D[2];
get_global_vector(GL_v_forward, v_forward);
 
v_forward2D[0] = v_forward[0];
v_forward2D[1] = v_forward[1];
 
flDot = vec2LOS[0]*v_forward2D[0]+vec2LOS[1]*v_forward2D[1];
 
if ( flDot > 0.5 )
{
return flDot;
}
 
return 0.0;
}
 
stock Float:Vec2DLength( Float:Vec[2] )  
return floatsqroot(Vec[0]*Vec[0] + Vec[1]*Vec[1] );
}
 
stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
{
message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id );
write_short( duration ); // Duration of fadeout
write_short( holdtime ); // Hold time of color
write_short( fadetype ); // Fade type
write_byte ( red ); // Red
write_byte ( green ); // Green
write_byte ( blue ); // Blue
write_byte ( alpha ); // Alpha
message_end();
}
 
stock set_user_clip(id, ammo)
{
new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
get_weaponname(weapon, weaponname, 31);
while ((weaponid = find_ent_by_class(weaponid, weaponname)) != 0)
if(entity_get_edict(weaponid, EV_ENT_owner) == id) 
{
set_pdata_int(weaponid, 51, ammo, 4);
return weaponid;
}
return 0;
}
 
public MessageScoreAttrib(iMsgID, iDest, iReceiver)
{   
new iPlayer = get_msg_arg_int(1);
if(get_user_flags(iPlayer) & ADMIN_LEVEL_H)
{
if(is_user_connected(iPlayer))
{
if(cs_get_user_team(iPlayer)==CS_TEAM_CT)
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
else
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_BOMB);
}
}
}
}
 
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par }
*/
 

 

 

 







Również z jednym lub większą ilością słów kluczowych: zombie plague 4.3

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

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