Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Puchate - zdjęcie

Puchate

Rejestracja: 17.06.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 19.07.2019 13:40
*****

#644336 [ROZWIĄZANE] Zmienna float i integer ?

Napisane przez Puchate w 20.06.2014 21:58

 

 

No w sumie zalozylem temat, o int i float, ale gdyby tak jeszcze string dorzucic do tej "cudnej" zmiennej, to by bylo superancko, jest tkaie cos mozliwe ?  :D

Tak jak napisałem - jako podstawę użyj zmiennej zmiennoprzecinkowej i konwersuj wszystkie wartości do niej. Miej na uwadze też że w systemie teleinformatycznym ciężko jest zapisywać "floaty" więc przy zaokrąglaniu mogą się pojawić małe różnice.

 


Puchate, a Ty skad sie urwales, taki nowy uzytkownik, a mysli za dwóch

Słuszne spostrzeżenie, no cóż, doświadczenie robi swoje. :)
  • +
  • -
  • 1


#644333 [ROZWIĄZANE] Zmienna float i integer ?

Napisane przez Puchate w 20.06.2014 21:54

Co ma string do float oraz integer, poza tym ze jest typem zmiennej?

 

Jak masz liczbę w zmiennej tekstowej to zawsze możesz użyć np. str_to_float.


  • +
  • -
  • 1


#644327 [ROZWIĄZANE] Zmienna float i integer ?

Napisane przez Puchate w 20.06.2014 21:44

 

Istnieje coś takiego, gdzie było by można mieć w jednej zmiennej wartość int oraz float? 

 
 

Trzymaj wartość zmiennoprzecinkową a w razie potrzeby możesz użyc floatround aby mieć wartość całkowitą.


  • +
  • -
  • 1


#644199 [ROZWIĄZANE] Jak poprawnie ustawić raty na serwerze, aby osiągnąć max. wydajn...

Napisane przez Puchate w 20.06.2014 09:15

Jezeli Twoja wersja silnika HLDS jest wyzsza niz 5787 to masz silnik ze STEAMCMD.


  • +
  • -
  • 1


#644167 Respawn z daną ilością żyć

Napisane przez Puchate w 19.06.2014 23:43


dzięki przeoczyłem to
Nieładnie w plikach źródłowych zmieniać autora ;)

 

Jutro postaram się coś Ci z tym wykminić.


  • +
  • -
  • 1


#644104 [ROZWIĄZANE] Jak poprawnie ustawić raty na serwerze, aby osiągnąć max. wydajn...

Napisane przez Puchate w 19.06.2014 17:49

Na jakim engine, z ery STEAMCMD?

 

Jak tak to:

 

 

sys_ticrate 300

sv_maxrate 0
sv_maxupdaterate 0
sv_minrate 0
sv_minupdaterate 0
 

 

Są jedynymi słusznymi ustawieniami serwera gry. Do tego oczywiście pingboost 0.


  • +
  • -
  • 1


#644103 Respawn z daną ilością żyć

Napisane przez Puchate w 19.06.2014 17:47

Dodałem komunikat oraz CVAR'y aby łatwiej było konfigurować.

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "X Lifes"
#define VERSION "1.0"
#define AUTHOR "Młody"

#define TASKID 943
#define MAXPLAYERS 32

new lifes[MAXPLAYERS+1]
new maxlifes
new respawntime

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	maxlifes = register_cvar("amx_maxlifes", "3")
	respawntime = register_cvar("amx_maxlifes_time", "5.0")
	
	register_event("HLTV", "event_hltv", "a", "1=0", "2=0")	
	RegisterHam(Ham_Killed, "player", "client_killed", 1)
}

public client_killed(id) {
	
	new Float:timeVar = get_pcvar_float(respawntime)	
	new lifesLeft = get_pcvar_num(maxlifes) - lifes[id]
	
	if(lifesLeft) {
	
		set_task(timeVar, "client_respawn", TASKID + id)
		client_print(id, print_chat, "[AMX] Zostaniesz odrodzony za %d sekund, pozostalo Ci %d zyc", floatround(timeVar), lifesLeft)		
	}
}

public client_respawn(TASK) {
	
	new id = TASK - TASKID 
	if(!is_user_alive(id) && is_user_connected(id) && lifes[id] < get_pcvar_num(maxlifes)) {
		ExecuteHamB(Ham_CS_RoundRespawn, id)
		lifes[id]++
	}	
}

public event_hltv() {
	
	for(new i = 0; i <= MAXPLAYERS; i++) {
		lifes[i] = 0
		remove_task(i + TASKID)
	}
}

  • +
  • -
  • 1


#644055 [ROZWIĄZANE] Jak wymusić zmienie broni graczowi?

Napisane przez Puchate w 19.06.2014 14:10

engclient_cmd(id, "weapon_ak47")

 

 


  • +
  • -
  • 1


#644033 Respawn z daną ilością żyć

Napisane przez Puchate w 19.06.2014 12:34

Nabazgrałem na szybko coś takiego 

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Młody"

#define MAXLIFES 3
#define TASKID 943

new lifes[33]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_event("HLTV", "event_hltv", "a", "1=0", "2=0")
	
	RegisterHam(Ham_Killed, "player", "client_killed", 1)
}

public client_killed(id) {

	set_task(3.0, "client_respawn", TASKID + id)	
}

public client_respawn(TASK) {

	new id = TASK - TASKID 
	if(!is_user_alive(id) && is_user_connected(id) && lifes[id] < MAXLIFES) {
		ExecuteHamB(Ham_CS_RoundRespawn, id)
		lifes[id]++
	}	
}

public event_hltv() {
	
	for(new i = 0; i < 33; i++) {
		lifes[i] = 0
		remove_task(i + TASKID)
	}
}

Nietestowane ale powinno działać ... raczej :P


  • +
  • -
  • 1


#644028 [ROZWIĄZANE] Kosa 1/1 PPM na drużyne

Napisane przez Puchate w 19.06.2014 12:11

 

 

Zadanie 999 dmg wcale nie spowoduje natychmiastowego kill'a tylko zadanie 999 dmg a to jest mega różnica

Spowoduje - kwestia wywołania śmierci entity zajmie się już engine. Entity musiałoby mieć powyżej 999 HP aby to nie zadziałało poprawnie.

 

 

 

Naprostuje twój tok myślenia.
• Zmieniłeś parametr funkcji to zwróć HAM_HANDLED (SetHamParamString/TraceResult/Vector/Entity/Integer/Float)
• Zmieniłeś dane zwracane przez funkcję użyj HAM_OVERRIDE (SetHamReturnString/TraceResult/Vector/Entity/Integer/Float)

 

Jak widać prosty angielski niekoniecznie dla każdego jest prosty, więc może od razu przetłumaczę na język polski:

 

HAM_OVERRIDE - Nadpisuje zwracane wartości przez funkcję własnymi, ale nie blokuje dalszego wykonywania wywołania funkcji
HAM_SUPERCEDE - Nadpisuje zwracane wartości przez funkcję własnymi oraz blokuje dalsze wywoływanie funkcji

 

Kod który pokazałeś doskonale pokazuje że nie potrafisz skorzystać nawet z dokumentacji a chcesz pouczać innych. Dla przykładu 

 

 

&& ent == attacker)

 

Ahh znów ten angielski 

 

 

/**
     * Description:        Usually called whenever an entity takes any kind of damage.
     *                    Inflictor is the entity that caused the damage (such as a gun).
     *                    Attacker is the entity that tirggered the damage (such as the gun's owner).
     * Forward params:    function(this, idinflictor, idattacker, Float:damage, damagebits);
     * Return type:        Integer.
     * Execute params:    ExecuteHam(Ham_TakeDamage, this, idinflictor, idattacker, Float:damage, damagebits);
     */
    Ham_TakeDamage,

 

Idziemy dalej 

 

 

            if(get_pdata_float(get_pdata_cbase(attacker,373,5),47,4) > 1.0)
 

 

Czemu używasz kodów których nie rozumiesz, które po prostu znalazłeś w internecie?

 

 

 

W 100% to nie masz pojęcia o czym piszesz.


  • +
  • -
  • 1


#643854 Problem z ustawieniem nowych modeli "WIEZNIA" "STRAZNIKA" [JB]

Napisane przez Puchate w 17.06.2014 21:35

Musisz zmienić model na ten z jbextreme a następnie dla terrorystów na spawnie doklepać:

	set_user_info(id, "model", "jbemodel")
	set_pev(id, pev_body, 2)

dla CT

	set_user_info(id, "model", "jbemodel")
	set_pev(id, pev_body, 3)

z użyciem fakemeta. Nie testowałem ale powinno działać.


  • +
  • -
  • 1


#643840 Gracze piszą na U@ jako Admin ... :/

Napisane przez Puchate w 17.06.2014 20:35

 

 

 wgrałem tylko "zielone U@" ...

To szukaj tutaj problemu.


  • +
  • -
  • 1


#643832 TimeStamp Rank - ranking na czas (dni) zamiast ilości wpisów

Napisane przez Puchate w 17.06.2014 19:49

Standardowo wbudowane statystyki w AMXMODX tworzą listę rankingową graczy na serwerze, dopisując każdego unikalnego gracza do tej listy. Czyszczenie spisu graczy następuje po przekroczeniu danej ilości wpisów wg ustawienia cvara csstats_maxsize. Domyślnie wartość wynosi 3500, konfiguruje się ją w addons/amxmodx/configs/amxx.ini na końcu pliku.

 

Jakie to ma wady?

 

Z tego rozwiązania korzystają wszystkie serwery z AMXX, jednak system ten powoduje kilka problemów:

  • ciężko przewidzieć ilość graczy w danym okresie miesiąca, więc np. chcąc mieć listę resetowaną co miesiąc trzeba robić to ręcznie oraz csstats_maxsize ustawić na wysoką wartość. W przypadku dużej ilości wpisów do rankingu serwer zdecydowanie dłużej się ładuje.
  • losowe restarty rankingu - nie mamy bezpośredniego wpływu na ilość graczy która przybędzie na nasz serwer, więc może się zdarzyć podczas jakiegoś "boomu" ze ranking zrestartuje się wbrew zasadom przyjętym na serwerze
  • męczące jest w pełni pilnowanie daty - trzeba wejść na serwer, zapisać listę top15 jako screenshota i zmienić cvar

Z pomocą przychodzi TimeStamp Rank

 

Funkcjonalności:

  • pilnuje automatycznych restartów rankingu wg ilości dni ustawianych za pomocą cvara csstats_days
  • zapisuje do pliku tekstowego toplistę spod /top15 przy każdym restarcie, w osobnych plikach w katalogu cstrike (wł/wył)
  • przy wpisaniu /rank powiadamia graczy co ile następuje reset rankingu oraz kiedy ostatnio był robiony (wł/wył)

rank_1.jpg

 

 

CVAR:

csstats_days 30 // co ile dni restartowac rank?
csstats_savetofile 1 // czy zapisywac top15 do pliku?
csstats_info 1 // czy powiadamiac graczy o dacie restartu?

Plugin dostępny w wersji polskiej oraz angielskiej.

 

Aktualna wersja: 1.1

 

 

 

Załączone pliki


  • +
  • -
  • 4