[ROZWIĄZANE] [Problem] Blokada wszystkich...
he1st
02.12.2014
Jak w temacie. Prowadzę serwer ONLY AWP i są mapy na których gracz ma "Buyzone" (np. awp_map), gdzie gracz może kupić sobie dowolną broń. Sugerowałem się "Knife_Block'iem" w celu blokady broni, ale sens tworzenia blokady 23 z 24 broni na podstawie niżej podanego *.sma jest znikomy. Chcę po prostu, aby gracz nie miał możliwości użycia broni innej niż AWP i aby w momencie, gdy gracz będzie chciał strzelić np. z DGL wyświetli mu się na czacie:
ColorChat(id, GREEN, "^x04 Nie możesz uzyć broni innej niż^x01 ^x03AWP^x01")
Podrzucam sma Knife_Block'a
Edited by MS.Zer0., 02.12.2014 12:39.
MAGNET
02.12.2014
register_clcmd("buy", "block"); public block(id) { cliect_print(id, print_center, "Kupowanie zabronione"); return PLUGIN_HANDLEd }
Edited by MAGNET, 02.12.2014 12:50.
he1st
02.12.2014
@MAGNET
Wszystko fajnie tylko nie możemy zapominać o tym, że na niektórych mapach otrzymujesz też deagle do pomocy i kosę (na każdej mapie). Gdyby to rozwiązywało mój problem to już dawno bym to zrobił
^Szeregowy^ 02.12.2014
zablokuj wszytkie bronie oprocz deagla i awp bo noz masz w standardzie albo moge ci napisac plugin ktory przy respie na wybranych mapach daje awp i deagla a na reszcie map awp a dodatkowo mapy zrobie ci w pliku.ini zeby czytalo lepiej jesli ci tak pasuje ?
he1st
02.12.2014
Pomysł godny uwagi. Przetestuje to o czym do mnie rozmawiasz i dam odpowiedź ;3
psilocybe
02.12.2014
Zamiast pluginów ja bym poświęcił 1 minute na 1 mape i edytował entity, wystarczy usunąć Buyzone.
Powodzenia w pisaniu takiego pluginu, na niektórych mapach masz stripery, jak zaczniesz kombinować z pluginami to crash serwera gwarantowany.
grankee
02.12.2014
Haha edytować każdą po kolei mapę i usuwać buyzone Genialne. Chyba podobne metody stosują nasi politycy prowadząc państwo Bez urazy oczywiście. Usuwanie buyzonów na każdej mapie po kolei to 10 linijek kodu. Możesz wtedy dodawać mapy jakie chcesz i ile chcesz, a plugin i tak robi swoje.
Opisz jak to ma działać, bo ja zrozumiałem tak:
Masz awp i noż i nic więcej Ci mieć nie wolno, tak? Ani poprzez podniesienie, ani poprzez kupienie?
psilocybe
02.12.2014
Edycja entów 1 mapy to 10 sekund, gorzej że trzeba wrzucić na FTP wszystko Nie przemyślałem tego bo pewnie jest dużo.
Dobra pomysł odpada dla wielu map.
Teraz pokaż mi ten 10 linijkowy kod, chętnie sprawdzę działanie pluginu np. na awp_greesia, stawiam piwo że zbuguje
grankee
02.12.2014
Raz, że wrzucać dwa że gracze muszą ściągać te mapy na nowo. Co chcesz np. na awp_greesia zmieniać, jak tam ani buyzonów nie ma (znaczy jest, ale gdzie poza obszarem mapy dostępnym gla graczy), ani pistoletów...
No, ale dobra, chciałeś 10-cio linijkowy kod, żeby nie dało się nic kupić.
#include <amxmodx> #include <engine> public plugin_init() { register_plugin("awp only", "0.1", "grankee") set_task(5.0,"usun_buyzone") } public usun_buyzone(){ new zone while((zone=find_ent_by_class(zone,"func_buyzone"))!=0) entity_set_int(zone,EV_INT_solid,SOLID_NOT) }
PS. policz linijki
Edited by grankee, 02.12.2014 18:54.
he1st
02.12.2014
Konkretnie chodzi o to, żeby gracz nie mógł użyć innej broni niż AWP (nawet noża)
@psilocybe
Nie mam co robić tylko na 132 mapach enty edytować, bo kolega ma taki, a nie inny pomysł na rozwiązanie problemu... -.-
Nie mam co robić tylko na 132 mapach enty edytować, bo kolega ma taki, a nie inny pomysł na rozwiązanie problemu... -.-Zamiast pluginów ja bym poświęcił 1 minute na 1 mape i edytował entity, wystarczy usunąć Buyzone.
Powodzenia w pisaniu takiego pluginu, na niektórych mapach masz stripery, jak zaczniesz kombinować z pluginami to crash serwera gwarantowany.
Edited by CheQ, 03.12.2014 09:26.
grankee
02.12.2014
Konkretnie chodzi o to, żeby gracz nie mógł użyć innej broni niż AWP (nawet noża)
Daj mi 10 minut, góra 20 bo obiad jem Zedytuje tego posta.
grankee
02.12.2014
sorka kobitka mnie zagadała, już robię, tylko przyszła mi do głowy jedna rzecz, ja np. jak gram awp to po strzale zmieniam szybciutko na nóż i uciekam z miejsca wydarzenia z nożem szybciej. Ludzi może irytować brak noża. Może po prostu zablokować obrażenia + jakieś info?
he1st
02.12.2014
W Knife_Block znajdziesz to samo. Możesz wyciągnąć nóż, ale nie możesz nim uderzyć ani LPM, ani PPM. Właśnie o coś podobnego mi chodzi.
set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK) set_pev(id, pev_button, pev(id,pev_button) & ~IN_ATTACK2) return FMRES_HANDLED
ten zapis blokuje użycie noża, a nie jego wyjęcie. Mnie też łatwiej jest zmienić sobie na nóż i z powrotem na awp I wiem, że byłoby to denerwujące
Best Answer
grankee
02.12.2014
No to zostaw sobie tego KnifeBlocka i dorzuć to jako osobny plugin:
#include <amxmodx> #include <engine> #include <hamsandwich> public plugin_init() { register_plugin("only awp", "0.2", "grankee") register_event("CurWeapon","Weapon","be","1=1") RegisterHam(Ham_Spawn,"weaponbox","box_spawned") set_task(3.0,"blokuj_enty") } public box_spawned(ent) { if(!is_awp(ent)) entity_set_int(ent,EV_INT_solid,SOLID_NOT) } is_awp(const weaponbox) { new model[32] entity_get_string(weaponbox,EV_SZ_model,model,31) if(containi(model,"w_awp.mdl")==-1) return 0 return 1 } public Weapon(id) { new wid = read_data(2) if(wid==CSW_AWP || wid==CSW_KNIFE) return PLUGIN_CONTINUE client_cmd(id,"drop") return PLUGIN_CONTINUE } public blokuj_enty(){ new weapbox while((weapbox=find_ent_by_class(weapbox,"armoury_entity"))!=0) { if(!is_awp(weapbox)) entity_set_int(weapbox,EV_INT_solid,SOLID_NOT) } while((weapbox=find_ent_by_class(weapbox,"weaponbox"))!=0) { if(!is_awp(weapbox)) entity_set_int(weapbox,EV_INT_solid,SOLID_NOT) } }
Bo jak kiedyś zmienisz zdanie, że chcesz używać noża to po prostu wyłączysz go sobie, a nie będzie trzeba przerabiać pluginu.
Dodatkowo zablokuj kupowanie granatów (amx_restmenu - jest to domyslny plugin amxa), bo ten kod co prawda nie pozwoli podnieść granata, ale jak ktoś kupi to może użyć. To samo flash/smoke
Edited by grankee, 02.12.2014 20:12.
psilocybe
02.12.2014
A co zrobisz z entity game_player_equip?
Przykład:
"ammo_338magnum" "3"
"ammo_50ae" "5"
"item_assaultsuit" "1"
"weapon_awp" "1"
"weapon_deagle" "1"
"weapon_knife" "1"
"classname" "game_player_equip"
Na niektórych mapach są enty multi_manager i player_weaponstrip, chyba trzeba to też brać pod uwagę
grankee
02.12.2014
Plugin działa tak, że jeśli wyjmiesz inną broń niż awp/nóż to ją wyrzuca. Podaj przykład takiej mapy z tymi entami.
Z resztą o ile kojarzę to multi_manager służy do uruchamiania wielu wydarzeń np. za pomocą buttona. Pozastałe 2 entity występują w grach na silniku source
Edited by grankee, 02.12.2014 21:53.
psilocybe
02.12.2014
Wiele map posiada ww. enty i nie są to mapy do Source
multi_manager możesz wywołać podczas np. "game_playerspawn", jeżeli chodzi o zastosowanie przy dawaniu broni to wygląda to tak że najpierw w multi_manager jest stripper "player_weaponstrip" a później "game_player_equip" i wywołujesz to automatycznie wpisując w "targetname" swojego multi_managera event "game_playerspawn"
Multi_manager ma wiele zastosowań
Przykłady map?
Oryginalna awp_greesia, oryginalna awp_india, oryginalny fy_scoutzknivez, choć aktualnie w sieci większość tych mapek ma już przerobione *.ent'y, Ja używałem multi_managera na awp_india_dust i es_1994
grankee
03.12.2014
Co nie zmienia faktu, że z moim pluginem nie oddasz strzału z innej broni niż awp.