Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

[Pamoka] dovanėlių sistema !


GameBooster

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3415 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

Sveiki ! šiandien aš sumyslyjau švenčių proga įkelti savo kurtą dovanėlių sistemą.

Aprašymas: Iš viso dovanėlių yra 35, jas rinkti galima tik iš eilės, surinkus jas visas reikia sugrįžti į event'o pradinę vietą, taipat po rr niekas nedings, saugojima padariau su dini.

Taigi pradedu

GM viršuje įdedame

enum merry
{
dovanos,
pradejoevent,
baigeevent
}
new DovanuDB[MAX_PLAYERS][merry];
tuomet prie kitų pickup'ų kintamujų dedame
dovana[36],
Sukuriame komanda event'o pradžiai, pabaigai (vietoj X, Y, Z įrašykite savo kordinates) taipat nusistatykite ką gaus žaidėjas kaip prizą.
CMD:kaledos(playerid, params[])
{
if(!IsPlayerInRangeOfPoint(playerid,10,X,Y,Z)) return SendClientMessage(playerid,Raudona,"Tu neesi prie eglutės!");
if(DovanuDB[playerid][baigeevent]==1) return GameTextForPlayer(playerid,"~r~Tu jau uzbaigei event!",1500,4);
if(DovanuDB[playerid][pradejoevent]==1 && DovanuDB[playerid][dovanos]!=35) return SendClientMessage(playerid,Raudona,"Tu nesurinkai visu dovanu!");
if(DovanuDB[playerid][pradejoevent]==1 && DovanuDB[playerid][dovanos]==35)
{
ShowPlayerDialog(playerid, 4251,DIALOG_STYLE_MSGBOX,"Kalėdinis event","* Surinkai visas kalėdu senio paliktas dovanas, saunu, uz tai gauni prizu!\n{00FF00}15000 LT","+","-");
DovanuDB[playerid][baigeevent]=1;
GivePlayerMoney(playerid,15000);
return 1;
}
if(DovanuDB[playerid][pradejoevent]==0)
{
ShowPlayerDialog(playerid, 4250,DIALOG_STYLE_MSGBOX,"Kalėdinis event","* Ar nori pradėti 2014 kalėdinį event'ą ?","Tęsti !","Atšaukti");
return 1;
}
return 1;
}
OnDialogResponse dedame
if(dialogid == 4250)
{
if(response)
{
SendClientMessage(playerid,Melyna,"Pradėjai {00FF00}2014 {33CCFF}metų kalėdinį event !");
ShowPlayerDialog(playerid,4251,DIALOG_STYLE_MSGBOX, "Informacija","{FFFFFF}Visos dovanos yra paslėptos San-Fierro mieste(SF)\nIš viso dovanų yra {00FF00}35{FFFFFF}, surinkes visas dovanas turi grįžti čia atsiimti prizo!","Supratau","");
DovanuDB[playerid][pradejoevent]=1;
return 1;
}
if(!response)
{
return 1;
}
}
OnPlayerPickUpPickup dedame
for(new i=1; i<(dovana); i++)
{
    if(pickupid == pickups[0][dovana][i])
    {
        if(DovanuDB[playerid][dovanos]>(i-1)) return SendClientMessage(playerid, Raudona,"~r~ Ðià dovanà jau radote !");
        if(DovanuDB[playerid][dovanos]<(i-1)) return SendClientMessage(playerid, Raudona,"~r~ Turi dovanu ieskoti pagal eile !");
        DovanuDB[playerid][dovanos]++;
        SendClientMessage(playerid, Geltona,"Sveikiname radus dovanà !");
        return 1;
    }
}
prie kitų stock'ų dedame
stock SaugomDovanas(playerid, bool:simple)
{
	new file[80];
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid,name,sizeof(name));
	format(file,sizeof(file),"Dovanos/%s.ini",name);
	if(!dini_Exists(file))
	{
	dini_Create(file);
	}
    dini_IntSet(file,"dovanos",DovanuDB[playerid][dovanos]);
	dini_IntSet(file,"pradejoevent",DovanuDB[playerid][pradejoevent]);
	dini_IntSet(file,"baigeevent",DovanuDB[playerid][baigeevent]);
}
stock KraunamDovanas(playerid)
{
	new name[MAX_PLAYER_NAME],file[80];
	GetPlayerName(playerid,name,sizeof(name));
	format(file,sizeof(file),"Dovanos/%s.ini",name);
	DovanuDB[playerid][dovanos] = dini_Int(file,"dovanos");
	DovanuDB[playerid][pradejoevent] = dini_Int(file,"pradejoevent");
	DovanuDB[playerid][baigeevent] = dini_Int(file,"baigeevent");
}
gm viršuje dedame
forward SaugomDovanas(playerid, bool:simple);
forward KraunamDovanas(playerid);
onplayerspawn dedame
KraunamDovanas(playerid);
onplayerdisconnect dedame
SaugomDovanas(playerid, true);
Ir galiausiai prie savo kitų pickup'ų arba ongamemodeinit dedame (kordinates galit pasikeisti).
pickups[0][dovana][1]=CreatePickupA(19056 ,2,-2149.2300,-135.5919,43.0010);
pickups[0][dovana][2]=CreatePickupA(19056 ,2,-2278.4980,-3.0964,36.2658);
pickups[0][dovana][3]=CreatePickupA(19057 ,2,-2428.7244,756.0995,35.1719);
pickups[0][dovana][4]=CreatePickupA(19057 ,2,-1929.9813,843.5460,-7.2984);
pickups[0][dovana][5]=CreatePickupA(19058 ,2,-1470.3845,703.1182,7.8480);

pickups[0][dovana][6]=CreatePickupA(19058 ,2,-1843.4628,130.1778,20.4078);
pickups[0][dovana][7]=CreatePickupA(19054 ,2,-1559.7113,-1490.6605,44.9453);
pickups[0][dovana][8]=CreatePickupA(19054 ,2,-1678.9302,-1203.9124,63.8645);

pickups[0][dovana][9]=CreatePickupA(19055 ,2,2293.5422,-1217.8193,-18.0089);
pickups[0][dovana][10]=CreatePickupA(19055 ,2,-1956.1766,395.1110,36.2000);
pickups[0][dovana][11]=CreatePickupA(19055 ,2,-2063.5894,257.9582,35.4184);
pickups[0][dovana][12]=CreatePickupA(19055 ,2,-1637.4703,1431.6815,7.1792);
pickups[0][dovana][13]=CreatePickupA(19055 ,2,-1739.5491,1234.7786,7.5469);

pickups[0][dovana][14]=CreatePickupA(19055 ,2,-1822.4529,-281.5427,25.0065);
pickups[0][dovana][15]=CreatePickupA(19055 ,2,-2045.4639,-33.7785,39.8622);
pickups[0][dovana][16]=CreatePickupA(19055 ,2,-2616.7051,-91.4828,4.3435);

pickups[0][dovana][17]=CreatePickupA(19055 ,2,-2925.4556,-96.6735,0.3873);
pickups[0][dovana][18]=CreatePickupA(19055 ,2,-2711.6951,-853.1942,7.0152);
pickups[0][dovana][19]=CreatePickupA(19055 ,2,-2243.1450,-1753.8252,478.0470);

pickups[0][dovana][20]=CreatePickupA(19056 ,2,-2238.5574,537.9151,35.2535);
pickups[0][dovana][21]=CreatePickupA(19055 ,2,-2261.0313,442.9736,41.5669);
pickups[0][dovana][22]=CreatePickupA(19055 ,2,-1664.2201,699.9802,24.8976);
pickups[0][dovana][23]=CreatePickupA(19055 ,2,-2662.4263,1352.2361,53.8972);
pickups[0][dovana][24]=CreatePickupA(19055 ,2,-1132.1487,1096.3795,32.8001);

pickups[0][dovana][25]=CreatePickupA(19057 ,2,-1606.0856,314.5273,7.1875);
pickups[0][dovana][26]=CreatePickupA(19055 ,2,-2487.1157,2357.1829,10.2663);
pickups[0][dovana][27]=CreatePickupA(19055 ,2,-1980.6046,430.8787,25.2952);
pickups[0][dovana][28]=CreatePickupA(19055 ,2,-1868.0129,32.1854,16.5726);
pickups[0][dovana][29]=CreatePickupA(19055 ,2,-1308.1973,-1518.1567,24.0436);

pickups[0][dovana][30]=CreatePickupA(19055 ,2,-1055.3204,-612.1994,32.0078);
pickups[0][dovana][31]=CreatePickupA(19058 ,2,-1887.6090,-204.7130,14.9752);
pickups[0][dovana][32]=CreatePickupA(19055 ,2,-2289.5332,-329.1719,50.8984);
pickups[0][dovana][33]=CreatePickupA(19056 ,2,-2506.1040,106.7170,35.1719);
pickups[0][dovana][34]=CreatePickupA(19055 ,2,-2777.4250,235.2859,7.1875);
pickups[0][dovana][35]=CreatePickupA(19054 ,2,-2819.2378,1115.3632,26.9500);
Gero naudojimo :) jei rasit klaidų praneškit. Redaguota , nario W4NT3D
Nuoroda į komentarą
Dalintis per kitą puslapį

 

 

dovana0,

dovana1,

dovana2,

dovana3,

dovana4,

dovana5,

dovana6,

dovana7,

dovana8,

dovana9,

dovana10,

dovana11,

dovana12,

dovana13,

dovana14,

dovana15,

dovana16,

dovana17,

dovana18,

dovana19,

dovana20,

dovana21,

dovana22,

dovana23,

dovana24,

dovana25,

dovana26,

dovana27,

dovana28,

dovana29,

dovana30,

dovana31,

dovana32,

dovana33,

dovana34,

Tiesiog siaubas.... nėra ką daugiau ir pasakyt.

Nuoroda į komentarą
Dalintis per kitą puslapį

 

Čia man atrodo, kad tau lt raidžių nėra? 

pvž :

 dovanà  

Kai aš keliu į šį laukelį,


man lietuviškos raidės pasikeičia.

Pamokoje viskas turi būti paaiškinta, o čia tiesiog parodyta, kaip įsimesti skriptą.

Ko tu nesupranti ? įdėjau trumpą aprašymą, aš mokau kaip įsimesti mano kurtą skriptą.

Nuoroda į komentarą
Dalintis per kitą puslapį

O jei pabandytume taip?

for(new i=1; i<sizeof(dovana); i++)
{
    if(pickupid == pickups[0][dovana][i])
    {
        if(DovanuDB[playerid][dovanos]>(i-1)) return SendClientMessage(playerid, Raudona,"~r~ Ðià dovanà jau radote !");
        if(DovanuDB[playerid][dovanos]<(i-1)) return SendClientMessage(playerid, Raudona,"~r~ Turi dovanu ieskoti pagal eile !");
        DovanuDB[playerid][dovanos]++;
        SendClientMessage(playerid, Geltona,"Sveikiname radus dovanà !");
        return 1;
    }
}
Nuoroda į komentarą
Dalintis per kitą puslapį

O jei pabandytume taip?

for(new i=1; i<sizeof(dovana); i++)
{
    if(pickupid == pickups[0][dovana][i])
    {
        if(DovanuDB[playerid][dovanos]>(i-1)) return SendClientMessage(playerid, Raudona,"~r~ Ðià dovanà jau radote !");
        if(DovanuDB[playerid][dovanos]<(i-1)) return SendClientMessage(playerid, Raudona,"~r~ Turi dovanu ieskoti pagal eile !");
        DovanuDB[playerid][dovanos]++;
        SendClientMessage(playerid, Geltona,"Sveikiname radus dovanà !");
        return 1;
    }
}
++!! Va apie ka kalbejau! Kodas sutrumpintas 100x.
Nuoroda į komentarą
Dalintis per kitą puslapį

 

O jei pabandytume taip?

for(new i=1; i<sizeof(dovana); i++)
{
    if(pickupid == pickups[0][dovana][i])
    {
        if(DovanuDB[playerid][dovanos]>(i-1)) return SendClientMessage(playerid, Raudona,"~r~ Ðià dovanà jau radote !");
        if(DovanuDB[playerid][dovanos]<(i-1)) return SendClientMessage(playerid, Raudona,"~r~ Turi dovanu ieskoti pagal eile !");
        DovanuDB[playerid][dovanos]++;
        SendClientMessage(playerid, Geltona,"Sveikiname radus dovanà !");
        return 1;
    }
}

Skriptinu dar tik ~4 mėnesius, nemanau kad pats būčiau išmastęs tokį kodą, bet ačiū kad parodei trumpesnį kelia :)

Nuoroda į komentarą
Dalintis per kitą puslapį

Kai aš keliu į šį laukelį,


man lietuviškos raidės pasikeičia.

Ko tu nesupranti ? įdėjau trumpą aprašymą, aš mokau kaip įsimesti mano kurtą skriptą.

O kas sakė kad aš nesuprantu? Tiesiog ši pamoka naujokų nieko neišmokins, nes nepaaiškinta, ką kokia funkcija daro, tiesiog kai kurie įsimes skriptą ir džiaugsis, kokie jie kūrėjai.

Nuoroda į komentarą
Dalintis per kitą puslapį

Bet nevisi tokie, tikrai yra žmonių, kurie nori mokytis.

Žinoma, kad yra, todėl ir parašiau "dauguma". Bet vistiek tenka pripažinti, kad didžioji dalis yra vaikai, kuriems svarbu kažką įsidėti į serverį ir tada puikuotis prieš draugus ir sakyti, kad tai padarė jie. Jiems visiškai neįdomu kaip tai veikia.
Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3415 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...