Blokada kupna bronii
Maruda515
24.03.2013
Witam! Proszę o pomoc. Nie wiem jak zastosować tutaj opcji "if". Ma to wyglądać tak: ktoś na np usp i w sklepie chcę kupić usp. Na czacie pokazuję się wiadomość " Nie możesz kupić usp ponieważ już posiadasz ta bron". Pomożecie?
Oto kod:
Oto kod:
#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>
public plugin_init()
{
register_plugin("Sklep", "0.1", "Maruda")
register_clcmd("say /test", "cmd_test")
}
public cmd_test(id)
{
new menu = menu_create("Menu1", "menu1_handle")
menu_additem(menu, "Pistolety")
menu_additem(menu, "Shotguny")
menu_additem(menu, "Pistolety Maszynowe")
menu_additem(menu, "Strzelby")
menu_display(id, menu)
}
public menu1_handle(id, menu, item)
{
switch(item)
{
case 0: menu2(id)
case 1: menu3 (id)
case 2: menu4 (id)
case 3: menu5 (id)
}
}
public menu2(id)
{
new menu = menu_create("Pistolety", "menu2_handle")
menu_additem(menu, "Glock")
menu_additem(menu, "USP")
menu_additem(menu, "P228")
menu_additem(menu, "Deagle")
menu_additem(menu, "Fiveseven")
menu_additem(menu, "Elite")
menu_display(id, menu)
}
public menu2_handle(id, menu, item)
{
switch(item)
{
case 0:{
give_item(id, "weapon_glock18")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 1:{
give_item(id, "weapon_usp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 2:{
give_item(id, "weapon_p228")
give_item(id,"ammo_357sig")
give_item(id,"ammo_357sig")
give_item(id,"ammo_357sig")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 3:{
give_item(id, "weapon_deagle")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
give_item(id,"ammo_50ae")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 4:{
give_item(id, "weapon_fiveseven")
give_item(id,"ammo_57mm")
give_item(id,"ammo_57mm")
give_item(id,"ammo_57mm")
give_item(id,"ammo_57mm")
give_item(id,"ammo_57mm")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 5:{
give_item(id, "weapon_elite")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
}
}
public menu3 (id)
{
new menu = menu_create("Shotguny", "menu3_handle")
menu_additem(menu, "XM1014")
menu_additem(menu, "M3")
menu_display(id,menu)
}
public menu3_handle(id, menu, item)
{
switch(item)
{
case 0:{
give_item(id,"weapon_xm1014")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 1:{
give_item(id,"weapon_m3")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
give_item(id, "ammo_buckshot")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
}
}
public menu5 (id)
{
new menu = menu_create("Strzelby", "menu5_handle")
menu_additem(menu, "Gali")
menu_additem(menu, "Famas")
menu_additem(menu, "Scout")
menu_additem(menu, "M4A1")
menu_additem(menu, "AK47")
menu_additem(menu, "AUG")
menu_additem(menu, "SG550")
menu_additem(menu, "AWP")
menu_display(id,menu)
}
public menu5_handle(id, menu, item)
{
switch(item)
{
case 0:{
give_item(id, "weapon_galil")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 1:{
give_item(id, "weapon_famas")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 2:{
give_item(id, "weapon_scout")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 3:{
give_item(id, "weapon_m4a1")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 4:{
give_item(id, "weapon_ak47")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
give_item(id,"ammo_762nato")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 5:{
give_item(id, "weapon_aug")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 6:{
give_item(id, "weapon_sg550")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
case 7:{
give_item(id, "weapon_awp")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
give_item(id,"ammo_338magnum")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
}
}
public menu4(id)
{
new menu = menu_create("Pistolety Maszynowe", "menu4_handle")
menu_additem(menu, "TMP")
menu_additem(menu, "MP5")
menu_additem(menu, "UMP45")
menu_additem(menu, "P90")
menu_display(id, menu)
}
public menu4_handle(id, menu, item)
{
switch(item)
{
case 0:{
give_item(id, "weapon_tmp")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
}
case 1:{
give_item(id, "weapon_mp5navy")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
}
case 2:{
give_item(id, "weapon_ump45")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
}
}
}
Maruda515
24.03.2013
Dodałem to przed każdy "give_item" i teraz wyrzuca mi każdą broń.
Dam wycinek z kodu:
Dam wycinek z kodu:
//kod
switch(item)
{
case 0:{
{
if(get_user_weapon(id) == CSW_GALIL)
ColorChat (id, RED, "Nie mozesz tego zakupic, poniewaz posiadasz ta bron")
}
give_item(id, "weapon_galil")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
give_item(id,"ammo_556nato")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
//kod
K!113r
24.03.2013
Bo nie blokujesz zdarzenia ani nic, wykonuje się kod po kolei, leci warunek a potem dalszy kod, niezależnie od warunku, te give_item() i tak dalej daj w else przy tym if'ie (na co Ci dodanie broni, potem amunicji a na końcu wyrzucenie tej broni
)
Maruda515
25.03.2013
A mógłbyś napisać gdzie to dać i jak? Troszkę nie obeznany w tym jestem
JabLuszko
25.03.2013
Zrobiłeś sieczkę z nawiasami kwadratowymi { } - to się w ogóle kompiluje? 
U Ciebie powinno to wyglądać na zasadzie:
Swoją drogą po co Ci tam drop, który pewnego dnia może przestać działać na steamach? Zainteresuj się
http://amxx.pl/dokum...ip_user_weapons
http://amxx.pl/dokum...ip_user_weapons
Użytkownik JabLuszko edytował ten post 25.03.2013 16:17
U Ciebie powinno to wyglądać na zasadzie:
switch(item)
{
// CIACH //
case 1:{
if(get_user_weapon(id) == CSW_USP) {
// Gracz posiada bron
ColorChat (id, RED, "Nie mozesz tego zakupic, poniewaz posiadasz ta bron")
} else {
// Gracz nie posiada tej broni, wiec mu ja damy
give_item(id, "weapon_usp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
client_cmd(id, "slot1" );
client_cmd(id, "drop");
}
}
// CIACH //
} // to jest nawias kwadratowy od switch(item)
Swoją drogą po co Ci tam drop, który pewnego dnia może przestać działać na steamach? Zainteresuj się
http://amxx.pl/dokum...ip_user_weapons
http://amxx.pl/dokum...ip_user_weapons
Użytkownik JabLuszko edytował ten post 25.03.2013 16:17
Maruda515
25.03.2013
Dzięki za odpowiedź
Jednakże to działa w 50 %, jeśli mam usp i chcę kupić usp to nie daje, jednak jak nie mam nic to daje i wyrzuca od razu
K!113r
25.03.2013
Bo za to odpowiada te twoje drop? wywal
z Twojego kodu i będzie git, zresztą napisałem Ci o tym opisując dokładnie gdzie masz wkleić poprzedni kod.
client_cmd(id, "slot1" );
client_cmd(id, "drop");
z Twojego kodu i będzie git, zresztą napisałem Ci o tym opisując dokładnie gdzie masz wkleić poprzedni kod.
Maruda515
25.03.2013
Ale wtedy będę miał kilka broni np usp i dgl, a ja chciałbym, żeby dawało 1 broń i wywalało inną.
K!113r
25.03.2013
albo usuń mu jedną konkretną, albo usuń mu wszystkie, daj nóż(+ ewentualna bomba) i broń którą chcesz mu dać. Jak usunąć bronie/broń? Polecam zapuszczenie żurawia w bibliotekę fun jak i też wyszukać w dokumentacji funkcji z "strip" w nazwie.
JabLuszko
25.03.2013
Da radę, ale ani to optymalne, ani przydatne.
Do stripów już Ci linkowałem, jak chcesz KONIECZNIE zabrać mu jedną broń to powinieneś użyć czegoś w okolicach http://amxx.pl/topic...ip-user-weapon/ lub http://darkgl.amxx.p...broni-graczowi/
Usuń mu wszystkie bronie na początku rundy, potem daj nóż i niech sobie kupuje co chce - to jest "poprawne" podejście do tematu.
Do stripów już Ci linkowałem, jak chcesz KONIECZNIE zabrać mu jedną broń to powinieneś użyć czegoś w okolicach http://amxx.pl/topic...ip-user-weapon/ lub http://darkgl.amxx.p...broni-graczowi/
Usuń mu wszystkie bronie na początku rundy, potem daj nóż i niech sobie kupuje co chce - to jest "poprawne" podejście do tematu.
GwynBleidD
25.03.2013
[ ] <--- to jest nawias KWADRATOWY
{ } <--- to jest nawias KLAMROWY!!!
I nie widzę tutaj "sieczki" w nawiasach klamrowych.
{ } <--- to jest nawias KLAMROWY!!!
I nie widzę tutaj "sieczki" w nawiasach klamrowych.




