Jump to content
  • 0

pomoc Pickup po smrti cash


P1s3k

Dotaz

Zdarec, mám problém

Mám to udělaný tak že když zemřu, tak po mě zůstane pickup s penězma, jenže je problém že když umřu třeba 2x tak ten pickup můžu vzít jen 1x a ten druhej se tváří jako obyč pickup bez peněz ...

Prostě to chci tak že když několikrát umřu, tak aby na tom místě zůstal ten pickup s těma penězma a nezáleží na tom kolik jsem si těch pickupů vzal, pač teď si můžu vzít jen jeden pickup ...

new penize_pickup, penize;
 
public OnPlayerDeath
GetPlayerPos(playerid, pX, pY, pZ);
penize_pickup = CreatePickup(1212, 5, pX, pY, pZ, -1);
penize = GetPlayerMoney(playerid);
ResetPlayerMoney(playerid);
 
public OnPlayerPickupUpPickup
if(pickupid == penize_pickup)
{
format(string, sizeof(string), "nekd umrel, nasel si %d lowe", penize);
SendClientMessage(playerid, B_MODRA, string);
GivePlayerMoney(playerid, penize);
DestroyPickup(penize_pickup);
}

Link to comment
Share on other sites

11 odpovědí na tuto otázku

Recommended Posts

  • 0
  • Globální moderátor

vytváříš pouze 1 proměnou pro jeden pickup: new penize_pickup, penize;

 

musíš si definovat pickup pro každýho hráče

Link to comment
Share on other sites

  • 0

Včera či predvčerom sa ma niekto to isté pýtal v SZ...
To je neuveriteľné..
ODKAZ NA MODERÁTORA:
Mal by si pripnúť niekde hore ten Hipov príspevko "chcem návod na...", aby sme to všetci nepísali stokrát.

Link to comment
Share on other sites

  • 0

Hip to říká dobře, místo:

new penize_pickup, penize;

Musíš dat:

new penize_pickup[MAX_PLAYERS], penize[MAX_PLAYERS];

a k podmínkám pak přidat: penize[playerid] = ....

 

To sem právěže taky dělal, ale bez úspěchu, je to furt stejné, proto sem se obrátil na tohle fórum ...

Mě jde jen o to že když 10x umřu, tak po mě zůstane 10x pickup s penězma, jenže když si vezmu nějakej ten jeden pickup, tak když pak příjdu a vezmu ostatní pickupy tak už to nic nevypíše ani nedá cash a jen zmizí, místo toho aby mi každej pickup vypsal že sem našel tolik a tolik peněz ...

Link to comment
Share on other sites

  • 0

Z polovice majú pravdu ale z tej druhej sa mýlia...

Ano, je pravda že musíš vytvoriť premennu s poľom ale nie s MAX_PLAYERS.

 

#define MAX_P_PICKUP 250

new penize_pickup[MAX_P_PICKUP], penize[MAX_P_PICKUP], pp_pocet;

Teraz je možné vytvoriť 250 pickupov s peniazmi.

 

potom sprav pri vytváraní pickupu podmienku :

if(pp_pocet >= MAX_P_PICKUP){pp_pocet=0;/*nezabudni sem dať cyklus na zmazanie vštkých pickupov*/}

/*kód na vytvorenie pickupu*/

pp_pocet++;

Link to comment
Share on other sites

  • 0

Z polovice majú pravdu ale z tej druhej sa mýlia...

Ano, je pravda že musíš vytvoriť premennu s poľom ale nie s MAX_PLAYERS.

 

#define MAX_P_PICKUP 250

new penize_pickup[MAX_P_PICKUP], penize[MAX_P_PICKUP], pp_pocet;

Teraz je možné vytvoriť 250 pickupov s peniazmi.

 

potom sprav pri vytváraní pickupu podmienku :

if(pp_pocet >= MAX_P_PICKUP){pp_pocet=0;/*nezabudni sem dať cyklus na zmazanie vštkých pickupov*/}

/*kód na vytvorenie pickupu*/

pp_pocet++;

 

Můžeš mi prosím tě upravit ,,můj'' kód, aby to bylo tak jak říkáš? Já už na to nemám nervy, celej net sem prolez a nikde nic ... Mám sto chutí to gta celý smazat i s pawnem :(

Link to comment
Share on other sites

  • 0

#define MAX_P 100
new penize_pickup[MAX_P], penize[MAX_P],p_pocet;
 
public OnPlayerDeath
if(p_pocet >= MAX_P)
{
p_pocet=0;
for(new i=0;i<MAX_P;i++)
{
DestroyPickup(penize_pickup[i]);
}
}
GetPlayerPos(playerid, pX, pY, pZ);
penize_pickup[p_pocet] = CreatePickup(1212, 5, pX, pY, pZ, -1);
penize[p_pocet] = GetPlayerMoney(playerid);
ResetPlayerMoney(playerid);
p_pocet++;
 
public OnPlayerPickupUpPickup
for(new i=0;i<MAX_P;i++)
{
if(pickupid == penize_pickup[i])
{
format(string, sizeof(string), "nekd umrel, nasel si %d lowe", penize[i]);
SendClientMessage(playerid, B_MODRA, string);
GivePlayerMoney(playerid, penize[i]);
DestroyPickup(penize_pickup[i]);
}
}

Link to comment
Share on other sites

  • 0

 

#define MAX_P 100
new penize_pickup[MAX_P], penize[MAX_P],p_pocet;
 
public OnPlayerDeath
if(p_pocet >= MAX_P)
{
p_pocet=0;
for(new i=0;i<MAX_P;i++)
{
DestroyPickup(penize_pickup[i]);
}
}
GetPlayerPos(playerid, pX, pY, pZ);
penize_pickup[p_pocet] = CreatePickup(1212, 5, pX, pY, pZ, -1);
penize[p_pocet] = GetPlayerMoney(playerid);
ResetPlayerMoney(playerid);
p_pocet++;
 
public OnPlayerPickupUpPickup
for(new i=0;i<MAX_P;i++)
{
if(pickupid == penize_pickup[i])
{
format(string, sizeof(string), "nekd umrel, nasel si %d lowe", penize[i]);
SendClientMessage(playerid, B_MODRA, string);
GivePlayerMoney(playerid, penize[i]);
DestroyPickup(penize_pickup[i]);
}
}

 

 

Díky moc :)

Akorát to blbne a to tak že když umřu tak se vytvoří pickup a když ho pak seberu po smrti, tak se mi vypíše: nekdo umrel, nasel si 35 lowe a podto se vypíše ještě 99x: nekd umrel, nasel si 0 lowe

Zkoušek jsem to i různě upravovat, ale bez úspěchu :(

Link to comment
Share on other sites

  • 0

Díky moc :)

Akorát to blbne a to tak že když umřu tak se vytvoří pickup a když ho pak seberu po smrti, tak se mi vypíše: nekdo umrel, nasel si 35 lowe a podto se vypíše ještě 99x: nekd umrel, nasel si 0 lowe

Zkoušek jsem to i různě upravovat, ale bez úspěchu :(

Zaujímavé... problém bude asi s prehadzovaním pickupov...

Nájdi si tu na fóre tento problém, tam bude napísané jak to vyriešiť (ja teraz nemám čas).

Link to comment
Share on other sites

  • 0
  • Globální moderátor

podle mě je problém v této podmínce:

 

if(pickupid == penize_pickup[i])

 

aby se ti to vypsalo vždy tak se tato podmínka vždy splní takže je problém někde tam ...

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