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.
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.