Team Deathmatch Modu Kodlamak

Team Deathmatch Modu Kodlamak


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-);


Şimdi ise OnPlayerEnterVehicle callbackine gidiyoruz.

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. :)

Yorum Gönder

1 Yorumlar

  1. tam aradığımız, teşekkürler.

    xSlayerPvP Pawn Code Ekibi

    YanıtlaSil

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!