[AMXX] Cum creezi un countdown la o putere
Posted: 20 Aug 2013, 11:12
Descriere: Am primit pm de la un băiat să îi arăt cum face un countdown la o anumită putere. Decât să îi explic doar lui în particular, mai bine fac un tutorial să afle toată lumea.
Puterea va fi: GodMode
1. Pentru început adăugăm următoarele variabile:
2. În init facem un clcmd:
Scrii power în consolă şi ţi se va activa puterea
3. Acum creeăm public-ul UsePower cu param-ul id:
1a. | În el adăugăm următorul if:
1b. | În această verificaţie adăugăm:
1c. | Închidem verificaţia şi adăugăm următorul else if:
1d. | În acest else if adăugăm:
25 - înseamnă countdown-ul ( cât trebuie să aştepte )
4. Public-ul GodMode_CountDown este unul mai complex, am pus explicaţiile în el:
5. Adăugaţi următoarele:
Asta a fost tot. Am explicat în cod ca să nu mai lungim tutorialul
Plugin-ul trebuie să arate aşa:
Mulţumiri lui Aragon, o parte din cod este făcută de el.
Dacă întâlniti probleme puteţi să lăsaţi reply în topic şi o să vă răspund cât pot de repede.
Exprimăţi recunoştinţa dacă ţi-a fost de folos acest tutorial !
Puterea va fi: GodMode
1. Pentru început adăugăm următoarele variabile:
Code: Select all
new Float: LastMessage [ 33 ];
new GodMode_Countdown [ 33 ];
Code: Select all
register_clcmd ( "power", "UsePower" );
3. Acum creeăm public-ul UsePower cu param-ul id:
1a. | În el adăugăm următorul if:
Code: Select all
if ( GodMode_Countdown [ id ] && LastMessage [ id ] < get_gametime ( ) ) {
Code: Select all
LastMessage [ id ] = get_gametime ( ) + 1.0;
Code: Select all
else if ( godmodepower ( id ) ) {
Code: Select all
GodMode_Countdown [ id ] = 25;
CountDown_GodMode ( id );
4. Public-ul GodMode_CountDown este unul mai complex, am pus explicaţiile în el:
Code: Select all
public CountDown_GodMode ( id ) {
if ( !is_user_alive ( id ) ) { // daca nu e viu, countdown-ul sa se puna pe 0
GodMode_Countdown [ id ] = 0;
}
else if ( GodMode_Countdown [ id ] > 0 ) { // daca countdown-ul userului este mai mare decat 0 sa ruleze ce e mai jos
set_hudmessage ( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 ); // pozitia hud-ului
show_hudmessage ( id, "Iti vei putea folosi puterea in %d secund%s", GodMode_Countdown [ id ], GodMode_Countdown [ id ] == 1 ? "a" : "e" ); // mesajul hud
GodMode_Countdown [ id ]--; // countdown-ul scade cu 1
set_task ( 1.0, "CountDown_GodMode", id ); // odata la 1 secunda countdown-ul scade cu 1
}
else if ( GodMode_Countdown [ id ] <= 0 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 ); // pozitia hud-ului
show_hudmessage ( id, "Iti poti folosi puterea din nou" ); // mesajul hud
GodMode_Countdown [ id ] = 0; // countdown-ul se seteaza pe 0
}
}
Code: Select all
bool: godmodepower ( id ) {
set_user_godmode ( id, 1 ); // seteaza godmode pe 1
set_task ( 5.0, "stopgodmode", id ); // dupa 5 secunde va actiona public-ul stopgodmode
return true;
}
public stopgodmode ( id ) {
set_user_godmode ( id, 0 ); // seteaza godmode pe 0
set_hudmessage ( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 ); // pozitia hud-ului
show_hudmessage ( id, "Nu mai ai godmode" ); // mesajul hud
return 1;
}
Plugin-ul trebuie să arate aşa:
Code: Select all
/* Plugin generated by AMXX-Studio */
#include < amxmodx >
#include < fun >
#define PLUGIN "Plug-in Nou"
#define VERSION "0.1"
#define AUTHOR "hadesownage"
new Float: LastMessage [ 33 ];
new GodMode_Countdown [ 33 ];
public plugin_init ( ) {
register_plugin ( PLUGIN, VERSION, AUTHOR );
register_clcmd ( "power", "UsePower" );
}
public UsePower ( id ) {
if ( GodMode_Countdown [ id ] && LastMessage [ id ] < get_gametime ( ) ) {
LastMessage [ id ] = get_gametime ( ) + 1.0;
}
else if ( godmodepower ( id ) ) {
GodMode_Countdown [ id ] = 25;
CountDown_GodMode ( id );
}
}
public CountDown_GodMode ( id ) {
if ( !is_user_alive ( id ) ) { // daca nu e viu, countdown-ul sa se puna pe 0
GodMode_Countdown [ id ] = 0;
}
else if ( GodMode_Countdown [ id ] > 0 ) { // daca countdown-ul userului este mai mare decat 0 sa ruleze ce e mai jos
set_hudmessage ( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 ); // pozitia hud-ului
show_hudmessage ( id, "Iti vei putea folosi puterea in %d secund%s", GodMode_Countdown [ id ], GodMode_Countdown [ id ] == 1 ? "a" : "e" ); // mesajul hud
GodMode_Countdown [ id ]--; // countdown-ul scade cu 1
set_task ( 1.0, "CountDown_GodMode", id ); // odata la 1 secunda countdown-ul scade cu 1
}
else if ( GodMode_Countdown [ id ] <= 0 ) {
set_hudmessage ( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 ); // pozitia hud-ului
show_hudmessage ( id, "Iti poti folosi puterea din nou" ); // mesajul hud
GodMode_Countdown [ id ] = 0; // countdown-ul se seteaza pe 0
}
}
bool: godmodepower ( id ) {
set_user_godmode ( id, 1 ); // seteaza godmode pe 1
set_task ( 5.0, "stopgodmode", id ); // dupa 5 secunde va actiona public-ul stopgodmode
return true;
}
public stopgodmode ( id ) {
set_user_godmode ( id, 0 ); // seteaza godmode pe 0
set_hudmessage ( 255, 255, 0, -1.0, 0.88, 0, 1.0, 1.1, 0.0, 0.0, 7 ); // pozitia hud-ului
show_hudmessage ( id, "Nu mai ai godmode" ); // mesajul hud
return 1;
}
Dacă întâlniti probleme puteţi să lăsaţi reply în topic şi o să vă răspund cât pot de repede.
Exprimăţi recunoştinţa dacă ţi-a fost de folos acest tutorial !