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

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

Sveiki, mano serveryje prie kiekvieno pickupo rodo namų sistemos 3D tekstą, ir nežinau kame bėda. :D

Bet kaip užlipu ant jo, neklausia ar noriu pirkti ir t.t., tai tikriausiai bėda yra su 3D teksto prilipdymu..

 

Va kodas kaip sukuriau namus:

//Namų pickupai
pickups[0][namai]=CreatePickupA(1273, 2, 2363.1309,187.2613,28.4416);
CreatePickupA(1273 ,2, 2363.5100,166.0849,28.4416);
pickups[1][namai]=CreatePickupA(1273, 2, 2363.3108,141.9301,28.4416);

Foto:
f6e77f7bf6f9b44f94947f107aef4537490.png

Redaguota , nario Jessie P.

modifikacija - 14 %

//Namų pickupai
pickups[0][namai]=CreatePickupA(1273, 2, 2363.1309,187.2613,28.4416);
CreatePickupA(1273 ,2, 2363.5100,166.0849,28.4416);
pickups[1][namai]=CreatePickupA(1273, 2, 2363.3108,141.9301,28.4416);

Tai kaip tau gali nebūt?

 

pvz :

pickups[0][namai]=CreatePickupA(1273, 2, 2363.1309,187.2613,28.4416);

CreatePickupA(1273 ,2, 2363.5100,166.0849,28.4416);

pickups[1][namai1]=CreatePickupA(1273, 2, 2363.3108,141.9301,28.4416);

 

 

.. pabandyk tiksliai nežinau samp beveik nesidomių.

//Namų pickupai
pickups[0][namai]=CreatePickupA(1273, 2, 2363.1309,187.2613,28.4416);
CreatePickupA(1273 ,2, 2363.5100,166.0849,28.4416);
pickups[1][namai]=CreatePickupA(1273, 2, 2363.3108,141.9301,28.4416);

Tai kaip tau gali nebūt?

 

pvz :

pickups[0][namai]=CreatePickupA(1273, 2, 2363.1309,187.2613,28.4416);

CreatePickupA(1273 ,2, 2363.5100,166.0849,28.4416);

pickups[1][namai1]=CreatePickupA(1273, 2, 2363.3108,141.9301,28.4416);

 

 

.. pabandyk tiksliai nežinau samp beveik nesidomių.

 

O dieve, geriau išvis nieko nerašytum... Jeigu pas mane bus milijonas namų, tai ir rašyt [namai1000000]?

modifikacija - 14 %

if(!fexist(file))
    {
    houseDB[house][housetext] = Create3DTextLabel("",0xFFFFFFFF,PickupIDs[house][0],PickupIDs[house][1],PickupIDs[house][2],50, 0, 0);
    format(text,sizeof(text),"{ffffff}Namo numeris: {00ff00}%i\n{ffffff}Namas parduodamas\n{ffffff}Kaina: {00ff00}%i Lt",house,houseDB[house][nkaina],houseDB[house][setting]);
    Update3DTextLabelText(houseDB[house][housetext],-1,text);
    strmid(houseDB[house][owner_name],"no",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    continue;
    }

modifikacija - 14 %

Tavo visi pickup gyvena "PickupIDs" masyve. "house" kaip suprantu yra counter'is kuris skaičiuoja nuo tam tikro iki tam tikro skaičiaus. Problema tame, kad tam indekse "house" gyvena tavo įėjimo pickup.

 

Net nežinau ką pasiūlyti, nes ko gero problema bus tavo logikoje...

Tai nežinai sprendimo? Nes modifikaciją darau nuo 0, bet namų sistemą rašiau žiūrėdamas į kitą modifikaciją. :|

modifikacija - 14 %

Tai nežinai sprendimo? Nes modifikaciją darau nuo 0, bet namų sistemą rašiau žiūrėdamas į kitą modifikaciją. :|

Aha, rašai nuo nulio?

Tada galima kažką bandyti...

enum n_namai {
   Float:X,
   Float:Y,
   Float:Z,
   Text3D:Etikete,
   Pickup
};
new Namai[MAX_NAMAI][n_namai];

stock LoadNamus()
{
   for(new i; i < MAX_NAMAI; i++)
   {
       //Įsivaizduosiu kad iš kažkur gauni koordinates(failai,duomenų bazė).
       Namai[i][X] = //Šitų trijų eilučių neturėtų reikėti, kadangi kaip minėjau aukščiau jau turėtų į juos būti pakrautos koordinatės
       Namai[i][Y] = 
       Namai[i][Z] = 
       Namai[i][Etikete] = Create3DTextLabel("Suformatuotas string su informacija namo", spalva,Namai[i][X],Namai[i][Y],Namai[i][Z],atstumas,vw);
       Namai[i][Pickup] = CreatePickup(modelis,tias,Namai[i][X],Namai[i][Y],Namai[i][Z],vw);
   }
}


//Dabar kai nori įeiti į namą.
//Pirmas būdas - užlipus ant pickup
public OnPlayerPickUpPickup(playerid,pickupid)
{
   for(new i; i < MAX_NAMAI; i++)
   {
     if(Namai[i][X] != 0 && pickupid == Namai[i][Pickupid])
     {
            //Taip, 100% garantija kad žmogus užlipo ant namo pickup, o ne kažkokio kito.
     }
   }

}

//Antras būdas - Paspaudus enter
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
   if(newkeys & KEY_SECONDARY) //enter mygtukas
   {
       for(new i; i < MAX_NAMAI; i++)
       {
           if(IsPlayerInRangeOfPoint(playerid,atstumas,Namai[i][X],Namai[i][Y],Namai[i][Z]))
           {
                //Žaidėjas tikrai yra prie namo įėjimo.
           }
       }
   }

}

O dabar dėl paprastų įėjimų, nesusijusių su namais:


#if !defined ENTRANCE_BUTTON
  #define ENTRANCE_BUTTON KEY_SECONDARY_ATTACK
#endif
#if !defined EXIT_BUTTON
  #define EXIT BUTTON KEY_SECONDARY_ATTACK
#endif

enum e_entrance {
   Float:enX,
   Float:enY,
   Float:enZ,
   Float:exX,
   Float:exY,
   Float:exZ,
   ExInterior,
   ExVW,//virtual world
   Text3D:Etikete[2],
   bool:Used
};
new EnEx[MAX_ENTRANCES][e_entrance]; //Pavadinu EnEx dėl trumpumo(pabodo rašyti)



stock CreateEntranceExit(Float:eX,Float:eY,Float:eZ,Float:exX,Float:exY,Float:exZ,ex_int,ex_vw,color,entext[],extext[])
{
    new i = GetFreeEnExIndex();
    EnEx[i][enX] = eX;
    EnEx[i][enY] = eY;
    EnEx[i][enZ] = eZ;
    EnEx[i][exX] = exX;
    EnEx[i][exY] = exY;
    EnEx[i][exZ] = exZ;
    EnEx[i][ExInterior] = ex_int;
    EnEx[i][ExVW] = vw;
    EnEx[i][Etikete][0] = Create3DTextLabel(entext,color,eX,eY,eZ,10.0,0);
    EnEx[i][Etikete][1] = Create3DTextLabel(extext,color,exX,exY,exZ,10.0,0);
    EnEx[i][Used] = true;
    return i;
}
public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
    if(newkeys & ENTRANCE_BUTTON)
    {
      for(new i; i < MAX_ENTRANCES; i++)
      {
          if(EnEx[i][Used] && IsPlayerInRangeOfPoint(playerid,5.0,EnEx[i][enX],EnEx[i][enY],EnEx[i][enZ])) 
          {
              SetPlayerPos(playerid,EnEx[i][exX],EnEx[i][exY],EnEx[i][exZ];
              SetPlayerInterior(playerid,EnEx[i][ExInterior]);
              SetPlayerVirtualWorld(playerid,EnEx[i][ExVW]);
              return 0;
          }
      }
    }
    if(newkeys & EXIT_BUTTON)
   {
     for(new i; i < MAX_ENTRANCES; i++)
    {
       if(EnEx[i][Used] && IsPlayerInRangeOfPoint(playerid,5.0,EnEx[i][exX],EnEx[i][exY],EnEx[i][exZ])) 
       {
          SetPlayerPos(playerid,EnEx[i][enX],EnEx[i][enY],EnEx[i][enZ];
          SetPlayerInterior(playerid,0);
          SetPlayerVirtualWorld(playerid,0);
          return 0;
       }
     }
   }
   #if defined Bebras_OnPlayerKeyState
      return Bebras_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);
   #endif
}
#if defined _ALS_OnPlayerKeyStateChange
  #undef OnPlayerKeyStateChange
#else
  #define _ALS_OnPlayerKeyStateChange
#endif
#if defined Bebras_OnPlayerKeyStateChange
    forward Bebras_OnPlayerKeyStateChange(playerid,newkeys,oldkeys);
#endif

GetFreeEnExIndex()
{
  for(new i; i < MAX_ENTRANCES; i++)
  {
     if(!EnEx[i][Used]) return i;
  }
  return -1;
}

Antrasis skripto gabalas turėtų būti naudojamas kaip include. Bet tikiuosi tau užteks tik pavyzdžio, kad suprastum esmę.

Reikia Pawn pagalbos? Skype nerašyk.

 

 

 

 

 

 

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