[TuT] Kako napraviti DM zonu.(zcmd)

Započeo [VA]|...MihaeL...|, Septembar 10, 2012, 21:18:32 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Eto malo mi je dosadno pa sam odlucio, da onima koji neznaju pojasnim kako se pravi DM zona :D

1. korak... za pocetak cemo definirati sve stvari koje su nam potrebne za DM zonu, tako da na vrh skripte treba staviti ovo:

new tim[MAX_PLAYERS];
new Float:posX, Float:posY, Float:posZ, Float:facingA;
new Float:OldHealth;
new PNAME[MAX_PLAYER_NAME];
#define DMZ 99 //ovo je ID dialoga kojeg cu koristiti u komandi za ulaz u DMZ, vi prilagodite svom modu da se nebi pomjesalo nesta


2. korak... pravljenje komande pomocu koje igrac ulazi u DM zonu. Ja koristim zcmd, jer da budem iskren neznam ni sa cime drugim raditi. Komanda izgleda ovako:

CMD:dmzulaz(playerid, params[])
{
        ShowPlayerDialog(playerid,DMZ,DIALOG_STYLE_LIST,"DMZONA TIMOVI","1.Crveni tim\n2.Plavi tim","Odaberi", "Odustani");
return 1;
}


3. korak... pravljenje dialoga. Znaci pod OnDialogResponse dodajte ovo...

if(dialogid == DMZ)
{
if(response)
{
    if(listitem == 0)
                {
                if(tim[playerid] == 2)
                {
                SendClientMessage(playerid,CRVENA,"Moras napustit tim da bi usao u drugi.");
                return 1;
                }
                tim[playerid] = 1;
SetPlayerSkin(playerid,232);
SetPlayerColor(playerid,ZELENA);
GivePlayerWeapon(playerid,22,100);
GivePlayerWeapon(playerid,29,100);
GivePlayerWeapon(playerid, 42, 10000);
GivePlayerWeapon(playerid, 39, 10000);
GivePlayerWeapon(playerid, 34, 10000);
GivePlayerWeapon(playerid, 31, 10000);
GivePlayerWeapon(playerid, 29, 10000);
GivePlayerWeapon(playerid, 27, 10000);
GivePlayerWeapon(playerid, 24, 10000);
SetPlayerHealth(playerid,100);
GetPlayerHealth(playerid,OldHealth);
GetPlayerPos(playerid, posX, posY, posZ);
                                GetPlayerFacingAngle(playerid, facingA);
SetPlayerPos(playerid,[b]x,y,z koordinate gdje zelite plavi tim[/b]);
SendClientMessage(playerid,ZELENA,"Dobro dosao Crveni tim.");
                }
                if(listitem == 1)
                {
                if(tim[playerid] == 1)
                {
                SendClientMessage(playerid,CRVENA,"Moras napustit tim da bi usao u drugi.");
                return 1;
                }
                tim[playerid] = 2;
                                SetPlayerSkin(playerid,125);
                                SetPlayerColor(playerid,CRVENA);
GivePlayerWeapon(playerid, 22, 10000);
GivePlayerWeapon(playerid, 42, 10000);
GivePlayerWeapon(playerid, 39, 10000);
GivePlayerWeapon(playerid, 34, 10000);
GivePlayerWeapon(playerid, 31, 10000);
GivePlayerWeapon(playerid, 29, 10000);
GivePlayerWeapon(playerid, 27, 10000);
GivePlayerWeapon(playerid, 24, 10000);
GetPlayerPos(playerid, posX, posY, posZ);
                                GetPlayerFacingAngle(playerid, facingA);
SetPlayerPos(playerid,[b]x,y,z koordinate gdje zelite plavi tim[/b]);
SendClientMessage(playerid,ZELENA,"Dobro dosao Plavi tim");
SetPlayerHealth(playerid,100);
GetPlayerHealth(playerid,OldHealth);
}
            }

        }

4. korak... sad kada smo napravili da igrac moze uci u DM zonu, treba napraviti i da se poslje smrti spavna u njoj. tako da pod OnPlayerSpawn dodajte ovo:

if(tim[playerid] == 1)
{
SetPlayerPos(playerid, [b]x,y,z koordinate vase crvenog tima[/b];
GivePlayerWeapon(playerid, 42, 10000);
GivePlayerWeapon(playerid, 39, 10000);
GivePlayerWeapon(playerid, 34, 10000);
GivePlayerWeapon(playerid, 31, 10000);
GivePlayerWeapon(playerid, 29, 10000);
GivePlayerWeapon(playerid, 27, 10000);
GivePlayerWeapon(playerid, 24, 10000);
SetPlayerHealth(playerid, 100);
return 1;
}
else if(tim[playerid] == 2)
{
SetPlayerPos(playerid, [b]x,y,z koordinate vase plavog tima[/b]);
GivePlayerWeapon(playerid, 42, 10000);
GivePlayerWeapon(playerid, 39, 10000);
GivePlayerWeapon(playerid, 34, 10000);
GivePlayerWeapon(playerid, 31, 10000);
GivePlayerWeapon(playerid, 29, 10000);
GivePlayerWeapon(playerid, 27, 10000);
GivePlayerWeapon(playerid, 24, 10000);
SetPlayerHealth(playerid, 100);


5. korak... pravljenje komande za napustanje DMZ.

CMD:napustidmz(playerid, params[])
{
    new string[68];
        if(tim[playerid] == 0)
        {
        SendClientMessage(playerid,CRVENA,"Nisi u timu u dm zoni.");
        return 1;
}
        tim[playerid] = 0;
        SetPlayerPos(playerid, posX, posY, posZ);
        SetPlayerFacingAngle(playerid, facingA);
        SetPlayerHealth(playerid,OldHealth);
        ResetPlayerWeapons(playerid);
        GetPlayerName(playerid, PNAME, MAX_PLAYERS);
        format(string, sizeof(string), "%s je Napustio DM zonu.", PNAME);
        SendClientMessageToAll(PLAVA,string);
        return 1;
}


6. i malo sam se sjebo i zaboravio na pocetku dodati pa eto sada, gdje su vam ostale boje (ukoliko ih vec nemate) definirajte i ove koje smo ovdje koristili, dakle:

#define PLAVA 0x0000A0FF
#define CRVENA 0xFF0000AA
#define ZELENA 0x33AA33AA


Eto, to je to od mene za sada mozda kadnije dodam i vozila ili tako nesto, sad nemam vremena... nemam gta da testam ovo prije nego sto objavim, ali eto ovo je da ubijem dosadu nadam se da ce ovo pomoci nekomu, ako imate error javite mi se u PM... uzivajte :)

fin tut, fali ti zagrada u 4. koraku u drugom dole kodu:
SetPlayerPos(playerid, [b]x,y,z koordinate vase crvenog tima[/b];


lijepo



Kad bih ponovo mogao da biram...al' nemozes da biras.
Zajebes jedan minus i ode ceo zadatak u kurac. Ceo fazon brate, nema druge sanse.




Lijepo nije lose uraden rad.Pohvala za trud samo nastavi.Evo mala 9/10





Dobar tut, pohvale!


"Religija je samo iluzorno sunce koje se kreće oko čovjeka dotle dok se on ne kreće oko sebe samoga." - Karl Marx


"Nije glu.p onaj koji nezna da cita, nego onaj koji povjeruje u sve sto procita." - Ivo Andrić