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.
|
Pare pytań^^
#1
Napisano 18.04.2010 21:23
Mam parę pytań a konkretnie:
1. Jak zrobić aby wiadomość była pokazana tylko 1 graczowi a nie wszystkim?
2. Jak zrobić aby określona wiadomość, była wysyłana na czat każdemu co określoną ilość sekund?
3. Jak zrobić aby mógł użyć komendy tylko co określony czas, czyli jak wpisze przed upływem czasu to pisze np "musisz czekać jeszcze XX sekund" ?
#2
Napisano 18.04.2010 21:39
#include <amxmodx>
#include <amxmisc>
public plugin_init() {
register_clcmd("say /wiadmomosc","message")
}
public message(id)
{
client_print(id, print_chat, "elo")
}
2. Pokazuje co 120 sek wiadomosc "elo
#include <amxmodx>
#include <amxmisc>
public plugin_init() {
set_task(120.0, "info", 0, "", 0, "b") // tam gdzie 120 to co ile sek.
}
public_info(id)
{
client_print(0, print_chat, "elo")
Użytkownik Monsulito edytował ten post 18.04.2010 21:42
#3
Napisano 19.04.2010 18:38
1.Jak ktos wpisze /wiadmosc pokaze mu sie wiadmosc "elo"
#include <amxmodx>
#include <amxmisc>
public plugin_init() {
register_clcmd("say /wiadmomosc","message")
}
public message(id)
{
client_print(id, print_chat, "elo")
}
2. Pokazuje co 120 sek wiadomosc "elo
#include <amxmodx>
#include <amxmisc>
public plugin_init() {
set_task(120.0, "info", 0, "", 0, "b") // tam gdzie 120 to co ile sek.
}
public_info(id)
{
client_print(0, print_chat, "elo")
Te pozostałe parametry w 2 to do czego? ("info", 0, "", 0, "b")
a z 3 ktoś pomoże?
#4
Napisano 19.04.2010 19:25
Te pozostałe parametry w 2 to do czego? ("info", 0, "", 0, "b")
set_task ( Float:time, const function[], id = 0, parameter[]="", len = 0, flags[]="", repeat = 0 )
Omówie teraz poszczególne parametry:
time (typ float - zmienno przecinkowy) - tu podajemy czas w sekundach po jakim ma być wywołana funkcja. Może to być liczba znana już przed kompilacją (np 10.0 - zawsze dajemy wartość po przecinku, nawet jak jest to liczba całkowita). Może to też być zdeklarowana zmienna typu float o dowolnej wartości (choć rozsądek podpowiada by to były liczby nie ujemne )
function[] - jak nam zdradza oznaczenie ' [] ' zmienna ta zbudowana jest z ciągu znakowego. Ciąg ten musi być nazwą funkcji w naszym plugu.
id - zmienna id oznacza nr identyfikacyjny naszego task'a. Jeśli jej nie zdeklarujemy (tj. użyjmy taska tylko z 2 parametrami), to id będzie miało wartość 0. Istotną rzeczą, jak też często pomijaną przez programistów jest zadbanie by nasz task miał jedyną w swoim rodzaju nr. id.
Znajomość id taska daje nam dostęp do następujących funkcji:
task_exists ( id = 0, outside = 0 ) - sprawdzanie czy task o podanym id istnieje
change_task ( id = 0, Float:newTime=1.0, outside = 0 ) - zmienianie czasu wywołania taska
remove_task ( id = 0, outside = 0 ) - usuwa taska o podanym id - funkcja nie zostaje wywołana a dane zawarte w tasku zostają utracone.
outside - gdy wartość jest równa 1 to są też brane taski z poza naszego pluga.
parameter - tutaj możemy przechowywać dowolnie wiele danych dla wywołanej danym taskiem funkcji. Parameter działą razem ze zmienną len w której jest zawarta informacja o ilości elementów w zmiennej parameter.
flags - tu są przechowywane flagi typu wykonywanego tasku - gdy nie jest on zdefiniowany to task jest wykonywany 1 raz po określonym czasie od momentu wywołania. Mamy do dyspozycji flagi:
"a" - powtarza funkcje określoną liczbę razy (zmienna repeat ) - po wywołaniu funkcji zostaje jakoby zrobiony nowy task z takim samym opóźnieniem.
"b" - bardzo podobna do flagi z "a" tylko z 1 wyjątkiem - task będzie zapętlany aż do zmiany mapy lub do usunięcia taska.
"c" - wykonywana po czasie "timeleft"
"d" - wykonywana przed czasem "timeleft"
Scripting>Tutoriale>set_task - funkcje czasowe
II. Pisanie tematów:
* Zanim założysz nowy temat skorzystaj z opcji szukaj.
Forum Główne>Informacje>Regulamin Forum
Co do 3. pkt, może być np. raz na spawn?
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
new bool:used[33]
public plugin_init()
{
register_clcmd("say /wiadmomosc","message")
RegisterHam(Ham_Spawn, "player", "Spawn", 1)
}
public Spawn(id)
{
used[id]=false
}
public message(id)
{
if(!used[id]==false) return PLUGIN_HANDLED
client_print(id, print_chat, "elo")
used[id]=true
return PLUGIN_HANDLED
}
Użytkownik sbstn edytował ten post 19.04.2010 19:36
-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
Napisano 21.04.2010 16:42
sbstn - > jutro dam Ci rep+ bo wykorzystałem limit dzienny czy jakoś tak
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych