[AMXX] Cum creezi un countdown la o putere

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
Hades Ownage
Membru eXtream
Membru eXtream
Posts: 3182
Joined: 22 Oct 2008, 10:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Fost Scripter eXtreamCS
Nume anterior: hadesownage
Location: Iasi
Has thanked: 324 times
Been thanked: 406 times

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:

Code: Select all

new Float: LastMessage [ 33 ];
new GodMode_Countdown [ 33 ]; 
2. În init facem un clcmd:

Code: Select all

register_clcmd ( "power", "UsePower" ); 
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:

Code: Select all

if ( GodMode_Countdown [ id ] && LastMessage [ id ] < get_gametime ( ) ) { 
1b. | În această verificaţie adăugăm:

Code: Select all

LastMessage [ id ] = get_gametime ( ) + 1.0; 
1c. | Închidem verificaţia şi adăugăm următorul else if:

Code: Select all

else if ( godmodepower ( id ) ) { 
1d. | În acest else if adăugăm:

Code: Select all

GodMode_Countdown [ id ] = 25;
CountDown_GodMode ( id ); 
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:

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
    }
    
}
5. Adăugaţi următoarele:

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;
    
}
Asta a fost tot. Am explicat în cod ca să nu mai lungim tutorialul
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;
    
}
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 !
RoyalServer 2
User avatar
Rony
Utilizator neserios (tepar)
Utilizator neserios (tepar)
Posts: 966
Joined: 11 Mar 2013, 11:43
Detinator Steam: Da
CS Status: CO-FOUNDER BETANO
Detinator server CS: CS1.6 , CS:GO
SteamID: 31r1
Reputatie: Membru Club eXtreamCS (1 luna)
Membru Club eXtreamCs (28 Feb)
Utilizator neserios (tepar)
Location: NAPOLI
Has thanked: 173 times
Been thanked: 66 times
Contact:

20 Aug 2013, 11:31

multumesc.
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

20 Aug 2013, 11:40

new Float: LastMessage [ 33 ];
new GodMode_Countdown [ 33 ];
Astea sunt variabile..
ON: Bun si util tutorialul.. chiar ieri sau alaltaieri ma intreba cineva pe mess cum se face un countdown..
Last edited by KronoS eXtream on 20 Aug 2013, 11:45, edited 1 time in total.
Reason: fail :))
Retras
prorvl
Membru, skill 0
Membru, skill 0
Posts: 36
Joined: 04 Mar 2013, 15:41
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Has thanked: 27 times
Contact:

20 Aug 2013, 11:49

Rainq tot eu eram si cel de mai sus :)). Multumesc Hades!
----------
Level-XP-MOD Respawn - 50 % [Privat]
----------
S-Mod Zombie XP - 60 % [Privat]
----------
aim_rival - Finished
----------
LordOfNothing
Membru, skill +1
Membru, skill +1
Posts: 387
Joined: 19 Jul 2013, 15:51
Detinator Steam: Nu
Reputatie: Restrictie PM
Has thanked: 11 times
Been thanked: 35 times

21 Aug 2013, 18:35

Rainq wrote:
new Float: LastMessage [ 33 ];
new GodMode_Countdown [ 33 ];
Astea sunt variabile..
ON: Bun si util tutorialul.. chiar ieri sau alaltaieri ma intreba cineva pe mess cum se face un countdown..

prezent :)))


Thanks pentru tutorial :D
User avatar
SupremEuS
Membru, skill +2
Membru, skill +2
Posts: 544
Joined: 21 Aug 2010, 12:53
Detinator Steam: Nu
CS Status: Never back down !
Detinator server CS: HNS.LAFEL.RO
SteamID: Nu detin cont steam.
Location: Zalău
Has thanked: 2 times
Been thanked: 24 times
Contact:

22 Aug 2013, 22:43

Foarte bun tutorialul !
Multumim frumos pentru el.
  • Daca consideri ca te-am ajutat , apasa butonul Image !
  • Noi scriem Româneşte, nu R0m@n3$t3!
  • ''Vulgaritatea si prostia nu se asorteaza cu nimic.'' - Serban Ionescu
  • Fara bani femeile nu gem, femeile compot. :)

Image Image
REGULI GENERALE : Afișează regulile forumului
1. Utilizati corect limba romana (folositi cuvinte intregi, virgula, punctul si cratima). NU FOLOSITI limbaj de chat!
2. Raspundeti concret! Fara offtopic, fara mesaje scurte, inutile sau deja postate!
* offtopic = reprezinta devierea de la subiectul care se discuta
3. Folosirea cuvintelor sau inregistrarea cu nume obscene/jignitoare duce la restrictionarea accesului, stergerea contului, etc.
4. Este interzis orice atac la persoana. Discutati ideea, nu persoana !
5. Restrictii reclame :
a) Reclama este permisa in subiecte atat timp cat ele au legatura cu idea care se discuta.
b) In semnatura este permisa o singura reclama SIMPLA de tip TEXT cu dimensiunea fontului setat pe NORMAL
c) Reclama nu este permisa in campurile personale gen: Locatie, CS Status.
d) Nu aveti voie sa deschideti topicuri cu referire exacta la un site in scopul obtinerii de vizite, se considera reclama !
6. Nu folositi imagini in semnatura mai mari decat 500x120. Puteti folosi mai multe imagini care, toate sa nu depaseasca marimea impusa !
7. Folositi CAUTAREA si apoi intrebati pentru ceva daca nu exista pe forum! Numele topicurilor create trebuie sa reflecte continutul subiectului pe care se discuta. Nu vor fi permise topicuri de genul: help, ajutor pls, cum fac, etc
8. Este permisa continuarea unei discutii vechi de pe forum, chiar daca aceasta a fost deschisa cu cativa ani in urma. NU se permite insa dublu-post, triplu-post sau UP-uri.
* dublu-post / triplu - post = adaugarea unor mesaje unul dupa altul intr-o discutie a forumului de catre aceeasi persoana
* UP = adaugarea unor mesaje unul dupa altul cu scopul de a scoate in evidenta discutia respectiva
9. Orice fel de continut cu caracter erotic va fi sters, iar daca este necesar se vor aplica avertismente.
10. Nu este permisa promovarea firmelor de hosting in afara de http://www.eXtreamHost.com , fie ca este vorba de o reclama directa sau indirecta.
11. Nu este permisa postarea de continut ilegal: warez, carding (bine cunoscutele "metode" de furat domenii etc.) si alte practici "neortodoxe", se vor aplica avertismente sau ban, dupa caz si antecedente.

SANCTIONAM DRASTIC INCALCAREA ACESTOR REGULI SI ORICE ABUZ !


WARNINGS/Avertismente
3 Avertismente = BAN pe forum pentru o anumita perioada de timp, in functie de gravitatea regulilor incalcate!
1 Avertisment = 15 de zile

Mesaje private
Abuzul in orice fel de folosirea mesajelor private va duce la sanctionare. In concluzie, vi se va lua dreptul de a mai trimite mesaje.
Reclamatiile cat si penalizarile se regasesc aici: discutii-forum/reclamatii-mesaje-private-t335539.html

Suplimentar
1. In semnatura nu sunt permise linkuri catre jocuri (site-uri) gen bitefight, monstergame, etc.
2. La profilul Detinator server CS se permite reclama catre un server de Counter-Strike.
3. Orice insulta adusa asupra unui administrator se penalizeaza cu ban permanent. Orice insulta adusa asupra unui moderator se penalizeaza (in functie de gravitatea situatiei) de la avertisment pana la ban permanent.
4. Nu se permite ridicarea subiectelor cu mesaje gen "UP!" unul dupa altul, indiferent de timpul dintre raspunsuri.


Atentionari
1. Nu se permite schimbarea numelui pe forum
2. Nu aveti voie cu mai mult de 1 cont / persoana (vi se sterg toate mesajele si contul de utilizator de pe forum drept penalizare) - cei care abuzeaza si isi fac mai multe conturi, risca sa primeasca ban permanent

 

Model postare addonsuri : Afiseaza modelul
Acesta este un tip standard pentru postarea unui addons

A. Continut

- Nu mai stergeti folderul scripting din amxmodx pe motiv ca nu avem nevoie sau ca face lag !
- Nu includeti in addons mai multe pluginuri care fac acelasi lucru, gen hpk.
- Nu includeti in addons pluginul show_ip la care orice jucator are acces la comanda amx_ipban.
- Nu includeti in addons pluginuri care nu stiti ce fac.
- Nu personalizati addons-ul cu reclame catre alte site-uri/forum-uri,etc...
- Postati intotdeauna .sma-ul pluginurilor incluse.

B. Postare

Titlul: Va contine tipul addons-ului ( amxmodx/amxmod/adminmod/war3ft/superhero/csdm/etc..)
- Va rog nu folositi in numele topic-ului caractere ! Gen : "-->> addons by me <--"
- Deoarece am observat cateva confuzii, cand postati un addons, nu scrieti in interiorul postului "titlu : addons,blablabla"


Descriere:

Ce contine addons-ul. Adica ce mod, ce versiune, ce alte facilitati are in plus (booster,hlguard,webmod,statsme,etc.)
* Puteti folosi urmatorii termeni :

* Normal - addons standard.
* Normal+ - addons standard dar cu cateva lucruri modificate.
* War3ft - addons cu puteri war3ft.
* UWC3 - addons cu puteri war3ft diverse.
* Respawn/CSDM - addons care te reinvie imediat dupa ce mori.
* Soccerjam - addons cu fifa/cs instalat.
* Zombie - addons in care jucatorii trebuie 'infectati' de un zombie.
* DeathRun - addons in care jucatorii trebuie sa treaca de obstacole
* Hide N'Seek - addons in
* Divers - addons Neinclus in aceste tipuri (daca credeti ca mai trebuie adaugat un alt tip trimiteti-mi mesaj pe privat !)

Autor: Cine a facut addonsul respectiv
Versiune: 1.x 2.x
Descarcare:

Code:
[url=Linkul_catre_addons]Link![/url]


Pluginuri: aici veti scrie ce pluginuri are addons-ul postat (fara cele de baza) si ce fac acestea !
plugin1.amxx - ce face pluginul respectiv
plugin2.amxx - ce face pluginul respectiv
plugin3.amxx - ce face pluginul respectiv

ATENTIE !
- Daca vreti sa postati un addons care nu este facut de dvs.,folositi intai cautarea pentru a va asigura ca addons-ul respectiv nu este deja postat de altcineva !
- De asemenea,daca incercati sa ne pacaliti cu un addons copiat si punandu-va pe dvs ca si autor,topicul va fi mutat la Cos si riscati sa primiti warn !
- NU postati tot link-ul catre addons ! Ci folositi ]URL :
Code:
[url=linkul_catre_addons]cuvant[/url]


C. Raspuns/Reply
1.Cei care posteaza addons-ul !
Daca vi se zice "gj,misto addons" nu raspundeti cu "merci,alte pareri",etc...

2.Cei care raspund !
Nu faceti reply-uri de gen-ul "gj","bravo","misto addons","gg tare",etc...

3.Copiere !
Daca vi se pare ca un addons postat este copiat, nu faceti replay cu "copiat,praf","addons-ul este copiat","nu tu l-ai facut".etc.. ci veniti cu o dovada daca vreti sa fiti bagati in seama! Daca aduceti acuzatii false riscati sa primiti warn ! De asemenea, nu aduceti cuvinte vulgare la adresa autorului, veti primi fara nici o ezitare warn sau chiar ban !
Model postare servere :Afiseaza modelul
Va rugam respectati urmatorul model de postare al serverului, completand campurile cu datele corecte:

Titlul va contine: NUMELE / ADRESA IP a serverului si in paranteze patrate Non.Steam / Steam / Steam & Non.Steam
Adresa poate fi de tip: NUME / IP
Port: portul acestuia
Jucatori: 18 / 22 / 24 (sau cat aveti setat)
Tipul poate fi: Non.Stop (merge 24/24 ore) sau PartTime (functioneaza doar ziua sau intre anumite ore ale zilei/noptii)
Modul poate fi: Normal / ZombieMod / SourceMod / Metamod:Source

Anticheat: Protejat / Neprotejat
Tara: RO / US / DE (sau orice alte INITIALE ale tarii respective)

EXEMPLU:
Titlu (sau numele topicului): ExTrEaM [Steam & Non.Steam]
Continut:
    Adresa: extream.idle.ro (acesta este doar un exemplu!)
    Port: 27015
    Jucatori: 18
    Tip: Non.Stop
    Mod: Normal
    Anticheat: Neprotejat
    Tara: RO

----------- Sfarsit exemplu ---------------------

* Nu va lasati adresa la SITE / FORUM in model pentru ca se considera reclama si primiti avertisment sau topicul dvs. ajunge la cos!
* Titlurile vor fi colorate cu rosu ca in exemplul de deasupra !
* Cine NU respecta modelul prezentat i se va STERGE topicul !!
* NU aveti voie sa adaugati comentarii de genul: serverul meu este cel mai tare..etc. pentru ca iarasi vi se va sterge topicul ! Insa puteti lasa alte informatii diverse (un ID Yahoo, un mail, etc.)
User avatar
KronoS eXtream
Fost administrator
Fost administrator
Posts: 4378
Joined: 02 Apr 2009, 19:18
Detinator Steam: Da
Reputatie: Fost administrator
Fost detinator Zombie-Land.eXtream.Ro
Contribuitor
Fost Scripter eXtreamCS
Dezvoltator al listei de seriozitate eXtreamCS
Location: Bucharest
Has thanked: 551 times
Been thanked: 820 times
Contact:

25 Aug 2013, 17:16

Mutat in Prima pagină » eXtream - Counter-Strike 1.6 » Programarea CS-ului » Scripting
Nu efectuez tranzactii pe mess, skype etc. Aveti grija la indivizii care se dau drept mine!
Nu mai ofer suport asa ca nu imi mai trimiteti mesaje in legatura cu asta!


Zombie Plague Shade 1.2-debug1 [with Item Limiter] (12 September 2015) - Bombardier Branch
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

28 Aug 2013, 18:49

Am testat si licenta si cum ai zis tu in acest tutorial si nu functioneaza :|
User avatar
HamletEagle
Fost moderator
Fost moderator
Posts: 750
Joined: 21 Sep 2013, 15:05
Detinator Steam: Da
CS Status: Inactiv cateva zile.
SteamID: privat
Reputatie: Fost Scripter eXtreamCS.com
Fost Moderator ajutator
Has thanked: 19 times
Been thanked: 85 times

21 Jun 2014, 12:39

Code: Select all

 GodMode_Countdown [ id ] == 1 ? "a" : "e
? este un operator ternar. Sintaxa lui este: conditie ? "val1" : "val2"
Se traduce asa: daca este adevarata conditia, atunci ia in considerare val1, altfel ia in considerare val2.

Un alt exemplu:

Code: Select all

new bool: test = true
test == true ? "boolul e pe true" : "boolul e pe false"
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
The Kalu
Fost administrator
Fost administrator
Posts: 13707
Joined: 09 Oct 2010, 12:39
Detinator Steam: Da
CS Status: In grajd!
SteamID: kalulord
Reputatie: Fost Administrator
Fost membru Club eXtreamCS (6 luni)
Nume anterior: Terra
Location: Romania, Ploiesti
Has thanked: 328 times
Been thanked: 646 times
Contact:

21 Jun 2014, 13:21

Era frumos sa iti afiseze si durata puterii,oricum este bine ca ai facut tutorial Hades.
Image
User avatar
Emi eXtream
Membru eXtream
Membru eXtream
Posts: 2233
Joined: 08 Feb 2012, 11:52
Detinator Steam: Da
CS Status: No status available.
SteamID: Privat.
Reputatie: Utilizator neserios(tepar)
Restrictie moderator
Fost moderator
Nume anterior: Synk12
Location: Neverland
Has thanked: 90 times
Been thanked: 49 times
Contact:

21 Jun 2014, 13:50

Foarte frumos realizat.
Hades , de obicei răspunzi la PM-uri?
Am câteva întrebări.
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 5 guests