AvestX 5 Odesláno: 11. Duben, 2010 Share Odesláno: 11. Duben, 2010 Takže, dneska sem si dělal do modu script na banku, a stala se mi taková blbá věc. Když v menu vyberu možnost vybrat penize nebo vlozit, aktivuje to nějákou podlosku v menu co ukážu, a automaticky to vloží peníze. Zkoušel sem to i jako GM ale nešlo pls, někdo kdo by v tom našel bug tak mi to opravte, nebo řekněte co v tom je za chybu. Kdyby jste nechápali testnete to, tady je script jako GM. #include #include #define MAX_BANKOMATS 50 #define BANK_CP_ID 1 #define TABLE_DIALOG_ID 5 enum BANKOMAT_INFO{ Float:b_x, Float:b_y, Float:b_z } new Bank[MAX_BANKOMATS][bANKOMAT_INFO]; new BankCount = 0; new Menu:BankHLMenu; new Menu:Bank_p_Menu; new Menu:Bank_v_Menu; new Bank_m[MAX_PLAYERS]; forward AddBank(Float:X, Float:Y, Float:Z); forward BankMenuLoad(); public BankMenuLoad(){ BankHLMenu = CreateMenu("~r~B~w~ank",2,2,119,200,200); AddMenuItem(BankHLMenu, 0, "Stav uctu"); AddMenuItem(BankHLMenu, 0, "Vlozit na ucet"); AddMenuItem(BankHLMenu, 0, "Vybrat z uctu"); AddMenuItem(BankHLMenu, 0, "Konec"); Bank_p_Menu = CreateMenu("~r~V~w~lozit ~r~P~w~enize",2,2,119,200,200); AddMenuItem(Bank_p_Menu, 0, "Vlozit vse"); AddMenuItem(Bank_p_Menu, 0, "$100"); AddMenuItem(Bank_p_Menu, 0, "$500"); AddMenuItem(Bank_p_Menu, 0, "$1000"); AddMenuItem(Bank_p_Menu, 0, "$5000"); AddMenuItem(Bank_p_Menu, 0, "$10000"); AddMenuItem(Bank_p_Menu, 0, "Konec vyberu"); Bank_v_Menu = CreateMenu("~r~V~w~ybrat ~r~P~w~enize",2,2,119,200,200); AddMenuItem(Bank_v_Menu, 0, "Vybrat vse"); AddMenuItem(Bank_v_Menu, 0, "$100"); AddMenuItem(Bank_v_Menu, 0, "$500"); AddMenuItem(Bank_v_Menu, 0, "$1000"); AddMenuItem(Bank_v_Menu, 0, "$5000"); AddMenuItem(Bank_v_Menu, 0, "$10000"); AddMenuItem(Bank_v_Menu, 0, "Konec vyberu"); return true; } public AddBank(Float:X, Float:Y, Float:Z){ if(BankCount < MAX_BANKOMATS){ //---------------| CreateCheckpoint(BANK_CP_ID, X,Y,Z, 2, 20); Bank[bankCount][b_x] = X; Bank[bankCount][b_y] = Y; Bank[bankCount][b_z] = Z; BankCount ++; //---------------| }else return false; return true; } public OnGameModeInit() { BankMenuLoad(); AddBank(1413.8657,-1701.2943,13.5395); return 1; } public OnPlayerEnterCheckpoint(playerid) { if(PlayerCheckPoint[playerid] == BANK_CP_ID) ShowMenuForPlayer(BankHLMenu, playerid); return 1; } stock Information(playerid, text[]){ ShowPlayerDialog(playerid, TABLE_DIALOG_ID, DIALOG_STYLE_MSGBOX, "Information", text, "Ok", "Konec"); return true; } public OnPlayerSelectedMenuRow(playerid, row) { if(GetPlayerMenu(playerid) == BankHLMenu){ switch(row){ case 0:{ new string[500]; format(string, sizeof(string), "------------------< STAV BANKOVNÍHO ÚČTU >------------------\n\nStav tvého účtu je $%d\n\n------------------< STAV BANKOVNÍHO ÚČTU >------------------", Bank_m[playerid]); Information(playerid, string); } case 1: ShowMenuForPlayer(Bank_p_Menu, playerid); case 2: ShowMenuForPlayer(Bank_v_Menu, playerid); } } if(GetPlayerMenu(playerid) == Bank_p_Menu){ switch(row){ case 0:{ new str[150]; format(str, 150, "Vlozil jsi na svuj ucet $%d, nyní máš na účtě $%d !", GetPlayerMoney(playerid), Bank_m[playerid]); Information(playerid, str); Bank_m[playerid] += GetPlayerMoney(playerid); ResetPlayerMoney(playerid); } case 1: SendPlayerMoneyToBank(playerid, 100); case 2: SendPlayerMoneyToBank(playerid, 500); case 3: SendPlayerMoneyToBank(playerid, 1000); case 4: SendPlayerMoneyToBank(playerid, 5000); case 5: SendPlayerMoneyToBank(playerid, 10000); } } if(GetPlayerMenu(playerid) == Bank_v_Menu){ switch(row){ case 0:{ new str[150]; format(str, 150, "Vybral jsi $%d ze svého účtu, nyní máš na účtě $0 !", Bank_m[playerid]); Information(playerid, str); GivePlayerMoney(playerid, Bank_m[playerid]); Bank_m[playerid] = 0; } case 1: SendBankMoneyToPlayer(playerid, 100); case 2: SendBankMoneyToPlayer(playerid, 500); case 3: SendBankMoneyToPlayer(playerid, 1000); case 4: SendBankMoneyToPlayer(playerid, 5000); case 5: SendBankMoneyToPlayer(playerid, 10000); } } return 1; } stock SendPlayerMoneyToBank(playerid, money){ new str[150]; if(GetPlayerMoney(playerid) < money) return Information(playerid, "Na tento vklad nemáš peníze !"); Bank_m[playerid] += money; GivePlayerMoney(playerid, -money); format(str, 150, "Uložil jsi si na účet $%d, na účtě máš aktuálně $%d !", money, Bank_m[playerid]); Information(playerid, str); return true; } stock SendBankMoneyToPlayer(playerid, money){ new str[150]; if(Bank_m[playerid] < money) return Information(playerid, "Na účtě nemáš tolik penez !"); Bank_m[playerid] -= money; GivePlayerMoney(playerid, money); format(str, 150, "Vybral jsi si z účtu $%d, na účtu máš aktuálně $%d !", money, Bank_m[playerid]); return true; } Děkuju předem. Link to comment Share on other sites More sharing options...
0 ρŁสע| 0 Odesláno: 11. Duben, 2010 Share Odesláno: 11. Duben, 2010 nvm jestli to pude ale skus : #include #include #define MAX_BANKOMATS 50 #define BANK_CP_ID 1 #define TABLE_DIALOG_ID 5 enum BANKOMAT_INFO{ Float:b_x, Float:b_y, Float:b_z } new Bank[MAX_BANKOMATS][bANKOMAT_INFO]; new BankCount = 0; new Menu:BankHLMenu; new Menu:Bank_p_Menu; new Menu:Bank_v_Menu; new Bank_m[MAX_PLAYERS]; forward AddBank(Float:X, Float:Y, Float:Z); forward BankMenuLoad(); public BankMenuLoad(){ BankHLMenu = CreateMenu("~r~B~w~ank", 1, 50.0, 180.0, 200.0, 200.0); AddMenuItem(BankHLMenu, 0, "Stav uctu"); AddMenuItem(BankHLMenu, 0, "Vlozit na ucet"); AddMenuItem(BankHLMenu, 0, "Vybrat z uctu"); AddMenuItem(BankHLMenu, 0, "Konec"); Bank_p_Menu = CreateMenu("~r~V~w~lozit ~r~P~w~enize", 1, 50.0, 180.0, 200.0, 200.0); AddMenuItem(Bank_p_Menu, 0, "Vlozit vse"); AddMenuItem(Bank_p_Menu, 0, "$100"); AddMenuItem(Bank_p_Menu, 0, "$500"); AddMenuItem(Bank_p_Menu, 0, "$1000"); AddMenuItem(Bank_p_Menu, 0, "$5000"); AddMenuItem(Bank_p_Menu, 0, "$10000"); AddMenuItem(Bank_p_Menu, 0, "Konec vyberu"); Bank_v_Menu = CreateMenu("~r~V~w~ybrat ~r~P~w~enize", 1, 50.0, 180.0, 200.0, 200.0); AddMenuItem(Bank_v_Menu, 0, "Vybrat vse"); AddMenuItem(Bank_v_Menu, 0, "$100"); AddMenuItem(Bank_v_Menu, 0, "$500"); AddMenuItem(Bank_v_Menu, 0, "$1000"); AddMenuItem(Bank_v_Menu, 0, "$5000"); AddMenuItem(Bank_v_Menu, 0, "$10000"); AddMenuItem(Bank_v_Menu, 0, "Konec vyberu"); return true; } public AddBank(Float:X, Float:Y, Float:Z){ if(BankCount < MAX_BANKOMATS){ //---------------| CreateCheckpoint(BANK_CP_ID, X,Y,Z, 2, 20); Bank[bankCount][b_x] = X; Bank[bankCount][b_y] = Y; Bank[bankCount][b_z] = Z; BankCount ++; //---------------| }else return false; return true; } public OnPlayerEnterCheckpoint(playerid) { if(PlayerCheckPoint[playerid] == BANK_CP_ID) ShowMenuForPlayer(BankHLMenu, playerid); return 1; } public OnGameModeInit() { BankMenuLoad(); AddBank(1413.8657,-1701.2943,13.5395); return 1; } stock Information(playerid, text[]){ ShowPlayerDialog(playerid, TABLE_DIALOG_ID, DIALOG_STYLE_MSGBOX, "Information", text, "Ok", "Konec"); return true; } public OnPlayerSelectedMenuRow(playerid, row) { new Menu:current; current = GetPlayerMenu(playerid); if(current == BankHLMenu) { switch(row) { case 0:{ new string[500]; format(string, sizeof(string), "------------------< STAV BANKOVNÍHO ÚČTU >------------------\n\nStav tvého účtu je $%d\n\n------------------< STAV BANKOVNÍHO ÚČTU >------------------", Bank_m[playerid]); Information(playerid, string); } case 1:{ ShowMenuForPlayer(Bank_p_Menu, playerid); } case 2:{ ShowMenuForPlayer(Bank_v_Menu, playerid); } case 3:{ HideMenuForPlayer(BankHLMenu, playerid); } } } if(current == Bank_p_Menu) { switch(row) { case 0:{ new str[150]; format(str, 150, "Vlozil jsi na svuj ucet $%d, nyní máš na účtě $%d !", GetPlayerMoney(playerid), Bank_m[playerid]); Information(playerid, str); Bank_m[playerid] += GetPlayerMoney(playerid); ResetPlayerMoney(playerid); } case 1:{ SendPlayerMoneyToBank(playerid, 100); } case 2:{ SendPlayerMoneyToBank(playerid, 500); } case 3:{ SendPlayerMoneyToBank(playerid, 1000); } case 4:{ SendPlayerMoneyToBank(playerid, 5000); } case 5:{ SendPlayerMoneyToBank(playerid, 10000); } case 6:{ HideMenuForPlayer(Bank_p_Menu, playerid); } } } if(current == Bank_v_Menu) { switch(row) { case 0:{ new str[150]; format(str, 150, "Vybral jsi $%d ze svého účtu, nyní máš na účtě $0 !", Bank_m[playerid]); Information(playerid, str); GivePlayerMoney(playerid, Bank_m[playerid]); Bank_m[playerid] = 0; } case 1:{ SendBankMoneyToPlayer(playerid, 100); } case 2:{ SendBankMoneyToPlayer(playerid, 500); } case 3:{ SendBankMoneyToPlayer(playerid, 1000); } case 4:{ SendBankMoneyToPlayer(playerid, 5000); } case 5:{ SendBankMoneyToPlayer(playerid, 10000); } case 6:{ HideMenuForPlayer(Bank_v_Menu, playerid); } } } return 1; } stock SendPlayerMoneyToBank(playerid, money){ new str[150]; if(GetPlayerMoney(playerid) < money) return Information(playerid, "Na tento vklad nemáš peníze !"); Bank_m[playerid] += money; GivePlayerMoney(playerid, -money); format(str, 150, "Uložil jsi si na účet $%d, na účtě máš aktuálně $%d !", money, Bank_m[playerid]); Information(playerid, str); return true; } stock SendBankMoneyToPlayer(playerid, money){ new str[150]; if(Bank_m[playerid] < money) return Information(playerid, "Na účtě nemáš tolik penez !"); Bank_m[playerid] -= money; GivePlayerMoney(playerid, money); format(str, 150, "Vybral jsi si z účtu $%d, na účtu máš aktuálně $%d !", money, Bank_m[playerid]); return true; } -- ned 11. dub 2010 20:31:21 -- Napiš jestli to pude. Link to comment Share on other sites More sharing options...
0 AvestX 5 Odesláno: 11. Duben, 2010 Author Share Odesláno: 11. Duben, 2010 Jé, díky, co v tom bylo za bug ? nebaví mě to študovat... Link to comment Share on other sites More sharing options...
0 ρŁสע| 0 Odesláno: 11. Duben, 2010 Share Odesláno: 11. Duben, 2010 Jestli to jde tak asi toto new Menu:current; current = GetPlayerMenu(playerid); if(current == BankHLMenu) { ... a ještě BankHLMenu = CreateMenu("~r~B~w~ank", 1, 50.0, 180.0, 200.0, 200.0); Link to comment Share on other sites More sharing options...
0 AvestX 5 Odesláno: 11. Duben, 2010 Author Share Odesláno: 11. Duben, 2010 Aha, ještě jednou dík, můžete lock ... Link to comment Share on other sites More sharing options...
Dotaz
AvestX 5
Takže, dneska sem si dělal do modu script na banku, a stala se mi taková blbá věc.
Když v menu vyberu možnost vybrat penize nebo vlozit, aktivuje to nějákou podlosku v menu co ukážu, a automaticky to vloží peníze.
Zkoušel sem to i jako GM ale nešlo
pls, někdo kdo by v tom našel bug tak mi to opravte, nebo řekněte co v tom je za chybu.
Kdyby jste nechápali testnete to, tady je script jako GM.
#include
#include
#define MAX_BANKOMATS 50
#define BANK_CP_ID 1
#define TABLE_DIALOG_ID 5
enum BANKOMAT_INFO{
Float:b_x,
Float:b_y,
Float:b_z
}
new Bank[MAX_BANKOMATS][bANKOMAT_INFO];
new BankCount = 0;
new Menu:BankHLMenu;
new Menu:Bank_p_Menu;
new Menu:Bank_v_Menu;
new Bank_m[MAX_PLAYERS];
forward AddBank(Float:X, Float:Y, Float:Z);
forward BankMenuLoad();
public BankMenuLoad(){
BankHLMenu = CreateMenu("~r~B~w~ank",2,2,119,200,200);
AddMenuItem(BankHLMenu, 0, "Stav uctu");
AddMenuItem(BankHLMenu, 0, "Vlozit na ucet");
AddMenuItem(BankHLMenu, 0, "Vybrat z uctu");
AddMenuItem(BankHLMenu, 0, "Konec");
Bank_p_Menu = CreateMenu("~r~V~w~lozit ~r~P~w~enize",2,2,119,200,200);
AddMenuItem(Bank_p_Menu, 0, "Vlozit vse");
AddMenuItem(Bank_p_Menu, 0, "$100");
AddMenuItem(Bank_p_Menu, 0, "$500");
AddMenuItem(Bank_p_Menu, 0, "$1000");
AddMenuItem(Bank_p_Menu, 0, "$5000");
AddMenuItem(Bank_p_Menu, 0, "$10000");
AddMenuItem(Bank_p_Menu, 0, "Konec vyberu");
Bank_v_Menu = CreateMenu("~r~V~w~ybrat ~r~P~w~enize",2,2,119,200,200);
AddMenuItem(Bank_v_Menu, 0, "Vybrat vse");
AddMenuItem(Bank_v_Menu, 0, "$100");
AddMenuItem(Bank_v_Menu, 0, "$500");
AddMenuItem(Bank_v_Menu, 0, "$1000");
AddMenuItem(Bank_v_Menu, 0, "$5000");
AddMenuItem(Bank_v_Menu, 0, "$10000");
AddMenuItem(Bank_v_Menu, 0, "Konec vyberu");
return true;
}
public AddBank(Float:X, Float:Y, Float:Z){
if(BankCount < MAX_BANKOMATS){
//---------------|
CreateCheckpoint(BANK_CP_ID, X,Y,Z, 2, 20);
Bank[bankCount][b_x] = X;
Bank[bankCount][b_y] = Y;
Bank[bankCount][b_z] = Z;
BankCount ++;
//---------------|
}else return false;
return true;
}
public OnGameModeInit()
{
BankMenuLoad();
AddBank(1413.8657,-1701.2943,13.5395);
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
if(PlayerCheckPoint[playerid] == BANK_CP_ID) ShowMenuForPlayer(BankHLMenu, playerid);
return 1;
}
stock Information(playerid, text[]){
ShowPlayerDialog(playerid, TABLE_DIALOG_ID, DIALOG_STYLE_MSGBOX, "Information", text, "Ok", "Konec");
return true;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
if(GetPlayerMenu(playerid) == BankHLMenu){
switch(row){
case 0:{
new string[500];
format(string, sizeof(string), "------------------< STAV BANKOVNÍHO ÚČTU >------------------\n\nStav tvého účtu je $%d\n\n------------------< STAV BANKOVNÍHO ÚČTU >------------------", Bank_m[playerid]);
Information(playerid, string);
}
case 1: ShowMenuForPlayer(Bank_p_Menu, playerid);
case 2: ShowMenuForPlayer(Bank_v_Menu, playerid);
}
}
if(GetPlayerMenu(playerid) == Bank_p_Menu){
switch(row){
case 0:{
new str[150];
format(str, 150, "Vlozil jsi na svuj ucet $%d, nyní máš na účtě $%d !", GetPlayerMoney(playerid), Bank_m[playerid]);
Information(playerid, str);
Bank_m[playerid] += GetPlayerMoney(playerid);
ResetPlayerMoney(playerid);
}
case 1: SendPlayerMoneyToBank(playerid, 100);
case 2: SendPlayerMoneyToBank(playerid, 500);
case 3: SendPlayerMoneyToBank(playerid, 1000);
case 4: SendPlayerMoneyToBank(playerid, 5000);
case 5: SendPlayerMoneyToBank(playerid, 10000);
}
}
if(GetPlayerMenu(playerid) == Bank_v_Menu){
switch(row){
case 0:{
new str[150];
format(str, 150, "Vybral jsi $%d ze svého účtu, nyní máš na účtě $0 !", Bank_m[playerid]);
Information(playerid, str);
GivePlayerMoney(playerid, Bank_m[playerid]);
Bank_m[playerid] = 0;
}
case 1: SendBankMoneyToPlayer(playerid, 100);
case 2: SendBankMoneyToPlayer(playerid, 500);
case 3: SendBankMoneyToPlayer(playerid, 1000);
case 4: SendBankMoneyToPlayer(playerid, 5000);
case 5: SendBankMoneyToPlayer(playerid, 10000);
}
}
return 1;
}
stock SendPlayerMoneyToBank(playerid, money){
new str[150];
if(GetPlayerMoney(playerid) < money) return Information(playerid, "Na tento vklad nemáš peníze !");
Bank_m[playerid] += money;
GivePlayerMoney(playerid, -money);
format(str, 150, "Uložil jsi si na účet $%d, na účtě máš aktuálně $%d !", money, Bank_m[playerid]);
Information(playerid, str);
return true;
}
stock SendBankMoneyToPlayer(playerid, money){
new str[150];
if(Bank_m[playerid] < money) return Information(playerid, "Na účtě nemáš tolik penez !");
Bank_m[playerid] -= money;
GivePlayerMoney(playerid, money);
format(str, 150, "Vybral jsi si z účtu $%d, na účtu máš aktuálně $%d !", money, Bank_m[playerid]);
return true;
}
Děkuju předem.
Link to comment
Share on other sites
4 odpovědí na tuto otázku
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