DarkDragon_CZE69 17 Odesláno: 29. Duben, 2016 Share Odesláno: 29. Duben, 2016 INFO: Zdravím lidi toto je můj první návod tak vás prosím o schovívavost a nejsem nějaký profík v pawnu ale přesto se s vámi chci podělit o svoje znalosti. NÁVOD: Nejdřív si někam nahoru do módu napíšeme: #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 Potom si najdeme public OnPlayerCommandText a napíšeme tam: dcmd(sf,2,cmdtext); "sf" to bude protože v našem případě to bude warp /sf Takže zatím to bude vypadat takhle: public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(sf,2,cmdtext); return 1; } To číslo 2 = počet písmen toho příkazu Pod to si napíšeme: dcmd_sf(playerid,params[]) { #pragma unused params new string[128]; if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) //Zjistí jestli hráč nesedí v nějakym autě { SetVehiclePos(GetPlayerVehicleID(playerid), -1947.1663,576.3934,35.1719); //Pokud ano přemístí auto na danou pozici }else{ SetPlayerPos(playerid, -1947.1663,576.3934,35.1719); //Pokud ne tak přemístí na danou pozici pouze hráče } format(string, sizeof(string), "{00CC00}Hráč {FF0000}%s {00CC00}se teleportoval do {FF0000}San Fierra", PlayerName(playerid)); //Zpráva která se zobrazí všem hráčům když hráč napíše /sf SendClientMessageToAll(0x00FF51, string); //Barva té zprávy return 1; } A máme hotovo! Nyní vše je funkční a když hráč na server napíše /sf tak ho to teleportuje do SF a navíc napíše informační zprávu všem. Doufám že se vám můj menší návod líbil pokud ano dejte +rep a ohodnoťte do 10 bodů Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 29. Duben, 2016 Share Odesláno: 29. Duben, 2016 (upraveno) Můžeš vysvětlit toto? #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 btw chválím za GetPlayerState(playerid) == PLAYER_STATE_DRIVER protože to tu moc lidí neřeší Edited 29. Duben, 2016 by Lukasz Link to comment Share on other sites More sharing options...
DarkDragon_CZE69 17 Odesláno: 29. Duben, 2016 Author Share Odesláno: 29. Duben, 2016 To je prostě něco abys nemusel na dcmd mít includ. Link to comment Share on other sites More sharing options...
Scydo 397 Odesláno: 29. Duben, 2016 Share Odesláno: 29. Duben, 2016 ~> Dcmd je 8 let staré a pomalé... to už raději i-zcmd. To je staré dokonce ani ne pár měsíců ~> Když ten příkaz nemá parametry, proč je k tomu chceš využít a stejně ještě na to použiješ pragmu? ~> Btw ten #define dcmd ... není nic více než jen preprocesor podmínky. public OnPlayerCommandText(playerid, cmdtext[]) { if (!strcmp(cmdtext, "/sf")) { if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2) SetVehiclePos(GetPlayerVehicleID(playerid), -1947.1663, 576.3934, 35.1719); else SetPlayerPos(playerid, -1947.1663, 576.3934, 35.1719); new sString[144 + 1]; format(sString, sizeof(sString), "{00CC00}Hráč {FF0000}%s {00CC00}se teleportoval do {FF0000}San Fierra", PlayerName(playerid)); SendClientMessageToAll(0x00FF5100, sString); return true; } return false; } Link to comment Share on other sites More sharing options...
LukYs 1 Odesláno: 30. Duben, 2016 Share Odesláno: 30. Duben, 2016 (upraveno) Pred tydnem jsem se naucil, abych nepouzival dcmd, je to stare a pomale, jak psal skibig... rychlejsi je treba cmd, ysi, zcmd... a hlavne tam nemusis mit toto... public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(blablabla,9,cmdtext); return 1; } Edited 30. Duben, 2016 by Curly Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 30. Duben, 2016 Globální moderátor Share Odesláno: 30. Duben, 2016 A důvod proč je to pomalé by někdo věděl? Link to comment Share on other sites More sharing options...
Scydo 397 Odesláno: 30. Duben, 2016 Share Odesláno: 30. Duben, 2016 A důvod proč je to pomalé by někdo věděl? ~> Protože to hledá text... a hledat text je delší než hledat třeba číslo milý Printe... Link to comment Share on other sites More sharing options...
Recommended Posts