Jump to content
  • 0

Cum pot face comanda /freezecar


Bogdan's

Question

Problema intalnita (descriere): Am incercat de pe net sa fac comanda freezecar din motive personale.Am gasit un stock cu comanda si cand sa adaug ToggleVehicleControllable(vehicleid, 1); nu merge,imi da erori.
Ero(area / rile) / warning-(ul / urile):

a2viata.pwn(15921) : error 028: invalid subscript (not an array or too many subscripts): "FrozenPos"
a2viata.pwn(15921) : warning 215: expression has no effect
a2viata.pwn(15921) : error 001: expected token: ";", but found "]"
a2viata.pwn(15921) : error 029: invalid expression, assumed zero
a2viata.pwn(15921) : fatal error 107: too many error messages on one line
Liniile de cod / sursa / script-ul(obligatoriu):
forward CheckPos(vehicleid)
public CheckPos(vehicleid)
{
    new FrozenPos;
    new Float: pos[3];
    GetVehiclePos(vehicleid, pos[0], pos[1], pos[2]);
// Eroarea    if(pos[0] != FrozenPos[vehicleid][0] || pos[1] != FrozenPos[vehicleid][1] || pos[2] != FrozenPos[vehicleid][2]))
    {
         SetVehiclePos(vehicleid, FrozenPos[vehicleid][0], FrozenPos[vehicleid][1], FrozenPos[vehicleid][2]);
         return true;
     }
return 1;
}
Restul scriptului:
if(strcmp(cmd, "/blockveh", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "UTILIZEAZA: /blockveh [ID vehicul]");
                return 1;
            }
            if(IsACop(playerid))
            {
                if(IsPlayerConnected(playa))
                {
                    if(playa != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(playa, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        ToggleVehicleControllable(playa, 0);
                        GameTextForPlayer(playa, "~r~Vehicul Oprit de la Telecomanda", 5000, 3);
                        SendClientMessage(playerid, COLOR_BLACK, "Ai apasat butonul 'Oprit' de pe telecomanda si ai oprit masina momeala.");
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Nu esti autorizat pentru folosirea comenzii!");
            }
        }
        return 1;
    }
Stock-ul:
stock ToggleVehicleControllable(vehicleid, bool: status)
{
     if(status == false)
     {
           new Float: pos[3];
           GetVehiclePos(vehicleid, pos[0], pos[1], pos[2]);
           FrozenPos[vehicleid][0] = pos[0], FrozenPos[vehicleid][1] = pos[1], FrozenPos[vehicleid][2] = pos[2];
           FrozenTimer[vehicleid] = SetTimerEx("CheckPos", 1000, true, "d", vehicleid);
           return 1;
      }
     else
     {
           KillTimer(FrozenTimer[vehicleid]);
           FrozenTimer[vehicleid] = -1;
     }
    return true;
}
Imagini / Video (optional): -
Ati incercat sa rezolvati singur?: Da.Am incercat.Si mai am o problema,cred ca da freeze playerului nu masinii:| Am o banuiala dar nu stiu exact fiindca nu am testat.
Link to comment
Share on other sites

15 answers to this question

Recommended Posts

  • 0

Pune așa

 

if(strcmp(cmd, "/blockveh", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx, FrozenPos);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "UTILIZEAZA: /blockveh [ID vehicul]");
                return 1;
            }
            if(IsACop(playerid))
            {
                if(IsPlayerConnected(playa))
                {
                    if(playa != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(playa, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        ToggleVehicleControllable(playa, 0);
                        GameTextForPlayer(playa, "~r~Vehicul Oprit de la Telecomanda", 5000, 3);
                        SendClientMessage(playerid, COLOR_BLACK, "Ai apasat butonul 'Oprit' de pe telecomanda si ai oprit masina momeala.");
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Nu esti autorizat pentru folosirea comenzii!");
            }
        }
        return 1;
    }
Link to comment
Share on other sites

  • 0

Nu ai adaugat in comanda FrozenPos.Se vede foarte clar ca nu l-ai adaugat,si daca vrei sa sti,in acel stock si anume ToggleVehicleControllable foloseste o verificare(timer) care solicita publicul CheckPos care va opri masina.

Deci pe scurt,ai dat copy+paste la comanda si ai postato aici.M-am uitat in special la comanda si nu am vazut nicaieri FrozenPos.

Domnu scripter,calm down daca nu sti nu te baga sa faci un +1 la statistici.

Link to comment
Share on other sites

  • 0
if(strcmp(cmd, "/blockveh", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "UTILIZEAZA: /blockveh [ID vehicul]");
                return 1;
            }
            if(IsACop(playerid))
            {
                if(IsPlayerConnected(playa))
                {
                    if(playa != INVALID_PLAYER_ID)
                    {
                        GetPlayerName(playa, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        GameTextForPlayer(playa, "~r~Vehicul Oprit de la Telecomanda", 5000, 3);
                        SendClientMessage(playerid, COLOR_BLACK, "Ai apasat butonul 'Oprit' de pe telecomanda si ai oprit masina momeala.");
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Nu esti autorizat pentru folosirea comenzii!");
            }
        }
        return 1;
    }

                               http://i.imgur.com/NOsIYWt.png

                     Respecta si vei fi respectat. :)

Link to comment
Share on other sites

  • 0

Am adaugat asta,nu am adaugat FrozenPos in comanda /blockveh.

Si tot aceleasi erori da.

a2viata.pwn(15920) : error 029: invalid expression, assumed zero
a2viata.pwn(15925) : warning 225: unreachable code
a2viata.pwn(41719) : error 017: undefined symbol "playa"
a2viata.pwn(41721) : error 017: undefined symbol "playa"
a2viata.pwn(41723) : error 017: undefined symbol "playa"
a2viata.pwn(41725) : error 017: undefined symbol "playa"
a2viata.pwn(41726) : error 017: undefined symbol "playa"
a2viata.pwn(57373) : warning 213: tag mismatch
a2viata.pwn(57373) : warning 213: tag mismatch
a2viata.pwn(57373) : warning 213: tag mismatch
a2viata.pwn(57379) : error 017: undefined symbol "FrozenTimer"
a2viata.pwn(57379) : warning 215: expression has no effect
a2viata.pwn(57379) : error 001: expected token: ";", but found "]"
a2viata.pwn(57379) : error 029: invalid expression, assumed zero
a2viata.pwn(57379) : fatal error 107: too many error messages on one line
Erori:
15920 - if(pos[0] != FrozenPos[vehicleid][0] || pos[1] != FrozenPos[vehicleid][1] || pos[2] != FrozenPos[vehicleid][2]))
return true;
     }
//return 1;// Linia 15925
}
if(IsPlayerConnected(playa)) // Eroare
                {
                    if(playa != INVALID_PLAYER_ID) //Eroare
                    {
                        GetPlayerName(playa, giveplayer, sizeof(giveplayer)); //eroare
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        ToggleVehicleControllable(playa, 0); //Eroare
                        GameTextForPlayer(playa, "~r~Vehicul Oprit de la Telecomanda", 5000, 3);// eroare
 
 
Si din structura stock-ului:
FrozenPos[vehicleid][0] = pos[0], FrozenPos[vehicleid][1] = pos[1], FrozenPos[vehicleid][2] = pos[2];
Si FrozenTimer[vehicleid] = SetTimerEx("CheckPos", 1000, true, "d", vehicleid);
 
 
Link to comment
Share on other sites

  • 0

Vai de capul meu, da nimeni nu se uita cu atentie ? El nu a definit FreezePos ca si FLOAT dar apoi a incercat sa-l foloseasca ca float si de acolo sunt erori.

 

forward CheckPos(vehicleid)
public CheckPos(vehicleid)
{
    new Float:FrozenPos[3];
    new Float: pos[3];
    GetVehiclePos(vehicleid, pos[0], pos[1], pos[2]);
    if(pos[0] != FrozenPos[vehicleid][0] || pos[1] != FrozenPos[vehicleid][1] || pos[2] != FrozenPos[vehicleid][2]))
    {
        SetVehiclePos(vehicleid, FrozenPos[vehicleid][0], FrozenPos[vehicleid][1], FrozenPos[vehicleid][2]);
        return true;
    }
    return 1;
}
Incearca cu asta.
Edited by Alessio
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.