Inainte sa incep as vrea sa va zic ca acest articol este pentru oricine cu orice nivel in pawn.
Acest articol este despre cel mai efficient mod despre programare si aranjarea codurilor.
sa incepem:
Comentariile:Cel mai bun loc de a crea comentarii este bineinteles la inceputul pluginului, unde vei expica ce face pluginul, mai posta posta si cvaruri, comenzi, informatii , url official, comenzi chat, etc.
exemplu:
- Cod:
-
/*
Copyleft 2008
Plugin thread: http://forums.alliedmods.net/showthread.php?p=633284
DUEL MOD
========
Description
This mod is designed to allow dueling, where players challenge each
other and engage in battle. It is designed for the mod "The Specialists",
but can be used on other mods.
Commands
say /duel - Will challenge the player being looked at to a duel.
say /accept - Will accept a challenge. Note that you can also use /duel,
but you must be looking at the person who challenged you. With /accept,
the last person to challenge you will be accepted.
say /punchingbag - Turns the player into a punching bag
(requires amx_duel_punchingbag to be set to 1).
Credits
Havoc9 Community - Testing help (specifically SaderBiscut and Jimmy Striker).
Lord_Destros - Testing help.
Steely - Testing help.
sawyer - Testing help.
Frost - Testing help.
coderiz - New semiclip method.
Charming - Encouragement.
Changelog:
Jun 1, 2008 - v1.0 - Initial release
Jun 2, 2008 - v1.1 - [FIXED] Some repeated variables
[FIXED] Message printing incorrectly
[FIXED] Duel off not working properly
[ADDED] Punching bag mode
[ADDED] True semiclip
[ADDED] Attack blocking between
duelists <-> players
[ADDED] God mode to normal players
Jun 4, 2008 - v1.2 - [ADDED] Deny command
[ADDED] Pair command
[ADDED] Name parameter to /duel command
[ADDED] Glow cvar
[FIXED] Messages printing incorrectly
*/
Asta arata ca acest plugin e foarte bun pentru ca arata urmatoarele lucruri:
- Explica ce face pluginul ( Description )
- O lista cu cvar-uri
- Spune despre ce joc este ( modul : hns/dr, ESF , etc )
- Poti pune aici si credite, changelog-ul, comenzile in chat
Nu este neaparat sa puneti si copy left, dar in fine .. uneori e potrivit.
Define-uriSa vorbim despre #define.
Vas ruga cand creati un define sa fie asa:
- Cod:
-
#define THE_LIMIT 10
in loc de :
- Cod:
-
#define the_limit 10
Doar cand vreti sa creati o functie nou , atunci o puteti crea cu litere mic, exemplu:
- Cod:
-
#define MyNewIsUserAlive(%1) is_user_alive( %1 )
Aranajrea codurilor, Tab si SpaceCand intrati in notepad si apasati "TAB" va lasa mult spatiu , aceasta este cea mai recomandata metoda, in loc sa apasai SPACE de 4 ori mai bine apasati TAB odata, toata lumea foloseste TAB, e cea mai recomanda metoda.
Despre spatiile libere, cand folositi/faceti o functie vas ruga sa lasati loc intre id, primul parametru, al doilea parametru, etc
exemplu
in loc de :
- Cod:
-
client_cmd(id,"quit")
vas ruga sa fie asa:
- Cod:
-
client_cmd( id, "quit" )
Daca ati putea sai mai adaugati si ";" la sfarsit ar fi perfect:
- Cod:
-
client_cmd( id, "quit" );
VariabileCand faceti variabiile aici trebuie sa aveti grija pentru ca variabillele sunt definite asa cum sunt create ( de exemplu cand faceti o variabila cu toate literele mici , cand o folositi trebuie sa o scrieti cu toate literele mici )
exemplu:
- Cod:
-
new VariabilaMea
new variabilaMea
new vARiAbilaMea
Tocmai am creat 3 variabile diferite dar care au acelasi nume.
Variabile globaleAici este foarte important multa lume este foarte confuza despre ce face o variabila cand se uita in pluginul vostru si o poate sterge, in fine nu doar acesta este motivul cel mai indicat e sa numiti o variabila dupa urmatoarele cerinte:
cand faceti o variabila globala prefixul numelui trebuie sa fie cu "g" sau _g, exemplu:
- Cod:
-
new g_MyVariabile
new gMyVariabile
Alegeti una dintre aceste 2 metoda amandoua sunt bune.
lista prefixuri variabile globale:
- g sau _g [ adica global ( amandoua sunt perfect, o prefer pe a 2 eu. )
- p sau _p [ adica Puncte ] ( o prefer pe a 2 a )
- i - Integer ( adica Numere )
- f sau fl sau f_,fl_ [ floats ]
- sz sau sz_ - String
- b sau b_- boolean
- h - handles
- v sau v_ - Vector
- fn sau fn_ - functie
Sunt mult mai multe tag-uri, eu leam scris doar pe cele care le stiam.
Cateva variabile care sunt facute bine:
- Cod:
-
// a global cell
new g_iKills
// a global float
new Float:g_flSpeed
// a bool
new bool:bFlag
// a function
public fnEventResetHUD()
// a pointer
new g_pCvar
Return-urireturn PLUGIN_CONTINUE este la fel ca return 0;
return PLUGIN_HANDLED este la fel ca return 1;
dar eu as prefera sa le folosit pe astea:
- Cod:
-
return PLUGIN_CONTINUE;
return PLUGIN_HANDLED;
Alte LinkuriO lista cu niste linkuri folositoare pentru incepator:
[Trebuie sa fiti inscris si conectat pentru a vedea acest link]Curand....
Sursa: [Trebuie sa fiti inscris si conectat pentru a vedea acest link]