Peršokti į turinį

[Prasymas] Dėl car į darbą..(Vis dar reik pagalbos...)


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

new gaujucar[3];
gaujucar[0] = createvehicle
gaujucar[1] = createvehicle
gaujucar[2] = createvehicle

new kitodarbocar[3]
kitodarbocar[0] = createvehicle
kitodarbocar[1] = createvehicle
kitodarbocar[2] = createvehicle

if(getvehiclemodel == kitodarbocar[0] || getvehiclemodel == kitodarbocar[1] || getvehiclemodel == kitodarbocar[2]);
{
//kaskadarai
}

taip pat ir gaujucar tikrini

Redaguota , nario Bičas
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)
new gaujucar[3];
gaujucar[0] = createvehicle
gaujucar[1] = createvehicle
gaujucar[2] = createvehicle

new kitodarbocar[3]
kitodarbocar[0] = createvehicle
kitodarbocar[1] = createvehicle
kitodarbocar[2] = createvehicle

if(getvehiclemodel == kitodarbocar[0] || getvehiclemodel == kitodarbocar[1] || getvehiclemodel == kitodarbocar[2]);
{
//kaskadarai
}

taip pat ir gaujucar tikrini

 

Bet kaip padaryti pvz jų id 

Kad ten būtu:

if( ! enumas[playerid][darbo kintamasis] )

Ir kur juos dėt ;D?

(Manau OnGamemodeInit?)

Redaguota , nario Aleksiuxx
Nuoroda į komentarą
Dalintis per kitą puslapį

Nelabai suprantu kas tau dar nepavyksta..

 

Bet dėl aiškumo pasakysiu:

Mašinos turi modelį, kuris niekada nekinta. PVz sultan - 560, Hydra - 520

Sukuriant jas, gaunamas ID, kuris yra unikalus. Jie eina nuo 1 iki 2000 ir yra skirti kad galėtum dirbti su tam tikrą tr. priemonę, NE su visa jos rūšimi.

Nuoroda į komentarą
Dalintis per kitą puslapį

Nelabai suprantu kas tau dar nepavyksta..

 

Bet dėl aiškumo pasakysiu:

Mašinos turi modelį, kuris niekada nekinta. PVz sultan - 560, Hydra - 520

Sukuriant jas, gaunamas ID, kuris yra unikalus. Jie eina nuo 1 iki 2000 ir yra skirti kad galėtum dirbti su tam tikrą tr. priemonę, NE su visa jos rūšimi.

Jai prisimini kai tu sakiai į kitą vietą primetą 26errorus :D tai nekažką.. 

Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Error:

(4447) : error 010: invalid function or declaration
(4449) : error 010: invalid function or declaration
(4451) : error 010: invalid function or declaration
(4456) : error 010: invalid function or declaration
(4460) : error 010: invalid function or declaration

Eilutes:

4447:if( newstate == PLAYER_STATE_DRIVER )
4448:{
4449:if(vehicleid == taksicar[0] || taksicar[1] || taksicar[2])
4450:{
4451:if(playerDB[playerid][darbas]==2)
4452:{
4453:SendClientMessage(playerid,Raudona,"J?s neesate policininkas. ");
4454:RemovePlayerFromVehicle(playerid);
4455:}
4456:else // Jei jis yra taksistas, tai viskas tvarkoje ir leid?iam dirbt.
4457:{
4458:SendClientMessage(playerid,MelynaG,"Sveikas, taksi vairuotojau");
4459:}
4460:return 1;
4461:}

Va..

Redaguota , nario Aleksiuxx
Nuoroda į komentarą
Dalintis per kitą puslapį

1.

4449:if(vehicleid == taksicar[0] || taksicar[1] || taksicar[2])
wtf?! :DDDDDD KAS ČIA PER TIKRINIMAS? :DD Po "&&" arba "||" iš naujo reikia rašyt ką tikrini. Šiuo atveju "vehicleid ==".

2. Tavo kodas nelogiškas...

● Mašinos taksistų, bet kai išmeti rašai, kad ne policininkas;

● Jei žaidėjo darbas lygus 2 tu jį išmeti iš mašinos, t.y. jei žaidėjas taksistas tu jam neleidi dirbti.

Redaguota , nario Martis.`
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

1.

4449:if(vehicleid == taksicar[0] || taksicar[1] || taksicar[2])
wtf?! :DDDDDD KAS ČIA PER TIKRINIMAS? :DD Po "&&" arba "||" iš naujo reikia rašyt ką tikrini. Šiuo atveju "vehicleid ==".

2. Tavo kodas nelogiškas...

● Mašinos taksistų, bet kai išmeti rašai, kad ne policininkas;

● Jei žaidėjo darbas lygus 2 tu jį išmeti iš mašinos, t.y. jei žaidėjas taksistas tu jam neleidi dirbti.

 

Ačiū už pastebėjimus :DD

Bet vistiek meta tuos pačius error

Eilutės:

if( newstate == PLAYER_STATE_DRIVER )
{
if(vehicleid == taksicar[0] || vehicleid == taksicar[1] || vehicleid == taksicar[2])
{
SendClientMessage(playerid,Raudona,"Jūs nesate taksistas. ");
{
RemovePlayerFromVehicle(playerid);
}
else // Jei jis yra taksistas, tai viskas tvarkoje ir leid?iam dirbt.
{
if(playerDB[playerid][darbas]==2)
{
SendClientMessage(playerid,MelynaG,"Sveikas, taksi vairuotojau");
}
return 1;
}
Redaguota , nario Aleksiuxx
Nuoroda į komentarą
Dalintis per kitą puslapį

Į kokį callback'ą įdėjai? Parodyk daugiau, nes toks jausmas kad arba bracketų bus per daug, arba ne į tą callback'ą įdėjai, nes pirmam errore kaip suprantu prisikabino prie newstate, o jis uždefinintas tik OnPlayerStateChange

Visas scriptas...

Sukuriu:

//new
new taksicar[3];

Paskui atspawninu:

public OnGameModeInit()
{
taksicar[0]=AddStaticVehicle(540,-2682.3279,239.5233,-18.1778,178.3543,-6,-6); // t4
taksicar[1]=AddStaticVehicle(540,-2694.3247,230.6312,-18.1787,359.6854,-6,-6); // t5
taksicar[2]=AddStaticVehicle(540,-2673.9565,230.8177,-18.1768,3.7162,-6,-6); // t6

Ir:

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if( newstate == PLAYER_STATE_DRIVER )
{
if(vehicleid == taksicar[0] || vehicleid == taksicar[1] || vehicleid == taksicar[2])
{
SendClientMessage(playerid,Raudona,"Jûs nesate taksistas. ");
{
RemovePlayerFromVehicle(playerid);
}
else // Jei jis yra taksistas, tai viskas tvarkoje ir leid?iam dirbt.
{
if(playerDB[playerid][darbas]==2)
{
SendClientMessage(playerid,MelynaG,"Sveikas, taksi vairuotojau");
}
return 1;
}
Nuoroda į komentarą
Dalintis per kitą puslapį

Ar nėra daugiau kodo šiam callbacke be tavo nukopijuoto?

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)

Jeigu nėra tai:

 

Šito newstate nereikia, nes funkcijoje nėra išreikšto ir negali naudoti

if( newstate == PLAYER_STATE_DRIVER )
{

Taip pat reikia ištrinti skliaustą prie komentaro, ir šis if'as tikrina jei žaidėjas bando įlipti į taksicar, tai jį išmes iš mašinos nesvarbu ar jis taksistas ar ne, reikia pridėti, kad tikrintų ir specialybę

if(vehicleid == taksicar[0] || vehicleid == taksicar[1] || vehicleid == taksicar[2])
{
SendClientMessage(playerid,Raudona,"Jûs nesate taksistas. ");
{ //Nereikalingas skliaustas
RemovePlayerFromVehicle(playerid);
}

Pats pabandžiau sukurti, turi veikti

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(vehicleid == taksicar[0] || vehicleid == taksicar[1] || vehicleid == taksicar[2])
{
    if(playerDB[playerid][darbas]==2)
    {
        SendClientMessage(playerid,MelynaG,"Sveikas, taksi vairuotojau");
    }
    else
    {
        SendClientMessage(playerid,Raudona,"Jûs nesate taksistas. ");
        RemovePlayerFromVehicle(playerid);
    }
}
return 1;
}
Redaguota , nario appleomax
Nuoroda į komentarą
Dalintis per kitą puslapį

Ir:

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if( newstate == PLAYER_STATE_DRIVER )
{
if(vehicleid == taksicar[0] || vehicleid == taksicar[1] || vehicleid == taksicar[2])
{
SendClientMessage(playerid,Raudona,"Jûs nesate taksistas. ");
{
RemovePlayerFromVehicle(playerid);
}
else // Jei jis yra taksistas, tai viskas tvarkoje ir leid?iam dirbt.
{
if(playerDB[playerid][darbas]==2)
{
SendClientMessage(playerid,MelynaG,"Sveikas, taksi vairuotojau");
}
return 1;
}

 

Va čia ir yra visa bėda, newstate yra tik OnPlayerStateChange callback'e, čia jį gali pakeisti į GetPlayerState(playerid), ir viskas bus gerai. Ir dar, tolimesnis kodas mano galva yra nelogiškas, nes atidarai SendClientMessage funkciją, teisingai būtų kažkas panašaus į tai:

 

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
  if( GetPlayerState(playerid) == PLAYER_STATE_DRIVER )
  {
    if(vehicleid == taksicar[0] || vehicleid == taksicar[1] || vehicleid == taksicar[2])
    {
      if(playerDB[playerid][darbas] != 2)
      {
        SendClientMessage(playerid,Raudona,"Jûs nesate taksistas. ");
        RemovePlayerFromVehicle(playerid);
      }
      else
      {
        SendClientMessage(playerid,MelynaG,"Sveikas, taksi vairuotojau");
      }
    }
  }
  return 1;
}

Dar net ir bracketų kaip pastebėjau trūko.

Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Va čia ir yra visa bėda, newstate yra tik OnPlayerStateChange callback'e, čia jį gali pakeisti į GetPlayerState(playerid), ir viskas bus gerai. Ir dar, tolimesnis kodas mano galva yra nelogiškas, nes atidarai SendClientMessage funkciją, teisingai būtų kažkas panašaus į tai:

 

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
  if( GetPlayerState(playerid) == PLAYER_STATE_DRIVER )
  {
    if(vehicleid == taksicar[0] || vehicleid == taksicar[1] || vehicleid == taksicar[2])
    {
      if(playerDB[playerid][darbas] != 2)
      {
        SendClientMessage(playerid,Raudona,"Jûs nesate taksistas. ");
        RemovePlayerFromVehicle(playerid);
      }
      else
      {
        SendClientMessage(playerid,MelynaG,"Sveikas, taksi vairuotojau");
      }
    }
  }
  return 1;
}

Dar net ir bracketų kaip pastebėjau trūko.

Pl pl, bet kiek žinau else reiškią, jeigu jis yra pvz taksistas tada jam bus nusiusta žinutė "Sveikas, taksi vairuotojau", o jeigu jis nėra turėtų būt taip RemovePlayerFromVehicle(playerid);

Ar ne?

Redaguota , nario Aleksiuxx
Nuoroda į komentarą
Dalintis per kitą puslapį

(redaguota)

Čia kas yra šitame callbacke:

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    playerDB[playerid][masina]=vehicleid;
    new vid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
if(vehicleDB[vehicleid][gas]<=0)
{
    engine=0;
}
if(vehicleDB[vehicleid][parduodama]==true)
{
  new msg[256];
    new degalai[35];
if(vehicleDB[vehicleid][dujos] == 1 ) degalai = "{00FF00}Benzinas/Dujos";
else if(vehicleDB[vehicleid][dyzelis] == 1 ) degalai = "{00FF00}Dyzelinas E95";
else if(vehicleDB[vehicleid][benzinas] == 1 ) degalai = "{00FF00}Benzinas D95";
new tech[20];
if(vehicleDB[vehicleid][technikine] == 1 ) tech = "{00FF00}Praeita";
else if(vehicleDB[vehicleid][technikine] == 0 ) tech = "{FF0000}Nepraeita";
format(msg, sizeof(msg), "{FFFFFF}Kaina: {00FF00}%i LT\n{FFFFFF}Rida: {00FF00}%.2fKm\n{FFFFFF}Kuro tipas: {00FF00}%s\n{FFFFFF}Technikinė: {00FF00}%s\n{FFFFFF}Kreiptis pas: {00FF00}%s", vehicleDB[vehicleid][pardavimokaina], vehicleDB[vehicleid][rida]/100000, degalai, tech, vehicleDB[vehicleid][owner_name]);
ShowPlayerDialog(playerid, 989, DIALOG_STYLE_MSGBOX, "Info", msg, "Gerai", "");
Stop(playerid);
return 0;
}
if(vehicleDB[vehicleid][locked])
{
  new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
  if(strcmp(name,vehicleDB[vehicleid][owner_name],true))
   {
   new msg[80];
   SendClientMessage(playerid,Balta,"{ff0000}[Užraktas]{ffffff} Šis automobilis yra {ff0000}Užrakintas.");
format(msg,sizeof(msg),"{ffffff}Šios tr.priemonės{ff0000} Savininkas {ff0000}%s",vehicleDB[vehicleid][owner_name]);
SendClientMessage(playerid,Balta,msg);
Stop(playerid);
return 1;
}
new msg[80];
   SendClientMessage(playerid,Balta,"{ffffff}Tr.Priemonė {ff0000}Užrakinta.");
format(msg,sizeof(msg),"{ffffff}Šios Tr.Priemonės savininkas {ff0000}%s",vehicleDB[vehicleid][owner_name]);
SendClientMessage(playerid,Balta,msg);
   playerDB[playerid][carsavin][0]=true;
}
return 1;
}
O po juo šitas scriptas:
//pradzia
  if( GetPlayerState(playerid) == PLAYER_STATE_DRIVER )
  {
    if(vehicleid == taksicar[0] || vehicleid == taksicar[1] || vehicleid == taksicar[2])
      {
        SendClientMessage(playerid,Raudona,"Jūs nesate taksistas. ");
        RemovePlayerFromVehicle(playerid);
      }
      else
      {
            if(playerDB[playerid][darbas] != 2)
            {
        SendClientMessage(playerid,MelynaG,"Sveikas, taksi vairuotojau");
      }
    }
  }
  return 1;
}
//baikta

 

Redaguota , nario Aleksiuxx
Nuoroda į komentarą
Dalintis per kitą puslapį

Pl pl, bet kiek žinau else reiškią, jeigu jis yra pvz taksistas tada jam bus nusiusta žinutė "Sveikas, taksi vairuotojau", o jeigu jis nėra turėtų būt taip RemovePlayerFromVehicle(playerid);

Ar ne?

Klysti, nes šiuo atveju yra tikrinama ar žaidėjas NĖRA taksitas ( != ), o "else" reiškia, kad jis YRA taksistas. Jei vietoj "!=" būtų "==", tada taip, išmestų iš mašinos jei jis BŪTŲ taksistas. Bet taip nėra.

Nuoroda į komentarą
Dalintis per kitą puslapį

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