Szerző Téma: Cigaretta System  (Megtekintve 2499 alkalommal)

Cigaretta System
« Dátum: 2011. június 20. - 08:50:28 »
0 Show voters
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.
« Utoljára szerkesztve: 2011. november 12. - 19:29:20 írta Zsolesszka »

Nem elérhető petya

  • 433
    • Profil megtekintése
Cigaretta System
« Válasz #1 Dátum: 2011. június 20. - 09:07:49 »
+1 Show voters
jóféle  ;)

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Cigaretta System
« Válasz #2 Dátum: 2011. június 20. - 13:20:49 »
0 Show voters
É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. ;)

Cigaretta System
« Válasz #3 Dátum: 2011. június 20. - 13:46:33 »
0 Show voters
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.

Cigaretta System
« Válasz #4 Dátum: 2011. június 20. - 18:00:05 »
0 Show voters
ááááá én akartam ilyet xDD
nembaj, azért megírom :D


Szép munka

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal