Jump to content
  • 0

Question

Posted

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.

15 answers to this question

Recommended Posts

  • 0
Posted

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;
    }
  • 0
Posted

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.

  • 0
Posted
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. :)

  • 0
  • Administrator
Posted

@Bogdan's adauga aceasta variabila globala si sterge ce ai adaugat tu in comanda legat de ea (FrozenPos)

new FrozenPos[MAX_VEHICLES][3]

 

  • 0
Posted

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);
 
 
  • 0
  • Administrator
Posted

Inlocuieste playa cu playerid. Ai adaugat ce ti-am spus eu la inceputul gamemode-ului?

  • 0
Posted (edited)

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
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.