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
 

Zdjęcie

Jakie Eventy ?Czy są one potrzebne ?


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
12 odpowiedzi w tym temacie

#1 dawidxi

    Profesjonalista

  • Zbanowany

Reputacja: 9
Nowy

  • Postów:216
  • Lokalizacja:Polska
Offline

Napisano 08.02.2014 13:47

Witam otóż mam do napisania pewien plugin typowy pod mod JailBreak.Myślę że jest on dosyć prosty w wykonaniu jednak nie wiem jak go zacząć pisać.Otóż plugin miałby za zadania w każdej nowej rundzie wyświetlać na górze ekranu napis np.Dzisiaj jest poniedziałek a w następnej rundzie np.Dzisiaj jest wtorek itd.

No i mój główny problem polega na tym że nie wiem jakiego tu eventu (wydarzenia) uzyć czy jest to w ogóle konieczne.Póki co znalazłem taki event lecz nie wiem czy spełni on swoją rolę jeśli chodzi o ten plugin.

Chodzi mi o to:

register_logevent( "RoundStart", 2, "1=Round_Start" );

 

Bardzo proszę o pomoc w tym temacie.



#2 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 08.02.2014 14:04

register_logevent("EventRoundStart", 2, "1=Round_Start");
register_event("HLTV",  "EventNewRound", "a", "1=0", "2=0");

  • +
  • -
  • 0

#3 dawidxi

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:216
  • Lokalizacja:Polska
Offline

Napisano 08.02.2014 14:09

A skąd Ty masz te funkcje z jakiej strony ?


Użytkownik dawidxi edytował ten post 08.02.2014 14:11


#4 0-0-0

    ● 600 punktów ostrzeżeń

  • Power User

Reputacja: 222
Profesjonalista

  • Postów:599
  • Imię:___
  • Lokalizacja:___
Offline

Napisano 08.02.2014 14:20

http://amxx.pl/topic/1680-eventy/


  • +
  • -
  • 0
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [4FUN][Ruletka]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [DM]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [FFA]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Only Dust2]
b_350_20_692108_381007_FFFFFF_000000.png - CS:GO [Call of Duty]

#5 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 08.02.2014 14:25

z pluginów ;)


  • +
  • -
  • 0

#6 dawidxi

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:216
  • Lokalizacja:Polska
Offline

Napisano 08.02.2014 14:32

Czyli mój plugin miałby wyglądać mnie wiecej tak:

 

/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
 
 
#define PLUGIN "Huddni"
#define VERSION "1.0"
#define AUTHOR "Proziom"
 
 
public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_logevent( "RoundStart", 2, "1=Round_Start" );
register_event("HLTV",  "EventNewRound", "a", "1=0", "2=0");
  
} 
public RoundStart( )
 
//i tutaj wpisać instrukcję która będzie pokazywała graczowi co rundę inny napis tylko jak powiedzieć kompilatorowi że to jest druga runda  więc wyświetl napis np.Dzisiaj jest wtorek itd. ?
 
Ale czy muszą być te warunki w drugim evencie do czego one są potrzebne oraz czy na serwerze musi być HLTV który właśnie będzie sprawdzał czy jest nowa runda ?

Użytkownik GwynBleidD edytował ten post 08.02.2014 15:00


#7 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 08.02.2014 15:46

Tylko jeden z tych eventów wystarczy.

 

Co do pytania. Tworzysz zmienną globalną, którą zwiększasz co rundę. Potem za pomocą

switch(zmienna)

ustalasz co ma się wyświetlić.

 


  • +
  • -
  • 0

#8 dawidxi

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:216
  • Lokalizacja:Polska
Offline

Napisano 08.02.2014 17:27

A mógłbyś mi napisać w jaki sposób zwiększać tą zmienną globalną co rundę tzn. przypuszczam że za pomocą inkrementacji można to zrobić ale nie wiem jak bym to musiał zapisać ?



#9 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

  • Postów:1 258
  • GG:
  • Lokalizacja:AMXX
Offline

Napisano 08.02.2014 17:57

przy każdorazowym starcie nowej rundzy zmienna przyjmuję wartość o jeden większy -

zmienna++

  • +
  • -
  • 0

"Żaden etyczny inżynier oprogramowania nie zgodzi się napisać procedury zniszczBagdad. Jego poczucie etyki domaga się, aby napisał procedurę zniszczMiasto, a Bagdad przekazał jako parametr" - Nathaniel Borenstein.


#10 dawidxi

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:216
  • Lokalizacja:Polska
Offline

Napisano 08.02.2014 18:09

Dobra ale to mam zwiększyć od razu przy definicji tej zmiennej czy jakoś w pętli ??



#11 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 08.02.2014 20:47

#include <amxmodx>
#include <amxmisc>

new const g_sDayName[][] = 
{
	"poniedzialek",
	"wtorek",
	"sroda",
	"czwartek",
	"piatek",
	"sobota",
	"niedziela"
}

new g_iDay;

public plugin_init()
{
	register_plugin("NewPlugin", "v1.01", "Grzyboo")
	
	register_logevent( "RoundStart", 2, "1=Round_Start" );
}

public RoundStart()
{
	++g_iDay;
	
	if(g_iDay > 6)
		g_iDay = 0;
	
	set_hudmessage(0, 255, 0, 0.01, 0.25, 0, 1.5, 3.0, 1.0, 1.0, 5);
	show_hudmessage(0, "Dzisiaj jest: %s", g_sDayName[g_iDay]);
}

  • +
  • -
  • 0

#12 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 08.02.2014 21:49

Na początku wypadało by do zmiennej przypisać -1, a także robić to w momencie restartu mapy, dodatkowo

public RoundStart()
{
    ++g_iDay;
    
    set_hudmessage
(0, 255, 0, 0.01, 0.25, 0, 1.5, 3.0, 1.0, 1.0, 5);
    show_hudmessage(0, "Dzisiaj jest: %s", g_sDayName[g_iDay % 7]);
}

a nawet i tak

public RoundStart()
{
    set_hudmessage(0, 255, 0, 0.01, 0.25, 0, 1.5, 3.0, 1.0, 1.0, 5);
    show_hudmessage(0, "Dzisiaj jest: %s", g_sDayName[(++g_iDay) % 7]); // prawdopodobnie można nawet pominąć nawiasy
}

A czemu tak? Zmienną będzie można wykorzystać także do pokazania ile dni minęło.


  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#13 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 08.02.2014 23:30

Cóż, jest sporo sposobów. Jednak człowiekowi, który pyta o takie rzeczy warto wytłumaczyć w najbardziej łopatologiczny sposób. Nawet jestem skłonny napisać += 1 zamiast inkrementacji.


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych