GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: [T.I.R.]Kenguru - 2011. június 20. - 08:50:28

Cím: Cigaretta System
Írta: [T.I.R.]Kenguru - 2011. június 20. - 08:50:28
Hali!
Gondoltam írok egy cigi scriptet.
Parancsok:
/cigitvesz - veszel 19 szál cigit és levon 540-et
/gyujtotvesz - veszel egy öngyujtót és levon 150-et
/cigisdoboz - megmutatja a cigisdobozod tartalmát
/sziv - Rágyujtasz a cigidre.
[pawn]#include <a_samp>
#include <zcmd>
#define COLOR_RED 0xFF0000AA
#define COLOR_GREEN 0x45E01FFF
new cigi[MAX_PLAYERS];
new bool:gyujto[MAX_PLAYERS];
CMD:cigitvesz(playerid,params[])
{
if(GetPlayerMoney(playerid) < 540) return SendClientMessage(playerid,COLOR_RED,\"Nincs elég pénzed, 540$ egy doboz cigi!\");
SendClientMessage(playerid, COLOR_GREEN, \"Vettél egy doboz Piros West-et!\");
cigi[playerid] = 19;
GivePlayerMoney(playerid, -540);
return 1;
}
CMD:gyujtotvesz(playerid, params[])
{
if(GetPlayerMoney(playerid) < 150) return SendClientMessage(playerid,COLOR_RED,\"Nincs elég pénzed, 150$ egy öngyujtó!\");
GivePlayerMoney(playerid, -150);
gyujto[playerid] =true;
return 1;
}
CMD:cigisdoboz(playerid, params[])
{
SendClientMessage(playerid, COLOR_RED,\"RedWest-es Doboz Tartalma\");
new cstr[MAX_PLAYERS];
format(cstr,sizeof(cstr),\"Szálak: %d\",cigi[playerid]);
SendClientMessage(playerid,COLOR_GREEN,cstr);
return 1;
}
CMD:sziv(playerid, params[])
{
if(gyujto[playerid] == false) return SendClientMessage(playerid,COLOR_RED,\"Nincs Önygujtód!\");
if(cigi[playerid] == 0) return SendClientMessage(playerid,COLOR_RED,\"Nincs Cigid!\");
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
SendClientMessage(playerid,COLOR_GREEN,\"Rágyujtottál egy RedWestre!\");
cigi[playerid] --;
return 1;
}[/pawn]
Remélem tetszik.
Cím: Cigaretta System
Írta: petya - 2011. június 20. - 09:07:49
jóféle  ;)
Cím: Cigaretta System
Írta: ZeRo - 2011. június 20. - 13:20:49
Észrevétel:
[pawn]
CMD:cigitvesz(playerid,params[])
{
SendClientMessage(playerid, COLOR_GREEN, \"Vettél egy doboz Piros West-et!\");
cigi[playerid] = 19;
if(GetPlayerMoney(playerid) < 540) return SendClientMessage(playerid,COLOR_RED,\"Nincs elég pénzed, 540$ egy doboz cigi!\");
GivePlayerMoney(playerid, -540);
return 1;
}
[/pawn]
Itt ha nincs elég pénze, akkor is feltölti a cigiszámát és megkapja az üzenetet, csak nem von le pénzt, mert a pénzre vonatkozó feltétel a végén van.


Egy másik dolog, a gyujto változónál csak két értéket használsz( 0 és 1 ), tehát deklaráld logikai változóként, mert kevesebb memóriát igényel. Tehát:
[pawn]new bool: gyujto[ MAX_PLAYERS ];[/pawn]
Egyébként szép munka. ;)
Cím: Cigaretta System
Írta: [T.I.R.]Kenguru - 2011. június 20. - 13:46:33
Idézetet írta: ZeRo date=1308568849\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"8990\" data-ipsquote-contentclass=\"forums_Topic
Észrevétel:
[pawn]
CMD:cigitvesz(playerid,params[])
{
SendClientMessage(playerid, COLOR_GREEN, \"Vettél egy doboz Piros West-et!\");
cigi[playerid] = 19;
if(GetPlayerMoney(playerid) < 540) return SendClientMessage(playerid,COLOR_RED,\"Nincs elég pénzed, 540$ egy doboz cigi!\");
GivePlayerMoney(playerid, -540);
return 1;
}
[/pawn]
Itt ha nincs elég pénze, akkor is feltölti a cigiszámát és megkapja az üzenetet, csak nem von le pénzt, mert a pénzre vonatkozó feltétel a végén van.


Egy másik dolog, a gyujto változónál csak két értéket használsz( 0 és 1 ), tehát deklaráld logikai változóként, mert kevesebb memóriát igényel. Tehát:
[pawn]new bool: gyujto[ MAX_PLAYERS ];[/pawn]
Egyébként szép munka. ;)
 
Az if feltételt rendesen betettem, a gyujto nevezetû változót pedig átírtam bool tipusúra.
Cím: Cigaretta System
Írta: TengeriMalac - 2011. június 20. - 18:00:05
ááááá én akartam ilyet xDD
nembaj, azért megírom :D


Szép munka