Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

Negalima prašyti ar platinti betkokių žaidimą (multiplayer) palengvinančių programų ir scriptų! Kitaip bus taikoma 1.21. taisyklė
❗️ Dėmesio! Prieš leidžiant skriptus/modifikacijas, būtinai patikrinkite jų kodą! </>

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 248 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

(redaguota)

Sveiki, dalinuosi kodo gabalu, perrašytu iš FiveM ir pritaikytu RAGE:MP klientui. Šis skriptas patikrina, ar žaidėjas yra prie vandens RAGE:MP serveryje, ir grąžina vandens koordinatę, kurią galima naudoti žvejybai, žuvies spawninimui ar kitiems tikslams.

Citata

CLIENTSIDE/KLIENTO PUSĖ/JAVASCRIPT KALBA/RAGE.MP PLATFORMA!

 

Citata

 

Kodo gabalas naudoja dvi pagrindines funkcijas:

  1. getWaterHeight(pos) – gauna vandens aukštį nurodytoje pozicijoje.

  2. isPointInWater() – tikrina keliuose taškuose tarp žaidėjo ir taško į priekį, ar ten yra vanduo. Jei vanduo natūraliai nerandamas, sukuriama laikinai žuvis tikrinimui (isInWater).

 

// Funkcija grąžina vandens aukštį nurodytoje pozicijoje
async getWaterHeight(pos) {
    return new Promise(resolve => {
        try {
            let height = 0.0;
            const result = mp.game.water.getWaterHeight(pos.x, pos.y, pos.z, height);

            const found = result !== 0 && result > -100000.0;

            resolve([found, result]);
        } catch (e) {
            resolve([false, 0]);
        }
    });
}

// Funkcija patikrina, ar žaidėjas yra vandenyje ar šalia vandens
async isPointInWater() {
    const player = mp.players.local;
    const playerPos = player.position;
    const forward = player.getForwardVector();

    // Apskaičiuojamas taškas 40 metrų į priekį ir šiek tiek žemiau
    const waterPoint = new mp.Vector3(
        playerPos.x + forward.x * 40,
        playerPos.y + forward.y * 40,
        playerPos.z - 2.0
    );

    const numSamples = 5;
    let isInWater = true;
    let waterHeightPoint = null;

    // Patikrinama keliuose taškuose tarp žaidėjo ir vandens taško
    for (let i = 1; i <= numSamples; i++) {
        const t = i / numSamples;
        const samplePoint = new mp.Vector3(
            playerPos.x + (waterPoint.x - playerPos.x) * t,
            playerPos.y + (waterPoint.y - playerPos.y) * t,
            playerPos.z + (waterPoint.z - playerPos.z) * t
        );

        const [found, height] = await this.getWaterHeight(samplePoint);

        if (!found) {
            // Laikinas ped tikrinimui, ar taškas yra vandenyje
            const tempPed = mp.peds.new(mp.game.joaat('a_c_fish'), samplePoint, 0, player.dimension);
            tempPed.alpha = 0;

            if (!mp.game.entity.isInWater(tempPed.handle)) {
                isInWater = false;
            } else {
                waterHeightPoint = samplePoint;
            }

            tempPed.destroy();
        } else {
            waterHeightPoint = new mp.Vector3(samplePoint.x, samplePoint.y, height);
        }

        if (!isInWater) break;
    }

    if (isInWater && waterHeightPoint) {
        return { isAtWater: true, coordForUI: waterHeightPoint };
    }

    return { isAtWater: false, coordForUI: null };
}

// Naudojimas
const { isAtWater, coordForUI } = await this.isPointInWater();
if (!isAtWater || !coordForUI) {
    // Nerasta vandens
    return;
}

// Vandens koordinatės, kur galima spawninti žuvį
const fishPos = coordForUI; //fishPos arba fishPos.x, fishPos.y, fishPos.z

 

Redaguota , nario MarcoD

K8fjlLJ.png

Ši tema yra neaktyvi. Paskutinis pranešimas šioje temoje buvo prieš 248 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ą...