GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: MiKE_ - 2014. december 28. - 17:52:36

Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: MiKE_ - 2014. december 28. - 17:52:36
Sziasztok!
Azzal kapcsolatban szeretnék segítséget kérni, hogy miképpen lehet meg oldani azt, hogy random koordinátákhoz legyen hozzájuk tartozó client message vagy akár gametext?
Pl.: Fuvarozós melónál kapsz egy random chekcpointot, és a chat tájékoztat róla hogy; Vidd a szállítmányt Los Santosba!
Előre is köszönöm a válaszokat!
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: citromhun - 2014. december 28. - 18:23:04
Egy tömbben el mented a koordinátákat. Mikor a játékos be írja a parancsot akkor a checkpointot random ki választja (koordináta), és a SetPlayerCheckpoint kell használnod. Ha nem érted ezt a véletlenszerű dolgot, akkor itt egy példa.
Most pedig akkor a szöveg.
 
new vszeru = random(sizeof(position));
switch(vszeru)
        {
                case 0: SendClientMessageToAll(playerid, -1,\"Szállítsd el xy helyre xy rakományt!\");
                case 1: SendClientMessageToAll(playerid, -1,\"Szállítsd el xy helyre xy rakományt!\");
                case 2: SendClientMessageToAll(playerid, -1,\"Szállítsd el xy helyre xy rakományt!\");
        }
        return 1;
}

 
Ha még valamit nem értesz jelezd!
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: MiKE_ - 2014. december 28. - 19:49:09
Köszi, valahol mintha láttam volna hogy case-el kell, a randomos dolgot értem, a koordináták meg is vannak, mindössze ezzel az aprósággal szeretném bővíteni az egészet, hogy még az uticélt is kiírja, tudnál mutatni egy példát hogy, hogy néz ez ki koordinátákkal?
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: citromhun - 2014. december 28. - 19:58:11
random(sizeof(position)); //A szerver lekéri a pozíciókat.

 

case 0: SendClientMessageToAll(playerid, -1,\"Szállítsd el \'Las Venturas - Repülőtér\' helyre xy rakományt!\"); //Az első pozíciónak a szövege, ha ezt választja véletlenül.

 
És valahogy így nézne ki a tömb.
 
new Float:position[][4] =
{
    {0.0, 0.0, 0.0, 0.0},
    {0.0, 0.0, 0.0, 0.0},
    {0.0, 0.0, 0.0, 0.0}
};
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: MiKE_ - 2014. december 28. - 20:39:24
Bocsi, még mindig nem értem!  :D
 
 
new Float:RandomDelivery[][] =
{
{-1474.1970,2651.0898,55.8359},
{-813.6776,1560.3115,27.1172},
{-169.6747,1016.4630,19.7422}
};

 


if (strcmp(\"/munka\", cmdtext, true, 10) == 0)
{
            new rand = random(sizeof(RandomDelivery));
    SetPlayerCheckpoint(playerid, RandomDelivery[rand][0], RandomDelivery[rand][1],RandomDelivery[rand][2],  6);
}

 
Ebbe hogy tudnám bele operálni?
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: citromhun - 2014. december 28. - 21:23:02
Ugyan úgy, csak hozzá teszed a switch-es részt.
 
random(sizeof(RandomDelivery)); //Csak akkor így lesz
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: MiKE_ - 2014. december 28. - 21:51:11
Le tudnád írni egy scriptbe? Ha nem nagy kérés, természetesen!  :)
Valahogy nem jön össze, sőt már ott tartok hogy be crashel a compiler. :D
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: citromhun - 2014. december 28. - 22:04:47
Kíváncsi vagyok, hogy hogyan is próbálod meg oldani. Be tudod másolni a kódot?
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: MiKE_ - 2014. december 28. - 22:49:33
Mostanra kicsit sűrűre sikeredett ezért csináltam a modról egy biztonsági másolatot, hogy ne kelljen annyit szenvednem ha valamit nagyon el rontok, és hát így is lett, ezért vissza másoltam és a szerencsétlenkedésemnek nincs nyoma, szóval nem, bocsi. :D Később megpróbálom újra.
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: citromhun - 2014. december 28. - 23:17:05
PPC Truck módot kénytelen voltam elő venni, mert most már nekem is kell egy kis segítség.
 
enum TBrokenVehicleLocation
{
BrokenName[50], // Holds the name of the location where the vehicle is located
Float:BrokenX, // Holds the X coordinate where the vehicle spawns
Float:BrokenY, // Holds the Y coordinate where the vehicle spawns
Float:BrokenZ // Holds the Z coordinate where the vehicle spawns
}
new ABrokenVehicles[][TBrokenVehicleLocation] =
{
{\"Shady Creeks\", -2047.5, -1882.25, 52.4},
{\"Angel Pine\", -2072.5, -2407.75, 30.7},
{\"Shady Creeks\", -1595.25, -2625.0, 52.6},
{\"Back O Beyond\", -990.25, -2335.5, 66.8},
{\"Flint County\", 46.5, -2654.25, 40.5},
{\"Los Santos Inlet\", -313.5, -1959.75, 20.0},
{\"Leafy Hollow\", -833.0, -1737.25, 80.8},
{\"Flint Range\", -347.5, -1331.0, 17.1},
{\"Flint County\", 17.25, -987.75, 28.7},
{\"Fallen Tree\", -763.0, -621.25, 61.5},
{\"Foster Valley\", -1885.5, -435.5, 25.2},
{\"Missionary Hill\", -2451.25, -681.0, 133.6},
{\"Garcia\", -2371.5, 118.25, 35.3},
{\"Downtown\", -1781.5, 429.25, 16.6},
{\"Palisades\", -2905.0, 656.5, 6.3},
{\"Paradiso\", -2771.25, 1239.5, 22.6}
//   {\"nnnnnnnnnn\", xxxxxxx, yyyyyyyy, zzzzzzz},
};

 
PPC Truck-ban így van meg oldva a tömb, tehát a hely és a koordináta is egy helyen van. Így már gondolom haladtunk egy kicsit. És ilyen módon rakja le a checkpointot.
 
x = ABrokenVehicles[APlayerData[playerid][JobLoc1]][brokenX];
y = ABrokenVehicles[APlayerData[playerid][JobLoc1]][brokenY];
z = ABrokenVehicles[APlayerData[playerid][JobLoc1]][brokenZ];
SetPlayerCheckpoint(playerid, x, y, z, 10.0);

 
A szöveges részen egy picit gondolkodom.


De majd kíváncsi leszek a megoldásodra, mert én gondolkodom a szöveg részen, mivel a checkpoint lerakás az percek alatt meg van.
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: MiKE_ - 2014. december 28. - 23:27:55
Igen, ezt én is néztem, de számomra túl zavarosnak tűnt, biztos van rá valami egyszerűbb megoldás.  :D
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: huhboy - 2014. december 28. - 23:30:24
szerintem így egyszerűbb....
 

//parancs része, vagy ahova szeretnéd...
{
     switch(random(3))
     {
          case 0:SendClientMessage(playerid, -1, \"Vidd a rakományt xy-ra!\"), SetPlayerCheckpoint(playerid, x, y, z, 10.0);
          case 1:SendClientMessage(playerid, -1, \"Vidd a rakományt xy-ra!\"), SetPlayerCheckpoint(playerid, x, y, z, 10.0);
          case 2:SendClientMessage(playerid, -1, \"Vidd a rakományt xy-ra!\"), SetPlayerCheckpoint(playerid, x, y, z, 10.0);
     }
     return 1;
}
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: citromhun - 2014. december 28. - 23:37:09
Ez is jó megoldás.


Ez már nekem volt kellemetlen, hogy egy ennyire egyszerű dolgot nem tudtam meg oldani. :/
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: MiKE_ - 2014. december 28. - 23:56:45
Kipróbáltam, működik!  :mml: Az elején kicsit megijedtem amikor tesztelés közben egymás után felváltva az elsőt és az utolsót \"dobta\", de egy idő után mást is hajlandó volt, csak ötöt csináltam, de talán ha adok hozzá többet akkor gondolom a randomnak lesz bőven választani valója! :D
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: huhboy - 2014. december 28. - 23:57:05
Idézetet írta: Gregor date=1419806229\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"51902\" data-ipsquote-contentclass=\"forums_Topic
Ez már nekem volt kellemetlen, hogy egy ennyire egyszerű dolgot nem tudtam meg oldani. :/
 
nem kellemetlen ez.....csak a tapasztalt scriptereknek már a probléma olvasása kközben megvan a fejükben, mit hogy kell írni. :)

Dupla hozzászólás automatikusan összefûzve. ( 2014. december 28. - 23:58:05 )


Kipróbáltam, működik!  :mml: Az elején kicsit megijedtem amikor tesztelés közben egymás után felváltva az elsőt és az utolsót \"dobta\", de egy idő után mást is hajlandó volt, csak ötöt csináltam, de talán ha adok hozzá többet akkor gondolom a randomnak lesz bőven választani valója! :D
 
[/quote]
ha hozzáadsz, ne felejtsd el növelni a randomban szereplő számot. :)
Cím: Uticél/Checkpoint-hoz tartózó random koordináta és "név"
Írta: MiKE_ - 2014. december 29. - 00:07:32
Ne érezd kellemetlenül, legalább rajt voltál az ügyön és próbáltál segíteni, így most már te is tudod hogy kell megoldani! Mindkettőtöknek köszönöm a segítséget!  :thumbsup:
 

ha hozzáadsz, ne felejtsd el növelni a randomban szereplő számot. :)
 
[/quote]
Igen, tudom, erre kifejezetten oda is figyeltem!  ;)