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

zmiana czasu wyswietlania napisu


  • Zamknięty Temat jest zamknięty
10 odpowiedzi w tym temacie

#1 'eXe'

    Profesjonalista

  • Zbanowany

Reputacja: 9
Nowy

  • Postów:164
  • GG:
  • Imię:PatryQ
  • Lokalizacja:Czeladz
Offline

Napisano 16.08.2014 14:16

Witam,

 

Jak zrobic w tym pluginie aby ten napis pojawial sie co 3 rundy a nie co kazdą

Interp wszystkich graczy zostal zmieniony na 0.01.

#include <amxmodx>
#include <amxmisc>
#include <colorchat>

#define PLUGIN "Interp Changer"
#define VERSION "1.4"
#define AUTHOR "kEO."

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "interp_round", "a", "1=0", "2=0") 
register_clcmd("say /interp player", "admin")
register_clcmd("say /interp", "interp")
register_clcmd("say /interpall", "interpall")
register_clcmd("say_team /interp player", "admin")
register_clcmd("say_team /interp", "interp")
register_clcmd("say_team /interpall", "interpall")
register_clcmd("player", "admin")
register_clcmd("interp", "interp")
register_clcmd("interpall", "interpall")
set_task(60.0, "interpalltask", _, _, _, "b") 
}
public client_connect(id)
{
new name[32] ;
console_cmd (id,"rate 25000")
server_cmd("wait")
console_cmd (id,"cl_updaterate 101")
server_cmd("wait")
console_cmd (id,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (id,"ex_interp 0.01")
get_user_name(id,name,31) 
}
public interp_round()
{
console_cmd (0,"rate 25000")
server_cmd("wait")
console_cmd (0,"cl_updaterate 101")
server_cmd("wait")
console_cmd (0,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (0,"ex_interp 0.01")
ColorChat (0, GREEN, "Interp wszystkich graczy zostal zmieniony na 0.01.")
}
public interp(id)
{
console_cmd (id,"rate 25000")
server_cmd("wait")
console_cmd (id,"cl_updaterate 101")
server_cmd("wait")
console_cmd (id,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (id,"ex_interp 0.01")
}
public interpall(id)
{
if(is_user_admin(id))
{
new players[32],count ;
new name[32] ;
get_players(players,count)
console_cmd (0,"rate 25000")
server_cmd("wait")
console_cmd (0,"cl_updaterate 101")
server_cmd("wait")
console_cmd (0,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (0,"ex_interp 0.01")
get_user_name(id,name,31) 
client_print (0, print_chat, "Interp wszystkich graczy zostal zmieniony, przez %s na 0.01.", name)
}
else
{
client_print (id, print_chat, "Komenda niedostepna dla zwyklego gracza.")
}
}
public admin(id)
{
if(get_user_flags(id) & ADMIN_BAN)
{
new arg1[32]
read_argv(1, arg1, 31)
new player = cmd_target(id, arg1, 1)
console_cmd (id,"rate 25000")
server_cmd("wait")
console_cmd (id,"cl_updaterate 101")
server_cmd("wait")
console_cmd (id,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (id,"ex_interp 0.01")
}
else client_print(id,print_chat,"Tylko admin moze uzywac tej komendy")
}
public interpalltask(id)
{
new players[32],count ;
get_players(players,count)
console_cmd (id,"rate 25000")
server_cmd("wait")
console_cmd (id,"cl_updaterate 101")
server_cmd("wait")
console_cmd (id,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (id,"ex_interp 0.01")
}


#2 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

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

Napisano 16.08.2014 14:30

Do funkcji hltv dodaj zmienna runda od 0, jeżeli kolejna runda dzieli się przez 3 z resztą zero, wyświetl napis.
  • +
  • -
  • 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.


#3 'eXe'

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:164
  • GG:
  • Imię:PatryQ
  • Lokalizacja:Czeladz
Offline

Napisano 16.08.2014 14:31

Do funkcji hltv dodaj zmienna runda od 0, jeżeli kolejna runda dzieli się przez 3 z resztą zero, wyświetl napis.

 

Nie rozumiem do końca, mógłbyś mi napisać na jaką liczbę muszę tutaj zmienić, aby się pojawiało co 3 rundy?

"1=0", "2=0"



#4 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

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

Napisano 16.08.2014 14:40

1. Stwórz zmienną globalną o jakiejś nazwie.

2. Masz tę funkcję

register_event("HLTV", "interp_round", "a", "1=0", "2=0")

Jako, że ona się wykonuje co rundę, będzie ona nam liczyła, która jest akurat runda, w tym celu przy każdym jej wykonaniu ( wykonuje się przy evencie hltv, czyli nowej rundzie ), zwiększymy ją o jeden by właśnie sprawdzić którą rundę akurat mamy.

3. Teraz musimy sprawdzić, czy runda, którą akurat mamy, jest podzielna na 3. Posłuży nam do tego operator %, który sprawdzi, czy zostaje jakaś reszta z dzielenia. Jak to zrobimy?

if(zmienna%3)

( bo co 3 rundy coś ma się stać, zmienna "zmienna" musi być wielokrotnością 3, raczej to rozumiesz?)

4. Jeżeli warunek się spełni wyświetl tę wiadomość

ColorChat (0, GREEN, "Interp wszystkich graczy zostal zmieniony na 0.01.")

Chyba dość jasno wytłumaczyłem?


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


#5 'eXe'

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:164
  • GG:
  • Imię:PatryQ
  • Lokalizacja:Czeladz
Offline

Napisano 16.08.2014 16:29

No właśnie nadal nie rozumiem ;(

Mógłbyś mi podać cały ten kod?



#6 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

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

Napisano 16.08.2014 16:33

Kod Ci podałem dosłownie na ręce, Tobie tylko pozostało inteligentnie wdrożyć te fragmenty w Twój plik źródłowy.

 

Wyślij kod, który do tej pory zrobiłeś SAM a ja Ci pomogę w dalszych częściach i/lub wytłumaczę co jest źle.

 

Wszędzie tylko gotowce i gotowce  :crazy:


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


#7 'eXe'

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:164
  • GG:
  • Imię:PatryQ
  • Lokalizacja:Czeladz
Offline

Napisano 16.08.2014 16:49

Nie wiem czy jest sens podania kodu, bo probowalem to ogarnac, lecz mi nie wychodzi bawiłem się liczbami "1=0", "2=0" 

np. 3=0 "9=0", czasami mi kilka wiadomosci tych samych na raz wyskakiwaly w kazdej rundzie, czasami w ogole..

Co do tej zmiennej jak to ogarnac?

 



#8 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

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

Napisano 16.08.2014 16:53

Nie, rejestracji funkcji HLTV nie ruszaj.

 

To, co chcesz zrobić odbywa się w niej.

Tworzysz zmienną globalną ( chyba wiesz co to jest )

Na początku funkcji HLTV robisz zmienna++, co będzie oznaczało zwiększanie wartości tejze zmiennej o 1.

I potem dodajesz ten warunek o którym pisałem przed funkcją colorchat. Czy jest sens podawania kodu źródłowego? Tak, człowiek uczy się na błędach, chyba lepiej jest się dowiedzieć, jakie się robi błędy niż ciągle żyć w niewiedzy i prosić o kolejne gotowce. Czasem warto jest się nauczyć czegoś dla siebie. Przemowa ala #SOKRATES

public interp_round()
{
console_cmd (0,"rate 25000")
server_cmd("wait")
console_cmd (0,"cl_updaterate 101")
server_cmd("wait")
console_cmd (0,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (0,"ex_interp 0.01")
ColorChat (0, GREEN, "Interp wszystkich graczy zostal zmieniony na 0.01.")
}

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


#9 'eXe'

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:164
  • GG:
  • Imię:PatryQ
  • Lokalizacja:Czeladz
Offline

Napisano 16.08.2014 16:59

Niestety, nie jestem obcykany w sprawach pluginów i tego nie ogarniam.

Mozesz mi to napisac od poczatku do konca, krok po kroku?



#10 Wielkie Jol

    REPREZENTUJE SIEBIE I CAŁĄ GALAKTYKĘ

  • Support Team

Reputacja: 683
Wszechmogący

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

Napisano 16.08.2014 17:03

#include <amxmodx>
#include <amxmisc>
#include <colorchat>
 
#define PLUGIN "Interp Changer"
#define VERSION "1.4"
#define AUTHOR "kEO."
 
new zmienna; // REJESTRUJEMY NASZA ZMIENNA GLOBALNA
 
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "interp_round", "a", "1=0", "2=0") // <---- Ta funkcja sluzy do wyswietlania naszej wiadomosci. Sprawimy, by wyswietlala sie co 3 rundy.
register_clcmd("say /interp player", "admin")             /// A WIEC PRZECHODZIMY DO TEJ FUNKCJI. WYKONUJE SIE ONA CO RUNDE, WIEC W NIEJ BEDZIEMY ZWIEKSZAC NASZA ZMIENNA
register_clcmd("say /interp", "interp")
register_clcmd("say /interpall", "interpall")
register_clcmd("say_team /interp player", "admin")
register_clcmd("say_team /interp", "interp")
register_clcmd("say_team /interpall", "interpall")
register_clcmd("player", "admin")
register_clcmd("interp", "interp")
register_clcmd("interpall", "interpall")
set_task(60.0, "interpalltask", _, _, _, "b") 
}
public client_connect(id)
{
new name[32] ;
console_cmd (id,"rate 25000")
server_cmd("wait")
console_cmd (id,"cl_updaterate 101")
server_cmd("wait")
console_cmd (id,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (id,"ex_interp 0.01")
get_user_name(id,name,31) 
}
public interp_round() // <---------------- JEST ONA TUTAJ
{
zmienna++; // <---------------- ZWIEKSZAMY NASZA ZMIENNA O JEDEN
console_cmd (0,"rate 25000")
server_cmd("wait")
console_cmd (0,"cl_updaterate 101")
server_cmd("wait")
console_cmd (0,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (0,"ex_interp 0.01")
if(zmienna%3) // SPRAWDZAMY CZY NASZA ZMIENNA, KTORA JUZ SIE ZWIEKSZYLA JEST WIELOKROTNOSCIA 3, JEZELI TAK, RESZTA Z DZIELENIA BEDZIE 0, A WIEC WARUNEK SIE WYKONA
ColorChat (0, GREEN, "Interp wszystkich graczy zostal zmieniony na 0.01.") // WSZYSTKO OK. WYSWIETLAMY TEKST.
}
public interp(id)
{
console_cmd (id,"rate 25000")
server_cmd("wait")
console_cmd (id,"cl_updaterate 101")
server_cmd("wait")
console_cmd (id,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (id,"ex_interp 0.01")
}
public interpall(id)
{
if(is_user_admin(id))
{
new players[32],count ;
new name[32] ;
get_players(players,count)
console_cmd (0,"rate 25000")
server_cmd("wait")
console_cmd (0,"cl_updaterate 101")
server_cmd("wait")
console_cmd (0,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (0,"ex_interp 0.01")
get_user_name(id,name,31) 
client_print (0, print_chat, "Interp wszystkich graczy zostal zmieniony, przez %s na 0.01.", name)
}
else
{
client_print (id, print_chat, "Komenda niedostepna dla zwyklego gracza.")
}
}
public admin(id)
{
if(get_user_flags(id) & ADMIN_BAN)
{
new arg1[32]
read_argv(1, arg1, 31)
new player = cmd_target(id, arg1, 1)
console_cmd (id,"rate 25000")
server_cmd("wait")
console_cmd (id,"cl_updaterate 101")
server_cmd("wait")
console_cmd (id,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (id,"ex_interp 0.01")
}
else client_print(id,print_chat,"Tylko admin moze uzywac tej komendy")
}
public interpalltask(id)
{
new players[32],count ;
get_players(players,count)
console_cmd (id,"rate 25000")
server_cmd("wait")
console_cmd (id,"cl_updaterate 101")
server_cmd("wait")
console_cmd (id,"cl_cmdrate 101")
server_cmd("wait")
console_cmd (id,"ex_interp 0.01")
}

  • +
  • -
  • 1

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


#11 'eXe'

    Profesjonalista

  • Autor tematu
  • Zbanowany

Reputacja: 9
Nowy

  • Postów:164
  • GG:
  • Imię:PatryQ
  • Lokalizacja:Czeladz
Offline

Napisano 16.08.2014 22:23

dzięki






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

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