Peršokti į turinį

kPickups - turbūt vienas nuostabiausių Pickup kūrimo ir valdymo būdų!


Pyazo

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3989 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Recommended Posts

kPickups

Pickup'ų kūrimo/valdymo include

Kas tai?

kPickups yra vienas mano manymu praktiškiausių Pickup'ų kūrimo ir valdymo include, kuris leidžia išties daug. Kurdamas šį include, galvojau netik apie pagrindines pickup'ų funkcijas, bet ir sugalvojau keletą naujovių kurios padės patobulinti jūsų serverį.

Funkcijos:

v1.1 Funkcijos:

Funkcija: Pickup(sP_id,Float:pP_x,Float:pP_y,Float:pP_z, pP_type, pP_model, pP_virtual,picklimit = -1); - naudojama sukurti Pickup'ui
Funkcija: ReloadPickups(); - Perkrauna visus Pickup'us
Funkcija: ReloadPickup(_pID); - Perkrauna pickup'ą pagal jo ID
Funkcija: HidePickup(_pID); - paslepia Pickup'ą ( jo nerodo žaidėjams )
Funkcija: ShowPickup(_pID); - parodo Pickup'ą žaidėjams
Funkcija: HidePickupForTime(_pID, _pSeconds); - paslėpia pickup'ą kažkuriam laikui ( pvz.: 10 sek )
Funkcija: ChangePickupModel(_pID, _p_Model); - pakeičiai pickup'o modelį ir iškarto realod'ina pickupą
Funkcija: ChangePickupType(_pID, _p_Type); - pakeičiai pickup'o tipą ir iškarto realod'ina pickupą
Funkcija: GetNearestPickupFromPoint(Float:x1, Float:y1, Float:z1, Float: dist = 100.0); - išgauna arčiausiai esantį pickup'ą pagal nurodytą atstumą ( default - 100.0 )
Funkcija: IsValidPickup(_pID); - patikrina ar pickup'as yra egzistuojantis pagal nurodytą ID
Funkcija: GetPickupType(_pID); - išgauna pickup'o tipą pagal jo id
Funkcija: eOnPlayerPickUpPickup(playerid, pickupid); - ją reikia dėti po OnPlayerPickupPickup, naudojama pickup'inimo limitui
Funkcija: GetPickupModel(_pID); - išgauna pickup'o pagal nurodytą id modelį

Naudojimas:

Naudojimas yra itin paprastas, kaip suprantate pirmiausia reikia pradėti nuo pačio pickup sukūrimo. Pradėkim:

Po OnGameModeInit callback'o rašome:

Pickup( 1, pozicija( x, y, z ), 2, 1226, -1 );

Taigi sukūrėme Pickup, kurio ID yra 1, pozicija x,y,z ( kurią jūs nurodėte ), tipas - 2 , modelis - 1226, virtualworld - -1 ( kad rodytų visur ). Na ir dabar jau jūsų pasirinkimas ką norite daryti, peržiūrėkite funkcijų sąrašą ir naudokite ją laisvai. Ten kur yra _pID įrašykite norimo Pickup ID, šiuo atveju mes sukūrėme 1, tai visur ir naudosime 1. Pvz:

HidePickup( 1 ); // paslepiam pickup'a kuris turi ID 1

Atnaujinimai:

2013.06.06 - išleidimas

2013.06.06 - v1.1 atnaujinimas, pridėta nemažai funkcijų, + pridėtas pickup limitas( kiek kartų galima bus paimti pickup )

Parsisiuntimas ir integravimas:

V 1.1 Solidfiles.com: http://www.solidfiles.com/d/f30139b0fd/

V 1.1 Pastebin.com: http://pastebin.com/28HhjJEC

v 1.0 Solidfiles.com: http://www.solidfile...m/d/92d71ece4b/

v 1.0 Pastebin.com: http://pastebin.com/0X284WW4

Integruoti į savo modifikaciją galite taip:

  1. Įkelkite include į pawno/include/ direktoriją
  2. Atsidarykite modifikaciją
  3. Modifikacijos viršuje prie include įrašykite šį kodą:
    #include <kPickups>


  4. Nepamirškite po OnPlayerPickupPickup prirašyti:
    eOnPlayerPickUpPickup(playerid, pickupid);


Redaguota , nario *KAT*
Nuoroda į komentarą
Dalintis per kitą puslapį

Sukurk laimingos valandos sistemą, kurios dėka atsitiktiniai 5 žmonės gautų ką nors :)

new Counter;
for(new i; i<MAX_PLAYERS; i++)
{
  if(IsPlayerConnected(i)) Counter++;
}
for(new i; i<5; i++)
{
GivePlayerKanors(random(Counter),kieknors);
}

Tik isidek kur nori, t.y. i timerį ka valanda

Nuoroda į komentarą
Dalintis per kitą puslapį

new Counter;
for(new i; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i)) Counter++;
}
for(new i; i<5; i++)
{
GivePlayerKanors(random(Counter),kieknors);
}

Tik isidek kur nori, t.y. i timerį ka valanda

wtf is dis shit

edit

new id = random(MAX_PLAYERS);
while(!IsPlayerConnected(id)) id = random(MAX_PLAYERS);
GivePlayerMoney(playerid, 1);

Redaguota , nario Yiin
Nuoroda į komentarą
Dalintis per kitą puslapį

Argumentuok :)

tarkime prisijungia 5 žaidėjai, visų id yra 0,1,2,3,4.

tuomet atsijungia žaidėjai kurių id yra 1 ir 2. Likusiu žaidėjų id yra 0,3,4.

tada tu su ciklu suskaičiuoji, kad serveryje yra 3 žaidėjai.

gauni random "žaidėjo" id panaudodamas id = random(3); nes 3 žaidėjus cikle suskaičiavai.

random funkcija returninti gali 0, 1 ar 2.

tarkime returnina 1 arba 2. Tie žaidėjai nėra prisijungę, todėl prizą duodi neprisijungusiui žaidėjui, t.y. prizo negauna niekas, nors turėjo gaui kažkas.

išvada: kodas neveikia.

Nuoroda į komentarą
Dalintis per kitą puslapį

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 3989 dienas (-ų). Patariame sukurti naują temą, o ne rašyti naują pranešimą.

Už neaktyvių temų prikėlimą galite sulaukti įspėjimo ir pranešimo pašalinimo!

Prisijungti prie diskusijos

Palikti atsakymą galite iš karto, o užsiregistruoti vėliau. Jeigu jau turite paskyrą mūsų forume, Prisijunkite.

Svečias
Atsakyti šioje temoje...

×   Įklijuotas tekstas turi teksto formatavimą.   Pašalinti teksto formatavimą

  Galimi tik 75 veidukai.

×   Nuoroda buvo automatiškai įterpta.   Įterpti nuorodą paprastai

×   Jūsų ankstesnis pranešimas buvo atkurtas.   Išvalyti redaktorių

×   Jūs negalite įkelti nuotraukas tiesiogiai.Įkelkite arba įdėkite nuotraukas iš URL.

Skelbimai


×
×
  • Sukurti naują...