[PAWNO] Komanda uz ZCMD

GTA un SA:MP daž ne dažādas pamācības.

Moderator: Moderatori

Post Reply
User avatar
Grindz[Vendetta]
Servera admins
Servera admins
Posts: 585
Joined: 18 Jan 2009, 12:19
Location: Rīga

[PAWNO] Komanda uz ZCMD

Post 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.
Last edited by Grindz[Vendetta] on 16 Feb 2013, 23:39, edited 2 times in total.
User avatar
[NF]Magnifico
Censoņa
Censoņa
Posts: 245
Joined: 09 Oct 2011, 03:17
Location: Cēsis

Re: [PAWNO] Komanda uz ZCMD

Post by [NF]Magnifico »

Pamācība ļoti laba. Cepums tev ;)
User avatar
Crone
Censoņa
Censoņa
Posts: 247
Joined: 30 Oct 2010, 21:48
Location: Valka

Re: [PAWNO] Komanda uz ZCMD

Post 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.
.
Image
User avatar
[BB]Sand[TITNS]
Jauniņais
Jauniņais
Posts: 97
Joined: 02 Aug 2011, 22:04
Location: Kautkur meža vidū.

Re: [PAWNO] Komanda uz ZCMD

Post by [BB]Sand[TITNS] »

Prieks ka kāds vel kko tādu taisa. :)
Cepums tev. ;)
Image
User avatar
[HOONIGAN]
Jauniņais
Jauniņais
Posts: 83
Joined: 08 Jan 2013, 21:20
Location: Valmiera

Re: [PAWNO] Komanda uz ZCMD

Post by [HOONIGAN] »

Man ir jautajums ka lai uz zcmd uztaisa ta ka var piem /setramp 1 ?
[AoD]Chuckie
Servera Foruma Mod
Servera Foruma Mod
Posts: 505
Joined: 25 Feb 2012, 10:57
Location: tepat

Re: [PAWNO] Komanda uz ZCMD

Post 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
nauda kuces shnabis
Post Reply