narutoo 0 Odesláno: 4. Říjen, 2008 Share Odesláno: 4. Říjen, 2008 Takže tu dávam tut na pas a warpy //na warpovani musite mit pas jinak vas to newarpne TUT Afunkce udelal naruto a errory mi opravoval free*wall takže nejdriv barvy #define COLOR_YELLOW 0xFFFF00AA #define COLOR_GREEN 0x20B2AAAA Pak dame mezi new new pas[MAX_PLAYERS]; new paspickup; new Menu:pasmenu; new Menu:warp1menu; new warp1; do public OnGameModeInit() warp1 = CreatePickup(1250,1,1680.1284,1450.0485,10.7738);//upravte si podle sebe sou to souradnice kde ma pickup byt warp1menu = CreateMenu("warp1menu", 1, 150.0, 100.0, 250.0, 150.0); AddMenuItem(warp1menu, 0, "letiste"); AddMenuItem(warp1menu, 0, "Zpet"); paspickup = CreatePickup(1250,1,1706.1946,1609.2163,10.0188);//upravte si podle sebe sou to souradnice kde ma pickup byt pasmenu = CreateMenu("pasmenu", 1, 150.0, 100.0, 250.0, 150.0); AddMenuItem(pasmenu, 0, "Koupit pas"); AddMenuItem(pasmenu, 0, "Nekoupit"); do public OnPlayerPickUpPickup(playerid, pickupid) if(pickupid == warp1) { ShowMenuForPlayer(warp1menu,playerid); } if(pickupid == paspickup) { ShowMenuForPlayer(pasmenu,playerid); } do public OnPlayerSelectedMenuRow(playerid, row) if (Current == pasmenu ){ switch(row) { case 0:{ if (pas[playerid] == 1){ SendClientMessage(playerid, COLOR_GREEN, "Už máš pas"); }else{ new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid, pname, MAX_PLAYER_NAME); format(string, sizeof(string), "%s si koupil pas.", pname); SendClientMessageToAll(COLOR_GREEN, string); pas[playerid] = 1;//nastavi hodnotu pasu } } } } if (Current == warp1menu){ switch(row) { case 0:{ if (pas[playerid] == 0){ SendClientMessage(playerid, COLOR_GREEN, "Nemáš pas ! Musíš si koupit pas"); }else{ new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid, pname, MAX_PLAYER_NAME); format(string, sizeof(string), "Hrac %s se teleportnul na letiste.", pname); SendClientMessageToAll(COLOR_GREEN, string); SetPlayerInterior(playerid, 0); SetPlayerPos(playerid,1962.5436,-2185.7195,13.5469);//souradnice kam ma teleportnout } } } } a kdyby ste chteli warpy pres prikaz a ne pres pickup a menu tak to bude vypadat tak warp bude vypadat takhle if(strcmp(cmdtext, "/Letiste3", true) == 0) { [b]if (pas[playerid] == 0){[/b] SendClientMessage(playerid, COLOR_GREEN, "Nemáš pas ! Musíš si koupit pas"); }else{ SetPlayerInterior(playerid, 0); SetPlayerPos(playerid, 1712.5507,1604.2075,10.0079); // pozice X,Y,Z } return 1; } vsimli ste si tam toho if (pas[playerid] == 0) to je když pas nema tak to je vse EDIT:chcete si koupi warp pres prikaz tak dejte do onplayercommandtext if(strcmp(cmd, "/buypas", true) == 0) //změníte si na libovolný příkaz ke koupení { if(GetPlayerMoney(playerid) < 4999) //jestli má hráč více peněz jak 4999 { SendClientMessage(playerid, COLOR_GREEN, "Nemáš peníze na pas ! Je potřeba 5000$"); //Zpráva když nemá peníze na pas }else{ //když nesplňuje podmínku s penězma GetPlayerName(playerid, sendername, 30); //zjistí jméno hráče,který to napsal format(string, 256, "Hráč %s si koupil pas", sendername); //zpráva,který hráč si koupil pas SendClientMessageToAll(COLOR_YELLOW,string); //zpráva se ukáže všem a barva bude v tomto připadě žlutá GivePlayerMoney(playerid,-5000); //odečte hráčí 5000 pas[playerid] = 1; } return 1; } Link to comment Share on other sites More sharing options...
Guest DRaGsTeR Odesláno: 4. Říjen, 2008 Share Odesláno: 4. Říjen, 2008 Dobrý, ale našel jsem chybu. V posledním kódu jsem nenašel: new sendername[30]; Dále o5 poslední kód: Proč mu zjišťuješ, jestli má 4999 $, když mu na konci stejně odečteš 50000$ ?! Link to comment Share on other sites More sharing options...
narutoo 0 Odesláno: 4. Říjen, 2008 Author Share Odesláno: 4. Říjen, 2008 DÍKY ZA upozorneni Link to comment Share on other sites More sharing options...
Guest DRaGsTeR Odesláno: 4. Říjen, 2008 Share Odesláno: 4. Říjen, 2008 Nee, tak to bylo jako jen tak mimochodem, ale při hře by ti to mohlo dělat zajímavý věci . a s tím "sendername" .. to by byl errorek. Link to comment Share on other sites More sharing options...
narutoo 0 Odesláno: 4. Říjen, 2008 Author Share Odesláno: 4. Říjen, 2008 ale každej ma v command už danej sendername Link to comment Share on other sites More sharing options...
Guest DRaGsTeR Odesláno: 4. Říjen, 2008 Share Odesláno: 4. Říjen, 2008 No.. každej ne, někdo tam má jmeno, někdo name, někdo jmeno_name , ale já používám NickHrace. Ten se hodí mít nadefinovaný ve STOCK, ptz když píšeš format, tak je to takhle lepší. Ušetříš tím spoustu řádků. Než abych pokaždé psal: new sendername[30]; GetPlayerName(playerid, sendername, 30); format(..............., sendername); tak napíšu: format(.............., NickHrace(playerid)); a je to .. Link to comment Share on other sites More sharing options...
narutoo 0 Odesláno: 4. Říjen, 2008 Author Share Odesláno: 4. Říjen, 2008 hmm zajimavy Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now