Jump to content

pas + warpy by naruto


narutoo

Recommended Posts

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

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$ ?! :d

:)

Link to comment
Share on other sites

No.. každej ne, někdo tam má jmeno, někdo name, někdo jmeno_name :d, 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 .. :d

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...