Bu yazıda, team deathmatchın temel kodlama mantığını kavrayacağız. Yapılması gereken temel şeyleri ve ekstra şeyleri bu yazıda öğrenmiş olacaksınız.
İlk önce modun başına takım tanımlarını yapalım.
new takim[MAX_PLAYERS];
#define TAKIM_SWAT 1
#define TAKIM_ARMY 2
Yukarıda TAKIM_SWAT değerine 1, TAKIM_ARMY değerine ise 2 değerlerini atadık.
Şimdi ise OnPlayerConnect'e bir karşılama ekranı ekleyelim.
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, -1, "{FF0000}Team Deathmatch {00FF00}sunucusuna {FFFFFF}hoş geldin!");
return 1;
}
Şimdi ise takımları ayarlayalım. Bunun için, ilk önce OnGameModeInit publicine ışınlanıyoruz.
public OnGameModeInit()
{
AddPlayerClass(285,0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0); // Swat takımını ayarladık.
AddPlayerClass(287,0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0); // Army takımını ayarladık.
return 1;
}
Daha sonra hangi karakteri seçtiğinde, hangi şeyin olacağına karar vereceğiz. OnPlayerRequestClass publicine, marş marş!
public OnPlayerRequestClass(playerid, classid)
{
switch(classid) // classid değerini seçtik.
{
case 0:
{
takim[playerid] = TAKIM_SWAT;
GameTextForPlayer(playerid, "~b~S.W.A.T~n~~w~Mars Mars!", 3000, 3);
// Swat seçtiğinde olacakları ayarlıyoruz.
}
case 1:
{
takim[playerid] = TAKIM_ARMY;
GameTextForPlayer(playerid, "~g~A.R.M.Y~n~~w~Mars Mars!", 3000, 3);
// Army seçtiğinde olacakları ayarlıyoruz.
}
} // Switch parantezni kapattık.
return 1;
}
Şimdi ise oyuncu spawn olduğunda olacakları ayarlıyoruz. OnPlayerSpawn publicine!
public OnPlayerSpawn(playerid)
{
if(takim[playerid] == TAKIM_SWAT)
{
GivePlayerWeapon(playerid, 24, 500);
GivePlayerWeapon(playerid, 26, 500);
GivePlayerWeapon(playerid, 31, 500);
SetPlayerPos(playerid, Işınlanacağı x, y ve z posları);
SendClientMessage(playerid, -1, "Başarıyla S.W.A.T olarak doğduğunuz!");
// Takım swat ise olacaklar
}else if(takim[playerid] == TAKIM_ARMY)
{
GivePlayerWeapon(playerid, 24, 500);
GivePlayerWeapon(playerid, 27, 500);
GivePlayerWeapon(playerid, 31, 500);
SetPlayerPos(playerid, Işınlanacağı x, y ve z posları);
SendClientMessage(playerid, -1, "Başarıyla A.R.M.Y olarak doğduğunuz!");
// Takım army ise olacaklar
}
return 1;
}
Şimdi ise takıma özel araç yapma zamanı. Modun başına gidip bir değişken tanıtıyoruz.
new swatarac;
new armyarac;
Aracı eklemek için yine, başta gittiğimiz yer olan, OnGameModeInit callbackine gidiyoruz.
swatarac = CreateVehicle(araç ıd, araç pos, 1. renk, 2. renk, respawn süresi, siren olup olmayacağı -0.3.7 özelliği-);
armyarac = CreateVehicle(araç ıd, araç pos, 1. renk, 2. renk, respawn süresi, siren olup olmayacağı -0.3.7 özelliği-);
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new Float:Pos[3];
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(vehicleid == armyarac && takim[playerid] != TAKIM_ARMY) return SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
if(vehicleid == swatarac
&& takim[playerid] != TAKIM_SWAT) return SetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);return 1;
}
İşte Team Deathmatch'ın temeli böyle kodlanmaktadır. Şimdi ise kodlama sırası sende! O güzel modu görmek için sabırsızlanıyoruz. :)
1 Yorumlar
tam aradığımız, teşekkürler.
YanıtlaSilxSlayerPvP Pawn Code Ekibi
Yorum yapmak için Google hesabına veya bir web sitesine ihtiyacınız yoktur. Kimlik seçme bölümündeki varsayılan değeri "Adı/URL" olarak seçebilir, isminizi yazdıktan sonra "Devam" butonuna tıklamanız yeterlidir. Sizlere gösterdiğimiz minik adımların arkasından yorumunuzu yazmaya başlayabilirsiniz. İçeriğimizle ilgili yorumunuzu yaptıktan sonra "Yayınla" butonuna basmayı unutmayın!