Scripting - DILEME MARI!

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
mixatu
Membru, skill +2
Membru, skill +2
Posts: 680
Joined: 26 Apr 2012, 15:47
Detinator Steam: Da
SteamID: kzu1337
Reputatie: Membru Club eXtreamCS (1 luna)
Location: cstrike
Has thanked: 59 times
Been thanked: 29 times
Contact:

04 Sep 2012, 18:27

Salut, as vrea sa ma apuc de SCRIPTING CS bine inteles. Dar ce nu inteleg? Uite aici.

Frate, sunt greu de cap :|, ca sa fii scripter iti trebuie memorie mare sau ce? CINE DUMNEZEU TINE MINTE ASTA -> for(new i = 0 ; i < MAX_GROUPS ; i++) ? Daca de exemplu in loc de i++ pun i ++ sau i + + sau i ++ gresesc tot pluginul? Asta e doar un exemplu, sunt mii de alte LINII si caractere pe care nu le inteleg. Ar trebui sa fie ceva, un program care ti le pune automat, ca vorba aia, cine dumnezeu tine minte asa ceva? Si cand spun asa ceva ma refer la asta ->
| Afiseaza codul
public cmdWho(id)
{
   static sPlayers[32], iNum, iPlayer;
   static sName[32], sBuffer[1024];
   
   static iLen;
   iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=##B1EE68><pre>");
   iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen,"Admini Online.");
   
   get_players(sPlayers, iNum, "ch");
   
   for(new i = 0; i < MAX_GROUPS ; i++)
   {   
      iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><h5><font color=^"green^"><B>%s</B>^n</font></h5></center>", g_groupNames);
      
      for(new x = 0; x < iNum ; x++)
      {   
         iPlayer = sPlayers[x];
         
         if(get_user_flags(iPlayer) == g_groupFlagsValue)
         {
            get_user_name(iPlayer, sName, sizeof sName - 1);
            iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center>%s^n</center>", sName);
         }
      }
   }
   show_motd(id, sBuffer, "Vezi Adminii On");
   return 0;
}

Nu luati in seama CUVINTELE, LUATI IN SEAMA caracterele, adica astea -> # [ { ] }} " ) == + % / ^ .
Chiar toate simbolurile astea trebuie sa le tin eu minte? De exemplu, sa zicem, asta e o linie dintr-un plugin ->

Code: Select all

register_concmd @ { } (exemplu_exemplu. == _ P con_cmd_ ) { amx
, asta, spre exemplu, nu o luati ca pe o comanda corecta, am dat doar un exemplu. Ca si scripter, trebuie sa tin minte toate simbolurile astea, unde trebuie puse si asezate dupa fiecare linie, dupa fiecare cuvant sau comanda ca nici nu stiu :| . Explicati-mi si mie cineva fratilor, ca nu mai inteleg, eu inteleg, ca prin a fi scripter tot ce e intr-un plugin, trebuie scris de mana mea, aici ma refer la aceste caractere (? " { ) _ = _ $ ^ & # / ' ' etc) , Sa imi explice cineva ce e cu toate astea :|, scuze, dar mai bine de atat nu pot explica. Sper sa intelegeti.
EDIT: Mai exact vreau un tutorial care imi arata ce semnifica fiecare simbol care este adaugat in sursa .(? { _ + - & si altele)
RoyalServer
User avatar
DNAlecs
Membru, skill +1
Membru, skill +1
Posts: 162
Joined: 07 Dec 2011, 20:47
Detinator Steam: Nu
CS Status: Prin zona :) .
Detinator server CS: ---
Location: Madrid, Spain.
Has thanked: 32 times
Been thanked: 6 times

04 Sep 2012, 18:46

Probabil iti voi da cea mai simpla explicatie care exista, sper sa nu ma-nsel .
"@mixatuDaca de exemplu in loc de i++ pun i ++ sau i + + sau i ++ gresesc tot pluginul?"
Da, il gresesti pe tot !
"@mixatuCine dumnezeu tine minte asa ceva? "
Raspunsul il ai chiar tu, ti-l voi spune si eu.. Un Scripter tine minte asa ceva !
"@mixatuCa si scripter, trebuie sa tin minte toate simbolurile astea, unde trebuie puse si asezate dupa fiecare linie, dupa fiecare cuvant sau comanda ca nici nu stiu"
Da, trebuie..

Este exact ca html-ul, css-ul etc... Trebuie sa cunosti fiecare simbol, sa sti ceea ce face, ce functie are si probabil cel mai important, unde trebuie "asezat" !

Dar, odata invatate, totul devine usor.
Motivul ? = Mereu vor fi aceleasi simbol`uri !


Sper ca te-am ajutat cat de cat :) !
User avatar
mixatu
Membru, skill +2
Membru, skill +2
Posts: 680
Joined: 26 Apr 2012, 15:47
Detinator Steam: Da
SteamID: kzu1337
Reputatie: Membru Club eXtreamCS (1 luna)
Location: cstrike
Has thanked: 59 times
Been thanked: 29 times
Contact:

04 Sep 2012, 19:02

Mersi oricum, dar nu exista un dicionar care explica functiile la toate simbolurile si unde trebuiesc asezate?
User avatar
otomanu32
Membru, skill +3
Membru, skill +3
Posts: 1182
Joined: 22 Aug 2011, 10:06
Detinator Steam: Nu
Reputatie: Ban 3 luni
Ban 2 luni
Location: Rotterdam
Has thanked: 129 times
Been thanked: 73 times

04 Sep 2012, 19:21

pai man trebuie sa stii c++ care il inveti la liceu ... daca faci mate-info
User avatar
ForeMan
Membru, skill +1
Membru, skill +1
Posts: 101
Joined: 31 Aug 2012, 23:38
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: McDreamy
Has thanked: 2 times
Been thanked: 11 times
Contact:

04 Sep 2012, 19:31

În plugin este html
Şi recomand să înveţi html după java
compaq
Fost moderator
Fost moderator
Posts: 2598
Joined: 01 Dec 2008, 15:32
Detinator Steam: Da
Reputatie: Fost eXtream Mod
Fost contribuitor
Fost manager
Fost Scripter eXtreamCS
Has thanked: 15 times
Been thanked: 152 times

04 Sep 2012, 19:52

PlayWorldRo wrote:pai man trebuie sa stii c++ care il inveti la liceu ... daca faci mate-info
Nu trebuie.
ForeMan wrote:În plugin este html
Şi recomand să înveţi html după java
Exact, 1 rand. Nu ai nevoie de HTML.

Mutat la programare - pluginuri.
mixatu wrote:ca sa fii scripter iti trebuie memorie mare sau ce?
Deloc. Putina logica si capacitatea de a te obisnui cu limbajul de programare.
mixatu wrote:CINE DUMNEZEU TINE MINTE ASTA -> for(new i = 0 ; i < MAX_GROUPS ; i++)
Scripterii. Invata sintaxa functiilor.

Code: Select all

for(initializare, conditie, incrementare/decrementare/...)
mixatu wrote:Ar trebui sa fie ceva, un program care ti le pune automat
Nu exista programe care-ti pun automat for-uri, while-uri sau chestii de genul. Cel putin eu nu stiu sa existe. Ai putea incerca AMXX Studio; am facut eu un tutorial acum mult timp: http://www.extreamcs.com/forum/pluginur ... 41134.html
mixatu wrote:Si cand spun asa ceva ma refer la asta ->
| Afiseaza codul
public cmdWho(id)
{
   static sPlayers[32], iNum, iPlayer;
   static sName[32], sBuffer[1024];
   
   static iLen;
   iLen = formatex(sBuffer, sizeof sBuffer - 1, "<body bgcolor=#000000><font color=##B1EE68><pre>");
   iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen,"Admini Online.");
   
   get_players(sPlayers, iNum, "ch");
   
   for(new i = 0; i < MAX_GROUPS ; i++)
   {   
      iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center><h5><font color=^"green^"><B>%s</B>^n</font></h5></center>", g_groupNames);
      
      for(new x = 0; x < iNum ; x++)
      {   
         iPlayer = sPlayers[x];
         
         if(get_user_flags(iPlayer) == g_groupFlagsValue)
         {
            get_user_name(iPlayer, sName, sizeof sName - 1);
            iLen += formatex(sBuffer[iLen], CharsMax(sBuffer) - iLen, "<center>%s^n</center>", sName);
         }
      }
   }
   show_motd(id, sBuffer, "Vezi Adminii On");
   return 0;
}

Nu trebuie tinut minte. In programare, 90% se bazeaza pe logica sa spun...
mixatu wrote:Nu luati in seama CUVINTELE, LUATI IN SEAMA caracterele, adica astea -> # [ { ] }} " ) == + % / ^ .

Exemplu:

Code: Select all

new iPlayers[32], iNum;
	get_players(iPlayers, iNum);

	for(new i = 0; i < iNum; i++)
	{
		if(i < 5)
			client_print(iPlayers[i], print_chat, "Primii 5 playeri.");

		else if(i == 5)
			client_print(iPlayers[i], print_chat, "Al 5-lea player.");

		else if(i > 5)
			client_print(iPlayers[i], print_chat, "Restul jucatorilor");
	}
new iPlayers[32], iNum sunt variabile. Dupa cum observi, iPlayers are si [32], adica 32 pozitii. Numaratoarea incepe de la 0.
iNum va stoca numarul jucatorilor.
get_players(iPlayers, iNum) ia index-ul jucatorilor: http://www.amxmodx.org/doc/index.html?p ... layers.htm
Daca te uiti pe link-ul acela vei vedea ca exista si niste flag-uri: "a" va trece peste playerii decedati, "c" va trece peste boti etc.
Totodata, functia get_players o poti folosi asa:

Code: Select all

get_players(iPlayers, iNum, "TERRORIST");
sau

Code: Select all

get_players(iPlayers, iNum, "CT");
Asa iti va returna doar playerii unei echipe.

Code: Select all

	for(new i = 0; i < iNum; i++)
Cum am spus, numaratoarea la vectori incepe de la 0 (i, variabila declarata in for), loop-ul mergand pana cand i este mai mic decat iNum. Cazul i == iNum (i este egal cu iNum) nu va fi atins niciodata.

Code: Select all

if(i < 5)
			client_print(players[i], print_chat, "Primii 5 playeri.");
Se verifica daca i-ul este mai mic decat 5; daca da, se va printa un mesaj primilor 5 playeri.
iPlayers este jucatorul caruia ii printeaza; se executa ce este in for, iar apoi se reia cu i + 1 (deoarece ai incrementat - for(new i = 0; i < iNum; i++))
i++ - se incrementeaza i-ul, adica se adauga 1 la i;
i-- - se decrementeaza i-ul, adica se scade 1 din i.
Urmatoarele else if-uri sunt aproape acelasi lucru: primul else if verifica daca i-ul este 5, al doilea daca i-ul este mai mare decat 5.
Poti folosi <= (mai mic sau egal), >= (mai mare sau egal), == (egal).
Semnul # se foloseste de obicei la include-uri, define-uri, pragma si asa mai departe:

Code: Select all

#include <amxmodx>

#define TEST 123.0

public plugin_init()
{
	set_task(TEST, "test", _, _, _, "b");
}

public test()
{
	client_print(0, print_chat, "Se va printa acest mesaj la fiecare 123 secunde. set_task-ul din plugin_init() este infinit.");
}
Daca ai nelamuriri, post reply.
Scuzati eventualele greseli.
User avatar
mixatu
Membru, skill +2
Membru, skill +2
Posts: 680
Joined: 26 Apr 2012, 15:47
Detinator Steam: Da
SteamID: kzu1337
Reputatie: Membru Club eXtreamCS (1 luna)
Location: cstrike
Has thanked: 59 times
Been thanked: 29 times
Contact:

04 Sep 2012, 19:54

Deci, ca sa devin scripter trebuie sa invat html? Cum se invata mai exat html? Ce ar trebui sa stiu in html?
compaq
Fost moderator
Fost moderator
Posts: 2598
Joined: 01 Dec 2008, 15:32
Detinator Steam: Da
Reputatie: Fost eXtream Mod
Fost contribuitor
Fost manager
Fost Scripter eXtreamCS
Has thanked: 15 times
Been thanked: 152 times

04 Sep 2012, 20:24

DNAlecs wrote:Probabil iti voi da cea mai simpla explicatie care exista, sper sa nu ma-nsel .
"@mixatuDaca de exemplu in loc de i++ pun i ++ sau i + + sau i ++ gresesc tot pluginul?"
Da, il gresesti pe tot !
Nu. Gresesti doar linia respectiva.
User avatar
ForeMan
Membru, skill +1
Membru, skill +1
Posts: 101
Joined: 31 Aug 2012, 23:38
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
SteamID: McDreamy
Has thanked: 2 times
Been thanked: 11 times
Contact:

04 Sep 2012, 22:10

mixatu wrote:Deci, ca sa devin scripter trebuie sa invat html? Cum se invata mai exat html? Ce ar trebui sa stiu in html?
Deschide un txt cu notepad si invata tag-urile pentru inceput,dupa incepi sa le combini.
Cand salvezi fisierul pui extensia .html,intelegi?
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:

04 Sep 2012, 23:14

mixatu wrote:Deci, ca sa devin scripter trebuie sa invat html? Cum se invata mai exat html? Ce ar trebui sa stiu in html?
Pawn-ul nu are nici-o legatura cu HTML-ul.

Cum zicea si compaq , este un cod logic.Practic tu inveti doar sintaxa , restul vine din creier.

De exemplu:

Code: Select all

Daca x este egal cu 10 , y devine 15.
In pawn ar veni asa

Code: Select all

if( x == 10 )
{
	y = 15
}
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
User avatar
H3adShoT
Membru, skill +3
Membru, skill +3
Posts: 1254
Joined: 03 May 2009, 19:19
Detinator Steam: Da
CS Status: Nu mai incercati sa-mi furati contul!
Detinator server CS: Nimic
SteamID: PM
Reputatie: Restrictie moderator
Location: Hunedoara
Has thanked: 47 times
Been thanked: 92 times
Contact:

07 Oct 2012, 01:30

nu este chiar foarte greu,se invata pe parcurs,cu cat lucrezi mai mult,cu atat iti va fi mai usor
eu imi aduc aminte la inceput cand m-am apucat de servere(acum 5-6 ani),ma intrebam atunci,cum o sa tin eu minte cum se compileaza un plugin,unde trebuie bagat si instalat ?
vorba lui compaq,totul tine de logica,daca inveti ce este de baza,restul va veni de la sine
Retras din activitate.
User avatar
CamPagNe
Fost moderator
Fost moderator
Posts: 329
Joined: 12 Jun 2012, 15:20
Detinator Steam: Da
CS Status: Fuck yeah !
Reputatie: Fost Moderator ajutator
Has thanked: 13 times
Been thanked: 71 times

08 Oct 2012, 16:28

PlayWorldRo wrote:pai man trebuie sa stii c++ care il inveti la liceu ... daca faci mate-info
Contrazic :). Eu la liceu fac Pascal, limbajele C++ si Pascal sunt total diferite. Pawn poti inelege si singur acasa + ceva experienta in informatica, doar sa stii la ce ajuta simbolurile.
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 7 guests