Status serveraONLINE
ServerBElite | Sniper Event 18H |Nagrada:BEFan i 2KG DR
Igrači34 / 200
VERZIJA© BE v7.4.2 by PaulC
IGRAJ
Novosti
NAGRADNA IGRA #12 || Postavite Vasu ideju ili predlog za server i osvojite /donator novac!
Vise o tome na linku ispod!
KLIKNI ME!!!
  • [BE - TuT] - Kreiranje zlata
    Autor Vekki
    Pročitano 2,616 puta
0 Članovi i 1 Gost pregledava ovu temu.
*

• BElite © HEAD Admin •

LEGEND MEMBER
2,737
Evidentirano
Pozdrav, u sledecem tutorijalu cu Vam pokazati kako da napravite GOLD sistem. Citao sam po forumu da su mnogi trazli pomoc oko ovoga. Sve sto budem postavio bice sasvim dovoljno i najpotrebnije za ovakav sistem.


Malo se Skrpta


U sledecem tutorijalu cemo objasniti i uraditi:

  • Kreiranje komandi za ovaj sistem u ZCMD
  • Objasniti svaki parametar
  • Pojasniti i napraviti sistem pljackanja banke
  • Kreirati Labele i Pickup-ove za sistem

Potrebno za ovaj Tutorial

  • ZCMD Include
  • Y_Ini


Ubacivanje mape zlatare u scriptu
-Ono od cega moramo krenuti je mapa. Na brzaka sam napravio neku mapu vi slobodno mozete menjati prema svojoj volji. Click me
-Sve sto doradite na mapi ubacujete u callback public OnGameModeInit()


Kreiranje pickupova i labela
-Da bi olaksali igracima snalazenje u zlatari moramo staviti labele i pickupove. Ja sam svoje prilagodio mojoj mapi.
-Ovde su labeli za: Kupovinu zlata, Prodaju zlata, Pljacku zlatare i 'cenovnik'
Prvo cemo ubaciti pickupove. Ovde su vec gotovi pickupovi te ako koristite onu gore mapu, sve koordinate su postavljene.
CreateDynamicPickup(1239, 1, 1263.1042, -571.6207, 1082.5360); //kupovina zlato
  CreateDynamicPickup(1239, 1, 1256.3179, -571.6730, 1082.5360);//prodaja zlata

-Sada cemo ubaciti labele.
NAPOMENA!!!Pre nego sto ubacite labele morate potraziti u scripti new Text3D:ServerLabel[VAS BROJ +6]; i broj labela (ako koristite one moje povecati za 6. Svaki id (broj labela) nakon sto dodate povecajte za jedan od prethodnog!!!
Labeli:
ServerLabel[ID] = CreateDynamic3DTextLabel(""ZUTA"[ Zlatara ]\n"BELA"Da kupite zlato (/kupizlato)", 0x9EC73DAA, 1263.1042, -571.6207, 1082.5360, 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 30.0);
ServerLabel[ID] = CreateDynamic3DTextLabel(""ZUTA"[ Zlatara ]\n"BELA"Da prodate zlato (/pzlato)", 0x9EC73DAA, 1256.3179, -571.6730, 1082.5360, 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 30.0);
ServerLabel[ID] = CreateDynamic3DTextLabel(""ZUTA"[ Zlatara ]\n"BELA"Da udjete u zlataru stisnite 'F'", 0x9EC73DAA, 1535.4050, -1582.4832, 13.6729, 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 30.0);
ServerLabel[ID] = CreateDynamic3DTextLabel(""ZUTA"[ Cenovnik ]\n"ZUTA"Kupovna cena: 30.000$\n"ZUTA"Prodajna cena: 15.000$", 0x9EC73DAA, 1258.9843, -571.7369, 1085.2804, 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 30.0);
ServerLabel[ID] = CreateDynamic3DTextLabel(""ZUTA"[ Pljacka ]\n"ZUTA"Da opljackas zlataru (/pljackajzlataru)", 0x9EC73DAA, 1267.2211, -582.6213, 1082.4845, 30, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 30.0);

Definicije boja se mozda nece slagati definicijama vaseg moda te ce te to morati da zamenite :)


Ubacivanje novih varijabli
Tamo gde su definisani Korisnicki racuni i stockovi za citanje i pisanje u igracev user.ini file doadecete sledece varijable.
U #define KORISNICI "Korisnici/%s.ini" ili kako je vec eefnisano kod Vas dodaceo
pZlato,
U citanja cemo ubaciti:
INI_Int("Zlato",PlayerInfo[playerid][pZlato]);
U cuvanja (pisanja) cemo ubaciti:
INI_WriteInt(File,"Zlato",PlayerInfo[playerid][pZlato]);


Izrada Komandi
Komande za ovu scriptu izradiemo u ZCMD. Za svaku komandu koju postavim detaljno cu pojasniti svaki parametar.
Komanda /kupizlato
CMD:kupizlato(playerid, params[],help)
{
//#pragma unused help
//#pragma unused params
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1263.1042, -571.6207, 1082.5360)) return SendClientMessage(playerid,-1,"Bauer | "CRVENA"Niste na mestu kupovine zlata!");//ukoliko nije igrac na odredjenoj poziciji izbacuje mu obavestenje
    if(PlayerInfo[playerid][pNovacDzep] < 30000) return SCM(playerid,-1,"BS:RP | "CRVENA"Nemate dovoljno novca (30.000$)!");//ukoliko u dzepu ima manje od 30k ne moze kupiti 1g zlata
{
        PlayerInfo[playerid][pZlato] += 1; //daje igracu 1g zlata
        g_NovacMinus(playerid, 30000); //skida igracu sa dzepa 30k
SCM(playerid,-1,""ZUTA"INFO | "SIVA"Kupili ste 1g zlata za 30000$!"); //salje igracu obavestenje
SavePlayer(playerid); //cuva nove informacije
new string[256]; //definisemo novi string
format(string, sizeof(string),"~w~%d~r~ G",PlayerInfo[playerid][pZlato]); //tekst stringa
PlayerTextDrawSetString(playerid, Zlato[playerid], string); //koristimo string ZA update TD-a kasnije cu postaviti ovaj TD
}
return 1;
}

NAPOMENA!!!U daljem tekstu postavicu definicju za gNovacMinus, Gore upotrebljen Textdraw. Varijable pZlato i stock SavePLayer mozete prialgoditi svom modu kao sve ostalo.
Komanda pzlato (Za prodaju zlata)
CMD:pzlato(playerid, params[],help)
{
//#pragma unused help
//#pragma unused params
    if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1256.3179, -571.6730, 1082.5360)) return SendClientMessage(playerid,-1,"Bauer | "CRVENA"Niste na mestu prodaje zlata!"); //ukoliko nije na mestu prodaje ne moze da izvrsi akciju i salje mu se obavestenje
    if(PlayerInfo[playerid][pZlato] == 0) return SCM(playerid,-1,"BS:RP | "CRVENA"Nemate zlata!"); //ako mu je zlato na 0 ne moze nista da proda :)
{
        PlayerInfo[playerid][pZlato] -= 1; //ako proda skida mu se 1g
        g_NovacPlus(playerid, 15000); //dobija 15k
SCM(playerid,-1,""ZUTA"INFO | "SIVA"Prodali ste 1g zlata za 15000$!"); //salje se obavestenje o prodaji
SavePlayer(playerid); //cuvaju se nove igraceve informacije
new string[256]; //novi string
format(string, sizeof(string),"~w~%d~r~ G",PlayerInfo[playerid][pZlato]); //tekst stringa
PlayerTextDrawSetString(playerid, Zlato[playerid], string); //sredjujemo TD sa novim stringom
}
return 1;
}

U nastavku teksta dobicete stock g_NovacPlus kao i sve sto treba da bi ova CMD radila. Opet ponavljam prilagodite svom modu!!! :)
Komanda /pljackajzlataru
CMD:pljackajzlataru(playerid, params[],help)
{
//#pragma unused help
//#pragma unused params
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1267.2211, -582.6213, 1082.4845)) return SendClientMessage(playerid,-1,"BS:RP | "CRVENA"Niste na mestu plajcke zlatare!");
    if(GetPlayerWeapon(playerid) >= 24 && GetPlayerWeapon(playerid) <= 40) return SCM(playerid,-1, ""CRVENA"[BS:RP] "BELA"Morate imati oruzije tokom pljacke!"); //ako igrac nema oruzije ne moze da izvrsi pljacku i salje mu se objasnjenje
{
        PlayerInfo[playerid][pZlato] += 6; //dobija 6g zlata
        g_NovacPlus(playerid, 7000); //dobija 7k novca
SCM(playerid,-1,""ZUTA"INFO | "SIVA"Opljackali ste zlataru (dobili ste 6g i 7k novca)!"); //salje mu se objasnjenj o zavrsetku pljacke
        PostaviWanted(playerid, "Pljacka zlatare", "Seksi radnica"); //postavlja mu se wanted level :)
SavePlayer(playerid); //cuva nove igraceve informacije
new string[256];
format(string, sizeof(string),"~w~%d~r~ G",PlayerInfo[playerid][pZlato]);
PlayerTextDrawSetString(playerid, Zlato[playerid], string);
}
return 1;
}



g_NovacMinus i g_NovacPlus definicije
stock g_NovacPlus(id, iznos)
{
if(iznos < 0 || iznos > 99999999) return 1;
GivePlayerMoney(id, iznos);
PlayerInfo[id][pNovacDzep] += iznos;
return 1;
}

stock g_NovacMinus(id, iznos)
{
if(iznos < 0 || iznos > 999999999) return 1;
GivePlayerMoney(id, -iznos);
PlayerInfo[id][pNovacDzep] -= iznos;
return 1;
}



Izrada TD-a
Uradio sam jednostavan TD koji u jednoj liniji pokazuje kolicinu zlata koju trenutno imate.
ZlatoTd(playerid) Upotreba gore obajsnjena:
Definicija ZlatoTd:

Ona predstalja drugi TD koji je broj grama koje imate u dzepu
stock ZlatoTd(playerid)
{
    Zlato[playerid] = CreatePlayerTextDraw(playerid,549.500000, 145.833328, "0");
//TextDrawCreate(494.000000, 145.833328, "ZLATO:");
PlayerTextDrawBackgroundColor(playerid,Zlato[playerid], 255);
PlayerTextDrawFont(playerid,Zlato[playerid], 1);
PlayerTextDrawLetterSize(playerid,Zlato[playerid], 0.371500, 1.915000);
PlayerTextDrawColor(playerid,Zlato[playerid], -1);
PlayerTextDrawSetOutline(playerid,Zlato[playerid], 0);
PlayerTextDrawAlignment(playerid,Zlato[playerid], 1);
PlayerTextDrawSetProportional(playerid,Zlato[playerid], 1);
PlayerTextDrawSetShadow(playerid,Zlato[playerid], 1);
//PlayerTextDrawUseBox(playerid,Zlato[playerid], 1);
//PlayerTextDrawBoxColor(playerid,Zlato[playerid], 1111638594);
    new string[256];
format(string, sizeof(string),"~w~%d~r~ G",PlayerInfo[playerid][pZlato]);
PlayerTextDrawSetString(playerid, Zlato[playerid], string);
PlayerTextDrawShow(playerid, Zlato[playerid]);
return 1;
}

I da bi TD funkcionisao pod callback public OnPlayerSpawn(playerid) Dodacemo sledecu Liniju:
ZlatoTd(playerid);
Za textdraw sa tekstom 'Zlato:' napravio sam sledeci TD:
Textdraw9 = TextDrawCreate(494.000000, 145.833328, "ZLATO:");
TextDrawLetterSize(Textdraw9, 0.371500, 1.915000);
TextDrawAlignment(Textdraw9, 1);
TextDrawColor(Textdraw9, -16776961);
TextDrawSetShadow(Textdraw9, 11);
TextDrawSetOutline(Textdraw9, 0);
TextDrawBackgroundColor(Textdraw9, 51);
TextDrawFont(Textdraw9, 2);
TextDrawSetProportional(Textdraw9, 1);

Pod callback OnPlayerSpawn dodajte:
TextDrawShowForPlayer(playerid, Textdraw9);

Naravno na pocetku skripte dodajte:
new Text:Textdraw9;
new PlayerText:Zlato[MAX_PLAYERS];



Skriptu za ovaj tut sam uradio ja, tako da bih voleo da ostavite creditse ako je ikako moguce ima ih samo par :). Jos jednom zelim da napomenem da svaku definiciju boje, parametre i ostalo prilagodite svom modu. Pozdrav :)
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija

Stojan_Filipovic
Evidentirano
Koji si ti sora koji ce nam zlatara k :D
Mislim svaka ti cast samo tako nastavi ima nesto u tebi :)
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija

Paul_Walker
Evidentirano
Kakva korist od toga što si ti napravio kad si kopirao? Mogao si bar Creditse ostavit..
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija

*

GameMaster 3

HERO MEMBER
726
Evidentirano
A da mi je samo znati odakle si ovo kopirao xD
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija
Ex. GameMaster 3

*
LEGEND MEMBER
2,173
IG: Kristijan
Evidentirano
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija

Paul_Walker
Evidentirano
Citat: Borko_Arilje  u Svibanj 26, 2016, 18:51:54
A da mi je samo znati odakle si ovo kopirao xD

Klik

Samo malo izmjenio i prebacio u ZCMD..
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija

*

~ Brut Vezzi ~

SUPER HERO MEMBER
1,871
Evidentirano
-Nemojte da @Paul_Walker  pocne raditi tutorijale o skriptanju :D
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija

Paul_Walker
Evidentirano
Citat: [K]aJga  u Lipanj 01, 2016, 11:28:39
-Nemojte da @Paul_Walker  pocne raditi tutorijale o skriptanju :D

Kajga sine, ovu skriptu ti je tata ostavio.. Cuvaj je sine.. Cuvaj do kraja zivota...



E ljudi moji Kajga nam se sinoć "šlagirao" hahahahaha
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija

*

Uvijek Postoji Nacin! Za SVE

NOVI ČLAN
45
Evidentirano
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija

*
LEGEND MEMBER
2,173
IG: Kristijan
Evidentirano
Ljubav
0
Sviđa mi se
0
Ljutito
0
Haha
0
Nema reakcija
Nema reakcija
Nema reakcija
Nema reakcija