←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] [Problem] Blokada wszystkich...

Locked

  • +
  • -
he1st's Photo 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. :X 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

Spoiler

Edited by MS.Zer0., 02.12.2014 12:39.
Quote

  • +
  • -
MAGNET's Photo MAGNET 02.12.2014

Zablokuj kupowanie i tyle

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.
Quote

  • +
  • -
he1st's Photo 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ł ^^

Quote

^Szeregowy^'s Photo ^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 :) ?

 

Quote

  • +
  • -
he1st's Photo he1st 02.12.2014

Pomysł godny uwagi. Przetestuje to o czym do mnie rozmawiasz i dam odpowiedź ;3

Quote

  • +
  • -
psilocybe's Photo 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.

Quote

  • +
  • -
grankee's Photo grankee 02.12.2014

Haha edytować każdą po kolei mapę i usuwać buyzone :D Genialne. Chyba podobne metody stosują nasi politycy prowadząc państwo :D 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?

Quote

  • +
  • -
psilocybe's Photo psilocybe 02.12.2014

Edycja entów 1 mapy to 10 sekund, gorzej że trzeba wrzucić na FTP wszystko :D Nie przemyślałem tego bo pewnie jest dużo. o_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 :D

Quote

  • +
  • -
grankee's Photo 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.
Quote

  • +
  • -
he1st's Photo he1st 02.12.2014

@grankee

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... -.-

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.

Nie mam co robić tylko na 132 mapach enty edytować, bo kolega ma taki, a nie inny pomysł na rozwiązanie problemu... -.-
Edited by CheQ, 03.12.2014 09:26.
Quote

  • +
  • -
grankee's Photo 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.

Quote

  • +
  • -
he1st's Photo he1st 02.12.2014

Nie śpiesz się. Smacznego :)

Quote

  • +
  • -
grankee's Photo 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 :D z nożem szybciej. Ludzi może irytować brak noża. Może po prostu zablokować obrażenia + jakieś info?

Quote

  • +
  • -
he1st's Photo 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 ;)

Quote

  • +
  • -
Best Answer grankee's Photo 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.
Quote

  • +
  • -
psilocybe's Photo 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ę :)

 

 

Quote

  • +
  • -
grankee's Photo 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.
Quote

  • +
  • -
psilocybe's Photo psilocybe 02.12.2014

Wiele map posiada ww. enty i nie są to mapy do Source :D

 

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

Quote

  • +
  • -
grankee's Photo grankee 03.12.2014

Co nie zmienia faktu, że z moim pluginem nie oddasz strzału z innej broni niż awp. 

Quote

  • +
  • -
he1st's Photo he1st 03.12.2014

No i pomógł sposób opisany jako najlepszy post. ;) Dzięki grankee.

Quote
Locked