#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
new const nazwa[] = "Nozownik";
new const opis[] = "Ma noz, 1/1 z noza, ograniczona widzialnosc dodatkowe 200 hp, 50 kondycji oraz ma 2 apteczki";
new const bronie = 0;
new const zdrowie = 200;
new const kondycja = 50;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new sprite_white_apteczki;
new ilosc_apteczek_gracza[33];
new ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");
register_think("medkit", "Think_Apteczki");
RegisterHam(Ham_Spawn, "player", "fwSpawn_Apteczki", 1);
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenCios");
}
public plugin_precache()
{
sprite_white_apteczki = precache_model("sprites/white.spr");
precache_model("models/w_medkit.mdl");
}
public client_disconnect(id)
{
new entApteczki = find_ent_by_class(0, "medkit");
while(entApteczki > 0)
{
if(entity_get_edict(entApteczki, EV_ENT_owner) == id)
remove_entity(entApteczki);
entApteczki = find_ent_by_class(entApteczki, "medkit");
}
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Nozownik] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ilosc_apteczek_gracza[id] = 2;
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 cod_class_skill_used(id)
{
if (!ilosc_apteczek_gracza[id])
{
client_print(id, print_center, "Masz tylko 2 apteczki na runde!");
}
else
{
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, "medkit");
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);
}
}
public eventKnife_Niewidzialnosc(id)
{
if(!ma_klase[id])
return;
if( read_data(2) == CSW_KNIFE )
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 8);
}
else
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}
}
public fwSpawn_Apteczki(id)
{
if(is_user_alive(id))
ilosc_apteczek_gracza[id] = 2;
}
public Think_Apteczki(ent)
{
if(!is_valid_ent(ent))
return PLUGIN_CONTINUE;
new id = entity_get_edict(ent, EV_ENT_owner);
new dist = 300;
new heal = 5+floatround(cod_get_user_intelligence(id)*0.5);
if (entity_get_edict(ent, EV_ENT_euser2) == 1)
{
new Float:forigin[3];
entity_get_vector(ent, EV_VEC_origin, forigin);
new entlist[33];
new numfound = find_sphere_class(0,"player", float(dist),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 maksymalne_zdrowie = 100+cod_get_user_health(pid);
new zdrowie = get_user_health(pid);
new Float:nowe_zdrowie = (zdrowie+heal<maksymalne_zdrowie)?zdrowie+heal+0.0:maksymalne_zdrowie+0.0;
if (is_user_alive(pid)) entity_set_float(pid, EV_FL_health, 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];
entity_get_vector(ent, EV_VEC_origin, forigin);
new iOrigin[3];
for(new i=0;i<3;i++)
iOrigin[i] = floatround(forigin[i]);
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] + dist );
write_coord( iOrigin[2] + dist );
write_short( sprite_white_apteczki );
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( 0 ); // 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 fwTakeDamage_JedenCios(id, ent, attacker)
{
if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE)
{
cs_set_user_armor(id, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(id) + 1));
return HAM_HANDLED;
}
return HAM_IGNORED;
}
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.
|
Guest Message by DevFuse
6 odpowiedzi w tym temacie
#1
Napisano 05.01.2012 17:40
Witam, chciałbym się dowiedzieć jak zrobić, by dana klasa nie miała dostępu do jakiejkolwiek broni oprócz noża. Klasę zrobiłem generatorem klas, ale nie ma tam takiej opcji. Nie wybrałem żadnej broni, ale na start zawsze dostaje ona broń standardową, czyli gdy jest w CT jest to "USP", a gdy jest w TT dostaje "Glock18", więc chciałbym się dowiedzieć jak zablokować dostęp do broni danej klasie, jeśli ktoś to o to kod .sma:
#2
Napisano 05.01.2012 17:51
w plugin_init dodaj :
na samym dole dodaj :
Teraz nawet gdy z perka dostaniesz jakąś broń to w nowej rundzie wyrzuci Ci tą broń .
RegisterHam(Ham_Spawn, "player", "Spawn", 1)
na samym dole dodaj :
public Spawn(id) { if(ma_klase[id]) { strip_user_weapons(id) give_item(id, "weapon_knife"); } }
Teraz nawet gdy z perka dostaniesz jakąś broń to w nowej rundzie wyrzuci Ci tą broń .
Użytkownik _nothing_ edytował ten post 05.01.2012 17:50
#3
Napisano 05.01.2012 18:03
@UP
Za chwilę wytestuje, ale masz ode mnie +.
@EDIT
Zrobiłem tak jak kazałeś tylko, podczas kompilacji wystąpiły 2 błędy.
Za chwilę wytestuje, ale masz ode mnie +.
@EDIT
Zrobiłem tak jak kazałeś tylko, podczas kompilacji wystąpiły 2 błędy.
Użytkownik ChillOut edytował ten post 05.01.2012 18:19
#4
Napisano 05.01.2012 19:10
jakie błędy? (pokaż błedy które się pokazują przy kompilacji)
Użytkownik PRoMEN edytował ten post 06.01.2012 12:40
#5
Napisano 05.01.2012 21:16
@UP
#include <amxmodx>
#include <amxmisc>
#include <codmod>
#include <engine>
#include <hamsandwich>
#include <cstrike>
new const nazwa[] = "Nozownik";
new const opis[] = "1/1 z noza, ograniczona widocznosc dodatkowe 200 hp, 50 kondycji oraz ma 2 apteczki";
new const bronie = 0;
new const zdrowie = 200;
new const kondycja = 50;
new const inteligencja = 0;
new const wytrzymalosc = 0;
new sprite_white_apteczki;
new ilosc_apteczek_gracza[33];
new ma_klase[33];
public plugin_init()
{
register_plugin(nazwa, "1.0", "amxx.pl");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
register_event("CurWeapon", "eventKnife_Niewidzialnosc", "be", "1=1");
register_think("medkit", "Think_Apteczki");
RegisterHam(Ham_Spawn, "player", "fwSpawn_Apteczki", 1);
RegisterHam(Ham_Spawn, "player", "Spawn", 1);
RegisterHam(Ham_TakeDamage, "player", "fwTakeDamage_JedenCios");
}
public plugin_precache()
{
sprite_white_apteczki = precache_model("sprites/white.spr");
precache_model("models/w_medkit.mdl");
}
public client_disconnect(id)
{
new entApteczki = find_ent_by_class(0, "medkit");
while(entApteczki > 0)
{
if(entity_get_edict(entApteczki, EV_ENT_owner) == id)
remove_entity(entApteczki);
entApteczki = find_ent_by_class(entApteczki, "medkit");
}
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Nozownik] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ilosc_apteczek_gracza[id] = 2;
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 cod_class_skill_used(id)
{
if (!ilosc_apteczek_gracza[id])
{
client_print(id, print_center, "Masz tylko 2 apteczki na runde!");
}
else
{
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, "medkit");
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);
}
}
public eventKnife_Niewidzialnosc(id)
{
if(!ma_klase[id])
return;
if( read_data(2) == CSW_KNIFE )
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 8);
}
else
{
set_rendering(id,kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 255);
}
}
public fwSpawn_Apteczki(id)
{
if(is_user_alive(id))
ilosc_apteczek_gracza[id] = 2;
}
public Think_Apteczki(ent)
{
if(!is_valid_ent(ent))
return PLUGIN_CONTINUE;
new id = entity_get_edict(ent, EV_ENT_owner);
new dist = 300;
new heal = 5+floatround(cod_get_user_intelligence(id)*0.5);
if (entity_get_edict(ent, EV_ENT_euser2) == 1)
{
new Float:forigin[3];
entity_get_vector(ent, EV_VEC_origin, forigin);
new entlist[33];
new numfound = find_sphere_class(0,"player", float(dist),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 maksymalne_zdrowie = 100+cod_get_user_health(pid);
new zdrowie = get_user_health(pid);
new Float:nowe_zdrowie = (zdrowie+heal<maksymalne_zdrowie)?zdrowie+heal+0.0:maksymalne_zdrowie+0.0;
if (is_user_alive(pid)) entity_set_float(pid, EV_FL_health, 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];
entity_get_vector(ent, EV_VEC_origin, forigin);
new iOrigin[3];
for(new i=0;i<3;i++)
iOrigin[i] = floatround(forigin[i]);
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] + dist );
write_coord( iOrigin[2] + dist );
write_short( sprite_white_apteczki );
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( 0 ); // 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 fwTakeDamage_JedenCios(id, ent, attacker)
{
if(is_user_alive(attacker) && ma_klase[attacker] && get_user_weapon(attacker) == CSW_KNIFE)
{
cs_set_user_armor(id, 0, CS_ARMOR_NONE);
SetHamParamFloat(4, float(get_user_health(id) + 1));
return HAM_HANDLED;
}
return HAM_IGNORED;
}
public Spawn(id)
{
if(ma_klase[id])
{
strip_user_weapons(id)
give_item(id, "weapon_knife");
}
}
#6
Napisano 06.01.2012 02:12
Teraz jest OK
Spoiler
Wyskakuje 5 błędów ale to dlatego, że kod jest nierówny tak to wszystko działa Sprawdź i daj znać
#7
Napisano 06.01.2012 12:01
Tylko nie wiem dlaczego nie mogę wybrać tej klasy, bo nie pokazuje sie w wyborze klas. Czy to przez te 5 błędów?
Również z jednym lub większą ilością słów kluczowych: cod nowy
CoD Nowy
perk zwiększający wytrzymałość pekuNapisany przez Rafii, 05.03.2024 cod nowy |
|
||||
|
CoD Nowy
Modele KlasyNapisany przez Puni07, 11.02.2024 cod nowy |
|
|||
CoD Nowy
Problem z dywizjąNapisany przez Puni07, 08.02.2024 cod nowy |
|
||||
CoD Nowy
Misjedodac exp Napisany przez Anonimowy09, 08.01.2024 cod nowy |
|
||||
CoD Nowy
Broń z cso do klasy postaciNapisany przez Voltia, 12.02.2023 cod nowy |
|
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych