Jump to content
  • 0

pomoc [Help] Divné Akce Pickupů


JIDAVID

Dotaz

Zdravím, začali mi bláznit pickupy, už vážné nemohu přijít na to, kde je problém.

Všechny pickupy, které mají dát hráči zbraň nejsou alright :d

U všech pickupů, které mi mají dát zbraň, mi ji dají, ale s nesprávným počtem nábojů.

Například mám pickup, který mi má dát RPG s náboji 3 a místo toho mi dá nábojů 7 | U sniperky místo 30 nábojů 40.

Zkoušel jsem to celé předělat na funkci IsPlayerInSphere, ale výsledek byl stejný.

Mám všechny normálně:

new rpg;
new sniperka;

public OnGameModeInit()
{
rpg = CreatePickup(359, 15, x, y, z);
sniperka = CreatePickup(356, 15, x, y, z);
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid == rpg)
{
GivePlayerWeapon(playerid, 35, 3);
}
else if(pickupid == sniperka)
{
GivePlayerWeapon(playerid, 31, 30);
}
return 1;
}

Dík za rady

Link to comment
Share on other sites

6 odpovědí na tuto otázku

Recommended Posts

  • 0

Z tohoto nikdo nic nevyčte a tudíž ti nemůže poradit. No a bylo by to poprvé, co bych se setkal s tím, že ti funkce GivePlayerWeapon přidělí špatný počet nábojů, chybu musí být někde u tebe, v této části scriptu ale asi ne.

Link to comment
Share on other sites

  • 0

No nevím jestli to pomůže ale skus to používt takto ;)

public OnPlayerPickUpPickup(playerid, pickupid)
{

if(pickupid == rpg){
GivePlayerWeapon(playerid, 35, 3);
}

if(pickupid == sniperka){
GivePlayerWeapon(playerid, 31, 30);
}

return 1;
}

 

Snad pomůže ;)

Link to comment
Share on other sites

  • 0

Zjistil jsem, že to je tímto :think:

rpg = CreatePickup(359, 15, x, y, z);

sniperka = CreatePickup(356, 15, x, y, z);

Když tam dám klasickou 1 tak vše funguje jak má o.O

Já ale potřebuju, aby se pickup respawnul každému hráči po smrti = 15.

Link to comment
Share on other sites

  • 0

Tak tam skus dát--> 3 = Také až po umrtí hráč

Dík za radu, ale nic se nezměnilo =/

 

 

Ja som si aj tak myslel že je to tým typom... Napadá ma iba že dáš typ 1 a pri vstupe do pickupu skontrolujes premenu npr. ZiskalPickup[playerid] či je hodnota 1 ak nie, da mu zbran a nastaví hodnotu na 1 a potom do onplayerspawn das vynulovaie premeny (nsstavis hodnotu 0)

To už mě také napadlo, no nevím jestli se mi chce dělat cca 60 proměnných :problem:

Link to comment
Share on other sites

  • 0

new PickupUsed[MAX_PLAYERS_][MAX_PICKUP];

 

a potom... onplayerpicku...

 

if(pickupid == sniperka && PickupUsed[playerid][pickupid] == 0){

PickupUsed[playerid][pickupid] = 1;

GivePlayerWeapon

}

 

a v OnPlayerSpawn

for(new i; i < MAX_PICKUPS;i++){

PickupUsed[playerid] = 0;

}

Sakra to je vlastně taky pravda, dík :d

Teď sem přišel na to, proč mi to dává víc nábojů.

Jelikož je pickup stejný jako zbraň, přidá mi to u RPG mnou zadaný počet nábojů (3) + defaultní počet, což je 4, takže dostanu 7, jak jsem psal. U ostatních zbraní to samé.

Teď abych zjistil u všech zbraní ten defaultní počet nábojů. :o

 

Vyřešeno.

Zjistil jsem si ten defaultní počet nábojů u všech zbraní pomocí vytvoření prázdného pickupu s ID zbraně a jak jsem řekl, M4 mi dalo např. 80 nábojů, takže abych měl 200, musím do pickupid == M4 dát 120 nábojů a 80 mi jich dá automaticky.

Díky za rady

  • Líbí se mi to! (+1) 1
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...