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.
Użytkownik Screeaam... edytował ten post 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.
Użytkownik Screeaam... edytował ten post 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. ;/
Użytkownik Screeaam... edytował ten post 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ś?
Użytkownik Screeaam... edytował ten post 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.
Użytkownik Screeaam... edytował ten post 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...
Użytkownik Screeaam... edytował ten post 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