[Tutorial] Countdown
Posted: 24 Oct 2013, 20:07
Astazi vreau sa va invat, cum sa va creati un countdown. De exemplu, sa zicem ca vrem sa apara un mesaj in hud, in care sa scrie:
1. Cream un vector global, de aproximativ 33 de pozitii, in care vom stoca numarul 10 (un exemplu (voi puteti sa puneti ce numar doriti))
2. Acum vom crea un public numit client_putinserver. Cu parametrul id/index (respectiv id-ul playerului care se conecteaza). Ce este/ce face el? Acest public este chemat de fiecare data cand un player intra pe server; Mai precis http://www.amxmodx.org/doc/index.html?p ... server.htm
3. Vom crea un task, care sa se repete pana la infinit. In cazul nostru, taskul se va repeta odata la 1 secunda; Atentie!!! Secunda va fi trecuta cu decimale. In cazul nostru, de tip float, respectiv 1.0.
4. Cream publicul care este executat de task, cu parametrul id/index (in cazul nostru countDown)
5. Acum vom verifica daca variabila globala, g_iCountDown, este mai mica/sau egala cu 0; Daca este, vom verifica daca playerul este in viata, iar daca este, ii vom da o grenada de tip he
6. Vom adauga o exceptie, mai pe inteles, daca variabila globala, g_iCountDown nu este mai mica/sau egala cu 0, vom scade din ea cate 1, si vom adauga un mesaj hud.
In final iese cam asa:
Daca am sarit ceva, lasa-ti post/pm ca sa editez sa adaug.
Iar acel mesaj sa fie permanent. (sa se repete, chiar si dupa ce primesti grenada)In Y secunde vei primi o grenada de tip Z
1. Cream un vector global, de aproximativ 33 de pozitii, in care vom stoca numarul 10 (un exemplu (voi puteti sa puneti ce numar doriti))
Code: Select all
new g_iCountDown[ 33 ] = 10
Code: Select all
public client_putinserver( id )
{
}
Code: Select all
set_task( 1.0, "countDown", id, _, _, "b", _ );
Code: Select all
public countDown( id )
{
}
Code: Select all
if( g_iCountDown[ id ] <= 0 )
{
if( is_user_alive( id ) )
{
give_item( id, "weapon_hegrenade" );
}
g_iCountDown[ id ] = 10;
}
Code: Select all
else
{
g_iCountDown[ id ]--;
set_hudmessage( 150, 10, 10, -1.0, 0.28, 0, 1.0 );
show_hudmessage( id, "Vei primi o grenada in %i secunde.", g_iCountDown[ id ] );
}