Zlato

Započeo sparrowww.aMx, Avgust 22, 2018, 22:21:36 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pozdrav samperi, eo dns da vam pomogenm i da vam predstavim sistem zlata
Malo cu vam pojasniti
Kreiranje komandi za ovaj sistem u ZCMD
Objasniti svaki parametar
Pojasniti i napraviti sistem pljackanja banke
Kreirati Labele i Pickup-ove za sistem

Eh sad ce vam trebati

  • ZCMD Include
    Y_Ini
[/b]
Ubacivanje mape u mod
-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
[/b]
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 prodajzlato (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 TDova
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);

Ne zaboravite ovo da postavite na pocetak !
new Text:Textdraw9;
new PlayerText:Zlato[MAX_PLAYERS];

Nadam se da sam vam pomogao da nešto dodate i naucite :)
2k18 - Underworld Developer
2k22 - RedRose Developer / Mapper

Auuu ljudino,alal ti vera,ovo ako ne pomogne onda je stvarno noob :D

Ima 100 tutorijala za ovo al pohvale nije ni ovo lose ;D

Citat: #TheV1nny_ poslato Avgust 23, 2018, 04:24:19 PRE PODNE
Auuu ljudino,alal ti vera,ovo ako ne pomogne onda je stvarno noob :D
Hvala ljudino :)
Citat: M u m i poslato Avgust 23, 2018, 10:29:29 PRE PODNE
Ima 100 tutorijala za ovo al pohvale nije ni ovo lose ;D
Hvala hvala nadam se da je neko nesto skontao i naucio
2k18 - Underworld Developer
2k22 - RedRose Developer / Mapper


2k18 - Underworld Developer
2k22 - RedRose Developer / Mapper




Citat: .ксундер poslato Oktobar 03, 2018, 14:26:58 POSLE PODNE
pola stvari potpuno nepotrebno, vjv prilagodjeno up modovima
Sve ti govori g_novacplus i g_novacminus
@tema za pocetnike veoma fin tutorial
• G A M E M O D E •
• F I L T E R S C R I P T •
• T U T O R I A L •


Citat
You are what you believe yoursefl to be.

Citat: .ксундер poslato Oktobar 03, 2018, 14:26:58 POSLE PODNE
pola stvari potpuno nepotrebno, vjv prilagodjeno up modovima
Baki prilagoÄ'eno je početnicima da neÅ¡to shvate ili nauče :)

2k18 - Underworld Developer
2k22 - RedRose Developer / Mapper

Citat: sparrowww.aMx poslato Oktobar 18, 2018, 20:51:20 POSLE PODNE
Baki prilagoÄ'eno je početnicima da neÅ¡to shvate ili nauče :)



Nece naucit ako i dajes nepotreban kod kojim se moraju zamarati.
Za sta ti sluzi ovo:
new Text3D:ServerLabel[VAS BROJ +6];
Dalje, zasto mislis da svi koriste enum za cuvanje player varijabla
pZlato
Zasto nisi objasnio sta to znaci - da li je to obavezno da se tako pise i slicno
Zasto mislis da ce svi napraviti zlataru gdje je ti pravis

CreateDynamicPickup(1239, 1, 1263.1042, -571.6207, 1082.5360); //kupovina zlato
  CreateDynamicPickup(1239, 1, 1256.3179, -571.6730, 1082.5360);//prodaja zlata

Zasto ucis pogresno pocetnike da postavljaju string size-ove (array size) na neke abnormalne cifre za text koji ne moze da sadrzi ni 50 karaktera?

new string[256];
format(string, sizeof(string),"~w~%d~r~ G",PlayerInfo[playerid][pZlato]);
PlayerTextDrawSetString(playerid, Zlato[playerid], string);
PlayerTextDrawShow(playerid, Zlato[playerid]);

Mislis li da svako koristi taj
#define KORISNICI "Korisnici/%s.ini"
?

Iz ovoga svega sam zakljucio da je ovo pisano samo za Up modove, sto postujem ali da lijepo navedes.
Tako je isto bilo prije par godina na za GF modove su pisali tutoriale kao da svi koriste isti mod...

Super tutorijal
#ROBY
#ONLINE !
----- NIKAD PORAZ SAMO LEKCIJA! -----

2k18 - Underworld Developer
2k22 - RedRose Developer / Mapper

Svaka čast.Pohvale
~Šutke ツ~

~ Designer | Scripter | TS3 Editor ~
~ Designer - Slobodan | Scripter - Slobodan | TS3 Editor - Slobodan ~
~ Facebook |CLICK! ~
~ Instagram |CLICK! ~

~ Community Info ~

~ Developer -- Wonder Project ~
</>
Do you want Create TextDraw,Edit Gamemode,Create Maps»CLICK«