Szerző Téma: Definíciók by Kenguru  (Megtekintve 2648 alkalommal)

Definíciók by Kenguru
« Dátum: 2011. január 19. - 14:00:37 »
0 Show voters
Hello Ez csak úgy a fejemböl jött ki.
Gondolkoztam hogy mit találjak ki. // Minden eddigi ötletemet amit megcsináltam már valaki más publikálta
Ez jutott az eszembe.
Nagyon Megkönnyíti a Mod/Script írását
Nos egy Teleport Parancsot Csinálunk Elsõ Sorban Nagyobb Részben Definíciókkal
Definiáljuk a SetPlayerPos-t ehelyett mostmár csak annyit kell beírni hogy tele
 
#define tele SetPlayerPos 

 
Definiáljuk a (strcmp(cmdtext, részt egy parancs elején
 
#define parancs (strcmp(cmdtext,

 
Mostmár Csak ennyit kell beírni:
 
    if parancs \"/parancs\", true) == 0)

 
Definiáljuk a SentCilentMessage-t helyettá már csak annyit kell beírni hogy szoveges
 
#define szoveges SendClientMessage

 
Definiáljuk a playerid rész mostmár csak annyit kell beírnunk hogy id
 
#define id playerid

 
Most ezek alapján írunk egy teleportot
Megírjuk a parancsot:
 
if parancs \"/sfkikoto\", true) == 0)

 
Enter és egy Zárójel
 
{

 
Enter és Megírjuk hogy hova teleportáljon
 
tele(id,-1770.6587,146.8941,4.2153); //SF Kikötõbe visz

 
Enter és megírjuk hogy mit írjon ki miután elteleportáltunk
 
szoveges(id, 0xFFFFFFAA, \"müködik\");

 
Enter és Lezárjuk
 
    return 1;

 
Enter és még 1 zárjójel
 
}

 
Így fog kinézni
 
    if parancs \"/sfkikoto\", true) == 0)
    {
tele(id,-1770.6587,146.8941,4.2153);
szoveges(id, 0xFFFFFFAA, \"müködik\");
    return 1;
}

 
Én még nemláttam ehez hasonlót
Remélem Tetszik és Hogy Segített
TESZTELTEM ÉS MÛKÖDIK

Definíciók by Kenguru
« Válasz #1 Dátum: 2011. január 19. - 14:26:44 »
0 Show voters
Van 1 út.  Ez az út elvisz valahova, de te meghosszabbítod az utat a célhoz. Minek???

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Definíciók by Kenguru
« Válasz #2 Dátum: 2011. január 19. - 14:50:23 »
0 Show voters
Hosszab mód elején hasznos lehet

Nem elérhető ZeRo

  • 4620
  • Ex Globális Moderátor
    • Profil megtekintése
Definíciók by Kenguru
« Válasz #3 Dátum: 2011. január 19. - 15:03:04 »
0 Show voters
Szerintem felesleges olyan definíciókkal terhelni a preprocesszort, amik csak 2-3 betûvel \"egyszerûsítik\" a kódot.
E: Mellesleg ez nem leírás.

Definíciók by Kenguru
« Válasz #4 Dátum: 2011. január 19. - 18:51:33 »
0 Show voters
::|
Mondjatok Amit Akartok.
Szerintem egy több 1000 soros vagy egy több 100 teléböl álló modnál kicsit megegyszerûsíti az írást ;-)

Nem elérhető KowaZ

Definíciók by Kenguru
« Válasz #5 Dátum: 2011. január 21. - 09:28:35 »
0 Show voters
Idézetet írta: Spatrik date=1295539262\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"5451\" data-ipsquote-contentclass=\"forums_Topic


Szerintem felesleges olyan definíciókkal terhelni a preprocesszort, amik csak 2-3 betûvel \"egyszerûsítik\" a kódot.
E: Mellesleg ez nem leírás.
 
Ez nem is terheli a processzort, mivel a makrók \"behelyettesítõdnek\" fordításkor.
[/quote]
Nem processzort írt, hanem preprocesszort. Az pedig az elõfeldolgozó, ami kicserélgeti a #define kifejezéseket.
Egyébként szerintem borzalmas \"leírás\". A keletkezõ kód is szörnyen néz ki:
 
if parancs \"/sfkikoto\", true) == 0)[/quote]
Na most komolyan... akkor inkább már #define parancs(%1) if(!strcmp(cmdtext,%1,true)) és használhatod úgy, hogy:
 
parancs(\"/sfkikoto\")
{
}

 
Bár szerintem még ez is fertelmes, mert a kód egyáltalán nem fog egy PAWN nyelven írt szkripthez hasonlítani és egy idõ múlva ezek miatt lesz átláthatatlan!
Mellesleg akkor mindjárt írok neked egy kódot, amivel egy sor egy teleport...
E:
 
#define Tele(%1,%2,%3,%4,%5,%6) \\
do{if(!strcmp(cmdtext,%1)){if(GetPlayerState(playerid)==2)SetVehiclePos(playerid,%2,%3,%4);else SetPlayerPos(playerid,%2,%3,%4);SendClientMessage(playerid,%5,%6);}}while(false)

 
Használatára egy példa: Tele(\"/tele-ls\", 12.32, 42.131, 34.131, 0xFFFF00FF, \"Hello Los Santosban!\");
KowaZ
« Utoljára szerkesztve: 2011. január 21. - 09:36:44 írta KowaZ »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal