Pomoc oko pravljenja komandi na serveru

Započeo dino12, Novembar 06, 2019, 14:15:58 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Želim dodati u skriptu (na svoj samp server) neku komadu koju je već netko napravio, znači on ju je ispisao u pastebin-u.
Npr. želim dodati žmigavce na autu, https://forum.sa-mp.com/showthread.php?t=447731, ne mora biti ova komanda već kako da to uradim sa bilo kojom?
Gdje trebam šta kopirati i zalijepiti u pawnu sa tog pastebina?
Inače znam promijeniti ime servera u skripti i jos nesto jako malo u pawnu.
Molim vas pomozite mi, hvala.

Pa pazi, mozes komandu da stavis gde hoces, samo da je van svakog callback-a.

Ako ces da dodajes na svoj server, uzmi nadji gde su ti ostale komande, u zavisnosti od Command Processora, kucas CRTL + F i CMD/YCMD.

Stockove stavljas isto kao i komande, bilo gde u skripti samo da nisu unutar callback-a ili neke funckije. Najcesce se stavlja na dno skripte.

Sto se tice callback-ova, tacnije ono "public OnPlayerConnect, itd itd.." :
[pawn]public OnPlayerKeyStateChange(playerid,newkeys, oldkeys)
{
        if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2)
        {
                if(!IsAPlane(GetPlayerVehicleID(playerid)) && !IsABoat(GetPlayerVehicleID(playerid)))
                {
                new vid = GetPlayerVehicleID(playerid);
                        if(newkeys & ( KEY_LOOK_LEFT ) && newkeys & ( KEY_LOOK_RIGHT ))
                        {
                        if(Indicators_xqz[vid][2] /*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]),DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                else if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]),DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                                else
                                SetVehicleIndicator(vid,1,1);
                                return 1;
                        }
                        if(newkeys & KEY_LOOK_RIGHT)
                        {
                                if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]), DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                else if(Indicators_xqz[vid][2]/*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]), DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                                else
                                SetVehicleIndicator(vid,0,1);
                        }
                        if(newkeys & KEY_LOOK_LEFT)
                        {
                            if(Indicators_xqz[vid][2]/*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]),DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                else if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]),DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                                else
                                SetVehicleIndicator(vid,1,0);
                        }
                }
        }
        return 1;
}
[/pawn]

U skripti svojoj nadjes taj callback, u ovo slucaju OnPlayerKeyStateChange. Kada si ga nasao, samo kopiras kod iz ovoga(pastebin ili sta vec) i strpas pod callback u skripti. Pripazi na simbole : {       }        ;

Varijable, tacnije
[pawn]new Indicators_xqz[MAX_VEHICLES][6];[/pawn]
Stavljas negde pri pocetku, posle include-ova.

Nadam se da sam makar malo pomogao, takodje sledeci put pisi temu po pravilu :D

GL HF :P

Ovo sto je pod new dodaj na vrh skripte medju ostale new
[pawn]new Indicators_xqz[MAX_VEHICLES][6];[/pawn]

Zatim ove stockove postavi medju ostale stockove,ako ih nemas stavi na dno skripte i tu sve ostalo stockove,lijepo to sve rasporedi.

[pawn]stock SetVehicleIndicator(vehicleid, leftindicator=0, rightindicator=0)
{
        if(!leftindicator & !rightindicator) return false;
        new Float:_vX[2], Float:_vY[2], Float:_vZ[2];
        if(rightindicator)
        {
            if(IsTrailerAttachedToVehicle(vehicleid))
            {
                new omg = GetVehicleModel(GetVehicleTrailer(vehicleid));
            GetVehicleModelInfo(omg, VEHICLE_MODEL_INFO_SIZE, _vX[0], _vY[0], _vZ[0]);
                        Indicators_xqz[vehicleid][4] = CreateObject(19294, 0, 0, 0,0,0,0);
                        AttachObjectToVehicle(Indicators_xqz[vehicleid][4], GetVehicleTrailer(vehicleid),  _vX[0]/2.4, -_vY[0]/3.35, -1.0 ,0,0,0);
                }
            GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, _vX[0], _vY[0], _vZ[0]);
                Indicators_xqz[vehicleid][0] = CreateObject(19294, 0, 0, 0,0,0,0);
                AttachObjectToVehicle(Indicators_xqz[vehicleid][0], vehicleid,  _vX[0]/2.23, _vY[0]/2.23, 0.1 ,0,0,0);
                Indicators_xqz[vehicleid][1] = CreateObject(19294, 0, 0, 0,0,0,0);
                AttachObjectToVehicle(Indicators_xqz[vehicleid][1], vehicleid,  _vX[0]/2.23, -_vY[0]/2.23, 0.1 ,0,0,0);
        }
        if(leftindicator)
        {
            if(IsTrailerAttachedToVehicle(vehicleid))
            {
                new omg = GetVehicleModel(GetVehicleTrailer(vehicleid));
            GetVehicleModelInfo(omg, VEHICLE_MODEL_INFO_SIZE, _vX[0], _vY[0], _vZ[0]);
                        Indicators_xqz[vehicleid][5] = CreateObject(19294, 0, 0, 0,0,0,0);
                        AttachObjectToVehicle(Indicators_xqz[vehicleid][5], GetVehicleTrailer(vehicleid),  -_vX[0]/2.4, -_vY[0]/3.35, -1.0 ,0,0,0);
                }
            GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, _vX[0], _vY[0], _vZ[0]);
                Indicators_xqz[vehicleid][2] = CreateObject(19294, 0, 0, 0,0,0,0);
                AttachObjectToVehicle(Indicators_xqz[vehicleid][2], vehicleid,  -_vX[0]/2.23, _vY[0]/2.23, 0.1 ,0,0,0);
                Indicators_xqz[vehicleid][3] = CreateObject(19294, 0, 0, 0,0,0,0);
                AttachObjectToVehicle(Indicators_xqz[vehicleid][3], vehicleid,  -_vX[0]/2.23, -_vY[0]/2.23, 0.1 ,0,0,0);
        }
        return 1;
}


stock IsAPlane(carid2)
{
        new carid = GetVehicleModel(carid2);
        if(carid == 592 || carid == 577 || carid == 511 || carid == 512 || carid == 593 || carid == 520 || carid == 553 || carid == 476 || carid == 519 || carid == 460 || carid == 513) return 1;
        return 0;
}

stock IsABoat(carid)
{
        new modelid = GetVehicleModel(carid);
        if(modelid == 430 || modelid == 446 || modelid == 452 || modelid == 453 || modelid == 454 || modelid == 472 || modelid == 473 || modelid == 484 || modelid == 493 || modelid == 595)
        {
                return 1;
        }
        return 0;
}
[/pawn]

Sada imas public,pogledaj ime publica na pastebinu,u tvom slucaju [pawn]public OnPlayerKeyStateChange(playerid,newkeys, oldkeys)[/pawn]
I tu paste code koji se nalazi ispod:[pawn]{
        if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2)
        {
                if(!IsAPlane(GetPlayerVehicleID(playerid)) && !IsABoat(GetPlayerVehicleID(playerid)))
                {
                new vid = GetPlayerVehicleID(playerid);
                        if(newkeys & ( KEY_LOOK_LEFT ) && newkeys & ( KEY_LOOK_RIGHT ))
                        {
                        if(Indicators_xqz[vid][2] /*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]),DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                else if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]),DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                                else
                                SetVehicleIndicator(vid,1,1);
                                return 1;
                        }
                        if(newkeys & KEY_LOOK_RIGHT)
                        {
                                if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]), DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                else if(Indicators_xqz[vid][2]/*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]), DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                                else
                                SetVehicleIndicator(vid,0,1);
                        }
                        if(newkeys & KEY_LOOK_LEFT)
                        {
                            if(Indicators_xqz[vid][2]/*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]),DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                else if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]),DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                                else
                                SetVehicleIndicator(vid,1,0);
                        }
                }
        }
        return 1;
}[/pawn]
Sljedece imas public [pawn]public OnVehicleDeath(vehicleid)[/pawn]
Tu dodaj code koji se nalazi ispod u pastebinu,dakle:[pawn]{
        if(Indicators_xqz[vehicleid][2]) DestroyObject(Indicators_xqz[vehicleid][2]), DestroyObject(Indicators_xqz[vehicleid][3]),DestroyObject(Indicators_xqz[vehicleid][5]),Indicators_xqz[vehicleid][2]=0;
        if(Indicators_xqz[vehicleid][0]) DestroyObject(Indicators_xqz[vehicleid][0]), DestroyObject(Indicators_xqz[vehicleid][1]),DestroyObject(Indicators_xqz[vehicleid][4]),Indicators_xqz[vehicleid][0]=0;
        return 1;
}[/pawn]

Citat: V01D poslato Novembar 06, 2019, 22:18:32 POSLE PODNE
Pa pazi, mozes komandu da stavis gde hoces, samo da je van svakog callback-a.
Hvala, sta je callback I jel ubiti sa bilo kojojm komandom to mogu i sta s onim download linkom sto je stavit na tom linku sto sam poslo, sta moramo s njim?

Ako ces da dodajes na svoj server, uzmi nadji gde su ti ostale komande, u zavisnosti od Command Processora, kucas CRTL + F i CMD/YCMD.

Stockove stavljas isto kao i komande, bilo gde u skripti samo da nisu unutar callback-a ili neke funckije. Najcesce se stavlja na dno skripte.

Sto se tice callback-ova, tacnije ono "public OnPlayerConnect, itd itd.." :
[pawn]public OnPlayerKeyStateChange(playerid,newkeys, oldkeys)
{
        if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2)
        {
                if(!IsAPlane(GetPlayerVehicleID(playerid)) && !IsABoat(GetPlayerVehicleID(playerid)))
                {
                new vid = GetPlayerVehicleID(playerid);
                        if(newkeys & ( KEY_LOOK_LEFT ) && newkeys & ( KEY_LOOK_RIGHT ))
                        {
                        if(Indicators_xqz[vid][2] /*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]),DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                else if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]),DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                                else
                                SetVehicleIndicator(vid,1,1);
                                return 1;
                        }
                        if(newkeys & KEY_LOOK_RIGHT)
                        {
                                if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]), DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                else if(Indicators_xqz[vid][2]/*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]), DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                                else
                                SetVehicleIndicator(vid,0,1);
                        }
                        if(newkeys & KEY_LOOK_LEFT)
                        {
                            if(Indicators_xqz[vid][2]/*|| Indicators_xqz[vid][5]*/) DestroyObject(Indicators_xqz[vid][5]),DestroyObject(Indicators_xqz[vid][2]), DestroyObject(Indicators_xqz[vid][3]),Indicators_xqz[vid][2]=0;
                else if(Indicators_xqz[vid][0] /*|| Indicators_xqz[vid][4]*/) DestroyObject(Indicators_xqz[vid][4]),DestroyObject(Indicators_xqz[vid][0]), DestroyObject(Indicators_xqz[vid][1]),Indicators_xqz[vid][0]=0;
                                else
                                SetVehicleIndicator(vid,1,0);
                        }
                }
        }
        return 1;
}
[/pawn]

U skripti svojoj nadjes taj callback, u ovo slucaju OnPlayerKeyStateChange. Kada si ga nasao, samo kopiras kod iz ovoga(pastebin ili sta vec) i strpas pod callback u skripti. Pripazi na simbole : {       }        ;

Varijable, tacnije
[pawn]new Indicators_xqz[MAX_VEHICLES][6];[/pawn]
Stavljas negde pri pocetku, posle include-ova.

Nadam se da sam makar malo pomogao, takodje sledeci put pisi temu po pravilu :D

GL HF :P