อย่างแรกเราก็ สร้าง Leader มาก่อน
ตอนแรกเราต้องมีสกินเกี่ยวกับลีดหรือสกินลูกน้อง
http://wiki.sa-mp.com/wiki/Skinsสามารถหาได้จากที่นี่
ขั้นแรกเรามาเรียนเรื่องเขียนลีดกัน
เรามาดูคำสั่ง ในการสร้างลีดกัน /makeleader
//----------------------------------[MAKELEADER]------------------------------------------------
if(strcmp(cmd, "/makeleader", true) == 0)
{
if(IsPlayerConnected(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "การใช้งาน: /makeleader [playerid/PartOfName] [Number(1-15)]");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(level > 15 || level < 0) { SendClientMessage(playerid, COLOR_GREY, " ตอนนี้มี 15 ลีด !"); return 1; } if (PlayerInfo[playerid][pAdmin] >= 1337)
{
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(PlayerInfo[para1][pMember] > 0 || PlayerInfo[para1][pFMember] < 255)
{
SendClientMessage(playerid, COLOR_GREY, " ผู้เล่นคนนั้นมีองค์กร / ครอบครัว แล้ว !");
return 1;
}
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pLeader] = level;
format(string, sizeof(string), " You have been promoted to Leader to your requested Faction by Admin %s", sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " You have given %s control to run Faction Number %d.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
if(level == 0) { PlayerInfo[para1][pChar] = 0; }
else if(level == 1) { PlayerInfo[para1][pChar] = 280; } //Police Forceelse if(level == 2) { PlayerInfo[para1][pChar] = 286; } //C.I.Aelse if(level == 3) { PlayerInfo[para1][pChar] = 287; } //National Guardelse if(level == 4) { PlayerInfo[para1][pChar] = 70; } //Fire/Ambulanceelse if(level == 5) { PlayerInfo[para1][pChar] = 116; } //Mafiaelse if(level == 6) { PlayerInfo[para1][pChar] = 120; } //Yakuzaelse if(level == 7) { PlayerInfo[para1][pChar] = 147; } //Mayorelse if(level == 8) { PlayerInfo[para1][pChar] = 294; } //Hitmanselse if(level == 9) { PlayerInfo[para1][pChar] = 227; } //News Reporterselse if(level == 10) { PlayerInfo[para1][pChar] = 61; } //Taxi Cab Companyelse if(level == 11) { PlayerInfo[para1][pChar] = 171; } //Driving/Flying Schoolelse if(level == 12) { PlayerInfo[para1][pChar] = 107; } //Groveelse if(level == 13) { PlayerInfo[para1][pChar] = 104; } //Ballaselse if(level == 14) { PlayerInfo[para1][pChar] = 115; } //Aztecelse if(level == 15) { PlayerInfo[para1][pChar] = 109; } //Vagos gTeam[para1] = 15;
PlayerInfo[para1][pTeam] = 15;
SetPlayerSkin(para1, PlayerInfo[para1][pChar]);
}
}//not connected
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " คุณไม่สามารถใช้คำสั่งนี้ได้นะค๊าฟ !");
}
}
return 1;
}
if(level > 15 || level < 0) { SendClientMessage(playerid, COLOR_GREY, " ตอนนี้มี 15 ลีด !"); return 1; }
คือเราสามารถสร้างลีดตั้งแต่เลข 0 ถึง 15 ถ้าเราต้องการสร้างมากกว่า 15 ให้ปรับจาก 15เป็นเลขอื่น
ต่อไปมาดูเลขของลีดที่สร้างกัน else if(level == 1) { PlayerInfo[para1][pChar] = 280; } //Police Forceelse if(level == 2) { PlayerInfo[para1][pChar] = 286; } //C.I.Aelse if(level == 3) { PlayerInfo[para1][pChar] = 287; } //National Guardelse if(level == 4) { PlayerInfo[para1][pChar] = 70; } //Fire/Ambulanceelse if(level == 5) { PlayerInfo[para1][pChar] = 116; } //Mafiaelse if(level == 6) { PlayerInfo[para1][pChar] = 120; } //Yakuzaelse if(level == 7) { PlayerInfo[para1][pChar] = 147; } //Mayorelse if(level == 8) { PlayerInfo[para1][pChar] = 294; } //Hitmanselse if(level == 9) { PlayerInfo[para1][pChar] = 227; } //News Reporterselse if(level == 10) { PlayerInfo[para1][pChar] = 61; } //Taxi Cab Companyelse if(level == 11) { PlayerInfo[para1][pChar] = 171; } //Driving/Flying Schoolelse if(level == 12) { PlayerInfo[para1][pChar] = 107; } //Groveelse if(level == 13) { PlayerInfo[para1][pChar] = 104; } //Ballaselse if(level == 14) { PlayerInfo[para1][pChar] = 115; } //Aztecelse if(level == 15) { PlayerInfo[para1][pChar] = 109; } //Vagoslevel == 15 คือเลขของลำดับลีดในการสร้างลีด pChar] = 285; 285 คือเลขสกินของลีดถ้าเราต้องการสร้างลีดที่ 16 เราก้อต้องเพิ่มแบบนี้
else if(level == 16) { PlayerInfo[para1][pChar] =
000; } //อะไรก้อว่าไป
สีแดงคือเลขสกินของหัวหน้าลีดต่อมาเรามาทำ จุดเกิดของแก๊งกันCtrl + F แล้วใส่
public SetPlayerSpawn(playerid)แล้วเลื่อน ลงมา จะเห็น
if (PlayerInfo[playerid][pMember] == ? || PlayerInfo[playerid][pLeader] == ?)อยู่กันเป็นฝูง
ต่อมา ทำ พิกัด ให้แก๊งเราเกิดกัน
ผมใช้ แก๊ง เลข 16 ชื่อแก๊ง กล้วยไทย ละกันนะครับ
if (PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16) //Kluythai spawn
{
SetPlayerToTeamColor(playerid);
SetPlayerPos(playerid, -2387.5916,-575.8246,132.1172);
<<< พิกัดจุดเกิด SetPlayerInterior(playerid,0);
<<< Int PlayerInfo[playerid][pInt] = 1;
return 1;
}
ถ้าอยากให้เกิดมามีปืนเลย ก็ใส่GivePlayerWeapon(playerid, 24, 500);GivePlayerWeapon(playerid, 29, 500); if (PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16)//Kluythai spawn
{
SetPlayerToTeamColor(playerid);
GivePlayerWeapon(playerid, 24, 500); <<< DeagleGivePlayerWeapon(playerid, 29, 500); <<< Mp5 SetPlayerInterior(playerid, 0);
<<< Int SetPlayerPos(playerid, -2387.5916,-575.8246,132.1172);
<<< พิกัดจุดเกิด PlayerInfo[playerid][pInt] = 0;
return 1;
}
ส่วนปืน ที่ ให้กับแก๊ง บาง ท่าน อาจจะใช้ /getgun หรือ /fillup
หลังจากนั้น เรามารับลูกน้องเข้าแก๊งCtrl + F แล้วใส่ if(strcmp(cmd, "/invite", true) == 0)
แล้วเราเลื่อนลงมาดูตรงที่ else if(PlayerInfo[playerid][pLeader] == 2) { PlayerInfo[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "C.I.A"; ChosenSkin[para1] = 166; SetPlayerSkin(para1, 166); }
else if(PlayerInfo[playerid][pLeader] == 3) { PlayerInfo[para1][pTeam] = 2; gTeam[para1] = 2; ftext = "AIR BONE_FORCE"; ChosenSkin[para1] = 287; SetPlayerSkin(para1, 287); }
else if(PlayerInfo[playerid][pLeader] == 4) { PlayerInfo[para1][pTeam] = 1; gTeam[para1] = 1; ftext = "Firemen/Ambulance"; ChosenSkin[para1] = 70; SetPlayerSkin(para1, 70); }
else if(PlayerInfo[playerid][pLeader] == 5) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Mafia"; ChosenSkin[para1] = 113; SetPlayerSkin(para1, 113); }
else if(PlayerInfo[playerid][pLeader] == 6) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Yakuza"; ChosenSkin[para1] = 120; SetPlayerSkin(para1, 120); }
else if(PlayerInfo[playerid][pLeader] == 7) { return 1; }
else if(PlayerInfo[playerid][pLeader] == 8) { PlayerInfo[para1][pTeam] = 10; gTeam[para1] = 12; ftext = "Hitman Agency"; ChosenSkin[para1] = 127; SetPlayerSkin(para1, 127); }
else if(PlayerInfo[playerid][pLeader] == 9) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "CNN Studio"; ChosenSkin[para1] = 148; SetPlayerSkin(para1, 148); }
else if(PlayerInfo[playerid][pLeader] == 10) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "Taxi Cab Company"; ChosenSkin[para1] = 255; SetPlayerSkin(para1, 255); }
else if(PlayerInfo[playerid][pLeader] == 11) { PlayerInfo[para1][pTeam] = 12; gTeam[para1] = 12; ftext = "School Instructors"; ChosenSkin[para1] = 59; SetPlayerSkin(para1, 59); }
else if(PlayerInfo[playerid][pLeader] == 12) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Grove Street"; ChosenSkin[para1] = 105; SetPlayerSkin(para1, 105); }//107
else if(PlayerInfo[playerid][pLeader] == 13) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Ballas"; ChosenSkin[para1] = 102; SetPlayerSkin(para1, 102); }
else if(PlayerInfo[playerid][pLeader] == 14) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "VAGOS"; ChosenSkin[para1] = 108; SetPlayerSkin(para1, 108); }//110
else if(PlayerInfo[playerid][pLeader] == 15) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "AZTECZA"; ChosenSkin[para1] = 114; SetPlayerSkin(para1, 114); }
ตรงนี้นะครับ ที่อยู่กันเยอะๆ แล้วก็ ใส่ต่อจากบรรทัดเดิม
else if(PlayerInfo[playerid][pLeader] ==16) { PlayerInfo[para1][pTeam] = 5; gTeam[para1] = 5; ftext = "Kluythai"; ChosenSkin[para1] = 59; SetPlayerSkin(para1, 59); }
ส่วน uninvite ก็ยังอยู่คงเดิมนะครับ
แล้วเราก็มาทำ Rank ให้กับ แก๊ง
Ctrl + F ใส่ public ShowStats(playerid,targetid)
แล้วก็ใส่
else if(PlayerInfo[targetid][pMember] == 16 || PlayerInfo[targetid][pLeader] ==16) { ttext = "Kluythai"; }
ที่เรียงกันยาวๆ
เหมือนตอนเราทำ /invite อ่าครับ
ก็จะออกมาเป็นแบบนี้ต่อจากบรรทัดสุดท้าย
public ShowStats(playerid,targetid)
{
if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid))
{
new cash = GetPlayerMoney(targetid);
new atext[20];
if(PlayerInfo[targetid][pSex] == 1) { atext = "???"; }
else if(PlayerInfo[targetid][pSex] == 2) { atext = "???"; }
new otext[20];
if(PlayerInfo[targetid][pOrigin] == 1) { otext = "???????"; }
else if(PlayerInfo[targetid][pOrigin] == 2) { otext = "?????"; }
else if(PlayerInfo[targetid][pOrigin] == 3) { otext = "??????"; }
new ttext[20];
if(PlayerInfo[targetid][pMember] == 4 || PlayerInfo[targetid][pLeader] == 4) { ttext = "?????"; }
else if(gTeam[targetid] == 3 || gTeam[targetid] == 4) { ttext = "???????"; }
else if(PlayerInfo[targetid][pMember] == 1 || PlayerInfo[targetid][pLeader] == 1) { ttext = "?????"; }
else if(PlayerInfo[targetid][pMember] == 2 || PlayerInfo[targetid][pLeader] == 2) { ttext = "C.I.A"; }
else if(PlayerInfo[targetid][pMember] == 3 || PlayerInfo[targetid][pLeader] == 3) { ttext = "????"; }
else if(PlayerInfo[targetid][pMember] == 4 || PlayerInfo[targetid][pLeader] == 4) { ttext = "??????????/?????"; }
else if(PlayerInfo[targetid][pMember] == 5 || PlayerInfo[targetid][pLeader] == 5) { ttext = "??????"; }
else if(PlayerInfo[targetid][pMember] == 6 || PlayerInfo[targetid][pLeader] == 6) { ttext = "???????"; }
else if(PlayerInfo[targetid][pMember] == 8 || PlayerInfo[targetid][pLeader] == 8) { ttext = "HITMAN"; }
else if(PlayerInfo[targetid][pMember] == 9 || PlayerInfo[targetid][pLeader] == 9) { ttext = "???????"; }
else if(PlayerInfo[targetid][pMember] == 10 || PlayerInfo[targetid][pLeader] == 10) { ttext = "???????"; }
else if(PlayerInfo[targetid][pMember] == 11 || PlayerInfo[targetid][pLeader] == 11) { ttext = "??????????"; }
else if(PlayerInfo[targetid][pMember] == 12 || PlayerInfo[targetid][pLeader] == 12) { ttext = "Grove Street"; }
else if(PlayerInfo[targetid][pMember] == 13 || PlayerInfo[targetid][pLeader] == 13) { ttext = "BALLAS"; }
else if(PlayerInfo[targetid][pMember] == 14 || PlayerInfo[targetid][pLeader] == 14) { ttext = "VAGOS"; }
else if(PlayerInfo[targetid][pMember] == 15 || PlayerInfo[targetid][pLeader] == 15) { ttext = "AZTECZA"; }
else if(PlayerInfo[targetid][pMember] == 16 || PlayerInfo[targetid][pLeader] == 16) { ttext = "Kluythai"; }
new dtext[20];
if(STDPlayer[targetid] == 1) { dtext = "Chlamydia"; }
else if(STDPlayer[targetid] == 2) { dtext = "Gonorrhea"; }
else if(STDPlayer[targetid] == 3) { dtext = "Syphilis"; }
แล้วก็มาใส่ ยศของในแก๊ง หรือ Rank นั่นเอง
else if(PlayerInfo[targetid][pMember] == 16 || PlayerInfo[targetid][pLeader] == 16)//Kluythai
{
if(PlayerInfo[targetid][pRank] == 1) { rtext = "ลูกน้อง"; }
else if(PlayerInfo[targetid][pRank] == 2) { rtext = "นักเลงกินกล้วย"; }
else if(PlayerInfo[targetid][pRank] == 3) { rtext = "นักเลงกินกล้วยน้ำว้า"; }
else if(PlayerInfo[targetid][pRank] == 4) { rtext = "คนคุมนังเลง"; }
else if(PlayerInfo[targetid][pRank] == 5) { rtext = "มือขวาบอส"; }
else if(PlayerInfo[targetid][pRank] == 6) { rtext = "บอส"; }
else { rtext = "มือใหม่หัดขับ"; }
}
หวังว่าคงจะไม่งงกันนะครับ
ต่อด้วยตอนที่ 2 การสร้าง สกินให้กับแก๊งละกันนะครับ
อย่างแรกเลย หาสกินมาลง ก่อน เลย ครับ ^^ ดู skin เอา ที่นี่ นะครับ
http://wiki.sa-mp.com/wiki/Skins
ต่อมา แอด สกินลงในสคริปนะครับ
Ctrl + F แล้วใส่ new JoinPed
new JoinPed[62][1] = {
{265},//POLICE_FORCE 0
{266},// 1
{282},// 2
{284},// 3
{285},// 4
{288},// 5
{71},// 6
{283},// 7
{281},// 8
{280},// 9
{166},//C.I.A 10
{165},// 11
{164},// 12
{163},// 13
{287},//Armed Forces 14
{70},//FIRE/AMBULANCE 15
{274},// 16
{275},// 17
{276},// 18
{277},// 19
{278},// 20
{279},// 21
{113},//Los Corona Aztecas 22
{111},// 23
{98},// 24
{112},// 25
{120},//YAKUZA 26
{121},// 27
{122},// 28
{123},// 29
{126},// 30
{188},//Mayor 31
{223},// 32
{60}, // 33
{294},//Hitmans 34
{127},// 35
{148},//NEWS_REPORTERS 36
{187},// 37
{227},// 38
{57},// 39
{255},//TAXI_CAB_COMPANY 40
{253},// 41
{189},//DRIVING/FLYING_SCHOOL 42
{60},//DRIVING/FLYING_SCHOOL 43
{101},//DRIVING/FLYING_SCHOOL 44
{105},//G.S 45
{106},//G.S 46
{107},//G.S 47
{102},//B.S 48
{103},//B.S 49
{104},//B.S 50
{108},//V.G 51
{109},//V.G 52
{110},//V.G 53
{114},//A.Z 54
{115},//A.Z 55
{116},//A.Z 56
{59},//Kluythai 57
{73},// 58
{93},// 59
{233},// 60
{240}// 61
}
จะเห็นได้ว่า ผม เอาลง 5 skin นะครับ แล้วใส่เลข นับจาก อันแรกลงมา จะเห็นได้ว่าผม วางเลขไว้ จาก 0 ถึง 61 = 62
อย่าลืมนับเลข 0 ด้วยนะ
เพื่อที่จะ ไปใส่ ตอนเลือกตัวละคร
new JoinPed[62][1] = {
ต่อมา
Ctrl + F ใส่public OnPlayerText(playerid, text[])
แล้วเลื่อนลงมา จะเห็นว่า จะมี เลข ตามให้เลือกสกิน
ผม เขียน ขึ้นมาให้ดูก่อนนะครับ
case 16: //Kluythai
{
if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[57][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[57][0]; }
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[58][0]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = JoinPed[58][0]; }
else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[59][0]); SelectCharPlace[playerid] = 4; ChosenSkin[playerid] = JoinPed[59][0]; }
else if(SelectCharPlace[playerid] == 4) { SetPlayerSkin(playerid, JoinPed[60][0]); SelectCharPlace[playerid] = 5; ChosenSkin[playerid] = JoinPed[60][0]; }
else if(SelectCharPlace[playerid] == 5) { SetPlayerSkin(playerid, JoinPed[61][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = JoinPed[61][0]; }
}
จะเห็นได้ว่า ผม ใส่ เลขสลับกัน ในสกิน
if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid,JoinPed[57][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[57][0]; }
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[58][0]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = JoinPed[58][0]; }
else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[59][0]); SelectCharPlace[playerid] = 4; ChosenSkin[playerid] = JoinPed[59][0]; }
else if(SelectCharPlace[playerid] == 4) { SetPlayerSkin(playerid, JoinPed[60][0]); SelectCharPlace[playerid] = 5; ChosenSkin[playerid] = JoinPed[60][0]; }
else if(SelectCharPlace[playerid] == 5) { SetPlayerSkin(playerid, JoinPed[61][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = JoinPed[61][0]; }
แล้วอย่าลืมใส่เลข joinped ด้วยหละ
เท่านี้ ก็เสร็จละครับ
มีปัญหาอะไรถามได้นะครับ ^^
ขอแค่คำขอบคุณครับ