[TuT]Pravljenje Full DM Zone by LeSa

Započeo Lesa, Novembar 23, 2012, 00:06:31 PRE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Lesa

Kako napraviti DM Zonu ?
Prvo Definisemo Dialog za Dm Zonu i Boju slova koja nije bitna
#define DM_ZONA 3000 ///podesavajte kako ocete ovaj broj na kraju
#define red  0xFF0000FF //Definisemo Crvenu boju koja nece nicemu koristiti posto sam ja sredio text :) ali ona mora ostati posto ce zbog nje izbacivati error


Zatim definisemo da igracu kad kuca /dmizlaz oduzme oruzije i vrati ga na pocetno mesto
forward RemovePlayerWeapon(playerid, weaponid);
forward SafeResetPlayerWeapons(plyid);

Definisemo Prouke
forward SendCrveniMessage(color, string[]); //Slanje poruke koji samo Crveni Tim moze videti
forward SendPlaviMessage(color, string[]); //Slanje poruke koji samo Plavi Tim moze videti

Krecemo sa dodavanjem komadni i svime ostalim

Ovo dodate pod enum pInfo (tako je kod mene) ako je kod vase nemozete naci trazite pLozinka,pSifra dok nenadjete
enum pInfo
{
//Vama ce ovde pisati svasta
    pTim, //ovo dodate kod vas to kod mene nije bilo i ja sam dodao
};


Ovo dodate pod OnPlayerSpawn ono sluzi ako je igrac npr Crvenom Timu da mu namesti Spawn Crvenog Tima :)
public OnPlayerSpawn(playerid)
{
SetPlayerSpawn(playerid); // Ovo Doadte pod OnPlayerSpawn Njega cemo kasnije definisati
return 1;
}


Komanda za ulaz u DM Zonu izbacuje listu sa odabirom Tima
CMD:dmulaz(playerid, params[])
{
ShowPlayerDialog(playerid, DM_ZONA, DIALOG_STYLE_LIST, "Odaberite tim", "{CD3333}Crveni Tim\n{009ACD}Plavi Tim", "Odaberi", "Izadji");
return 1;
}


Postaljva tim oruzije i spawn igracu Crvenog ili Plavog Tima

OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DM_ZONA)
{
    if(response)
    {
if(listitem == 0) //ako izabere tim 1
{
            SetPlayerPos(playerid,1765.5070,-1361.6622,15.8299);//stavite kordinate
            GivePlayerWeapon(playerid, 24, 750);
            GivePlayerWeapon(playerid, 31, 500);
            GivePlayerWeapon(playerid, 29, 450);
            SetPlayerPos(playerid,1827.7347,-1408.3877,29.6172);//Koridinate tima 1
  SendClienMessage(playerid, red, "{FFFFFF}Usli ste u dm zonu,u {CD3333}Crveni Tim ");//salje igracu poruku
  PlayerInfo[playerid][pTim] = 1;
  }
  if(listitem == 1) //ako izabere tim 2
  {
    SetPlayerPos(playerid,1765.5070,-1361.6622,15.8299);
            GivePlayerWeapon(playerid, 24, 750);
            GivePlayerWeapon(playerid, 31, 500);
            GivePlayerWeapon(playerid, 29, 450);
            SetPlayerPos(playerid,1831.1451,-1415.4196,29.6172);//Kordinate tima 2
SendClienMessage(playerid, red, "{FFFFFF}Usli ste u DM zonu,u {009ACD}Plavi Tim.");//salje igracu poruku
PlayerInfo[playerid][pTim] = 2;

}
}

}
        return 1;
}

Komanda za Izlaz iz DM zone oduzima igracu oruzije vraca ga na prvobitno mesto spawna
CMD:dmizlaz(playerid, params[])
{
new gunID = GetPlayerWeapon(playerid);
PlayerInfo[playerid][pTim] = 0;
SetPlayerPos(playerid,1765.5070,-1361.6622,15.8299);//Koridinate tima 1
RemovePlayerWeapon(playerid, gunID);
SendClientMessage(playerid, red, "{FFFFFF}Napustili ste {CD3333}DM Zonu!");
return 1;
}

Komanda za cet igraca ako je igrac u crvenom timu onda koristi komadnu /crveni a ako je u plavom /plavi da bi poslao poruku igracima svog tima 
CMD:crveni(playerid, params[])
{
if (PlayerInfo[playerid][pTim] == 1)
    {
       new poruka[128], string2[256];
   GetPlayerName(playerid, GetName(playerid), 20);
   if(sscanf(params, "s[128]", poruka)) return SCM(playerid, red,"{009ACD}Koriscenje:{FFFFFF}/crveni {009ACD}[tekst]");
   format(string2, sizeof(string2), "{CD3333}[Crveni Tim]{FFFFFF} %s {CD3333}kaze: {FFFFFF}%s",GetName(playerid), poruka);
   SendCrveniMessage(red, string2);
    return 1;
}
else
{
    SendClientMessage(playerid, red, "{FFFFFF}({CD3333}Greska{FFFFFF}):Niste u {CD3333}Crvenom {FFFFFF}Timu!");
        }
        return 1;
}
CMD:plavi(playerid, params[])
{
if (PlayerInfo[playerid][pTim] == 2)
    {
       new poruka[128], string2[256];
   GetPlayerName(playerid, GetName(playerid), 20);
   if(sscanf(params, "s[128]", poruka)) return SCM(playerid, red,"{009ACD}Koriscenje:{FFFFFF}/plavi {009ACD}[tekst]");
   format(string2, sizeof(string2), "{009ACD}[Plavi Tim]{FFFFFF} %s {009ACD}kaze: {FFFFFF}%s",GetName(playerid), poruka);
   SendPlaviMessage(red, string2);
    return 1;
}
else
{
    SendClientMessage(playerid, red, "{FFFFFF}({CD3333}Greska{FFFFFF}):Niste u {009ACD}Plavom {FFFFFF}Timu!");
        }
        return 1;
}

Ovo dodaje pod OnPlayerDeath ono postavlja igracu spawn posle smrti u njegovoj bazi i daje mu opet oruzije

public OnPlayerDeath(playerid, killerid, reason)
{

SetPlayerSpawn(playerid);

Ovo dodaje na kraj Skripte ono definise slanje poruke u timovima
stock SendCrveniMessage(color, string[])
{
foreach (Player, i)
{
if(PlayerInfo[i][pTim] == 1)
{
SendClientMessage(i, color, string);
}
}
}
stock SendPlaviMessage(color, string[])
{
foreach (Player, i)
{
if(PlayerInfo[i][pTim] == 2)
{
SendClientMessage(i, color, string);
}
}
}


Ovo dodaje na kraj Skripte
stock GetName(playerid)
{
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
    return pName;
}

Ovo dodaje na kraj Skripte ono postavlja igracu spawn posle umiranja i daje mu oruzije
forward SetPlayerSpawn(playerid);
public SetPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pTim] == 1)
{
SetPlayerPos(playerid,1827.7347,-1408.3877,29.6172);//Spawn Kordinate Crvenog Tima
GivePlayerWeapon(playerid, 24, 750);
GivePlayerWeapon(playerid, 31, 500);
GivePlayerWeapon(playerid, 29, 450);
}
if(PlayerInfo[playerid][pTim] == 2)
{
SetPlayerPos(playerid,1831.1451,-1415.4196,29.6172);//Spawn kordinate Plavog Tima
GivePlayerWeapon(playerid, 24, 750);
GivePlayerWeapon(playerid, 31, 500);
GivePlayerWeapon(playerid, 29, 450);
}
return 1;
}


Napomena
Moguce da sam nesto zaboravio da dodam  posto ima puno teksta ukoliko vam izbacuje error posaljite u komentaru ili na pm da editujem ovo da dodam sta treba :) 
Ocenite od 1/10 Hvala  8)

Slike
Postavlja spawn igracu saljemu poruku da je usao u dm zonu i daje mu oruzije
http://ch-slike.com/Fl20
Otvara Meni sa biranjem timova
http://ch-slike.com/Fl2Z
Ukoliko igrac pokusa da koristi komadnu /plavi ili /crveni a u suprotnom je timu izbaci mu ovu poruku
http://ch-slike.com/Fl2c
Ovako izgleda cet crvenih to je kad igrac koristi /crveni
http://ch-slike.com/Fl2h
I kada je igrac korsitio /dmizlaz vraca ga na predhodni spawn i restartuje mu oruzije
http://ch-slike.com/Fl2u

Poslednja Izmena: Novembar 23, 2012, 10:39:33 PRE PODNE od Lesa


Lesa

Citat: |...MihaeL...| poslato Novembar 23, 2012, 08:10:07 PRE PODNE
yellow nisi definirao, i skroz nepotrebno ima 3 tuta i 10 Fs za DM zonu xD
Da ali nigde nisam video da je napravljen cet za timove i da kada budu ubijeni da se stvaraju na spawnu svog tima ;) Tvoju zonu sam bio testirao i nista od toga nema kada ga neko ubije vrati ga na pocetni spawn i uzmemu oruzje ;)


Citat: Lesa poslato Novembar 23, 2012, 10:38:36 PRE PODNE
Citat: |...MihaeL...| poslato Novembar 23, 2012, 08:10:07 PRE PODNE
yellow nisi definirao, i skroz nepotrebno ima 3 tuta i 10 Fs za DM zonu xD
Da ali nigde nisam video da je napravljen cet za timove i da kada budu ubijeni da se stvaraju na spawnu svog tima ;) Tvoju zonu sam bio testirao i nista od toga nema kada ga neko ubije vrati ga na pocetni spawn i uzmemu oruzje ;)

nezz fs nisam testo jer nemam gta i nezz sta radi sta ne,al pravi jesam, napravio sam i tut i testo i igrac se spawno u dm zoni, a Fs vjerovtno pomjesa spawnove jer u gm je jedan spawn, a u fs drugi :) al sve u svem tut nij los 9/10

AlmirDelic

Jel mozes napravit da igracima koji se nalaze u DM-u dolazi poruka kad ko koga ubije, npr Ime_Prezime je ubio Ime_Prezime, kontas :D



Lesa

Citat: AlmirDelic poslato Novembar 29, 2012, 19:32:23 POSLE PODNE
Jel mozes napravit da igracima koji se nalaze u DM-u dolazi poruka kad ko koga ubije, npr Ime_Prezime je ubio Ime_Prezime, kontas :D
Mogu naravno sad cu to uraditi i jos po nesto dodati :)

Lesa

Citat: AlmirDelic poslato Novembar 29, 2012, 19:32:23 POSLE PODNE
Jel mozes napravit da igracima koji se nalaze u DM-u dolazi poruka kad ko koga ubije, npr Ime_Prezime je ubio Ime_Prezime, kontas :D
Evo ovo dodaj pod OnPlayerDeath

if (PlayerInfo[playerid][pTim] == 1) // Salje poruku crvenom timu
{
     new str[128];
     new ime[MAX_PLAYER_NAME]; GetPlayerName(playerid, ime, sizeof(ime));
     new igrac[MAX_PLAYER_NAME]; GetPlayerName(playerid, igrac, sizeof(igrac));
     format(str,128," {CD3333}Igraca {FFFFFF}%s {CD3333}je ubio {FFFFFF}%s.",igrac, ime); //Salje igracu poruku
                     SendCrveniMessage(red, str);
}
else if (PlayerInfo[playerid][pTim] == 2) // Salje poruku plavom timu
{
     new str[128];
     new ime[MAX_PLAYER_NAME]; GetPlayerName(playerid, ime, sizeof(ime));
     new igrac[MAX_PLAYER_NAME]; GetPlayerName(playerid, igrac, sizeof(igrac));
     format(str,128," {CD3333}Igraca {FFFFFF}%s {CD3333}je ubio {FFFFFF}%s.",igrac, ime); //Salje igracu poruku
                     SendPlaviMessage(red, str);
}
        return 1;
}
Poslednja Izmena: Novembar 29, 2012, 21:04:16 POSLE PODNE od Lesa

Lesa

Evo ubacio sam nesto jos u dm zonu da igracu postavi skin svog tima... Ovo ispod dodajte u public SetPlayerSpawn(playerid) koji ste ranije vec uradili ;)
{
if(PlayerInfo[playerid][pTim] == 1)
{
SetPlayerPos(playerid,-2109.8323,129.9895,35.2144);//Koridinate tima 1
GivePlayerWeapon(playerid, 24, 750);
GivePlayerWeapon(playerid, 31, 500);
GivePlayerWeapon(playerid, 29, 450);
SetPlayerSkin(playerid, 287);
}
if(PlayerInfo[playerid][pTim] == 2)
{
SetPlayerPos(playerid,-2044.7437,307.4301,35.2049);//Kordinate tima 2
GivePlayerWeapon(playerid, 24, 750);
GivePlayerWeapon(playerid, 31, 500);
GivePlayerWeapon(playerid, 29, 450);
SetPlayerSkin(playerid, 285);
}
return 1;
}

I ovo pod response za dialog DM_ZONA

    if(dialogid == DM_ZONA)
{
    if(response)
    {
if(listitem == 0) //ako izabere tim 1
{
            SetPlayerPos(playerid,1765.5070,-1361.6622,15.8299);//stavite kordinate
            GivePlayerWeapon(playerid, 24, 750);
            GivePlayerWeapon(playerid, 31, 500);
            GivePlayerWeapon(playerid, 29, 450);
            SetPlayerPos(playerid,-2109.8323,129.9895,35.2144);//Koridinate tima 1
  SCM(playerid, red, "{FFFFFF}Usli ste u dm zonu,u {CD3333}Crveni Tim ");//salje igracu poruku
  PlayerInfo[playerid][pTim] = 1;
  SetPlayerSkin(playerid, 287); // Postavlja igraci skin Vojnika
  }
  if(listitem == 1) //ako izabere tim 2
  {
    SetPlayerPos(playerid,1765.5070,-1361.6622,15.8299);
            GivePlayerWeapon(playerid, 24, 750);
            GivePlayerWeapon(playerid, 31, 500);
            GivePlayerWeapon(playerid, 29, 450);
            SetPlayerPos(playerid,-2044.7437,307.4301,35.2049);//Kordinate tima 2
SCM(playerid, red, "{FFFFFF}Usli ste u DM zonu,u {009ACD}Plavi Tim.");//salje igracu poruku
PlayerInfo[playerid][pTim] = 2;
            SetPlayerSkin(playerid, 285); // Postavlja igracu skin Swata
}
}

}
        return 1;
}


Uzivajte  8)