Jump to content

Weapon shop přes dialog s pickupem


W4rm3x

Recommended Posts

Zdravím vás lidi, vím, že je tu toho hodně, ale když si vzpomenu čím jsem si před třemi roky procházel já sám, tak vím, že se najde hodně lidí, co neumí hledat na webu, popřípadě ani základy pawna.

 

Tak teď stručně k tomu.

 

Nahoru do módu vložíme např.

new shop; //což je proměnná pro náš pickup

 

a teď si pojďmě vytvořit ten náš pickup do OnGameModeInit vložíme

shop = CreatePickup(vzhled pickupu,Typ pickupu,X,Y,Z,-1);

ID vzhledu pickupu najdete http://wiki.sa-mp.com/wiki/Game_Object_ID_List

a typ pickupu najdete http://wiki.sa-mp.com/wiki/PickupTypes

X,Y,Z vysvětlovat doufám nemusím

Číslo na konci (vetšinou -1) znamená virtuální svět, když je -1 jde vidět ve všech světech, když 1 tak jen v tom virtuálním.

 

A teď si pojďmě vypracovat dialog.

public OnPlayerPickUpPickup(playerid, pickupid)
{
   if(pickupid == shop) {  //když vstoupíte na pickup
   ShowPlayerDialog(playerid,1,DIALOG_STYLE_LIST,"Obchod se zbraněmi","Zbran1 \n2Zbran2","Koupit","Zrušit");  //zobrazí se dialog přičemž 1 před DIALOG_STYLE_LIST značí ID daného dialogu.
   }

return 1;
}

 

 

Ale dialog bohužel ještě nefunguje! Jakože funguje, ale nedá se tam nic koupit, protože tam jsou jen nápisy.

 

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)  //dialog číslo 1
{
    if(response)
    {
   		if(listitem == 0)  //První věc co jste napsali v dialogu
   		{
    		if(GetPlayerMoney(playerid) < 3000) return  SendClientMessage(playerid, 0xFF0000AA, "Nemáte dostatek penězí");  //napíše při nedostatku penězí
       		GivePlayerWeapon(playerid,ID zbrane, náboje);
			GivePlayerMoney(playerid, -3000);
			SendClientMessage(playerid,Vaše definovaná barva, "Koupil jsi ...!");
   		}           
   		if(listitem == 1) //a to stejné u dalších věcí
   		{
    		if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xFF0000AA, "Nedostatek penězí!");
   		    GivePlayerWeapon(playerid, ID ZBRANE, náboje);
			GivePlayerMoney(playerid, -5000);
			SendClientMessage(playerid,Vaše definovaná barva, "Koupil jsi...!");
   		}
   		if(listitem == 2)
   		{
    		if(GetPlayerMoney(playerid) < 8000) return SendClientMessage(playerid, 0xFF0000AA, "Nedostatek penězí!");
   		    GivePlayerWeapon(playerid, ID zbrane, náboje);
			GivePlayerMoney(playerid, -8000);
			SendClientMessage(playerid, vaše definovaná barva, "Koupil jsi .....!");
   					}
	}
	return 1;
}
return 0;
}

 

ID zbraní najdete http://wiki.sa-mp.com/wiki/Weapons

 

Mělo by to být všechno, kdybych tam měl případně chyby, opravte mě prosím.

BTW: Je to můj první TuT, nepoužíval jsem žádné návody. I když si to myslet můžete, protože většina těchto věcí vypadá stejně.

Link to comment
Share on other sites

  • Administrátor

No hlavně mi přijde povědomé "pěnězí" jak kdyby jsi to překládal z nějakého SK tut ..... Ale dobrý jen si to mohl dát do

[code=php]

[/code]

Link to comment
Share on other sites

No hlavně mi přijde povědomé "pěnězí" jak kdyby jsi to překládal z nějakého SK tut ..... Ale dobrý jen si to mohl dát do
[code=php]

[/code]

 

Děláš jak kdyby si neznal ty češtináře tu na fórku :):hehe:

 

Co se týká TuTu, dobrá práce :)

Link to comment
Share on other sites

No hlavně mi přijde povědomé "pěnězí" jak kdyby jsi to překládal z nějakého SK tut ..... Ale dobrý jen si to mohl dát do
[code=php]

[/code]

 

Dáš mi prosím radu do příště? Co napsat místo penězí, to mám třeba napsat Nemáš cash??

 

Co se týká TuTu, dobrá práce :)

Díky :) Vážně si toho cením. Budu se snažit pokračovat.

Link to comment
Share on other sites

Nelíbí se mi .. mohl jsi vytvořit alespon stock a potom už jen přisazovat čísla .. ale někdo to má třeba raději takhle .. jinak sem čekal že dáš všechny zbraně jako v ammunation :d

Link to comment
Share on other sites

Nelíbí se mi .. mohl jsi vytvořit alespon stock a potom už jen přisazovat čísla .. ale někdo to má třeba raději takhle .. jinak sem čekal že dáš všechny zbraně jako v ammunation :d

 

Nemám rovnou udělat FS a nahrát to sem v PWN aby si to pouze stáhli a překonvertovali a nic z toho nepochopili?

Link to comment
Share on other sites

Nelíbí se mi .. mohl jsi vytvořit alespon stock a potom už jen přisazovat čísla .. ale někdo to má třeba raději takhle .. jinak sem čekal že dáš všechny zbraně jako v ammunation :d

 

Nemám rovnou udělat FS a nahrát to sem v PWN aby si to pouze stáhli a překonvertovali a nic z toho nepochopili?

jó můžeš :d hodně štěstí a nervů .. mohl si to ale víc rozepsat, napřiklad toto

 

//napíše při nedostatku penězí

 

kdybych pawn nechápal, moc bych z toho nepochopil

 

if(GetPlayerMoney(playerid) < 555555) return SCM(playerid, -1, "nemas 5555555 $"); // zjišťuje hráčovo peníze zda jsou menší než 55555, pokud ano nebudeme pokračovat dál a pouze vypíšeme zprávu

toto třeba nováček pochopí ... ale to už je na tobě ...

Link to comment
Share on other sites

  • 4 years later...

měto nefunguje muže mi někdo pomoc ?

 

Trošku starší help nemyslíš? 

V každom prípade: 

https://wiki.sa-mp.com/wiki/ShowPlayerDialog

https://wiki.sa-mp.com/wiki/GivePlayerWeapon

https://wiki.sa-mp.com/wiki/GivePlayerMoney

 

Happy learning   :hello:

Edited by Matus.Cernava
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...