GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Th0mas - 2015. Április 07. - 15:31:51

Cím: Tehén kereső akció.
Írta: Th0mas - 2015. Április 07. - 15:31:51
Sziasztok!
Egy olyat szerettem volna létrehozni,hogy random lespawnol egy tehén object (11470) és kiírja a szerver,hogy Riska eltűnt és xy közelébe van és ha Riskának nekimész akkor kapsz valami jutalmat,hogy megtaláltad. Minden jó pozokat megkerestem,object id-t is csak nem tudom hogy kezdjem el,valaki segítene?
[gmod]Kiraktam a megfelelő kategóriát (Martin)[/gmod]
Cím: Tehén kereső akció.
Írta: M1A1 - 2015. Április 07. - 18:54:43

//Létrehozol globálisan egy kétdimenziós float tömböt:
new const Float:g_cowPositions[][6] =
{
        //Ezek csak példa koordináták!
        //     X          Y         Z      RotX      RotY     RotZ
{321.553, 231.410004, 242.422, 34343.525, 524.24, 52424.52},
{33421.553253, 263.4123, 24862.43422, 0.0, 0.0, 0.0}
};
//+ egy változót a tehén objectnek:
new g_cow = INVALID_OBJECT_ID; //Nem muszáj itt értéket adni neki, de én most megtettem.
 
//Ha pl. timerrel csinálod, akkor így indítsd el mondjuk OnGameModeInit-nél:
SetTimer(\"timerneve\", randomminmax(1200000, 7200000, false)); //pl. 20-120 percenként szökjön el Riska
//A timerben:
public timerneve()
{
        //Itt kiírod hogy elszökött és lerakod random tömbbeli koordinátára:
        new pos = random(sizeof(g_cowPositions) - 1);
        g_cow = CreateObject(tehénmodell, g_cowPositions[pos][0], g_cowPositions[pos][1], g_cowPositions[pos][2], g_cowPositions[pos][3], g_cowPositions[pos][4], g_cowPositions[pos][5]);
        //+ elindítasz egy check timert, ami mondjuk 5000ms-onként meghívódik, amiben majd ellenőrzöd, hogy valamelyik player nincs-e adott távolságra riskától
}
//A check timer:
public checkIsPlayerInRangeOfMoo()
{
        new Float:x, Float:y, Float:z;
        GetObjectPos(g_cow, x, y, z);
       
        for(new i = 0; i < GetMaxPlayers(); i++)
        {
                if(IsPlayerInRangeOfPoint(playerid, x, y, z))
                {
                        //Riska meg lett. Itt megölöd szegényt DestroyObject-el, aztán hálát adsz a megtalálójának és megállítod ezt a timert.
                        //Aztán elindítod az előző timert újra, ugyan úgy random idővel, ahogy az elején
                }
        }
}
//random minimummal és maximummal:
randomminmax(const min, const max)
{
        return random(9999999999) % (max - min) + min;
}

 
Semmit nem teszteltem, mert ez csak egy segítség. Szerintem innentől meg tudod csinálni.
Vagy a másik lehetőség, hogy pickuppal csinálod meg, hasonló módon.
Cím: Tehén kereső akció.
Írta: Th0mas - 2015. Április 07. - 19:21:42
Ez jó! Köszi! :D
Cím: Tehén kereső akció.
Írta: almightymartin - 2015. Április 07. - 21:26:03
Kérlek ha megkapod a kérésedre a választ és még jó is akkor légy oly kedves és nedves menj rá a \"Téma Megoldva\" opcióra.
Köszönöm!