3 pytania.
Screeaam... 05.06.2010
Witam, mam kilka pytań:
1. Jak zrobić, aby po naładowaniu noża dostawał +8 amunicji do clip'u?
2. Jak zrobić teleport na resp? Próbuje, ale zawsze ląduje w txt.
3. Jak zrobić wybuchowe Smoke?
Co do 1. pytania, próbowałem tak:
Z góry bardzo dziękuje.
Edited by Screeaam..., 05.06.2010 01:07.
1. Jak zrobić, aby po naładowaniu noża dostawał +8 amunicji do clip'u?
2. Jak zrobić teleport na resp? Próbuje, ale zawsze ląduje w txt.
3. Jak zrobić wybuchowe Smoke?
Co do 1. pytania, próbowałem tak:
cs_set_weapon_ammo(id, cs_get_weapon_ammo(id)+8)ale nie działa.
Z góry bardzo dziękuje.
Edited by Screeaam..., 05.06.2010 01:07.
Change
05.06.2010
w kodzie nazwa - "fan"2. Wyciągnij z war3ft Nazywało się to chyba "Kret" czy coś takiego.
R3X
05.06.2010
cs_set_weapon_ammo()cs_set_WEAPON_ammo() - pierwszy argument to nie id gracza a ent broni
new weapon = get_user_weapon(id); new szWeapName[32]; get_weaponname ( weapon, szWeapName, 31 ); new ent = find_ent_by_owner(-1, szWeapName, id); if(ent) { cs_set_weapon_ammo(ent, cs_get_weapon_ammo(ent) + 8); }
Jeszcze przydałoby się ograniczenie np. z m4 przy 25 nabojach zrobi się 33 a powinno 30
Screeaam... 05.06.2010
cs_set_weapon_ammo()cs_set_WEAPON_ammo() - pierwszy argument to nie id gracza a ent broninew weapon = get_user_weapon(id); new szWeapName[32]; get_weaponname ( weapon, szWeapName, 31 ); new ent = find_ent_by_owner(-1, szWeapName, id); if(ent) { cs_set_weapon_ammo(ent, cs_get_weapon_ammo(ent) + 8); }
Jeszcze przydałoby się ograniczenie np. z m4 przy 25 nabojach zrobi się 33 a powinno 30
Ale ja chce właśnie, aby się zrobiło 33.
Dziękuję, zaraz idę sprawdzać.
@Edit:
Nie działa, ładuje się na nożu i Glock cały czas ma 20 w clipie. ;/
Edited by Screeaam..., 05.06.2010 12:31.
R3X
05.06.2010
Jesteś pewien, że ten fragment jest wykonywany? Dodaj log_amx albo client_print() za nim
Screeaam... 05.06.2010
new weapon = get_user_weapon(id);
new szWeapName[32];
get_weaponname ( weapon, szWeapName, 31 );
new ent = find_ent_by_owner(-1, szWeapName, id);
if(ent)
{
cs_set_weapon_ammo(ent, cs_get_weapon_ammo(ent) + 8);
}
Dodałem pod tym napis, że po naładowanie pokazuje, no i pokazał "[Hefasto] Masz +8 ammo", więc wykonywalny, ale nie dał ammo.
To pomoże ktoś, bardzo proszę...
Pomoże ktoś?
Edited by Screeaam..., 05.06.2010 13:09.
Screeaam... 06.06.2010
cs_set_weapon_ammo
Jest jakaś inna komenda?
Nie, a R3X'a funkcja nie działa. :<
Siemir
06.06.2010
Zmodyfikowana wersja funkcji z pluginu v3x'a.
public give_ammo(id , wpnid , clip) { if(!is_user_alive(id)) return; if( wpnid==CSW_C4 || wpnid==CSW_KNIFE || wpnid==CSW_HEGRENADE || wpnid==CSW_SMOKEGRENADE || wpnid==CSW_FLASHBANG ) return; if(!clip) { static weapname[33]; get_weaponname(wpnid , weapname , 32); static wpn, newclip wpn = -1; while((wpn = find_ent_by_class(wpn , weapname)) != 0) { if(id == entity_get_edict(wpn , EV_ENT_owner)) { newclip = cs_get_weapon_ammo(wpn) + clip cs_set_weapon_ammo(wpn , newclip) break; } } } }Użycie : give_ammo(id gracza, id broni(nie ent), ilosc dodanego ammo)
Vertricus
06.06.2010
//:x
R3X dał ci kod na dodatkowe ammo no nie? Teraz tylko od ciebie zależy jak go użyjesz...
Innymi słowy wiesz czemu nie działa?
Odp. dajesz nożu ammo:d źle określiłeś pytanie, nie zarzucaj że funkcja R3X'a nie działa !
R3X dał ci kod na dodatkowe ammo no nie? Teraz tylko od ciebie zależy jak go użyjesz...
new weapon = get_user_weapon(id); // Jaką broń ma gracz?? Hmmmmm.... skoro moc na nożu to uwaga uwaga nóż!
new szWeapName[32];
get_weaponname ( weapon, szWeapName, 31 ); // Noż nazywa się weapon_knife? :x
new ent = find_ent_by_owner(-1, szWeapName, id); // Sprawdź czy jakiś weapon_knife ma ownera id? (zapewne ma skoro go używa)
if(ent)//Czyli true bo ma! :D
{
cs_set_weapon_ammo(ent, cs_get_weapon_ammo(ent) + 8);//Daj nożowi ammo *** YEA ;d
}
Innymi słowy wiesz czemu nie działa?
Odp. dajesz nożu ammo:d źle określiłeś pytanie, nie zarzucaj że funkcja R3X'a nie działa !
Screeaam... 07.06.2010
Zmodyfikowana wersja funkcji z pluginu v3x'a.
public give_ammo(id , wpnid , clip) { if(!is_user_alive(id)) return; if( wpnid==CSW_C4 || wpnid==CSW_KNIFE || wpnid==CSW_HEGRENADE || wpnid==CSW_SMOKEGRENADE || wpnid==CSW_FLASHBANG ) return; if(!clip) { static weapname[33]; get_weaponname(wpnid , weapname , 32); static wpn, newclip wpn = -1; while((wpn = find_ent_by_class(wpn , weapname)) != 0) { if(id == entity_get_edict(wpn , EV_ENT_owner)) { newclip = cs_get_weapon_ammo(wpn) + clip cs_set_weapon_ammo(wpn , newclip) break; } } } }Użycie : give_ammo(id gracza, id broni(nie ent), ilosc dodanego ammo)
Ale jeżeli bym chciał na każdej broni to jak, skoro mam podać id broni (a chyba mogę jednej?)
//:x
R3X dał ci kod na dodatkowe ammo no nie? Teraz tylko od ciebie zależy jak go użyjesz...new weapon = get_user_weapon(id); // Jaką broń ma gracz?? Hmmmmm.... skoro moc na nożu to uwaga uwaga nóż!
new szWeapName[32];
get_weaponname ( weapon, szWeapName, 31 ); // Noż nazywa się weapon_knife? :x
new ent = find_ent_by_owner(-1, szWeapName, id); // Sprawdź czy jakiś weapon_knife ma ownera id? (zapewne ma skoro go używa)
if(ent)//Czyli true bo ma! :D
{
cs_set_weapon_ammo(ent, cs_get_weapon_ammo(ent) + 8);//Daj nożowi ammo *** YEA ;d
}
Innymi słowy wiesz czemu nie działa?
Odp. dajesz nożu ammo:d źle określiłeś pytanie, nie zarzucaj że funkcja R3X'a nie działa !
Czyli jak mogę to przerobić, aby na każdej broni dodawało ammo? (Prócz noża)
Ehh.. tępy jestem.
EDIT:
R3X, przepraszam, że napisałem , że nie działa, działa, tylko ja jej wykorzystać nie umiem.
Edited by Screeaam..., 07.06.2010 07:17.
Vertricus
07.06.2010
const BITSUM_NO_RELOAD = (1<<CSW_HEGRENADE)|(1<<CSW_C4)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE);
static iWeapons[32], iNum, i, szWeapName[32],ent
get_user_weapons(id, iWeapons, iNum)
for(i=0;i<iNum;i++)
{
if (!(BITSUM_NO_RELOAD&(1<<iWeapons[i])))
{
get_weaponname (iWeapons[i], szWeapName, 31 );
ent = find_ent_by_owner(-1, szWeapName, id);
if(ent)
{
cs_set_weapon_ammo(ent, cs_get_weapon_ammo(ent) + 8);
}
}
}
W locie robione więc nie wiem na 100% czy ruszy. ;d
Screeaam... 07.06.2010
const BITSUM_NO_RELOAD = (1<<CSW_HEGRENADE)|(1<<CSW_C4)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE);static iWeapons[32], iNum, i, szWeapName[32],ent
get_user_weapons(id, iWeapons, iNum)
for(i=0;i<iNum;i++)
{
if (!(BITSUM_NO_RELOAD&(1<<iWeapons[i])))
{
get_weaponname (iWeapons[i], szWeapName, 31 );
ent = find_ent_by_owner(-1, szWeapName, id);
if(ent)
{
cs_set_weapon_ammo(ent, cs_get_weapon_ammo(ent) + 8);
}
}
}
W locie robione więc nie wiem na 100% czy ruszy. ;d
Działa, ale tak dziwnie, bo jak się naładuje, to dodaje raz ammo i na glocku mam 28, potem jak się znów ładuje, to już nie dodaje, nawet się napis nie wyświetla... Na nowej rundzie już wogóle nie dodaje...
Edited by Screeaam..., 07.06.2010 08:14.
R3X
07.06.2010
pewnie pamięć, zamień tu
static iWeapons[32], iNum, i, szWeapName[32],entstatic na new
Vertricus
07.06.2010
A w tym wypadku nie będzie tak że i tak wykonuje get_user_weapons? czyli odświeża wartości i w pętli również na start przyjmuje zero, sam nie wiem ;(
R3X
07.06.2010
teoretycznie tak to działa, ale bywa z tym różnieA w tym wypadku nie będzie tak że i tak wykonuje get_user_weapons