Szerző Téma: Pickupok véletlenszerû "spawnolása"  (Megtekintve 1095 alkalommal)

Pickupok véletlenszerû "spawnolása"
« Dátum: 2012. április 09. - 12:26:40 »
0 Show voters
Üdv!
Nem szoktam, és nem is szeretek nagyon segítséget kérni a munkámhoz, de most kénytelen leszek, mivel erre a kérdésre, még sehol nem találtam választ, illetve ilyen scripitet sem nagyon láttam.
Nos, az lenne a kérdésem, ahogy már a cím is hangzott, hogy lehetne-e olyan pickup \"rendszert\" létrehozni, ami véletlenszerûen \"spawnol le\", egy megadott helyen.
Olyanon gondolkoztam, hogy például valaki fölveszi a 1276-as ID-jû pickupot(Tiki Statue), akkor az kap mondjuk 2500-3000$, illetve valamilyen fegyvert, ez még a könnyebbik része. DE, lehet e olyat csinálni, hogyha valaki fölveszi az adott helyrõl azt a pickupot, meg is kapja a benne lévõ \"bónuszt\", és akkor az a pickup egy véletlenszerû(megadott) helyre rakodik le. Olyan, mint amikor beírjuk, hogy egy DM-zónába szeretnénk menni, és akkor lerak egy véletlenszerû helyre, csak most nem mi, hanem maga a pickupnak kell így viselkednie, ha fölveszik azt.
Elkezdtem már csinálni, de kudarcba fulladt. Ha valaki tudna segíteni, illetve pawno code-ot adni, annak nagyon örülnék, mert  én már kifogytam az ötletekbõl. :/
Köszönöm, ha segítesz.

Nem elérhető nyE

  • 1745
    • Profil megtekintése
Pickupok véletlenszerû "spawnolása"
« Válasz #1 Dátum: 2012. április 09. - 13:24:47 »
0 Show voters
Én így csinálnám.
 
new Pickup;
new Float:RandomPickupSpawns[2][3] = // pickup koordináták
{
    {x,y,z},
    {x,y,z}
};
forward SpawnRandomPickup();
public SpawnRandomPickup() // pickup spawnolás
{
    new rand = random(sizeof(RandomPickupSpawns));
    CreatePickup(1276, 2, RandomPickupSpawns[rand][0], RandomPickupSpawns[rand][1], RandomPickupSpawns[rand][2], -1);
    return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(pickupid == Pickup) // amikor felveszi
    {
        GivePlayerMoney(playerid, 3000); // adunk neki pénzt
GivePlayerWeapon(playerid, 26, 500); // és fegyvert
DestroyPickup(Pickup); // majd töröljük a pickupot
SpawnRandomPickup(); // és spawnolunk egy újat
    }
    return 1;
}

 
Nem biztos, hogy mûködik, régen pawnoztam/sampoztam.

Pickupok véletlenszerû "spawnolása"
« Válasz #2 Dátum: 2012. április 09. - 13:34:51 »
0 Show voters
Hát õmm, nem jelez ki hibát, viszont nem adja ki a pickupot/kat.
Itt a Code, amit a Te mintád alapján csináltam:
 

/*
AddPlayerClass(217,2037.9685,790.6490,11.3516,335.2168,0,0,0,0,0,0); // Pickup1 (fõ)
AddPlayerClass(217,2042.0023,770.2899,11.2504,268.4762,0,0,0,0,0,0); // Pickup2 (fõ)
*/
new Pickup;
new Float:RandomPickupSpawns[2][3] = // pickup koordináták
{
    {2037.9685,790.6490,11.3516},
    {2042.0023,770.2899,11.2504}
};
forward SpawnRandomPickup();
public SpawnRandomPickup() // pickup spawnolás
{
    new rand = random(sizeof(RandomPickupSpawns));
    CreatePickup(1276, 2, RandomPickupSpawns[rand][0], RandomPickupSpawns[rand][1], RandomPickupSpawns[rand][2], -1);
    CreatePickup(1276, 2, RandomPickupSpawns[rand][0], RandomPickupSpawns[rand][1], RandomPickupSpawns[rand][2], -1);
    return 1;
   
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(pickupid == Pickup) // amikor felveszi
    {
       GivePlayerMoney(playerid, 3000); // adunk neki pénzt
GivePlayerWeapon(playerid, 31, 250); // és fegyvert
SendClientMessage(playerid,zold,\"Te fölvettél egy bónuszdobozt! Találtál benne: 3.000$-t és 250 lõszernyi M4-et!\");
DestroyPickup(Pickup); // majd töröljük a pickupot
SpawnRandomPickup(); // és spawnolunk egy úja
    }
    return 1;
}
« Utoljára szerkesztve: 2012. április 09. - 14:59:14 írta Harsanyi Alex »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal