lift

Započeo _.Xavi._, Januar 06, 2023, 21:16:02 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Problem(error/warning):Pravim lift, koji treba da ide od jedne do druge pozicije i da ceka 5 sekundi i vrati se, i tako iznova, probao sam da to uradim sa vestackom intaligencijom (openai chat gpt), i dao mi je neki kod, al mi izlazi kad krenem da kompajlujem pawn compiler library has stopped working
Deo skripte: [pawn]new Float:startPos[3] = { 18762.0, 1925.993286, 1840.254516 };
new Float:endPos[3] = { 18762.0, 1925.097534, 1836.176147 };
new Float:rotation[3] = { -90.199958, 0.000000, -21.700008 };


   public OnGameModeInit( ) {

    // Kreiraj objekat na pocetnoj poziciji
   new object = CreateObject(19447, startPos[0], startPos[1], startPos[2], rotation[0], rotation[1], rotation[2]);

   // Pokreni neprekidno kretanje objekta
   MoveObject(object);
}           
                                                                 // Kreiraj objekat na pocetnoj poziciji

public OnPlayerConnect( playerid ) {

// Pokreni neprekidno kretanje objekta
    SetTimerEx("MoveObject", 1000, true, "i", object);

    return 1;
}

forward MoveObject(objectid);
public MoveObject(objectid)
{
    // Pomeraj objekat ka krajnjoj poziciji
    MoveObjectTo(objectid, endPos[0], endPos[1], endPos[2], 5.0, rotation[0], rotation[1], rotation[2]);

    // Cekaj 5 sekundi
    Delay(5000);

    // Pomeraj objekat nazad ka pocetnoj poziciji
    MoveObjectTo(objectid, startPos[0], startPos[1], startPos[2], 5.0, rotation[0], rotation[1], rotation[2]);

    return 1;
}

main() {

    AddPlayerConnectCallback(OnPlayerConnect);

   return 1;
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [pawn]Vaš odgovor[/pawn]
Slika/video ingame problema(obavezno ako je ingame problem):/

[pawn]new LiftMuzej[4]; //objekti lifta koji se pomera ( platforma )
new bool:LiftDole; //promenljiva koja odredjuje da li je lift gore ili dole

KreirajLiftMuzej() { //funkcija za kreiranje objekata lifta

    LiftMuzej[0] = CreateDynamicObject(19370, 1883.433959, -1313.812988, 13.477541, 0.000000, 90.000000, 0.000000, -1, -1, -1, 300.00, 300.00);
    SetDynamicObjectMaterial(LiftMuzej[0], 0, 18646, "matcolours", "grey-80-percent", 0x00000000);
    LiftMuzej[1] = CreateDynamicObject(19370, 1883.433959, -1317.013183, 13.477541, 0.000000, 90.000000, 0.000000, -1, -1, -1, 300.00, 300.00);
    SetDynamicObjectMaterial(LiftMuzej[1], 0, 18646, "matcolours", "grey-80-percent", 0x00000000);
    LiftMuzej[2] = CreateDynamicObject(19370, 1880.184326, -1317.013183, 13.477541, 0.000000, 90.000000, 0.000000, -1, -1, -1, 300.00, 300.00);
    SetDynamicObjectMaterial(LiftMuzej[2], 0, 18646, "matcolours", "grey-80-percent", 0x00000000);
    LiftMuzej[3] = CreateDynamicObject(19370, 1880.184326, -1313.812866, 13.477541, 0.000000, 90.000000, 0.000000, -1, -1, -1, 300.00, 300.00);
    SetDynamicObjectMaterial(LiftMuzej[3], 0, 18646, "matcolours", "grey-80-percent", 0x00000000);
}

UnistiLiftMuzej() { //funkcija za unistavanje objekata lifta

    for(new muzej = 0; muzej < 4; muzej++) DestroyDynamicObject(LiftMuzej[muzej]);
}

PomeriLiftGore() { //funkcija za pomeranje lifta gore

    MoveDynamicObject(LiftMuzej[0], 1883.433959, -1313.812988, 48.297519, 2.0, 0.000000, 90.000000, 0.000000);
    MoveDynamicObject(LiftMuzej[1], 1883.433959, -1317.013183, 48.297519, 2.0, 0.000000, 90.000000, 0.000000);
    MoveDynamicObject(LiftMuzej[2], 1880.184326, -1317.013183, 48.297519, 2.0, 0.000000, 90.000000, 0.000000);
    MoveDynamicObject(LiftMuzej[3], 1880.184326, -1313.812866, 48.297519, 2.0, 0.000000, 90.000000, 0.000000);
}

PomeriLiftDole() { //funkcija za spustanje lifta dole

    MoveDynamicObject(LiftMuzej[0], 1883.433959, -1313.812988, 13.477541, 2.0, 0.000000, 90.000000, 0.000000);
    MoveDynamicObject(LiftMuzej[1], 1883.433959, -1317.013183, 13.477541, 2.0, 0.000000, 90.000000, 0.000000);
    MoveDynamicObject(LiftMuzej[2], 1880.184326, -1317.013183, 13.477541, 2.0, 0.000000, 90.000000, 0.000000);
    MoveDynamicObject(LiftMuzej[3], 1880.184326, -1313.812866, 13.477541, 2.0, 0.000000, 90.000000, 0.000000);
}

timer MuzejLiftTimer[30000]() { //timer koji pomera lift gore ili dole u zavisnosti od promenljive LiftDole ( ovde koristimo rekurziju, pozivamo timer unutar timera )

    if(MuzejPokrenut) {

        if(LiftDole) {

            PomeriLiftGore();
            LiftDole = false;
            defer MuzejLiftTimer();
        } else {

            PomeriLiftDole();
            LiftDole = true;
            defer MuzejLiftTimer();
        }
    }
}[/pawn]

Evo jednog primera kada su 4 objekta u pitanju, 4 objekta koji su lift, tacnije platforma koja se pomera. Ako ti nesto nije jasno unutar koda pisa, mada je poprilicno jednostavno

Pocetnik sam radim tek dva meseca otp, jel mozes makar dam i napsies sta gde treba npr ono je imalo iz onog koda sto mi je dala vestacka int gde sta treba u onplayergameinit il kako vec, ili da mi napises ne mogu se snaci nikako sam, pokusavam ali ne ide mi.

Citat: _.Xavi._ poslato Januar 08, 2023, 15:21:57 POSLE PODNE
Pocetnik sam radim tek dva meseca otp, jel mozes makar dam i napsies sta gde treba npr ono je imalo iz onog koda sto mi je dala vestacka int gde sta treba u onplayergameinit il kako vec, ili da mi napises ne mogu se snaci nikako sam, pokusavam ali ne ide mi.

Detaljno ti je ispisano gore sve, to je jedan od nacina. Jako je prosto, pomeris objekat/te gore ili dole. Ukoliko ovo iznad ne razumes, a proveo si 2 meseca skriptajuci, onda treba da savdladas osnove, i da krenes da ucis na pravi nacin. Napisao sam ti u kodu sve