[Inchis] [TUT] Crearea unui "forward"

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

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

26 Dec 2013, 09:18

Descriere : Bun astazi as vrea sa incerc sa va invat cum sa creati un forward , nu prea am mult timp asa ca am sai fac update in timp :D

(nota : cine vrea sa contribuie lasati reply aici + reply opinie)



Pas 1:

Include amxmodx default

Code: Select all

#include <amxmodx>
Pas 2:

Creiem o variabila globala

Code: Select all

 new test;
Pas 3:

In plugin_init() inregistram forwardul

Code: Select all

public plugin_init()
{
    test = CreateMultiForward("jucatorul_moare", ET_IGNORE, FP_CELL)

}
Pas 4:

Inregistram in plugin_init() un event default sa zicem DeathMsg

Code: Select all

public plugin_init()
{
     test = CreateMultiForward("jucatorul_moare", ET_IGNORE, FP_CELL)
    // Inregistram un event default
    register_event("DeathMsg", "My_Func", "a");
}
Pas 5:
Inauntru publicului chemam forward-ul folosind functia "ExecuteForward"

Code: Select all

public My_Func()
{
  
     new victim = read_data(1);
     new ret;
     ExecuteForward(test,ret,victim)       // test e variabila globala + unde am inregistrato in plugin_init ,  ret e return type, si victim e "cui sai cheme eventul" //
}
Pas 6: creiarea unui plugin

Code: Select all

forward jucatorul_moare(id);
#include <amxmodx>

public jucatorul_moare(id)
{
    client_print(id, print_center, "Ai murit !!");
}






Alte infromatii

Code: Select all

#define ET_IGNORE        0    //ignore valuarea returnata
#define ET_STOP            1    //stop on PLUGIN_HANDLED
#define ET_STOP2        2    //la fel, doar ca return mai are
#define ET_CONTINUE        3    //nu se opreste, return mai mare !

Code: Select all

#define FP_CELL            0
#define FP_FLOAT        1
#define FP_STRING        2
#define FP_ARRAY        4 

Alte exemple

Code: Select all

#include <Amxmodx>


new ret,test;


public plugin_init()
{
	test = CreateMultiForward("jucatorul_a_intrat_pe_server", ET_IGNORE, FP_CELL)
}

public client_putinserver(id)
{
	ExecuteForward(test, ret, id);
}

Code: Select all

#include <Amxmodx>


new ret,test;


public plugin_init()
{
	test = CreateMultiForward("jucatorul_se_connecteaza", ET_IGNORE, FP_CELL)
}

public client_connect(id)
{
	ExecuteForward(test, ret, id);
}




O metoda mai buna de a scrie 3 forward-uri deodata pentru a va da o idee de baza cum se foloseste !

Code: Select all


#include <Amxmodx>


new ret
new frds[4]


public plugin_init()
{
	frds[1] = CreateMultiForward("jucatorul_se_connecteaza", ET_IGNORE, FP_CELL)
	frds[2] = CreateMultiForward("jucatorul_se_deconnecteaza", ET_IGNORE, FP_CELL)
	frds[3] = CreateMultiForward("jucatorul_a_intrat_pe_server", ET_IGNORE, FP_CELL)

}

public client_connect(id)
{
	ExecuteForward(frds[1], ret, id);
}

public client_disconnect(id)
{
	ExecuteForward(frds[2], ret, id);
}

public client_putinserver(id)
{
	ExecuteForward(frds[3], ret, id);
}
Last edited by LordOfNothing on 03 Jan 2014, 15:15, edited 3 times in total.
RoyalServer
User avatar
Adventx
Membru, skill +4
Membru, skill +4
Posts: 1785
Joined: 17 Sep 2013, 21:44
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 128 times
Been thanked: 142 times
Contact:

26 Dec 2013, 13:29

^:)^ Multumesc !
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

26 Dec 2013, 14:22

Uite niste upateuri:
1.Diferenta intre nativa si forward: nativele sunt dinamice.
2.

Code: Select all

   test = CreateMultiForward("jucatorul_moare", ET_IGNORE, FP_CELL)

ET_IGNORE: ignora valoarea returnata.
FP_CELL: indica trimiterea unei valori normale(nu float,etc)

Forward-ul va substitui eventul specificat in cazul pluginurilor in cauza.
CreateMultiForward permite returnarea unei valori si trebuie sa specificati conditia.Se trimite tuturor pluginurilor ce executa forward-ul.
CreateOneForward nu returneaza nici o valoare si trebuie sa stie exact ce pugin il executa.
jucatorul moare e publicul chemat.

P.S: am niste probleme cu tastatura deci daca sunt greseli va rog sa ma scuzati.
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
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

26 Dec 2013, 15:45

HamletEagle wrote:Uite niste upateuri:
1.Diferenta intre nativa si forward: nativele sunt dinamice.
2.

Code: Select all

   test = CreateMultiForward("jucatorul_moare", ET_IGNORE, FP_CELL)

ET_IGNORE: ignora valoarea returnata.
FP_CELL: indica trimiterea unei valori normale(nu float,etc)

Forward-ul va substitui eventul specificat in cazul pluginurilor in cauza.
CreateMultiForward permite returnarea unei valori si trebuie sa specificati conditia.Se trimite tuturor pluginurilor ce executa forward-ul.
CreateOneForward nu returneaza nici o valoare si trebuie sa stie exact ce pugin il executa.
jucatorul moare e publicul chemat.

P.S: am niste probleme cu tastatura deci daca sunt greseli va rog sa ma scuzati.
citeste primu post !
Last edited by LordOfNothing on 03 Jan 2014, 15:15, edited 2 times in total.
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

03 Jan 2014, 15:15

up , citit primu post ,

Daca mai aveti sugestii scrietile aici !
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

03 Jan 2014, 16:41

LordOfNothing wrote:
HamletEagle wrote:Uite niste upateuri:
1.Diferenta intre nativa si forward: nativele sunt dinamice.
2.

Code: Select all

   test = CreateMultiForward("jucatorul_moare", ET_IGNORE, FP_CELL)

ET_IGNORE: ignora valoarea returnata.
FP_CELL: indica trimiterea unei valori normale(nu float,etc)

Forward-ul va substitui eventul specificat in cazul pluginurilor in cauza.
CreateMultiForward permite returnarea unei valori si trebuie sa specificati conditia.Se trimite tuturor pluginurilor ce executa forward-ul.
CreateOneForward nu returneaza nici o valoare si trebuie sa stie exact ce pugin il executa.
jucatorul moare e publicul chemat.

P.S: am niste probleme cu tastatura deci daca sunt greseli va rog sa ma scuzati.
citeste primu post !
Serios ? Ai editat in primul post dupa ce am scris eu asta. Se vede in data de edit. Ce lume...
Ai scris alea ca reply la ce am zis eu,dupa ai adaugat in primul post si ai editat mesaju.
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
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

05 Jan 2014, 12:16

HamletEagle wrote:
LordOfNothing wrote:
HamletEagle wrote:Uite niste upateuri:
1.Diferenta intre nativa si forward: nativele sunt dinamice.
2.

Code: Select all

   test = CreateMultiForward("jucatorul_moare", ET_IGNORE, FP_CELL)

ET_IGNORE: ignora valoarea returnata.
FP_CELL: indica trimiterea unei valori normale(nu float,etc)

Forward-ul va substitui eventul specificat in cazul pluginurilor in cauza.
CreateMultiForward permite returnarea unei valori si trebuie sa specificati conditia.Se trimite tuturor pluginurilor ce executa forward-ul.
CreateOneForward nu returneaza nici o valoare si trebuie sa stie exact ce pugin il executa.
jucatorul moare e publicul chemat.

P.S: am niste probleme cu tastatura deci daca sunt greseli va rog sa ma scuzati.
citeste primu post !
Serios ? Ai editat in primul post dupa ce am scris eu asta. Se vede in data de edit. Ce lume...
Ai scris alea ca reply la ce am zis eu,dupa ai adaugat in primul post si ai editat mesaju.

da si se cheama tot update , chiar nu vad rostu comentariului tau poate e din cauza ca sunt prea prost si tu prea inteligent ...
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

05 Jan 2014, 13:02

Credite nu stii sa pui ?Asta era rostu comentariului. Macar ca ai copiat alea de pe allied,aia muncesc si tu copiezi :-j Te rog nu raspunde la acest post,pentru ca m-am lamurit,nu am cu cine sa imi bat capu.
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
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

06 Jan 2014, 11:04

HamletEagle wrote:Credite nu stii sa pui ?Asta era rostu comentariului. Macar ca ai copiat alea de pe allied,aia muncesc si tu copiezi :-j Te rog nu raspunde la acest post,pentru ca m-am lamurit,nu am cu cine sa imi bat capu.
tu chiar nu poti intelege ca acest tutorial a fost facut din experienta mea si nu furat de pe alliedmodds , nu ?

Si stop off topic te rog !
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

06 Jan 2014, 16:36

Iti dau link ?

Code: Select all

#define ET_IGNORE        0    //ignore valuarea returnata
#define ET_STOP            1    //stop on PLUGIN_HANDLED
#define ET_STOP2        2    //la fel, doar ca return mai are
#define ET_CONTINUE        3    //nu se opreste, return mai mare !
Cod:
#define FP_CELL            0
#define FP_FLOAT        1
#define FP_STRING        2
#define FP_ARRAY        4
Astea sunt copiate. Nu intelegi ? E off-topic ca iti zic sa pui credite ?
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
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

10 Jan 2014, 10:52

HamletEagle wrote:Iti dau link ?

Code: Select all

#define ET_IGNORE        0    //ignore valuarea returnata
#define ET_STOP            1    //stop on PLUGIN_HANDLED
#define ET_STOP2        2    //la fel, doar ca return mai are
#define ET_CONTINUE        3    //nu se opreste, return mai mare !
Cod:
#define FP_CELL            0
#define FP_FLOAT        1
#define FP_STRING        2
#define FP_ARRAY        4
Astea sunt copiate. Nu intelegi ? E off-topic ca iti zic sa pui credite ?

e tutorial nu plugin nu trebe credite :)

Si gata nu mai raspunde ca orcum nu esti in toate mintile ...
User avatar
MaimutaVirtuala
Membru, skill +2
Membru, skill +2
Posts: 535
Joined: 15 Mar 2013, 00:20
Detinator Steam: Nu
CS Status: Maimutaresc
Has thanked: 16 times
Been thanked: 52 times
Contact:

10 Jan 2014, 11:34

LordOfNothing wrote:
HamletEagle wrote:Iti dau link ?

Code: Select all

#define ET_IGNORE        0    //ignore valuarea returnata
#define ET_STOP            1    //stop on PLUGIN_HANDLED
#define ET_STOP2        2    //la fel, doar ca return mai are
#define ET_CONTINUE        3    //nu se opreste, return mai mare !
Cod:
#define FP_CELL            0
#define FP_FLOAT        1
#define FP_STRING        2
#define FP_ARRAY        4
Astea sunt copiate. Nu intelegi ? E off-topic ca iti zic sa pui credite ?

e tutorial nu plugin nu trebe credite :)

Si gata nu mai raspunde ca orcum nu esti in toate mintile ...
=)))))))))))))))))))))))))))))))))))))))))))

O sa imi iau ban pentru asta dar tu esti mai prost decat noaptea.Cum sa nu trebuiasca credite la un tutorial?
Cred ca si de aceea ai luat ban pe a.modders, copy-paste too much.

Hawk552 este autorul,ii dau un pm sa vada ce lesinat esti?

Code: Select all

https://forums.alliedmods.net/showthread.php?t=41241
"ignore valoarea returnata", la bune? Nici macar nu ai tradus si tu tot text-ul copiat.
MaimutaVirtuala iti recomanda doza zilnica de...ABECEDAR.
Nu exista niciun tren in care nu m-as urca,oricare ar fi destinatia lui.(Edna St. Vincent Millay)
Locked

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 7 guests