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

{Pamoka} Kreditu sistema (Mini)


djtomis123

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3960 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 Mieli SuperGames.Lt Forumo dalyviai.

Taigi as jus pamokinsiu kaip reikia susikurti Kreditu sistema.

Taigi pradedame:

1. Nueiname į savo serverio failus

gamemodes/data/playerDB

ir po visais bool prirašome

kreditai

2. Taigi dabar sukursime Krovima

Einame y savo gamemoda

****.pwn

ir rašome į paiešką

public LoadPlayerData(playerid)

ir po

playerDB[playerid][namuose] = dini_Int(file,"Money.Home");
rašome
playerDB[playerid][kreditai] = dini_Int(file,"Kreditai");

3. Taigi dabar reikia sukurti saugojima.

Susirandame eilute

public SavePlayerData

ir po

dini_IntSet(file,"Money.Home",playerDB[playerid][namuose]);
rašome
dini_IntSet(file,"Kreditai",playerDB[playerid][kreditai]);

Nu va saugojimas/krovimas yra ;)

4.Dabar sukurkime timeri.

Taigi, OnGameModeInit callbacke rašom;

SetTimer("Kreditu", 120000, true);

Taigi cia gausi kas 2min kreditu :)

5. Sukuriame callbacką ir forwardą.

Forward Kreditus();
public Kreditu()
{
playerDB[playerid][kreditai] += 1;//Tas "1" reiskia kad per tam tikra laika duos jums kreditu
return 1;
}

6.Toliau sukuriame kad galėtu žaidėjas už kreditus kanors nusipirkti. Taigi pradedame:

[ OnPlayerCommandText ] callbacke sukuriame komanda /pirkimai
if(strcmp(cmdtext, "/pirkimai", true)==0)
{
ShowPlayerDialog(playerid,99,DIALOG_STYLE_LIST,“Paslaugos Už kreditus“,“1000 XP\n2500 LT\nVIP\nAdmin“,“Pirkti“,“Uždaryti“);
return 1;
}

7. Toliau keliaujame į OnDialogResponse callbacka;

if(dialogid == 99)
{
if(response)
{
if(listitem == 0) // Jei pasirinko 1000 xp
{
if(enumas[playerid][kreditai] > 200)// cia kiek kainos ta paslauga "200 kreditu"
{
SendClientMessage(playerid,RED,“Atsiprtašome, bet Nepakanka kreditų.“);
}
else
{
SetPlayerScore(playerid, +1000); // Duodam xp.
enumas[playerid][kreditai] -= 200; // Atimam už pirkinį 200 kreditų.
}
}
if(listitem == 1) // Jei pasirinko 1000 Lt
{
if(enumas[playerid][kreditai] > 100)
{
SendClientMessage(playerid,RED,“Atsiprtašome, bet Nepakanka kreditų.“);
}
else
{
GivePlayerMoney(playerid, 1000); // Duodam 1000 lt
enumas[playerid][kreditai] -= 100; // Atimam už pirkinį 100 kreditų.
}
}
if(listitem == 2) // Jei pasirinko VIP
{
if(enumas[playerid][kreditai] > 400)
{
SendClientMessage(playerid,RED,“Atsiprtašome, bet Nepakanka kreditų.“);
}
else
{
enumas[playerid][vip] = 1; // Padarom žaidėją vipu.
enumas[playerid][kreditai] -= 400; // Atimam už pirkinį 400 kreditų.
}
}

if(listitem == 3) // Jei pasirinko Admin
{
if(enumas[playerid][kreditai] > 500)
{
SendClientMessage(playerid,RED,“Atsiprtašome, bet Nepakanka kreditų.“);
}
else
{
enumas[playerid][admin] = 1; // Padarom žaidėją adminu.
enumas[playerid][kreditai] -= 500; // Atimam už pirkinį 500 kreditų.
}
}
}
return 1;
}

primenu kad šita pamoka labiau tinka GRP stiliaus gm jei kas mokes persidarys ir ant rpg ;)

Pamoka kuta mano

jei padėjau +Rep negailėk :)

Atsiprasau jei klaidu pridariau :) Labai skubėjau

  • Teigiamai 6
  • Neigiamai 2
Nuoroda į komentarą
Dalintis per kitą puslapį

  • Parašė po 1 mėnesio...
  • Parašė po 3 mėnesių...

Sveiki. Man neveikia šis dalykas meta klaidas:

D:\kelti\LARG.TT.LT PROJEKTAS\larg.tt.lt gamomodas\gamemodes\SALG.pwn(12807) : error 029: invalid expression, assumed zero
D:\kelti\LARG.TT.LT PROJEKTAS\larg.tt.lt gamomodas\gamemodes\SALG.pwn(12807) : error 029: invalid expression, assumed zero
D:\kelti\LARG.TT.LT PROJEKTAS\larg.tt.lt gamomodas\gamemodes\SALG.pwn(12807) : warning 215: expression has no effect
D:\kelti\LARG.TT.LT PROJEKTAS\larg.tt.lt gamomodas\gamemodes\SALG.pwn(12807) : error 001: expected token: ";", but found "]"
D:\kelti\LARG.TT.LT PROJEKTAS\larg.tt.lt gamomodas\gamemodes\SALG.pwn(12807) : fatal error 107: too many error messages on one line

O eilutes: mazdaug nuo 7 eilutes meta klaidas. Prasau padekite :)

if(dialogid == 99)
{
if(response)
{
if(listitem == 0) // Jei pasirinko 1000 xp
{
if(enum[playerid][kreditai] > 200;// cia kiek kainos ta paslauga "200 kreditu"
{
SendClientMessage(playerid,RED,"Atsiprtašome, bet Nepakanka kreditų.");
}
else
{
SetPlayerScore(playerid, +1000); // Duodam xp.
enum[playerid][kreditai] -= 200; // Atimam už pirkinį 200 kreditų.
}
}
if(listitem == 1) // Jei pasirinko 1000 Lt
{
if(enum[playerid][kreditai] > 100)
{
SendClientMessage(playerid,RED,"Atsiprtašome, bet Nepakanka kreditų.");
}
else
{
GivePlayerMoney(playerid, 1000); // Duodam 1000 lt
enum[playerid][kreditai] -= 100; // Atimam už pirkinį 100 kreditų.
}
}
if(listitem == 2) // Jei pasirinko VIP
{
if(enum[playerid][kreditai] > 350)
{
SendClientMessage(playerid,RED,"Atsiprtašome, bet Nepakanka kreditų.");
}
else
{
enum[playerid][vip] = 1; // Padarom žaidėją vipu.
enum[playerid][kreditai] -= 350; // Atimam už pirkinį 400 kreditų.
}
}
if(listitem == 3) // Jei pasirinko Admin
{
if(enum[playerid][kreditai] > 500)
{
SendClientMessage(playerid,RED,"Atsiprtašome, bet Nepakanka kreditų.");
}
else
{
enum[playerid][admin] = 1; // Padarom žaidėją adminu.
enum[playerid][kreditai] -= 500; // Atimam už pirkinį 500 kreditų.
}
}
}
return 1;
}

Nuoroda į komentarą
Dalintis per kitą puslapį

C:\Users\Lukas\Desktop\cfs.ql.lr gamomodas\gamemodes\SALG.pwn(12807) : error 029: invalid expression, assumed zero
C:\Users\Lukas\Desktop\cfs.ql.lr gamomodas\gamemodes\SALG.pwn(12807) : error 029: invalid expression, assumed zero
C:\Users\Lukas\Desktop\cfs.ql.lr gamomodas\gamemodes\SALG.pwn(12807) : warning 215: expression has no effect
C:\Users\Lukas\Desktop\cfs.ql.lr gamomodas\gamemodes\SALG.pwn(12807) : error 001: expected token: ";", but found "]"
C:\Users\Lukas\Desktop\cfs.ql.lr gamomodas\gamemodes\SALG.pwn(12807) : fatal error 107: too many error messages on one line

Vistiek kazkas negerai tai eilutei

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3960 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!

Svečias
Ši tema yra užrakinta.
  • Šiame puslapyje naršo:   0 nariai

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

Skelbimai



×
×
  • Sukurti naują...