Klasa "Kim Ir Sen"
Hleb
06.07.2012
Nazwa Klasy : Kim Ir Sen (Premium)
Opis klasy : Osoba z teamu, do którego należy klasa, oraz sama klasa otrzymuje dodatkowe 20 doświadczenia za zabójstwo
bronie klasy : AK47, FIVESEVEN oraz wszystkie granaty
zdrowie: 37
kondycja: 25
inteligencja: 15
wytrzymalosc: 20
Klasa Premium na flagę ADMIN_LEVEL_H
UWAGA!!
żeby osobie z teamu naliczało dodatkowego expa, klasa musi być żywa!!
codclass_kimirsen.sma 2,18 KB 77 Ilość pobrań
TheRock
07.07.2012
Fajna klasa +
tylko jak gra dużo osób na serwerze taką klasa to chyba szybko się expi
tylko jak gra dużo osób na serwerze taką klasa to chyba szybko się expi
d0naciak
08.07.2012
creepMP3, nie zrorzumiałeś chyba. Tu chodzi o to, jeżeli w danej druzynie jest gracz z takową klasą, to całą drużyna dostaje dodatkowo +20xp za zabojstwo
Fili:P
08.07.2012
A nie prościej tak:
?
I tw. to po co był tu moduł cstrike, oraz czy sprawdzałeś, czy przy np. 2 kimirsenów nie będzie bugów ?
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
new bool: ma_klase[33];
new kimirsen;
new const nazwa[] = "Kim Ir Sen (Premium)";
new const opis[] = "Osoba z teamu klasy oraz sama klasa otrzymuje dodatkowe 20 exp'a za zabojstwo";
new const bronie = 1<<CSW_AK47 | 1<<CSW_SMOKEGRENADE | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_FIVESEVEN;
new const zdrowie = 37;
new const kondycja = 25;
new const inteligencja = 15;
new const wytrzymalosc = 20;
public plugin_init()
{
register_plugin(nazwa, "1.0", "Hleb");
RegisterHam(Ham_Killed, "player", "Zabojstwo_Klasy", 1);
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Kim Ir Sen] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
kimirsen = id;
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_perk_disabled(id)
{
kimirsen = 0;
ma_klase[id] = true
}
public Zabojstwo_Klasy(this, attacker)
{
if(!is_user_connected(attacker))
return HAM_IGNORED
if(!is_user_alive(attacker))
return HAM_IGNORED
if(!kimirsen)
return HAM_IGNORED
if(get_user_team(kimirsen) != get_user_team(attacker))
return HAM_IGNORED;
if(get_user_team(this) != get_user_team(attacker))
cod_set_user_xp(attacker, cod_get_user_xp(attacker)+20)
return HAM_IGNORED
}
?
I tw. to po co był tu moduł cstrike, oraz czy sprawdzałeś, czy przy np. 2 kimirsenów nie będzie bugów ?
d0naciak
08.07.2012
1. Nie bedzie dzialalo przy dwóch graczach na jednej klasie
2. Dlaczego przy cod_class_disabled ma_klase jest na true ??
3. Po co cstrike, a nawet hamsandwich ?
4. Po co tyle warunków ?
5. Oto mój sposób :
Użytkownik d0n tHe Pr0oo edytował ten post 08.07.2012 20:04
2. Dlaczego przy cod_class_disabled ma_klase jest na true ??
3. Po co cstrike, a nawet hamsandwich ?
4. Po co tyle warunków ?
5. Oto mój sposób :
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>
new bool: ma_klase[33];
new const nazwa[] = "Kim Ir Sen (Premium)";
new const opis[] = "Osoba z teamu klasy oraz sama klasa otrzymuje dodatkowe 20 exp'a za zabojstwo";
new const bronie = 1<<CSW_AK47 | 1<<CSW_SMOKEGRENADE | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_FIVESEVEN;
new const zdrowie = 37;
new const kondycja = 25;
new const inteligencja = 15;
new const wytrzymalosc = 20;
public plugin_init()
{
register_plugin(nazwa, "1.1", "Hleb & d0n tHe Pr0oo");
register_event("DeathMsg", "Zabojstwo", "a")
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Kim Ir Sen] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_perk_disabled(id)
{
ma_klase[id] = false;
}
public Zabojstwo()
{
new attacker = read_data(1);
new this = read_data(2);
if(!is_user_alive(attacker))
return PLUGIN_CONTINUE;
if(!ma_klase[attacker])
return PLUGIN_CONTINUE;
if(get_user_team(this) != get_user_team(attacker))
{
for(new i = 1; i <= get_maxplayers(); i++)
{
if(get_user_team(i) == get_user_team(attacker) && is_user_alive(i))
{
cod_set_user_xp(i, cod_get_user_xp(i)+20);
}
}
}
return PLUGIN_CONTINUE;
}
Użytkownik d0n tHe Pr0oo edytował ten post 08.07.2012 20:04
Hleb
08.07.2012
Fili:P @ dOn tHe Pr0oo
Albo wy też nie zrozumieliście idei klasy, albo ja wam źle wytłumaczyłem
Chodzi o to by oprócz klasy, również zabójca, który nie jest klasą "Kim Ir Sen", a ma w teamie gracza z takową klasą, dostaje dodatkowego expa. A tak po kolei
@Fili:P
W tym przypadku zabójca nie będący klasą dostanie expa, ale zabójca będący klasą już nie, z tym bugiem to dobrze trafiłes, a pytanie o cstrike, bo wcześniej dałem "cs_get_user_team", aż w końcu zdecydowałem się na "get_user_team", i tak po prostu zapomniałem usunąć
@dOn tHe Pr0oo
Zabójca niebędący klasą nie dostanie expa, ale zabójca będący klasą sprawi że cały team żyjący dostanie expa
1. Tu muszę ci przyznać rację
2. Fakt, czysta pomyłka (ach, sesja egzaminacyjna dała mi się we znaki)
3. Cstrike: czytaj treść do Fili:P, a HamSandwich to do
4. Wiem że to trochę dziwacznie wygląda, ale muszę dopilnować, by np: przeciwnicy nie dostali expa, albo "nasi" nie dostawali dwa razy.
Wniosek: Muszę przyznać się do błędu, ja źle wytłumaczyłem ideę klasy, a kod też spartoliłem (sesja egzaminacyjna )
moja poprawka prezentuje się tak
Dla leniwych
codclass_kimirsen.sma 2,28 KB 43 Ilość pobrań
Obaj łapcie po + za wyłapanie błędów, ja zaś przepraszam za błędny kod, na przyszłość to trochę po sesji odpocznę
Użytkownik Hleb edytował ten post 08.07.2012 21:56
Albo wy też nie zrozumieliście idei klasy, albo ja wam źle wytłumaczyłem
Chodzi o to by oprócz klasy, również zabójca, który nie jest klasą "Kim Ir Sen", a ma w teamie gracza z takową klasą, dostaje dodatkowego expa. A tak po kolei
@Fili:P
W tym przypadku zabójca nie będący klasą dostanie expa, ale zabójca będący klasą już nie, z tym bugiem to dobrze trafiłes, a pytanie o cstrike, bo wcześniej dałem "cs_get_user_team", aż w końcu zdecydowałem się na "get_user_team", i tak po prostu zapomniałem usunąć
@dOn tHe Pr0oo
Zabójca niebędący klasą nie dostanie expa, ale zabójca będący klasą sprawi że cały team żyjący dostanie expa
1. Tu muszę ci przyznać rację
2. Fakt, czysta pomyłka (ach, sesja egzaminacyjna dała mi się we znaki)
3. Cstrike: czytaj treść do Fili:P, a HamSandwich to do
, uznałem ze to ma większe możliwości, ponieważ id ofiary i zabójcy jest w argumencie funkcji, dzięki czemu oszczędzimy pamięć, nie deklarując nowych zmiennych (nawet jeśli to lokalne)
RegisterHam(Ham_Killed, "player", "Zabojstwo_Klasy", 1);
4. Wiem że to trochę dziwacznie wygląda, ale muszę dopilnować, by np: przeciwnicy nie dostali expa, albo "nasi" nie dostawali dwa razy.
Wniosek: Muszę przyznać się do błędu, ja źle wytłumaczyłem ideę klasy, a kod też spartoliłem (sesja egzaminacyjna )
moja poprawka prezentuje się tak
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>
#include <hamsandwich>
new bool: ma_klase[33];
new kimirsen;
new const nazwa[] = "Kim Ir Sen (Premium)";
new const opis[] = "Zabojca majacy w teamie klase oraz sama klasa otrzymuje dodatkowe 20 exp'a za zabojstwo";
new const bronie = 1<<CSW_AK47 | 1<<CSW_SMOKEGRENADE | 1<<CSW_HEGRENADE | 1<<CSW_FLASHBANG | 1<<CSW_FIVESEVEN;
new const zdrowie = 37;
new const kondycja = 25;
new const inteligencja = 15;
new const wytrzymalosc = 20;
public plugin_init()
{
register_plugin(nazwa, "1.1", "Hleb & d0n tHe Pr0oo");
RegisterHam(Ham_Killed, "player", "Jest_Klasa", 1);
RegisterHam(Ham_Killed, "player", "Nie_Jest_Klasa", 1);
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
{
if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
client_print(id, print_chat, "[Kim Ir Sen] Nie masz uprawnien, aby uzywac tej klasy.")
return COD_STOP;
}
ma_klase[id] = true;
return COD_CONTINUE;
}
public cod_class_disabled(id)
{
kimirsen = 0;
ma_klase[id] = false
}
public Jest_Klasa(this, attacker)
{
if(!is_user_connected(attacker))
return HAM_IGNORED
if(!is_user_alive(attacker))
return HAM_IGNORED
if(!ma_klase[attacker])
return HAM_IGNORED
if(get_user_team(this) != get_user_team(attacker))
cod_set_user_xp(attacker, cod_get_user_xp(attacker)+20)
return HAM_IGNORED
}
public Nie_Jest_Klasa(this, attacker)
{
new Players[32], playerCount, id;
get_players(Players, playerCount, "aeh", (get_user_team(attacker)==1)?"TERRORIST":"CT");
for(new i=0; i<=playerCount; i++)
{
id= Players[i];
if(ma_klase[id])
{
kimirsen = id;
break;
}
}
if(!kimirsen)
return HAM_IGNORED;
if(!is_user_connected(attacker))
return HAM_IGNORED
if(!is_user_alive(attacker) && !is_user_alive(kimirsen))
return HAM_IGNORED
if(get_user_team(this) != get_user_team(attacker) && attacker != kimirsen)
{
cod_set_user_xp(attacker, cod_get_user_xp(attacker)+20)
kimirsen = 0;
}
return HAM_IGNORED
}
Dla leniwych
codclass_kimirsen.sma 2,28 KB 43 Ilość pobrań
Obaj łapcie po + za wyłapanie błędów, ja zaś przepraszam za błędny kod, na przyszłość to trochę po sesji odpocznę
Użytkownik Hleb edytował ten post 08.07.2012 21:56