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
 

Menel - zdjęcie

Menel

Rejestracja: 13.05.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 26.05.2014 20:10
-----

#639612 Dodatkowe hp dla wszystkich graczy.

Napisane przez BlackPerfum w 20.05.2014 22:07

Hahahahah ja się akurat nie raz z takimi przypadkami spotakłem tzn. jak ktoś wspaniałomyślny napisał "nie specjalnie" irracjonalny plugin który pięknie eliminuje działanie innych pluginów w sposób nie korzystny dla serwera (no bardziej dla graczy) xD Wiem pewnie dla ciebie to jest skrajność i nawet na taki plugin byś nie popatrzył ale różne rzeczy ludzie piszą

 

Mam takie pytanie benio dlaczego zawsze jak mówię na tym forum o skrajności to ktoś mnie obrazkiem obdarowywuje? - Świetna fota :D


  • +
  • -
  • 1


#639604 Dodatkowe hp dla wszystkich graczy.

Napisane przez Gość w 20.05.2014 21:12

Dodam jeszcze że jeśli inny plugin nie ingeruje w pev_max_health

Miejscem pluginu, który modyfikuje maksymalne punkty życia (MHP) i nie modyfikuje pev_max_health, jest /dev/null.
Obecność jakiegokolwiek pluginu, który działa w ten sposób sprawia, że wirusowo, żaden inny, który modyfikuje MHP, nie będzie działał poprawnie.

 

Pisanie pluginu, który z założenia ma być niekompatybilny z innymi jest irracjonalne, tak samo jak pisanie w założeniu, że taki plugin ma jakiekolwiek szanse się pojawić na serwerze.

A tworzenie pluginu, który ma celowo być niekompatybilny z innymi, gdyż koegzystencja z innymi pluginami działającymi w ten sam sposób jest niemożliwa nasuwa mi tylko jeden wizerunek:

Spoiler

 

To tak jakbyś napisał plugin, który wyłącza wszystkie inne pluginy, gdyż istnieje możliwość, że jakiś inny plugin wyłączy jego samego.

 

Pisanie pluginów w ten sposób sprawia, że potem wgranie innych powoduje problemy, które nie powinny mieć absolutnie miejsca.

Dlatego należy pisać pluginy poprawnie i dlatego Twój pomysł jest nie tylko nie trafiony, ale i niebezpieczny dla stabilności serwera.

Każdorazowo, pisząc plugin, którego używanie eliminuje możliwość używania jakiegokolwiek innego pluginu czy modyfikacji modyfikującej MHP, przyczyniasz się do wielogodzinnych udręk niedoświadczonych adminów, którzy Twój plugin wgrają na serwer i setek graczy, którzy na takim serwerze odczują boleśnie Twoje irracjonalne myślenie, a w ostateczności przyczynisz się do kolejnych, zupełnie zbędnych i bezwartościowych tematów na AMXX.pl

 

353-404-large.jpg

Zachowaj czystość. Nie zaśmiecaj forum. Nie pisz takich pluginów.




#639584 Dodatkowe hp dla wszystkich graczy.

Napisane przez BlackPerfum w 20.05.2014 19:54

Benio dlatego napisałem:

jeśli w żadnym innym pluginie nie zwiększasz max hp wynosi:

1. Max hp ( standardowa ilość hp z jaką się respisz/do jakiej mogą cię zleczyć automaty itd ) 100
2. Max hp ( wyznaczona przeze mnie ) 115

 

 

Dodam jeszcze że jeśli inny plugin nie ingeruje w pev_max_health i podmieni nasze hp na starcie rundy w późniejszym evencie to nadal wszystko będzie niekompatybilne niestety. Dlaczego? Bo wtedy musieli byśmy uznać iż to podmienione hp jest maksymalną ilością a pev_max_health będzie posiadało stare i oto w taki sposób bedziemy się rodzic z ponad 100% hp :(


  • +
  • -
  • 2


#639563 Dodatkowe hp dla wszystkich graczy.

Napisane przez Gość w 20.05.2014 18:00

Takie ustawianie maksymalnego poziomu życia sprawi, że plugin będzie niekompatybilny z innymi pluginami, czy modami (np. popularnym BF2).
Obok liczby aktualnych punktów życia każdego gracza (pev_health), każdy gracz posiada także, a jakże… maksymalną liczbę punktów życia, czyli pev_max_health!
 
Użycie tej, dedykowanego właśnie temu zabiegowi, zmiennej, nie tylko sprawi, że Twój plugin będzie działał razem z innymi ale także oszczędzi Ci tworzenia na nowo czegoś, co już jest zrobione, mianowicie pev_max_health!
Mało tego, obliczenie procent punktów życia danego gracza nie będzie stanowiło żadnego problemu:
 

new Float:hp, Float:max_hp;

pev(id, pev_health, hp);
pev(id, pev_max_health, max_hp);

new procent_hp = floatround(hp / max_hp * 100); // czyż nie prościej?

PS Pierwszy raz zalinkowałem nasze forumowe pevresearch  :)




#638926 Dodatkowe hp dla wszystkich graczy.

Napisane przez BlackPerfum w 17.05.2014 23:35

Dżizys :D

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <fakemeta>
#include <colorchat>
#include <engine>

#define TASK_GREET 240

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

#define FLAGA_VIPA ADMIN_LEVEL_H
new HudObj

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    HudObj = CreateHudSyncObj()
    RegisterHam(Ham_Spawn,"player","Spawn",1)
}

public client_connect(id)	set_task(15.0, "przywitanie", id+TASK_GREET, "", 0, "a", 1)

public client_PreThink(id)
{
	static Float:hp
    if(is_user_alive(id))
    {
        pev(id,pev_health,hp)
        set_hudmessage(0, 255, 0, 0.02, 0.23, 0, 0.0, 0.3, 0.0, 0.0);
        ShowSyncHudMsg(id, HudObj, "[Zycie : %i | %i%%]^n[Fragi: %i]^n[VIP: %s]", hp, floatround(hp/1.5), get_user_frags(id), (get_user_flags(id) & FLAGA_VIPA) ? "Tak" : "Nie");
    }
    else
    {
        set_hudmessage(255, 0, 0, 0.02, 0.20);
        ShowSyncHudMsg(id, HudObj, "Nie zyjesz!");
    }
    return true;

}

public przywitanie(id)
{
    id-=TASK_GREET
    
    new name[32]
    get_user_name(id,name,31)
    
    ColorChat(id,  GREEN, "[INFO]^x01 Witaj %s na serwerze^x04 4FuN^x01 BETA", name);
}

public Spawn(id)	set_pev(id,pev_health,150.0)

Nie prościej ?


  • +
  • -
  • 1


#638910 Dodatkowe hp dla wszystkich graczy.

Napisane przez UTeam w 17.05.2014 21:42

A to nie wiem zawsze myslalem ze typ bool przyjmuje tylko dwie wartosci true i false (1/0).

Blad masz pewnie w tym "floatround(hp/maksymalne_zdrowie_gracza[id]*100",ktoras ze zmiennych przyjmuje wartosc 0 i przy mnozeniu przez 0 zawsze masz 0.




#638901 Dodatkowe hp dla wszystkich graczy.

Napisane przez UTeam w 17.05.2014 21:10

new bool:maksymalne_zdrowie_gracza[33];

 

zmien moze na

 

new maksymalne_zdrowie_gracza[33];




#638872 Dodatkowe hp dla wszystkich graczy.

Napisane przez BlackPerfum w 17.05.2014 19:44

Gdzies kiedys znalazlem temat w ktorym bylo napisane ze jezeli dziala sie na graczach tak jak tutaj dodaje sie hp lepiej sprawdzic czy gracz zyje.
Poniewaz inny plugin moze zabic gracza od razu na spawnie (nie wiadomo jakie pluginy ma kolega) a to jest tylko jeden warunek,ktory nie zaszkodzi a napewnp pomoze

Tak zgadzam się inny plugin może zabić ale to niczego nie zmienia na szczęście :D

 

Zacznijmy od tego że post w ham'ie jest wykonywany w trakcie realnego respienia (może nawet chwilę przed) ale wszystkie dane już wskazują na to że gracz żyje.

Teraz nie ważne jakim sposobem zabijesz gracza to nadasz mu ustawienia martwego gracza (pare tam flag + wyzerowania niektórych wartości nie mam zamiaru ich wymieniać ;D) dlatego nic się nie stanie jak ustawisz mu te 115 hp (tym sposobem co przedstawiłem) bo i tak go nie ozywisz tym chyba nawet o tym nie przyjdzie pakiet do klienta ale nie sprawdzałem bo nie było potrzeby

 

A poza tym to 99% pluginów operuje na pre spawn'ie (ostatni argument przyjmuje domyślna wartość a zatem pre) i jeśli tam zabijesz gracza to post się nie wykona a bynajmniej nie w ham'ie ;D

Wyjątkiem tu by było gdybyś zabił gracza po cichu (zabił nie sprawił by wyglądał jak martwy) ale tak by tego ham nie zobaczył (nwm dokładnie po czym ham to sprawdza gdyz nigdy tego nie sprawdzałem) ale wątpię by standardowe moduły na to pozwalały

 

UTeam mega rada na przyszłość:

"Nie musisz robic zmiennej globalnej, to zrób statyczną. Nie musisz robić zmiennej statycznej to zrób lokalną. (No nie zawsze jak masz robić tablicę o 9098609786507 elementach to walnij sobie jakiegoś globalnego buffora zawsze się przyda) Nie musisz robić zmiennej lokalnej to zrób stałą."


  • +
  • -
  • 1


#638862 Dodatkowe hp dla wszystkich graczy.

Napisane przez UTeam w 17.05.2014 19:08

hp = get_user_health(id) czyli aktualne hp gracza

max_hp (jezeli inne pluginy nie zmieniaja ci hp nie dodaja za killa itp, to pobierasz to w spawn) = jezeli nie zmienia to wlasnie to jest poczatkowe hp na respie




#638818 Dodatkowe hp dla wszystkich graczy.

Napisane przez UTeam w 17.05.2014 16:49

get_user_health(id)




#638850 Dodatkowe hp dla wszystkich graczy.

Napisane przez UTeam w 17.05.2014 18:13

 

a to akurat nie ma sensu co za różnica czy żyje czy nie? Ważne że jest podłączony i jest respiony a pozatym to jest event post czyli is_user_alive zawsze powinno zwrócić true

Gdzies kiedys znalazlem temat w ktorym bylo napisane ze jezeli dziala sie na graczach tak jak tutaj dodaje sie hp lepiej sprawdzic czy gracz zyje.

Poniewaz inny plugin moze zabic gracza od razu na spawnie (nie wiadomo jakie pluginy ma kolega) a to jest tylko jeden warunek,ktory nie zaszkodzi a napewnp pomoze :)

 

http://amxx.pl/topic...e-zycie-gracza/

http://amxx.pl/topic...-procentowe-hp/

 

Z tym to zrobisz




#638822 Dodatkowe hp dla wszystkich graczy.

Napisane przez UTeam w 17.05.2014 17:01

new max_hp[33];

 

na koncu w spawn daj

max_hp[id] = get_user_health(id);

 

jezeli masz jakis plugin ktory dodaje hp za killa czy tam heda czy w ogóle za cos innego to zrob task i tam bedziesz musial sprawdzac max_hp jezeli bedzie wieksze od tego co bylo na poczatku aby procenty sie zgadzaly




#638826 Dodatkowe hp dla wszystkich graczy.

Napisane przez BlackPerfum w 17.05.2014 17:12

Przy dodawaniu hp dla gracza sprawdzilbym czy on zyje aby uniknac crashow

a to akurat nie ma sensu co za różnica czy żyje czy nie? Ważne że jest podłączony i jest respiony a pozatym to jest event post czyli is_user_alive zawsze powinno zwrócić true

A jak teraz pobrać max_hp ? Bo chcę zrobić pozycję w hud:

jeśli w żadnym innym pluginie nie zwiększasz max hp wynosi:
1. Max hp ( standardowa ilość hp z jaką się respisz/do jakiej mogą cię zleczyć automaty itd ) 100
2. Max hp ( wyznaczona przeze mnie ) 115
  • +
  • -
  • 1


#638636 Dodatkowe hp dla wszystkich graczy.

Napisane przez BlackPerfum w 16.05.2014 20:15

Czy jest możliwość stworzenia pluginu, który będzie dawał każdemu graczowi +15 hp na początku rundy?

Tak

 

 

To dosłownie 1 min roboty.

#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>

public plugin_init() 
{
	register_plugin("Zjem", "Ci", "Noge")
	RegisterHam(Ham_Spawn,"player","Spawn",1)
}

public Spawn(id) set_pev(id,pev_health,115.0)

  • +
  • -
  • 1


#638395 Tworzenie natywów w pluginie

Napisane przez Drago36 w 14.05.2014 19:03

Te umiejętności można nawet zrobić w jednym pluginie, wystarczy dodać zmienne które aktywują się przy danej ilości fragów/rangi.

Dodaj plugin .sma, którego chcesz edytować.


  • +
  • -
  • 1