Pradėsime.
pamokoje naudosime funkcija GetArgument, jeigu jos neturite isidekite i gamemode gala:
stock GetArgument(argument, const string[], untillend){ new index = 0; new end = 0; new returns[256]="0"; for(new loop = 0; loop < argument; loop++){ index = strfind(string," ",true,index)+1; if(!strcmp(string[index]," ",true,1)){return returns;} if (index == 0){return returns;} } if(untillend == 0){ end = strfind(string[index]," ",true,0);} if (end== -1 || untillend==1) end = 256-index; strmid(returns,string[index],0,end); return returns; }
pirmiausia susikurkime kintamaji kuriame norėsime atvaizduoti kito žaidėjo id.
tai viršuje rašome:
new pID[MAX_PLAYERS];
šis dalykas labai praverčia kuriant komandą, pvž nori padaryti /get su susitarimu ar šiaip kokią komandą.
if (strcmp("/tavocmd", cmdtext, true, 8) == 0) { // komanda naudotume /tavocmd žaidėjoid pID[playerid] == strval(GetArgument(1,cmdtext,0)); // atvaizduojame id na o toliau darome ka norime pvz duosime zaidejui koki nors ginkla per dialog ShowPlayerDialog(playerid,212,DIALOG_STYLE_INPUT,"Ginklai","Duoti zaidejui ginklu:","Gerai","Iseiti"); return 1; }
komanda padareme dabar kad viskas veiktu reikia pratesti.
Po callback:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
kuriame toliau koda
if(dialogid == 212) // jeigu dialogid lygus nustatytam ID komandoje { if(response) // jeigu mygtukas 'Gerai' { GivePlayerWeapon(pID[playerid],21,inputtext); // duosime ginklu zaidejui kuri nurodeme rasydami komanda pID[playerid] = 0; // padarome kintamojo reiksme i 0 } return 1; }
Stai ir pamoka baigta, gero naudojimo 🙂