Hali,
A neten találtam egy bankos filterscriptet, lefordítottam magyarra, majd elkezdtem átírni dialogosra.
A funkciója az lenne hogy az egyik LV-i boltban van egy checkpoint, amibe ha belemegy egy játékos kiad egy dialogot a következõ 2 lehetõséggel:
Bank
Banda bank
Amikor rákattintok a Banda opcióra akkor kiad még 3 lehetõséget:
Betesz
Kivesz
Egyenleg
Ez tökéletesen mûködik.
Amikor a banda bankra nyomok akkor ugyan ezeket adja ki, csak a \'gang\' változót máshogy állítottam be mint az elsõnél.
Minden kész, semmi warning, semmi error, nos tehát amikor rámegyek a CP-re kiadja normálisan az opciókat(Bank,Banda bank) a Bank tökéletesen mûködik, mint már írtam, de ha a Banda bank résznél be akarok tenni egy összeget/le akarok venni egy összeget, akkor azt a sima számlára teszi. Már mindent kipróbáltam, nem mûködik. Kérem segítsen valaki. :\'( :\'(
[pawn]
public OnPlayerEnterCheckpoint(playerid)
{
switch(getCheckpointType(playerid))
{
case CP_BANK: {
new alloptions[]=\"Bank\\nBanda bank\";
ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, \"Opciók\", alloptions, \"Kiválaszt\", \"Kilép\");
}
case CP_BANK_2: {
new alloptions[]=\"Bank\\nBanda bank\";
ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, \"Opciók\", alloptions, \"Kiválaszt\", \"Kilép\");
}
case CP_BANK_3: {
new alloptions[]=\"Bank\\nBanda bank\";
ShowPlayerDialog(playerid, 200, DIALOG_STYLE_LIST, \"Opciók\", alloptions, \"Kiválaszt\", \"Kilép\");
}
}
return 1;
}
if(dialogid == 200)
{
if(response)
{
switch(listitem)
{
case 0:
{
new alloptions[]=\"Betesz\\nKivesz\\nEgyenleg\";
ShowPlayerDialog(playerid, 201, DIALOG_STYLE_LIST, \"Bank\", alloptions, \"Kiválaszt\", \"Vissza\");
}
case 1:
{
new alloptions[]=\"Betesz\\nKivesz\\nEgyenleg\";
ShowPlayerDialog(playerid, 202, DIALOG_STYLE_LIST, \"Banda bank\", alloptions, \"Kiválaszt\", \"Vissza\");
}
}
}
}
if(dialogid == 201)
{
if(response)
{
switch(listitem)
{
case 0:
{
ShowPlayerDialog(playerid,203,DIALOG_STYLE_INPUT,\"Számla Betesz\",\"Írj be egy összeget amit be szeretnél venni:\",\"Betesz\",\"Vissza\");
gang = 0;
}
case 1:
{
ShowPlayerDialog(playerid,204,DIALOG_STYLE_INPUT,\"Számla Kivesz\",\"Írj be egy összeget amit ki szeretnél venni:\",\"Kivesz\",\"Vissza\");
gang = 0;
}
case 2:
{
gang = 0;
if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3) {
SendClientMessage(playerid, COLOR_YELLOW, \"Csak bankban használhatod ezt a parancsot.\");
return 1;
}
if(gang && playerGang[playerid]==0) {
SendClientMessage(playerid, COLOR_RED, \"Nem vagy bandában!\");
return 1;
}
if(gang)
format(string, sizeof(string), \"A bandádnak ennyi pénze van a bankban: %d.\", gangBank[playerGang[playerid]]);
else
format(string, sizeof(string), \"Ennyi pénzed van a bankban: %d.\", bank[playerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}
}
else
{
new alloptions[]=\"Betesz\\nKivesz\\nEgyenleg\";
ShowPlayerDialog(playerid, 201, DIALOG_STYLE_LIST, \"Bank\", alloptions, \"Kiválaszt\", \"Vissza\");
}
}
if(dialogid == 202)
{
if(response)
{
switch(listitem)
{
case 0:
{
ShowPlayerDialog(playerid,203,DIALOG_STYLE_INPUT,\"Banda számla Betesz\",\"Írj be egy összeget amit be szeretnél venni:\",\"Betesz\",\"Vissza\");
gang = 1;
}
case 1:
{
ShowPlayerDialog(playerid,204,DIALOG_STYLE_INPUT,\"Banda számla Kivesz\",\"Írj be egy összeget amit ki szeretnél venni:\",\"Kivesz\",\"Vissza\");
gang = 1;
}
case 2:
{
gang = 1;
if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3)
{
SendClientMessage(playerid, COLOR_YELLOW, \"Csak bankban használhatod ezt a parancsot.\");
return 1;
}
if(gang && playerGang[playerid]==0)
{
SendClientMessage(playerid, COLOR_RED, \"Nem vagy bandában!\");
return 1;
}
if(gang)
format(string, sizeof(string), \"A bandádnak ennyi pénze van a bankban: %d.\", gangBank[playerGang[playerid]]);
else
format(string, sizeof(string), \"Ennyi pénzed van a bankban: %d.\", bank[playerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}
}
else
{
new alloptions[]=\"Betesz\\nKivesz\\nEgyenleg\";
ShowPlayerDialog(playerid, 202, DIALOG_STYLE_LIST, \"Banda bank\", alloptions, \"Kiválaszt\", \"Vissza\");
}
}
if(dialogid == 203)
{
if(response)
{
if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3) {
SendClientMessage(playerid, COLOR_YELLOW, \"Nem vagy bankban, /bank\");
return 1;
}
if(gang && playerGang[playerid]==0)return SendClientMessage(playerid, COLOR_RED, \"Nem vagy bandában!\");
if(!strval(inputtext)) {
SendClientMessage(playerid, COLOR_WHITE, \"Nem írtál be összeget\");
return 1;
}
moneys = strval(inputtext);
if(moneys < 1) {
SendClientMessage(playerid, COLOR_YELLOW, \"Rossz az összeg amit beírtál.\");
return 1;
}
if(GetPlayerMoney(playerid) < moneys) {
moneys = GetPlayerMoney(playerid);
}
GivePlayerMoney(playerid, 0-moneys);
if(gang == 1)
gangBank[playerGang[playerid]]+=moneys;
else
bank[playerid]+=moneys;
if(gang == 1)
format(string, sizeof(string), \"Betettél a banda számlájára %d dollárt! A banda számláján most ennyi pénz van:%d dollár.\", moneys, gangBank[playerGang[playerid]]);
else
format(string, sizeof(string), \"Betettél a számládra %d dollárt! A számládon most ennyi pénz van: %d dollár.\", moneys, bank[playerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}
if(dialogid == 204)
{
if(response)
{
if(gang == 1 && playerGang[playerid]==0) {
SendClientMessage(playerid, COLOR_RED, \"Nem vagy bandában!\");
return 0;
}
if(!strval(inputtext)) {
SendClientMessage(playerid, COLOR_WHITE, \"Nem írtál be összeget\");
return 1;
}
moneys = strval(inputtext);
if(moneys < 1) {
SendClientMessage(playerid, COLOR_YELLOW, \"Milyen összeget akarsz betenni?.\");
return 1;
}
if(gang == 1) {
if(moneys > gangBank[playerGang[playerid]])
moneys = gangBank[playerGang[playerid]];
} else {
if(moneys > bank[playerid])
moneys = bank[playerid];
}
GivePlayerMoney(playerid, moneys);
if(gang == 1)
gangBank[playerGang[playerid]] -= moneys;
else
bank[playerid] -= moneys;
if(gang == 1)
format(string, sizeof(string), \"Levettél a banda számlájáról %d dollárt! A banda számláján most ennyi pénz van: %d.\", moneys, gangBank[playerGang[playerid]]);
else
format(string, sizeof(string), \"Levettél a számládról %d dollárt! A számládon most ennyi pénz van: %d.\", moneys, bank[playerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
}[/pawn]
ui: Bocsi de nem illesztem be az egész OnDialogResponse részt mert sok más dolog van még ott, a változókat, mindent jól csináltam meg az elején