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

Godzina z serwera


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

#1 Potatek

    Pomocny

  • Użytkownik

Reputacja: 2
Nowy

  • Postów:53
  • Lokalizacja:resp
Offline

Napisano 22.04.2010 13:28

Jak ustawić aby jakaś funkcja została wykonana o ustalonej godzinie? Np. od 4 do 8 rano grawitacja była by mniejsza (przykład)
  • +
  • -
  • 0

#2 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 22.04.2010 17:19

Na chłopski rozum, mogłoby to wyglądać tak:
(aczkolwiek nie sprawdzałem)
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Funkcja 8:00-10:00"
#define VERSION "1.0"
#define AUTHOR "AMXX.pl"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(1.0,"checker",_,_,_,"b")
}

public checker()
{
new timer[9]
new clock=get_time("%H",timer,8)

if(8<=clock<10)
{
funkcja()
}
}

public funkcja()
{
// Whatever u like
}

EDIT: W sumie lepiej będzie raz na rundę sprawdzać, niż raz na 1s ;P
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Funkcja 8:00-10:00"
#define VERSION "1.0"
#define AUTHOR "AMXX.pl"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "checker", "a", "1=0", "2=0")
}

public checker()
{
new timer[9]
new clock=get_time("%H",timer,8)

if(8<=clock<10)
{
funkcja()
}
}

public funkcja()
{
// Whatever u like
}

Użytkownik sbstn edytował ten post 22.04.2010 18:43

  • +
  • -
  • 1
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#3 Potatek

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:53
  • Lokalizacja:resp
Offline

Napisano 22.04.2010 20:18

A jeśli np miało być w konsoli wpisywana komenda np. o godzinie 5 w nocy na sayu informuje graczy że mamy właśnie tą godzine, jak powinien wyglądać kod ?

Użytkownik Potatek edytował ten post 22.04.2010 20:29

  • +
  • -
  • 0

#4 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 22.04.2010 20:51

A jeśli np miało być w konsoli wpisywana komenda np. o godzinie 5 w nocy na sayu informuje graczy że mamy właśnie tą godzine, jak powinien wyglądać kod ?

Hmm... Wiele sposobów jest moim zdaniem, ale ja przytoczę taki jeden (chociaż i tak nie mam warunków do sprawdzenia):
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "5 nad ranem"
#define VERSION "1.0"
#define AUTHOR "AMXX.pl"

new bool:zrobione

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_event("HLTV", "checker", "a", "1=0", "2=0")
zrobione=false
}

public checker()
{
new timer[9]
new clock=get_time("%H",timer,8)
if(clock==5 && zrobione==false)
{
funkcja()
}
}

public funkcja()
{
console_print(0,"*********************************")
console_print(0,"[AMXX] Jest godzina 5:00... Co tak wczesnie?!")
console_print(0,"*********************************")
zrobione=true
return PLUGIN_HANDLED
}


EDIT: Zapomniałem o minusach tego kodu. Przypuśćmy, że mapa właśnie się zaczęła. Jest godzina 4:50. Gramy 10min. I w konsoli wszystkim się pokazuje (plaplaplapla). Mapa trwa 20min (ex.). Na następnej mapce również pokaże (plaplaplapla). I tak aż do godziny 5:59. Reasumując to tłumaczenie, plugin działa non stop od godziny 5:00 do 5:59, raz na mapę ;)

Użytkownik sbstn edytował ten post 22.04.2010 20:55

  • +
  • -
  • 1
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#5 Potatek

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:53
  • Lokalizacja:resp
Offline

Napisano 22.04.2010 21:09

O kurde :/ Trzeba to jakoś zamknąć, nie może przez całą godzine pisać mi pewnej komendy... musi to zrobić raz
  • +
  • -
  • 0

#6 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 22.04.2010 21:25

O kurde :/ Trzeba to jakoś zamknąć, nie może przez całą godzine pisać mi pewnej komendy... musi to zrobić raz


Nie zrozumiałeś mnie. Co mapę od godziny 5:00 do 5:59 1 raz wywoła komendę!

EDIT:
Np.:
godz. 4:50 de_dust 2 ->funkcja nie działa (OFF)
godz. 5:00 de_dust -> funkcja wywoływana raz na mapę!
godz. 5:25 de_nuke -> funkcja wywoływana raz na mapę!
godz. 5:59 de_inferno -> funkcja wywoływana raz na mapę!
godz. 6:00 de_inferno -> OFF

Użytkownik sbstn edytował ten post 22.04.2010 21:35

  • +
  • -
  • 0
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#7 Potatek

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:53
  • Lokalizacja:resp
Offline

Napisano 22.04.2010 21:36

No właśnie... a to ma tylko raz ją wykonać w ciągu 5:00 a 5:59 a nie co mapę bo wykona ją 3 razy :/

EDIT: Po co jest: new bool:zrobione ?? Niezbyt rozumiem tą zmienną po co ona wogóle jest

Użytkownik Potatek edytował ten post 22.04.2010 21:39

  • +
  • -
  • 0

#8 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 22.04.2010 21:47

Bool:
Tzw. zmienna logiczna, która przechowuje tylko wartość true(1), lub false(0). Zazwyczaj używane do tego, żeby określić czy coś jest włączone, lub nie.
Deklaracja:

new bool:zmienna;

Scripting>Tutoriale>Zmienne- co i jak?

Jak napisane w poradniku @up, można ją porównać do przełącznika on/off. Poczytaj troszkę tutoriali! AMXX.pl ma nawet dobry zbiór!
  • +
  • -
  • 0
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#9 Potatek

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:53
  • Lokalizacja:resp
Offline

Napisano 22.04.2010 22:17

No nie ukrywam że w programowaniu jestem zielony ale staram się rozwijać i coś tworzyć. Dzięki za wyjaśnienie :)
Ale nadal nie wiem co zrobić by ta komenda była tylko jeden raz w ciągu godziny
  • +
  • -
  • 0

#10 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 22.04.2010 22:23

Zacznij od podstaw c++, a potem zacznij pawna... Bedzie Ci latwiej ogarnac.
@topic: nie da sie wywolac raz na godzine, chyba ze ustawisz czas mapy na 60min. funkcja 'public plugin_init' dziala zawsze po zmianie mapy.

Pozdrawiam, sbstn aka siwy. (Pisze z tel, wiec wybaczcie brak polskich znakow)
  • +
  • -
  • 0
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#11 Potatek

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:53
  • Lokalizacja:resp
Offline

Napisano 22.04.2010 22:39

Podstaw ucze się z praktyki, pomocy kolegów i czytaniu + analiza gotowców... Jak znajde czas to zobacze podstawy, w weekend zajme się tutorialami z forum. Hmm a może by tak zrobić żeby o godz 6 zmieniało zmienną na true. Jutro zobacze jak to w praktyce zadziała.

Dzięki za pomoc, można zamknąć
  • +
  • -
  • 0

#12 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 23.04.2010 07:03

Podstaw ucze się z praktyki, pomocy kolegów i czytaniu + analiza gotowców... Jak znajde czas to zobacze podstawy, w weekend zajme się tutorialami z forum. Hmm a może by tak zrobić żeby o godz 6 zmieniało zmienną na true. Jutro zobacze jak to w praktyce zadziała.

Dzięki za pomoc, można zamknąć

Jesli w tym kodzie uzyjesz plugin_init, to pamietaj ze funkcja bedzie wykonywana po zmianie mapy. Wiec musisz inaczej to wykombinowac... Nie mam pomyslu. (latwiej jest robic funkcje trwajace od czasu x do czasu x...)
«tel»
  • +
  • -
  • 0
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#13 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 23.04.2010 07:04

public checker()
{
new timer[9]
new hour = get_time("%H",timer,8)
new timerm[9]
new minut = get_time("%M",timerm,8)
if(hour==5 && minut==00 && zrobione==false)
{
funkcja()
}
}


albo w zasadzie, to powinno dać podobny efekt:
public checker()
{
new godzina, minuta
time(godzina,minuta)
if(godzina==5 && minuta==00 && zrobione==false)
{
funkcja()
}
}

  • +
  • -
  • 2

serwer-1.png
IP: ts3.cserwerek.pl


#14 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 23.04.2010 07:20

Najprostsze rozwiazania sa najlepsze! Nie pomyslalem zeby zdeklarowac minuty. dorzuc jeszcze %S jako sekunde i bedziesz mial dokladny plugin, bo moze sie zdarzyc, ze cala minute bedzie Ci funkcje wywolywac... Good Job!
  • +
  • -
  • 0
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#15 Potatek

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:53
  • Lokalizacja:resp
Offline

Napisano 23.04.2010 13:11

Dzięki wielkie

23 kwiecień 2010 - 14:38:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define PLUGIN "Funkcja 8:00-10:00"
#define VERSION "1.0"
#define AUTHOR "AMXX.pl"

new bool:zrobione

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
        set_task(1.0,"checker",_,_,_,"b")
	zrobione=false
}

public checker()
{
        new godzina, minuta
        time(godzina,minuta)
        if(godzina==15 && minuta==30 && zrobione==false)
        {
        funkcja()
        }
}

public funkcja()
{
        client_print(0, print_chat, "*******")
        client_print(0, print_chat, "15:30")
        client_print(0, print_chat, "*******")
        zrobione=true
        return PLUGIN_HANDLED
	
}

To jest poprawne? bo nie wyświetliło godziny :/ Chciałem zrobić test i nie działa :/

Użytkownik Potatek edytował ten post 23.04.2010 13:56

  • +
  • -
  • 0

#16 sbstn

    Wszechwidzący

  • Użytkownik

Reputacja: 67
Pomocny

  • Postów:274
  • Lokalizacja:Szczecin
Offline

Napisano 23.04.2010 14:54

1. Pamiętaj, że przed sprawdzeniem pluginu, zmień mapę!

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "15:30"
#define VERSION "1.0"
#define AUTHOR "AMXX.pl"

new bool:zrobione

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
zrobione=false
set_task(30.0,"checker",_,_,_,"b")
}

public checker()
{
new time_h[9]
new time_m[9]
new hour=get_time("%H",time_h,8)
new minutes=get_time("%M",time_m,8)

if(hour==15 && minutes==30 && zrobione==false)
{
funkcja()
return PLUGIN_CONTINUE
}
return PLUGIN_HANDLED
}

public funkcja()
{
client_print(0, print_chat, "*******")
server_cmd("wait")
client_print(0, print_chat, "15:30")
server_cmd("wait")
client_print(0, print_chat, "*******")
server_cmd("wait")
zrobione=true
return PLUGIN_CONTINUE
}


EDIT: Funkcja time, z tego co pamiętam, jest w module "core". Nie masz w kodzie #include <core>.

Użytkownik sbstn edytował ten post 23.04.2010 14:57

  • +
  • -
  • 0
-Piszę pluginy na zamówienie.
-Przerabiam pluginy (nie mody) na zamówienie.
-Piszę kursy/poradniki "Pisania pluginów w PAWN'ie"

Nie udzielam pomocy na GG, ani na innym komunikatorze internetowym.
Masz sprawę? PISZ NA PW

#17 Potatek

    Pomocny

  • Autor tematu
  • Użytkownik

Reputacja: 2
Nowy

  • Postów:53
  • Lokalizacja:resp
Offline

Napisano 23.04.2010 15:08

#include <amxmodx>
#include <amxmisc>
#include <core>

#define PLUGIN "test"
#define VERSION "1.0"
#define AUTHOR "GuitarGryf"

new bool:zrobione

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
        zrobione=false
        set_task(30.0,"checker",_,_,_,"b")
}

public checker()
{
        new time_h[9]
        new time_m[9]
        new hour=get_time("%H",time_h,8)
        new minutes=get_time("%M",time_m,8)
        
        if(hour==14 && minutes==22 && zrobione==false)
        {
                funkcja()
                return PLUGIN_CONTINUE
        }
        return PLUGIN_HANDLED
}

public funkcja()
{
        client_print(0, print_chat, "*******************")
        server_cmd("wait")
        client_print(0, print_chat, "Plugin Dziala!")
        server_cmd("wait")
        client_print(0, print_chat, "*******************")
        server_cmd("wait")
        zrobione=true
        return PLUGIN_CONTINUE
}

Teoretycznie dobrze a na serwerze nic się nie działo :( na pewno dobrze skonstruowane pobieranie czasu?

24 kwiecień 2010 - 08:54:
ReF

Użytkownik Potatek edytował ten post 23.04.2010 20:04

  • +
  • -
  • 0

#18 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 24.04.2010 09:16

core się nie include'uje, jakby brakowało to by się nie skompilowało.

Poza tym kto mi wytłumaczy co zwraca funkcja get_time ?
new time_h[9]
        new time_m[9]
        new hour=get_time("%H",time_h,8)
        new minutes=get_time("%M",time_m,8)
Nie testowałem, ale w dokumentacji nie ma nic o tym żeby zwracała jakiś wynik, jedynie do stringa podanego jako parametr.
A tutaj...
Trzeba by zrobić tak:
new time_h[9]
        get_time("%H",time_h,8)
        new hour=str_to_num(time_h)
Tylko po co tak kombinować skoro to załatwić się da w 2 linijkach, bez stringów, bez przekształceń:
new godzina, minuta
        time(godzina,minuta)

Poza tym czas na serwerze może być inaczej ustawiony niż u ciebie. Wpisz w say "thetime"
  • +
  • -
  • 0

#19 G[o]Q

    I'm G[o]Q

  • Przyjaciel

Reputacja: 1 344
Godlike

  • Postów:3 563
  • Steam:steam
  • Imię:Krzysiek
  • Lokalizacja:C: / program Files / Valve / Cstrike / G[o]Q.dem
Offline

Napisano 24.04.2010 09:33

time samo w sobie zwraca czas od poczatku ery lajnuxowej a godziny/minuty/sekundy zwraca przez referencje
  • +
  • -
  • 0
Manual ponad wszystko, konsola ponad manual :D :&

Chcesz wysłać do mnie PW ? użyj nazwy GoQ zamiast G[o]Q
Chcesz Kupić moduł płatności via Pukawka,Tserwery, Gamesol, Zabijaka do mojego sklepu? napisz PW cena to tylko 10 zł/sztuka

GG:6022845 (nie pomagam za free osobom ponizej rangi MoD) :D

#20 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 24.04.2010 09:45

time samo w sobie zwraca czas od poczatku ery lajnuxowej a godziny/minuty/sekundy zwraca przez referencje

pisałem o get_time a nie o time...
  • +
  • -
  • 0




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

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