Peršokti į turinį
Negalima prašyti ar platinti betkokių žaidimą (multiplayer) palengvinančių programų ir scriptų! Kitaip bus taikoma 1.21. taisyklė

Objektų koregavimas ant žaidėjo.


Andrius.027

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

Dalinuosi, gal kam reikės "Objekto pozicijos koregavimas, ant žmogaus":

 

susikuriam enum

enum attached_object_data
{
    Float:ao_x,
    Float:ao_y,
    Float:ao_z,
    Float:ao_rx,
    Float:ao_ry,
    Float:ao_rz,
    Float:ao_sx,
    Float:ao_sy,
    Float:ao_sz
}
new ao[MAX_PLAYERS][MAX_PLAYER_ATTACHED_OBJECTS][attached_object_data];

po:

public OnPlayerSpawn(playerid)
{
    SetPlayerAttachedObject(playerid,0,1274,2);
//atsispawninus ant žaidėjo rodys 0 indexe 1274 objektą ant galvos (2)
	return 1;
}

Padarom komandą, su kuria leis keisti objekto uždėto ant žmogaus poziciją

CMD:edit(playerid)
{
    EditAttachedObject(playerid, 0); // redaguosim objektą kurio index 0
    return 1;
}

//dabar kodas, kuris atlieka kas nutinka, jai paspaudi diskiuką arba atšauki editinimą

public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
{
    if(response)
    {
        SendClientMessage(playerid, -1, "Išsaugojai."); // paspaudus diskiuką sėkmingai išsaugos poziciją

        ao[playerid][index][ao_x] = fOffsetX;
        ao[playerid][index][ao_y] = fOffsetY;
        ao[playerid][index][ao_z] = fOffsetZ;
        ao[playerid][index][ao_rx] = fRotX;
        ao[playerid][index][ao_ry] = fRotY;
        ao[playerid][index][ao_rz] = fRotZ;
        ao[playerid][index][ao_sx] = fScaleX;
        ao[playerid][index][ao_sy] = fScaleY;
        ao[playerid][index][ao_sz] = fScaleZ;
        
        printf("Cord: (%f,%f,%f,%f,%f,%f,%f,%f,%f)",fOffsetX,fOffsetY,fOffsetZ,fRotX,fRotY,fRotZ,fScaleX,fScaleY,fScaleZ);
		// į server.log įrašys kodinates kurias gausite išsaugant objektą ant žmogaus.
    }
    else
    {
        SendClientMessage(playerid, -1, "Neišsaugota."); // atstatys pradinę poziciją prieš editinimą

        new i = index;
        SetPlayerAttachedObject(playerid, index, modelid, boneid, ao[playerid][i][ao_x], ao[playerid][i][ao_y], ao[playerid][i][ao_z], ao[playerid][i][ao_rx], ao[playerid][i][ao_ry], ao[playerid][i][ao_rz], ao[playerid][i][ao_sx], ao[playerid][i][ao_sy], ao[playerid][i][ao_sz]);
    }
    return 1;
}

 

Nuoroda į komentarą
Dalintis per kitą puslapį

Papildau: Sistema nėra automatinė, kad su komanda irašius pasikeis uždėto objekto ID, siūlau skriptą naudoti, tik ant new.pwn, taip greičiau pasikeisite ID ir galėsite iš naujo dėti objektą ant žmogaus. Kordinatės iškarto meta po editinimo į server.log, galit nusistatyt, kad mestu į notepad, bet čia greičiausiai būdas išgauti kordinates.

Nuoroda į komentarą
Dalintis per kitą puslapį

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

  • Šiame puslapyje naršo:   0 nariai

    • Nėra registruotų narių peržiūrinčių šį forumą.

Skelbimai


×
×
  • Sukurti naują...