Jak zrobić wyrzucanie broni przez set_task ?
aRrOw
24.07.2015
Witam.
Na codzie, mam problem z dawaniem podstawowych broni ( USP/GLOCK ) nawet gdy nie są one przypisane klasie. Wiem że jest poradnik jak usunąć te bronie. Ale ja nie chcę ich usuwać ze wszystkich klas tylko z tej jednej. I mam do was pytanie jak dodać to klasy. Żeby przez set_task sprawdzało czy gracz ma inne bronie niż P228, jeśli ma to poprostu je dropie mam zrobiony taki kod ale on nie działa:
public CurWeapon(id) { if(ma_klase[id] && read_data(2) != CSW_KNIFE) if(ma_klase[id] && read_data(2) != CSW_P228) { set_task(0.1 ,"ma" ,id) } } public ma(id) { strip_user_weapons(id); give_item(id, "weapon_knife"); give_item(id, "weapon_P228"); }
Ale z tego co widze to i tak jak gracz będzie w TT to będzie mu dropało pake czy nie? Jak to zrobić w inny sposób?
Alelluja
24.07.2015
Tak o ?
public CurWeapon(id)
{
if ((get_user_weapon(id) != CSW_C4) && get_user_weapon(id) != CSW_KNIFE && get_user_weapon(id) != CSW_P228)
{
set_task(0.1 ,"ma" ,id)
}
}
public ma(id)
{
strip_user_weapons(id);
give_item(id, "weapon_knife");
give_item(id, "weapon_p228");
}
Linux'
27.07.2015
Niestety nie wyrzuca broni
Ma je koniecznie wyrzucac? Dziwne rozwiazanie ale coz. Sprawdz tak
public CurWeapon(id) { if ((get_user_weapon(id) != CSW_C4) && get_user_weapon(id) != CSW_KNIFE && get_user_weapon(id) != CSW_P228) set_task(0.1 ,"ma" ,id) } public ma(id) { client_cmd(id, "drop"); }
Kompletnie bezsensowne jest uzywanie taska, poza tym lepiej blokowac np podnoszenie i dawanie niz wyrzucac co chwila.
aRrOw
27.07.2015
Kompletnie bezsensowne jest uzywanie taska, poza tym lepiej blokowac np podnoszenie i dawanie niz wyrzucac co chwila.
Zainteresowałeś mnie tą wypowiedzią. Wiesz może jak je zablokować inaczej? Oczywiście sprawdze też ten sposób.
Linux'
27.07.2015
Silnik raz raz to przerobie. Ustawiasz by nie dalo sie podnosic okreslonej broni jezeli gracz gra okreslona klasa. Tyle, a w funkcji perkow blokujesz dawanie broni/itemu dla tej samej klasy.
aRrOw
27.07.2015
A mógłbyś mi to po prostu pokazać na zwykłym codzie a ja bym to przerobił pod swój ??
Linux'
27.07.2015
CurWeapon zamien na
public CurWeapon(id) { if(!is_user_connected(id)) return; new team = get_user_team(id); if(team > 2) return; new bron = read_data(2); new bronie; if(PobierzKlase(id) == PobierzNazweKlasy(PobierzKlase, "nazwaklasy")) bronie = (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_dozwolone); else bronie = (bronie_klasy[klasa_gracza[id]] | bonusowe_bronie_gracza[id] | bronie_druzyny[team] | bronie_dozwolone); if(!(1<<bron & bronie)) { new weaponname[22]; get_weaponname(bron, weaponname, 21); ham_strip_weapon(id, weaponname); } if(cs_get_user_shield(id) && !gracz_ma_tarcze[id]) engclient_cmd(id, "drop", "weapon_shield"); UstawSzybkosc(id); }
Tylko nie jestem pewien, czy nazwy natywow sa okej. A do usuwania broni w codzie uzywaj lepiej codtakeweapon
aRrOw
27.07.2015
Niestety nie działa. Przy kompilacji wyskakuje:
Error: Syntax error in the expression, or invalid function call on line 1245
jest to ta linijka"
if(PobierzKlase(id) == PobierzNazweKlasy(PobierzKlase, "nazwaklasy"))
Linux'
28.07.2015
Niestety nie działa. Przy kompilacji wyskakuje:
Error: Syntax error in the expression, or invalid function call on line 1245jest to ta linijka"
if(PobierzKlase(id) == PobierzNazweKlasy(PobierzKlase, "nazwaklasy"))
Tak jak mowilem, od dawna nie zajmuje sie nowym codem wiec zapomnialem tych wszystkich natywow itp itd . Zamien to na
if(klasa_gracza[id] == PobierzKlasePrzezNazwe("NazwaKlasy"))
aRrOw
28.07.2015
Dzięki.Niestety nie działa. Przy kompilacji wyskakuje:
Error: Syntax error in the expression, or invalid function call on line 1245jest to ta linijka"if(PobierzKlase(id) == PobierzNazweKlasy(PobierzKlase, "nazwaklasy"))
Tak jak mowilem, od dawna nie zajmuje sie nowym codem wiec zapomnialem tych wszystkich natywow itp itd . Zamien to naif(klasa_gracza[id] == PobierzKlasePrzezNazwe("NazwaKlasy"))
aRrOw
29.07.2015
Wczoraj skompilowałem i wrzuciłem na serwer, ale nie testowałem bo poprostu myślałem że będzie działać. Dzisiaj wchodzę na serwer i zamiast mi odbierać usp/glocka to mi je daje dwie naraz. Do klasy nie mam ich przypisanych. Co może być źle?Tak jak mowilem, od dawna nie zajmuje sie nowym codem wiec zapomnialem tych wszystkich natywow itp itd . Zamien to na
if(klasa_gracza[id] == PobierzKlasePrzezNazwe("NazwaKlasy"))
Użytkownik aRrOw edytował ten post 29.07.2015 09:59