Peršokti į turinį
  • ŽAIDIMAI
  • , ŽAIDIMAI
  • ŽAIDIMAI

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

(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

Redaguota , nario Bičas
(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

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.

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

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

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

Redaguota , nario Martis.`
prieš 15 valandas(-ų), perestukinas maskatuoklis parašė:

koks skirtumas motyvuotas ar ne, paprasiau padaryt o uz tai repais atsiskaitysiu, kas gales tas pades. Neieskau motyvatoriu.

(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

Į 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;
}
(redaguota)

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

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.

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

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.

prieš 15 valandas(-ų), perestukinas maskatuoklis parašė:

koks skirtumas motyvuotas ar ne, paprasiau padaryt o uz tai repais atsiskaitysiu, kas gales tas pades. Neieskau motyvatoriu.

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