Jump to content
  • 0

pomoc Pickup Baliček


lekpri

Dotaz

Ahoj.

Pomůže někdo?

 

Udělal jsem několik pickupu na port a to jde v pohodě , ale mam problém pickup baličky.

Udělal jsem balíček, ale když se někdo portne tak dostane i to co je v balíčku.

 

Takto mam port:

 

#include <a_samp>

#define FILTERSCRIPTS // !

 

 

new Pickup1;

 

 

public OnGameModeInit()

{

Pickup1 = CreatePickup(1318,2,2143.0168,1424.8624,10.8203,0);

Create3DTextLabel("Port do LS",0x008080FF,2143.0168,1424.8624,10.8203,50,0,0);// LS

 

 

 

public OnPlayerPickUpPickup(playerid, pickupid)

{

if(pickupid == Pickup1)

{

SetPlayerPos(playerid,1758.1249,-1861.9103,13.5769); //nastavi pozici

 

return 1;

}

 

//--------------------------------

 

Takto Baličky

 

#define filterscript

#include <a_samp>

 

 

new pickup50;

 

 

public OnGameModeInit()

{

 

pickup50 = CreatePickup(1276,3,-1862.6554,564.0529,35.6910 -1);

 

return 1;

}

 

 

public OnPlayerPickUpPickup(playerid, pickupid)

{

 

if(pickupid == balikpickup50){

}

GivePlayerMoney(playerid, 100); // penize

 

 

return 1;

}

 

 

Zkoušel jsem i přejmenovat Pickup na balikPickup , ale to asi nemá vliv

Moc Vás prosím o radu a pomoc, děkuji

Link to comment
Share on other sites

5 odpovědí na tuto otázku

Recommended Posts

  • 0

Vytvoř si funkci a nekontroluj přes proměnou při více pickupech se můžou prohodit forward CreateBalicek(id,Float:xyz.... /// ale prvně definuj proměnou

 

a newneš si proměnné pro pozici každého balíčku takže něco jako

new Float:BalicekX[kolikbalicku]; a to i u Y a Z

 

v publicu budeš ukládat parametry do proměnné

 

public CreateBalicek(id,Float:xyz....

{

BalicekX[id]=x;

 

a vytvoříš si pickup

 

funkci CreateBalicek(parametry funkce)dáš do gamemodeinit

 

a v onplayerpickuppickup kontrolujes pozici každého balíčku pomocí cyklusu for

for(new i=0; i < pocet balicku;i++) //nejlepe je si definovat mnozstvi balicku a map misto cisla das definici do zapisoveho pole

{

 

if(IsPlayerInRangeOfPoint(playerid,nejlepe 1,BalicekX,y a z))

{

 

... takhle nějak by to mělo vypadat .)

Link to comment
Share on other sites

  • 0

mas tam chybu to GivePlayerMoney nemas v ty podmince ale az pod ni

 

#include <a_samp>
new Pickup1;
new pickup50;
public OnGameModeInit()
{
Pickup1 = CreatePickup(1318,2,2143.0168,1424.8624,10.8203,0);
Create3DTextLabel("Port do LS",0x008080FF,2143.0168,1424.8624,10.8203,50,0,0);// LS
pickup50 = CreatePickup(1276,3,-1862.6554,564.0529,35.6910,-1);
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == Pickup1)
{
SetPlayerPos(playerid,1758.1249,-1861.9103,13.5769); //nastavi pozici
}
else if(pickupid == balikpickup50)
{
GivePlayerMoney(playerid, 100); // penize
}
return 1;
}

 

Az se ti budou prohazovat akce v pickupech tak reseni je tu:

http://pawno.cz/topi...ci-v-pickupech/

Link to comment
Share on other sites

  • 0

Děkuji ATomas :)

Ještě jeden dotaz, jak udělat aby se balíček ukázal po sebrání až třeba za půl min. Teď se po sebraní ukáže okamžitě nebo po portu Z5

Děkuji

 

 

 

Mam to tak to:

 

 

#include <a_samp>

#define FILTERSCRIPTS // !

 

new Pickup16;//LS

new Pickup17;//LS

 

// ---- balik

new bpickup50;

new bpickup51;

 

 

public OnGameModeInit()

{

Pickup16 = CreatePickup(1318,2,1804.7156,-1883.9016,13.5793,0);

Create3DTextLabel("Port do LV",0x008080FF,1804.7156,-1883.9016,13.5793,50,0,0);// v SF do LV

 

Pickup17 = CreatePickup(1318,2,1802.2806,-1883.8529,13.5776,0);

Create3DTextLabel("Port do LV",0x008080FF,1802.2806,-1883.8529,13.5776,50,0,0);// v SF do LV

 

//------------------- balik------------------------------------------------

bpickup50 = CreatePickup(1276,3,2132.9006,1426.7583,10.8203 -1);

bpickup51 = CreatePickup(1276,3,2119.1370,1434.0957,10.8203 -1);

 

return 1;

}

 

 

 

public OnPlayerPickUpPickup(playerid, pickupid)

{

if(pickupid == Pickup16)

{

SetPlayerPos(playerid,2151.6243,1440.0266,10.8125); //nastavi pozici

}

 

 

if(pickupid == Pickup17)

{

SetPlayerPos(playerid,-1918.5293,574.0905,35.2285); //nastavi pozici

}

 

//------------ balik ----------------

 

if(pickupid == bpickup50)

{

GivePlayerMoney(playerid, 1000); // penize

}

 

if(pickupid == bpickup51)

{

GivePlayerMoney(playerid, 100); // dame prachy

GivePlayerWeapon(playerid, 34, 10); // dame Weapon

}

 

 

//------------KONEC---------------------------

return 1;

}

Link to comment
Share on other sites

  • 0

Potřebuješ si to předělat na verzi, jakou tu postoval frajtr, protože s využíváním funkce DestroyPickup příjde i pomíchání id pickupů, tím pádem i jejich funkcí

 

Jinak pro příklad k tomu jak to máš teď:

 

if(pickupid == bpickup50)

{

DestroyPickup(bpickup50); //zničí pickup s názvem bpickup50

GivePlayerMoney(playerid, 1000); // penize

}

 

Pro respawn pickupu musíš přidat timerex(http://wiki.sa-mp.com/wiki/SetTimerEx), například na tvojí minutu a půl a v něm opět použít CreatePickup na vytvoření tvého pickupu pro balíček.

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...