Page 1 of 1

[PAWNO] Komanda uz ZCMD

Posted: 16 Feb 2013, 22:29
by Grindz[Vendetta]
Sveicināti.

Nezinu vai kāds īpaši vēl uz pawno kautko mācās/strādā, bet taisu šo nelielo pamācību skripteriem, vairāk domāts uz iesācēju skripteriem.

Tātad, ko šajā nelielajā pamacībā pamācīšu:

1.Iesākumā, kas tas tāds zcmd vispār ir?
2.Kāpēc labāk zcmd, nekā strcmp?
3.Katras zcmd rindas, vārdu skaidrojums?
===========================================
Domāju, ka varam sākt:
1.Kas ir zcmd?
ZCMD ir komandu procesors, kas nodrošina ātrāku komandas funkcijas darbību, nekā strcmp. ZCMD izmanto vairāk, nekā strcmp, vai DCMD, jo ir ērtāks un vieglāks. ZCMD tiek izmantots ar SSCANF kodu. SSCANF - vairāk info šeit.
2.Kāpēc labāk zcmd, nekā strcmp?
Kā jau tika minēts, ZCMD ir ātrāks par strcmp. Personīgi uzskatu, ka zcmd ir arī vieglāks, ērtāks un saprotamāks par strcmp. Pats sāku veidot visu ar zcmd, strcmp pat klāt neķēros. Citiem cilvēkiem arī iesaku izmantot šo.
3.Katras zcmd rindas, vārdu skaidrojums?
Komandas /skin kods, kā piemērs:

Code: Select all

CMD:skin(playerid, params[])
{
	new skin;
	if(sscanf(params, "i", skin)) return SendClientMessage(playerid, 0xFFFFFFAA, "LIETO: /skin [id]");
	if(skin > 299 || skin " jāliek 2 lietas:
[code]#include 

Code: Select all

#include 
===========================================
Sākam:

Code: Select all

CMD:skin(playerid, params[])
CMD: - uz strcmp tā būtu /. Šo "CMD:" var arī aizstāt ar:

Code: Select all

command(skin, playerid, params[])
Bet tas tomēr būtu nedaudz neērtāk.

Tālāk:

Code: Select all

(playerid, params[])
playerid - spēlētāja ID, kas nosūta šo ziņu
params[] - parametri "string" (links, kas ir string)

Tālāk:

Code: Select all

new skin;
new - domāju, ka nav jāskaidro no angļu valodas, ko tas nozīmē.
skin - vārds, kas tiks izmantots tālāk kautkur skriptā.
; - kā noslēgošo, izmanto, punkta vietā.

Tālāk:

Code: Select all

if(sscanf(params, "i", skin)) return SendClientMessage(playerid, COLOR_ORANGE, "LIETO: /skin [id]");
Te nu arī sākās viss, tātad:
if - no angļu valodas "ja".
sscanf - tas kods (augšā links).
params - parametri.
"i" - šis ir kā saucamais "Datu tips", no kura būs atkarīgs tālākā skripta darbība. Burtu var mainīt, burtu nozīme šeit, bet jāskatās, kāda komandas rindas būs tālāk, jo nekādā gadījumā nevar likt "s", un tava komanda būs /skin [id]. ID - tātad jau cipars, nevis burts. Tu rakstīsi /skin 2, bet Tev paliks CJ un nekas nemainīsies.
skin - jaunais vārds, ko izmantosim tālāk, kas būs tākā noteikošais, par tālāko darbību.
return - ja spēlētājs uzrakstīs vienkārši /skin, tad viņam parādīsies nākamā daļa - SendClientMessage(playerid, COLOR_ORANGE, LIETO: "/skin [id]");
Spēlē piemērs, rakstu /skin un man parādās, ar orandžiem burtiem, LIETO: /skin [id]. - šo var mainīt, kā vēlaties.

Tālāk:

Code: Select all

if(skin > 299 || skin  299 || skin < 1[/b] - tātad, spēlētājs nevarēs uzlikt augstāku izskata id par 299 vai zemāku par id 1.
[b]return SendClientMessage(playerid, COLOR_GREY, "Pieejamie skin id: 1-299!");[/b] - ja spēlētājs rakstīs /skin 0 vai /skin 300 un augstāk, tam vienkārši izmetīs kļūdainu izskata ID un paziņos, ka pieejamie izskata id ir no 1 līdz 299.

[b]Tālāk:[/b]
[code]SetPlayerSkin(playerid, skin);
SetPlayerSkin - ar šo var nomainīt spēlētāja vēlamo izskatu.
playerid - tātad es pats lietoju šo komandu un mainu izskatu tikai sev.
skin - ar šo mēs arī aizstājam "skinid". skin - tas ir jebkurš cipars no 1-299, kas tiek iekļauts zem šī vārda "skin".

Tālāk:

Code: Select all

SendClientMessage(playerid, COLOR_GREEN, "*Tavs izskats ir veiksmigi nomainits!");
SendClientMessage - jau minēts augstāk, serveris nosūta spēlētājam ziņu, kuras teksta saturs - "*Tavs izskats ir veiksmigi nomainits! - tātad, paziņo, ka izskats veiksmīgi nomainīts. Šo var arī nelikt, ja ļoti negrib.

Tālāk:

Code: Select all

return 1;
Tātad, kad serveris komandu izpildījis, nemetās nekādi errori, kā "SERVER: Unknown Command" un ļauj tālāk nākošajām komandām darboties.
===========================================

ZCMD veidotājs - Zeex
SSCANF veidotājs - Y_Less

Plugini/INC:

SSCANF
ZCMD

*Pirmā pamācība, ko jebkad esmu veidojis, tāpēc, ja atrodat kādas kļūdas vai ir kādas neskaidrības, rakstat droši.

Ceru, ka esmu visu pastāstījis, kas būtu jāzin, Grindz.

Re: [PAWNO] Komanda uz ZCMD

Posted: 16 Feb 2013, 23:02
by [NF]Magnifico
Pamācība ļoti laba. Cepums tev ;)

Re: [PAWNO] Komanda uz ZCMD

Posted: 17 Feb 2013, 14:02
by Crone
Laba pamācība, tikai nevajadzēja tik sīki rakstīt, ko katrs "if", "new" utt. nozīmē. ;dd Ganjau, kādam noderēs, visu laiku kāds taisās vērt vaļā jaunus serverus, cik skatos.

Re: [PAWNO] Komanda uz ZCMD

Posted: 19 Feb 2013, 09:29
by [BB]Sand[TITNS]
Prieks ka kāds vel kko tādu taisa. :)
Cepums tev. ;)

Re: [PAWNO] Komanda uz ZCMD

Posted: 24 Mar 2013, 23:00
by [HOONIGAN]
Man ir jautajums ka lai uz zcmd uztaisa ta ka var piem /setramp 1 ?

Re: [PAWNO] Komanda uz ZCMD

Posted: 25 Mar 2013, 08:17
by [AoD]Chuckie
[oF]Extended wrote:Man ir jautajums ka lai uz zcmd uztaisa ta ka var piem /setramp 1 ?
http://pastebin.com/UHayiEFy

vai arī

http://pastebin.com/mVPuxYH3