Witam.
Czy jest możliwość zrobienia, gdy gracz zdobędzie "Rune" automatycznie jest uruchamiane odliczanie gdzie po 60 minutach wywala nam tą rune?
Plik run daje w załączniku ![]()
Załączone pliki
Użytkownik 1stADXionC edytował ten post 19.09.2015 22:01
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.
|
Napisano 19.09.2015 22:01
Witam.
Czy jest możliwość zrobienia, gdy gracz zdobędzie "Rune" automatycznie jest uruchamiane odliczanie gdzie po 60 minutach wywala nam tą rune?
Plik run daje w załączniku ![]()
Użytkownik 1stADXionC edytował ten post 19.09.2015 22:01
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 19.09.2015 22:50
Czy ten kod jest dobry?
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"
#define ZADANIE 3481
new timer[33]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
}
public zegar(id)
{
timer[id] = 30
if(task_exists(id + ZADANIE))
{
remove_task( id + ZADANIE )
}
set_task( 1.0, "licz", id + ZADANIE, _, _, "b" )
return PLUGIN_CONTINUE
}
public licz(task_id)
{
new id = task_id - ZADANIE
static sSekundy[33];
if(!is_user_connected(id))
return;
set_hudmessage( 255, 255, 255, 0.03, 0.3, 2, 0.02, 1.0, 0.01 )
show_hudmessage( id, "Do konca pozostalo: %d", timer[id] )
sSekundy[id]++;
if(sSekundy[id] && sSekundy[id]%60==0)
timer[id] -= 1
if(timer[id] <= 0)
{
if( task_exists(task_id) )
{
remove_task( task_id )
}
}
}
Jeżeli jest dobry to w jaki sposób go użyć?
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 19.09.2015 23:06
const TASK_COUNT_DOWN_TIMER = 15454;
new g_iUserTimer[33];
public CountDown(id)
{
if(task_exists(id + TASK_COUNT_DOWN_TIMER)) // gdy gracz ma juz aktywne odliczanie to je usuwamy
{
remove_task(id + TASK_COUNT_DOWN_TIMER);
}
set_task(1.0, "CountDownTimer", id + TASK_COUNT_DOWN_TIMER, _, _, "a", g_iUserTimer[id] = 31); // ustawienie zadania i ilosc powtorzen musi byc +1
}
public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;
if(--g_iUserTimer[id])
{
engclient_print(id, engprint_center, "^nDo konca pozostalo: %i", g_iUserTimer[id]);
return;
}
// jakis kod gdy odliczanie sie zakonczy
}
Napisano 20.09.2015 18:16
Dzięki a jak użyć tego kodu w moim pluginie?
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 20.09.2015 18:49
zamien
if(pokaz_info && runa_gracza[id]) ColorChat(id, GREEN, "[COD:MW3]^x01 Zdobyles Rune:^x04 %s", nazwy_runy[runa_gracza[id]]);
na
if(runa_gracza[id])
{
if(pokaz_info)
{
ColorChat(id, GREEN, "[COD:MW3]^x01 Zdobyles Rune:^x04 %s", nazwy_runy[runa_gracza[id]]);
}
g_iUserTimer[id] = 31;
if(task_exists(id + TASK_COUNT_DOWN_TIMER))
{
change_task(id + TASK_COUNT_DOWN_TIMER, g_iUserTimer[id]); //zmiana czasu zadania, lepsze niz usuwanie i tworzenie od nowa
}
else
{
set_task(1.0, "CountDownTimer", id + TASK_COUNT_DOWN_TIMER, _, _, "a", g_iUserTimer[id]); //utworzenie nowego zadania
}
}
dodaj gdzies funkcje publiczna
public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;
if(--g_iUserTimer[id])
{
engclient_print(id, engprint_center, "^nDo konca pozostalo: %i", g_iUserTimer[id]);
return;
}
UstawRuny(id, 0, 0, 0);
engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}
oraz na samym poczatku pluginu dodaj nowa zmienna globalna
new g_iUserTimer[33];
Użytkownik Asiap edytował ten post 20.09.2015 18:51
Napisano 20.09.2015 19:14
Dzięki działa, a jak zrobić żeby było tak:
Do konca pozostalo: 59 minut.
Czyli chcę aby liczyło od 60 minut. Nie sekund.
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 20.09.2015 19:35
zamiast 31 ustaw 3601 ![]()
oraz
static szTime[3]; format_time(szTime, 2, "%H", g_iUserTimer[id]); engclient_print(id, engprint_center, "^nDo konca pozostalo: %s minut", szTime);
Napisano 20.09.2015 20:09
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 20.09.2015 21:58
sory zamiast %H ustaw %M
Napisano 21.09.2015 13:49
a jak nastąpi zmiana mapy odliczanie nadal bedzie trwało?
Trochę chciałem zmienić kod i przestał działać:
public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;
UstawRuny(id, 0, 0, 0);
engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}
public OpisRuny(id, runa, wartosc)
{
new opis_runy[MAX_WIELKOSC_OPISU];
new losowa_wartosc[15];
if(wartosc > -1)
num_to_str(wartosc, losowa_wartosc, 14);
else
format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_runy[runa], max_wartosci_runy[runa]);
format(opis_runy, charsmax(opis_runy), opisy_runy[runa]);
replace_all(opis_runy, charsmax(opis_runy), "LW", losowa_wartosc);
static szTime[3];
format_time(szTime, 2, "%M", g_iUserTimer[id]);
new opis[416+MAX_WIELKOSC_OPISU];
format(opis, charsmax(opis), "^n^n^n^n\yRuna: \w%s^n\yOpis: \w%s^n\yCzas: \w%s minut", nazwy_runy[runa], opis_runy, szTime);
show_menu(id, 1023, opis);
}
Użytkownik 1stADXionC edytował ten post 21.09.2015 14:17
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 22.09.2015 09:41
a jak nastąpi zmiana mapy odliczanie nadal bedzie trwało?
Trochę chciałem zmienić kod i przestał działać:public CountDownTimer(id){id -= TASK_COUNT_DOWN_TIMER;UstawRuny(id, 0, 0, 0);engclient_print(id, engprint_center, "^nRuna zostala usunieta!");}public OpisRuny(id, runa, wartosc){new opis_runy[MAX_WIELKOSC_OPISU];new losowa_wartosc[15];if(wartosc > -1)num_to_str(wartosc, losowa_wartosc, 14);elseformat(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_runy[runa], max_wartosci_runy[runa]);format(opis_runy, charsmax(opis_runy), opisy_runy[runa]);replace_all(opis_runy, charsmax(opis_runy), "LW", losowa_wartosc);static szTime[3]; format_time(szTime, 2, "%M", g_iUserTimer[id]);new opis[416+MAX_WIELKOSC_OPISU];format(opis, charsmax(opis), "^n^n^n^n\yRuna: \w%s^n\yOpis: \w%s^n\yCzas: \w%s minut", nazwy_runy[runa], opis_runy, szTime);show_menu(id, 1023, opis);}
Napisano 22.09.2015 12:22
a jak nastąpi zmiana mapy odliczanie nadal bedzie trwało?
Trochę chciałem zmienić kod i przestał działać:
public CountDownTimer(id) { id -= TASK_COUNT_DOWN_TIMER; UstawRuny(id, 0, 0, 0); engclient_print(id, engprint_center, "^nRuna zostala usunieta!"); }public OpisRuny(id, runa, wartosc) { new opis_runy[MAX_WIELKOSC_OPISU]; new losowa_wartosc[15]; if(wartosc > -1) num_to_str(wartosc, losowa_wartosc, 14); else format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_runy[runa], max_wartosci_runy[runa]); format(opis_runy, charsmax(opis_runy), opisy_runy[runa]); replace_all(opis_runy, charsmax(opis_runy), "LW", losowa_wartosc); static szTime[3]; format_time(szTime, 2, "%M", g_iUserTimer[id]); new opis[416+MAX_WIELKOSC_OPISU]; format(opis, charsmax(opis), "^n^n^n^n\yRuna: \w%s^n\yOpis: \w%s^n\yCzas: \w%s minut", nazwy_runy[runa], opis_runy, szTime); show_menu(id, 1023, opis); }
public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;
if(--g_iUserTimer[id])
{
return;
}
UstawRuny(id, 0, 0, 0);
engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}
Napisano 22.09.2015 20:38
Występuje błąd:

DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 22.09.2015 20:39
Nie, w momencie rozlaczenia gracza czas bedzie sie zerowac. Musisz dodac czas runy do zapisu i po podlaczeniu gracza wczytywac go i ustawiac artefakt ktory mial.
A jak zrobić takowy zapis?
Użytkownik 1stADXionC edytował ten post 22.09.2015 20:40
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 23.09.2015 01:41
nie rozumiem co chcesz osiagnac
Napisano 24.09.2015 20:11
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 24.09.2015 20:30
kazde zadanie jest usuwane przed zmiana mapy
pokaz kod
Napisano 24.09.2015 20:35
public OpisRuny(id, runa, wartosc)
{
new opis_runy[MAX_WIELKOSC_OPISU];
new losowa_wartosc[15];
if(wartosc > -1)
num_to_str(wartosc, losowa_wartosc, 14);
else
format(losowa_wartosc, charsmax(losowa_wartosc), "%i-%i", min_wartosci_runy[runa], max_wartosci_runy[runa]);
format(opis_runy, charsmax(opis_runy), opisy_runy[runa]);
replace_all(opis_runy, charsmax(opis_runy), "LW", losowa_wartosc);
static szTime[3];
format_time(szTime, 2, "%M", g_iUserTimer[id]);
new opis[416+MAX_WIELKOSC_OPISU];
format(opis, charsmax(opis), "^n^n^n^n\yRuna: \w%s^n\yOpis: \w%s^n\yCzas: \w%s minut", nazwy_runy[runa], opis_runy, szTime);
show_menu(id, 1023, opis);
}
public CountDownTimer(id)
{
id -= TASK_COUNT_DOWN_TIMER;
if(--g_iUserTimer[id])
{
return;
}
UstawRuny(id, 0, 0, 0);
engclient_print(id, engprint_center, "^nRuna zostala usunieta!");
}
DiabloMod - 10%
COD:MW3 - BETATESTY
Napisano 25.09.2015 17:43
Poradziłem sobie, temat można zamknąć.
DiabloMod - 10%
COD:MW3 - BETATESTY
0 użytkowników, 1 gości, 0 anonimowych