Wysłany: 2013-06-20, 14:33
matiosek70
Wiek: 29 Na forum: 5213 dni Posty: 58
Piwa : 64
Witam mam plan zrobi? system paliw, polegaj?cy na rodzaju paliw. Czyli benzyna, diesel oraz LPG (Gaz). I chcia?em zapyta? czy mogliby?cie mnie jako? naprowadzi? jak to zrobi?. To powinno dzia?a? na zasadzie ?e gracz wjedzie na stacje wpisz /tankuj i wy?wietli sie mu gui STYL LIST: Benzyna (Koszt za litr: np 3)\nDiesel (Koszt za litr: np 3)\nLPG (Koszt za litr: np 2) potem kliknie na dole dalej pojawi sie mu gui STYL INPUT w wpisze ilo?? litr?w. I chcia?bym ?eby mo?na by?o ustali? np w zmiennej ?e dane id pojazdu ma taki a taki rodzaj paliwa, i innego opr?cz takiego nie mo?e. Czyli np id 522 (NRG) ?eby m?g? tylko benzyne. Itd itd. Za naprowadzenie (opisa? co i jak ) jak to zrobi? oraz nie pogardze gotowcem. Oczywi?cie podzi?kowanie w formie oraz b?dzie .
Wysłany: 2013-06-20, 16:20
akon823
Czekotubka :D
Wiek: 29 Na forum: 4815 dni Posty: 399
Nick w MP: Remik14
Piwa : 152
Stary Ty planujesz robi? sw?j system paliw a walisz taki tekst "matiosek70" napisał/a : Beznadzieja ;]
W sumie to moim zdaniem nawet niez?y pomys? i np. robisz w kodzie tak jak z pojazdami dla frakcji ?e blokada i mo?na tylko ten rodzaj paliwa :> dobry pomys? ^^
Wysłany: 2013-06-20, 20:20
matiosek70
Wiek: 29 Na forum: 5213 dni Posty: 58
Piwa : 64
Dobra powiedzmy ?e kumam jak zrobi? ?eby dany pojazd mia? dane paliwoa ale nie do ko?ca , mo?e by tak jaki? kod naprowadzaj?cy , jaki? przyk?ad albo co?. Oraz jak zrobi? sam system tych 3 paliw.
Wysłany: 2013-06-20, 22:27
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Przeciez do tego wystarcza 1 zmienna i jedna funkcja sprawdzajaca ;o
Kod: new FuelInfo[MAX_VEHICLES]; //np. 0=benzyna,1=gas,2=diesel
Kod: switch(FuelInfo[GetPlayerVehicleID(playerid)])
{
case 0: //tankuj benzyne
case 1: //tankuj gaz
case 2://tankuj diesla
}
Wysłany: 2013-06-22, 11:48
matiosek70
Wiek: 29 Na forum: 5213 dni Posty: 58
Piwa : 64
xqz a jak to wykorzysta? w komendzie tankuj jak mam taki kod:
Kod: CMD:tankuj(playerid, cmdtext, params[])
{
if(!IsPlayerInAnyVehicle(playerid))
return SendClientMessage(playerid, 0xFF0000FF, "Nie jeste? w poje?dzie!");
if(Stacjepaliw(playerid))
{
ShowPlayerDialog(playerid, 92, 1, "Tankowanie paliwa", "{FF8040}Wpisz ile litrow chcesz zatankowac./nCena jednego litra paliwa wynosi 3$.", "Tankuj", "Anuluj");
}
else SendClientMessage(playerid, CZERWONY, "Nie jestes na stacji paliw.");
return 1;
}
Oraz to
Kod: if(dialogid == 92)
{
if(response == 1)
{
new kasa=strval(inputtext)*3;
if(GetPlayerMoney(playerid) <= kasa){
SendClientMessage(playerid, CZERWONY, "Nie masz tyle kasy!");
return 1;
}
if(IsPlayerConnected(playerid))
{
new VID;
new FillUpz=strval(inputtext);
new string[256];
VID = GetPlayerVehicleID(playerid);
FillUpz = benzine - Gas[VID];
if(GetPlayerMoney(playerid) >= FillUpz+4)
{
Gas[VID] += FillUpz;
FillUpz = FillUpz * 1;
format(string,sizeof(string), "Zatankowa?e? (%d Litry) za %d $ ",FillUpz,FillUpz*3);
SendClientMessage(playerid,ZOLTY,string);
GivePlayerMoney(playerid,-FillUpz*3);
}
}
}
return 1;
}
Jak by? co? pom?g? to oczywi?cie . A za to 1 masz oczywi?cie ju? .
Wysłany: 2013-06-22, 11:57
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
np.
Kod: CMD:tankuj(playerid, params[])
{
if(!IsPlayerInAnyVehicle(playerid))
return SendClientMessage(playerid, 0xFF0000FF, "Nie jeste? w poje?dzie!");
if(Stacjepaliw(playerid))
{
switch(FuelInfo[GetPlayerVehicleID(playerid)])
{
case 0: ShowPlayerDialog(playerid, 92, 1, "Tankowanie benzyny", "{FF8040}Wpisz ile litrow chcesz zatankowac./nCena jednego litra benzyny wynosi 5$.", "Tankuj", "Anuluj"),SetPVarInt(playerid,"wybor",0);
case 1: ShowPlayerDialog(playerid, 92, 1, "Tankowanie gazu", "{FF8040}Wpisz ile litrow chcesz zatankowac./nCena jednego litra gazu wynosi 2$.", "Tankuj", "Anuluj"),SetPVarInt(playerid,"wybor",1);
case 2: ShowPlayerDialog(playerid, 92, 1, "Tankowanie diesla", "{FF8040}Wpisz ile litrow chcesz zatankowac./nCena jednego litra oleju napedowego wynosi 4$.", "Tankuj", "Anuluj"),SetPVarInt(playerid,"wybor",2);
}
else SendClientMessage(playerid, CZERWONY, "Nie jestes na stacji paliw.");
return 1;
}
Kod: if(dialogid == 92)
{
if(response == 1)
{
new kasa=strval(inputtext)*3;
if(GetPlayerMoney(playerid) <= kasa){
SendClientMessage(playerid, CZERWONY, "Nie masz tyle kasy!");
return 1;
}
if(IsPlayerConnected(playerid))
{
new VID;
new FillUpz=strval(inputtext);
new string[256];
VID = GetPlayerVehicleID(playerid);
FillUpz = benzine - Gas[VID];
if(GetPlayerMoney(playerid) >= FillUpz+4)
{
switch(GetPVarInt(playerid,"wybor"))
{
case 0:
{
Gas[VID] += FillUpz;
FillUpz = FillUpz * 1; /// ?
format(string,sizeof(string), "Zatankowa?e? (%d Litry benzyny) za %d $ ",FillUpz,FillUpz*5);
SendClientMessage(playerid,ZOLTY,string);
GivePlayerMoney(playerid,-FillUpz*5);
}
case 1:
{
Gas[VID] += FillUpz;
FillUpz = FillUpz * 1; /// ?
format(string,sizeof(string), "Zatankowa?e? (%d Litry gazu) za %d $ ",FillUpz,FillUpz*2);
SendClientMessage(playerid,ZOLTY,string);
GivePlayerMoney(playerid,-FillUpz*2);
}
case 2:
{
Gas[VID] += FillUpz;
FillUpz = FillUpz * 1; /// ?
format(string,sizeof(string), "Zatankowa?e? (%d Litry oleju) za %d $ ",FillUpz,FillUpz*4);
SendClientMessage(playerid,ZOLTY,string);
GivePlayerMoney(playerid,-FillUpz*4);
}
}
}
}
return 1;
}
Cos takiego mniej wiecej
Ostatnio zmieniony przez xqz 2013-06-22, 12:05, w całości zmieniany 2 razy
Wysłany: 2013-06-22, 12:02
Plastik
Uczeń PAWN
Wiek: 35 Na forum: 4754 dni Posty: 36
Nick w MP: Sp3nNc3r
Piwa : 1337
i co dzia?a ci to ??
[ Dodano : 2013-06-22, 19:20 ]
xqz , czyli jak to zrobi? napisz ja?niej
Wysłany: 2013-06-22, 20:13
matiosek70
Wiek: 29 Na forum: 5213 dni Posty: 58
Piwa : 64
Thx wielkie masz za to next
A wiesz mo?e teraz jak zrobi? z id pojazd?w ?.
Ostatnio zmieniony przez matiosek70 2013-06-22, 22:22, w całości zmieniany 1 raz
Wysłany: 2013-06-22, 20:30
Plastik
Uczeń PAWN
Wiek: 35 Na forum: 4754 dni Posty: 36
Nick w MP: Sp3nNc3r
Piwa : 1337
N i dobra w ko?cu jak to zrobi? poprawnie ? daje piffko
Wysłany: 2013-06-22, 22:30
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
Plastik , kod jest podany.
matiosek70 , z id pojazdow? Przypisuj sobie do tablicy jaki ma miec silnik ;0
Kod: FuelInfo[id_pojazdu] = 2; //gaz
Jesli nie ustawisz to pojazd automatycznie bedzie tankowal benzyne.
Mozesz sobie tez zrobic w zaleznosci od modelu np.
Kod: stock SetVehicleSilnikBGD()
{
for(new v; v<MAX_VEHICLES; v++)
{
switch(GetVehicleModel(v))
{
case 562, 418, 459, 490 .. 522: FuelInfo[v] = 2; //ustawia tym modelom diesla
case 460,450..458: FuelInfo[v] = 1; //ustawia tym modelom gaz
}
}
}
I takie tam
Wysłany: 2013-06-22, 22:45
matiosek70
Wiek: 29 Na forum: 5213 dni Posty: 58
Piwa : 64
Czyli jak dam takie co? w g?rze mapy to b?dzie dzia?a? ?
Kod: stock SetVehicleSilnikBGD()
{
for(new v; v<MAX_VEHICLES; v++)
{
switch(GetVehicleModel(v))
{
case 562, 418, 459, 490 .. 522: FuelInfo[v] = 2; //ustawia tym modelom diesla
case 460,450..458: FuelInfo[v] = 1; //ustawia tym modelom gaz
}
}
}
A da?by? jeszcze kodzika na info o tym ?e tego rodzaju paliwa nie mo?esz ?
Aha a musze tego stock'a gdzie? u?y? ?
Mam problem z tym, zrobi?em takie co? @down i pokazuje sie za ka?dym razem benzyna, nawet jak klikne w dialogu np diesel.
Aha i jak wpisze np 1 to i tak full bak tankuje.
Kod:
CMD:stacja(playerid, params[])
{
if(IsPlayerConnected(playerid))
{
if(Stacjepaliw(playerid))
{
ShowPlayerDialog(playerid, 7, 2, "-=| TPT - 2013 |=- STACJA", "Tankuj\nWineta (Potrzebna aby m?c je?dzi? legalnie po autostradach)", "Dalej", "Wyjdz");
}
else
{
SendClientMessage(playerid, BIALY ,"Tylko na {FF8040}stacji paliw {FFFFFF}mo?esz tankowa? samochod.");
}
}
return 1;
}
///////////////////
if(dialogid == 7)
{
if(response == 1)
{
switch(listitem)
{
case 0:
{
if(Stacjepaliw(playerid))
{
ShowPlayerDialog(playerid, 126, 2, "Wybierz rodzaj paliwa:", "Benzyna {FF8040}(Koszt: 4$ za litr)\nGas {FF8040}(Koszt: 2$ za litr)\nDiesel {FF8040}(Koszt: 3$ za litr)", "Dalej", "Anuluj");
}
else
{
SendClientMessage(playerid, CZERWONY, "Tylko na stacji paliw mo?esz tankowa? pojazd.");
}
}
case 1:
{
ShowPlayerDialog(playerid, 97, 2, "Wineta - Menu","Kup Winete (Koszt: 1500$)\nStan Konta\nKup pkt do Winety", "Wybierz", "Wyjdz");
}
}
}
else SendClientMessage(playerid, BIALY, "Zrezygnowales z uslug {FF8040} Stacji Paliw.");
return 1;
}
////////////////////////
if(dialogid == 125)
{
if(response == 1)
{
new kasa=strval(inputtext)*3;
if(GetPlayerMoney(playerid) <= kasa){
SendClientMessage(playerid, CZERWONY, "Nie masz tyle kasy!");
return 1;
}
if(IsPlayerConnected(playerid))
{
new VID;
new FillUpz=strval(inputtext);
new string[256];
VID = GetPlayerVehicleID(playerid);
FillUpz = benzine - Gas[VID];
if(GetPlayerMoney(playerid) >= FillUpz+4)
{
switch(GetPVarInt(playerid,"wybor"))
{
case 0:
{
Gas[VID] += FillUpz;
FillUpz = FillUpz * 1; /// ?
format(string,sizeof(string), "Zatankowa?e? (%d Litry benzyny) za %d $ ",FillUpz,FillUpz*4);
SendClientMessage(playerid,ZOLTY,string);
GivePlayerMoney(playerid,-FillUpz*5);
}
case 1:
{
Gas[VID] += FillUpz;
FillUpz = FillUpz * 1; /// ?
format(string,sizeof(string), "Zatankowa?e? (%d Litry gazu) za %d $ ",FillUpz,FillUpz*2);
SendClientMessage(playerid,ZOLTY,string);
GivePlayerMoney(playerid,-FillUpz*2);
}
case 2:
{
Gas[VID] += FillUpz;
FillUpz = FillUpz * 1; /// ?
format(string,sizeof(string), "Zatankowa?e? (%d Litry oleju) za %d $ ",FillUpz,FillUpz*3);
SendClientMessage(playerid,ZOLTY,string);
GivePlayerMoney(playerid,-FillUpz*4);
}
}
}
}
}
return 1;
}
///////////////
if(dialogid == 126)
{
if(response == 1)
{
switch(FuelInfo[GetPlayerVehicleID(playerid)])
{
case 0: ShowPlayerDialog(playerid, 125, 1, "Tankowanie benzyny", "{FF8040}Wpisz ile litrow chcesz zatankowac./nCena jednego litra benzyny wynosi 4$.", "Tankuj", "Anuluj"),SetPVarInt(playerid,"wybor",0);
case 1: ShowPlayerDialog(playerid, 125, 1, "Tankowanie gazu", "{FF8040}Wpisz ile litrow chcesz zatankowac./nCena jednego litra gazu wynosi 2$.", "Tankuj", "Anuluj"),SetPVarInt(playerid,"wybor",1);
case 2: ShowPlayerDialog(playerid, 125, 1, "Tankowanie diesla", "{FF8040}Wpisz ile litrow chcesz zatankowac./nCena jednego litra oleju napedowego wynosi 3$.", "Tankuj", "Anuluj"),SetPVarInt(playerid,"wybor",2);
}
}
return 1;
}
Ostatnio zmieniony przez matiosek70 2013-06-22, 22:59, w całości zmieniany 1 raz
Wysłany: 2013-06-22, 22:58
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
tej funkcji mozesz uzyc na koncu OnGameModeInit albo po wczytaniu pojazdow.
"matiosek70" napisał/a :A da?by? jeszcze kodzika na info o tym ?e tego rodzaju paliwa nie mo?esz ?
Komenda jest zrobiona tak, ze nie daje wyboru paliwa jakie chcemy nalac tylko od razu wybiera odpowiednie.
Wysłany: 2013-06-23, 03:54
matiosek70
Wiek: 29 Na forum: 5213 dni Posty: 58
Piwa : 64
A zrobi?by? mi to tak jak w 1 po?cie napisa?em? Oczywi?cie za piwko
Wysłany: 2013-06-23, 11:07
xqz
otaku desu!
Wiek: 32 Na forum: 6406 dni Posty: 723
Nick w MP: xqz
Piwa : 5465
To zrob sobie wybor w liscie i w zaleznosci od wyboru uruchom powyzszy kod.
np. w dialogu masz
Benzyna,
Gaz,
Disesel
To zeby zablokowac nieprawidlowe paliwo dodajesz:
Kod:
switch(listitem)
{
case 0: if(FuelInfo[v] == 0) return ShowPlayerDialog(playerid,.....); //tankuj benzyne
case 1: if(FuelInfo[v] == 1) return ShowPlayerDIalog.. //tankuj gaz
case 2: if(FuelInfo[v] == 3) return ShowPlayerDialog(playerid,.....); //tankuj diesel
}
ShowPlayerDialog(playerid,DIALOG_INFO,DIALOG_STYLE_MSGBOX,"ZLE paliwo","Wybierz inne paliwo! To jest zle!","Rozumiem","");
Wysłany: 2013-06-23, 12:53
matiosek70
Wiek: 29 Na forum: 5213 dni Posty: 58
Piwa : 64
A m?g?by? mi to sklei? wszystko w jedno ? Bo sie pogubi?em. Mi sie wszystko psuje, jak wpisze 1 litr to itak full bak tankuje.
Ostatnio zmieniony przez matiosek70 2013-06-23, 17:02, w całości zmieniany 1 raz
Tagi: system :: paliw
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: