Dialog wont appear
#1

Dialog wont appear, dunno why, but all is working in this FS


Код:
#include <a_samp>
#include <dini>

#define COLOR_WHITE 0xFFFFFFFF


forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
forward GateOpenn();
forward CloseGate();
forward CheckForNeonPos(playerid);
forward LoadNeon();
forward SaveNeon();



new gatemover;
new openedgate = 0;
new ObjectSelect[MAX_VEHICLES][4];
new NeonObject[MAX_VEHICLES][2];


public OnFilterScriptInit()
{
	Create3DTextLabel("Neon Save system{899eff}\nNeon price: 30000${1cd24c}\nLights price: 10000$",COLOR_WHITE,690.54302979,-1182.41369629,17.17897415,15.0,0,1);
	gatemover = CreateObject(980,690.54302979,-1182.41369629,17.17897415,0.00000000,0.00000000,240.00000000); //gate move
 	CreatePickup(3096,23,697.2826,-1183.6445,15.5834,0);
	CreateObject(980,702.30810547,-1189.30163574,16.47109413,0.00000000,0.00000000,62.00000000); //object(airportgate) (1)
	CreateObject(14826,696.31774902,-1190.84143066,15.19145679,0.00000000,0.00000000,0.00000000); //object(int_kbsgarage2) (1)
	CreateObject(1076,700.62005615,-1181.23803711,16.35316849,0.00000000,0.00000000,238.00000000); //object(wheel_lr4) (1)
	CreateObject(1079,699.29327393,-1180.47265625,16.30689621,0.00000000,0.00000000,242.00000000); //object(wheel_sr1) (1)
	CreateObject(1084,697.94982910,-1179.69775391,16.30231857,0.00000000,0.00000000,236.00000000); //object(wheel_lr5) (1)
	CreateObject(1076,698.55499268,-1180.04687500,17.40899658,0.00000000,0.00000000,246.00000000); //object(wheel_lr4) (2)
	CreateObject(1079,699.87243652,-1180.80676270,17.35228539,0.00000000,0.00000000,240.00000000); //object(wheel_sr1) (2)
	SetTimer("SaveNeon",100000,1);
	SetTimer("CheckForNeonPos",6000,1);
	LoadNeon();
}

public OnFilterScriptExit()
{
	SaveNeon();
	SendRconCommand("reloadfs neonsys");
	return 1;
}


main()
{
	print("\n----------------------------------");
	print(" Neon SAVE System by Misha_Konsta");
	print("----------------------------------\n");
}


public OnPlayerRequestClass(playerid, classid)
{
	return 1;
}

public OnPlayerConnect(playerid)
{
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	return 1;
}

public OnPlayerSpawn(playerid)
{
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if(strcmp(cmdtext,"/neongate",true)==0)
	{
		if(PlayerToPoint(8,playerid,690.1254,-1181.9131,15.3945))
		{
			GateOpenn();
		}
	}
	return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerUpdate(playerid)
{
	if(IsPlayerInAnyVehicle(playerid))
	{
		if(PlayerToPoint(8,playerid,690.1254,-1181.9131,15.3945))
		{
			GateOpenn();
		}
	}
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == 9010)
    {
        if(!response) return 1;
		ShowPlayerDialog(playerid, 9011, DIALOG_STYLE_LIST, "What interests you? "," Neon lights (30,000) \nLights - backlight (10.000) "," Next","Back");
    }
  	else if(dialogid == 9011)
    {
        if(!response) return 1;
        switch(listitem)
        {
            case 0:ShowPlayerDialog(playerid, 9012, DIALOG_STYLE_LIST, "Select COLOR", "Blue neon\nRed neon\nGreen neon\nWhite neon\nPink neon\nYellow neon", "Buy!", "Cancel");
            case 1:ShowPlayerDialog(playerid, 9013, DIALOG_STYLE_LIST, "Select COLOR", "White lights\nRed lights\nGreen lights\nBlue lights\nLights beacons\nPolice lights", "Buy!", "Cancel");
        }
    }
   	else if(dialogid == 9012)
    {
        if(response==0)
		{
			ShowPlayerDialog(playerid, 9011, DIALOG_STYLE_LIST, "What interests you? "," Neon lights (30,000) \nLights - backlight (10.000) "," Next","Back");
			return 1;
		}
		if(IsValidObject(ObjectSelect[GetPlayerVehicleID(playerid)][0]) || IsValidObject(ObjectSelect[GetPlayerVehicleID(playerid)][1]))
		{
			DestroyObject(ObjectSelect[GetPlayerVehicleID(playerid)][0]);
			DestroyObject(ObjectSelect[GetPlayerVehicleID(playerid)][1]);
		}
		switch(listitem)
        {
            case 0:NeonObject[GetPlayerVehicleID(playerid)][0]=18648;
			case 1:NeonObject[GetPlayerVehicleID(playerid)][0]=18647;
            case 2:NeonObject[GetPlayerVehicleID(playerid)][0]=18649;
            case 3:NeonObject[GetPlayerVehicleID(playerid)][0]=18652;
            case 4:NeonObject[GetPlayerVehicleID(playerid)][0]=18651;
            case 5:NeonObject[GetPlayerVehicleID(playerid)][0]=18650;
        }
        if(GetPlayerMoney(playerid) > 10000)
  		{
  			ObjectSelect[GetPlayerVehicleID(playerid)][0] = CreateObject(NeonObject[GetPlayerVehicleID(playerid)][0],0,0,0,0,0,0);
        	ObjectSelect[GetPlayerVehicleID(playerid)][1] = CreateObject(NeonObject[GetPlayerVehicleID(playerid)][0],0,0,0,0,0,0);
        	AttachObjectToVehicle(ObjectSelect[GetPlayerVehicleID(playerid)][0], GetPlayerVehicleID(playerid), -0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
        	AttachObjectToVehicle(ObjectSelect[GetPlayerVehicleID(playerid)][1], GetPlayerVehicleID(playerid), 0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
			PlayerPlaySound(playerid, 1133, 0, 0, 0);
        	GivePlayerMoney(playerid, -30000);
			SendClientMessage(playerid,COLOR_WHITE,"Neon on cars has been successfully installed, price 30.000$");
		}
		else
		{
			SendClientMessage(playerid,COLOR_WHITE,"Money?!");
		}
    }
   	else if(dialogid == 9013)
    {
        if(response==0)
		{
			ShowPlayerDialog(playerid, 9011, DIALOG_STYLE_LIST, "What interests you? "," Neon lights (30,000) \nLights - backlight (10.000) "," Next","Back");
			return 1;
		}
        if(IsValidObject(ObjectSelect[GetPlayerVehicleID(playerid)][2]) || IsValidObject(ObjectSelect[GetPlayerVehicleID(playerid)][3]))
		{
			DestroyObject(ObjectSelect[GetPlayerVehicleID(playerid)][2]);
			DestroyObject(ObjectSelect[GetPlayerVehicleID(playerid)][3]);
		}
		switch(listitem)
        {
            case 0:NeonObject[GetPlayerVehicleID(playerid)][1]=19281;
            case 1:NeonObject[GetPlayerVehicleID(playerid)][1]=19282;
            case 2:NeonObject[GetPlayerVehicleID(playerid)][1]=19283;
            case 3:NeonObject[GetPlayerVehicleID(playerid)][1]=19284;
            case 4:NeonObject[GetPlayerVehicleID(playerid)][1]=19285;
            case 5:NeonObject[GetPlayerVehicleID(playerid)][1]=19293;
		}
		if(GetPlayerMoney(playerid) > 10000)
  		{
			ObjectSelect[GetPlayerVehicleID(playerid)][2] = CreateObject(NeonObject[GetPlayerVehicleID(playerid)][1],0,0,0,0,0,0);
	        ObjectSelect[GetPlayerVehicleID(playerid)][3] = CreateObject(NeonObject[GetPlayerVehicleID(playerid)][1],0,0,0,0,0,0);
			AttachObjectToVehicle(ObjectSelect[GetPlayerVehicleID(playerid)][2], GetPlayerVehicleID(playerid), -0.8, 2.25, 0.0, 0.0, 0.0, 180.0);
	        AttachObjectToVehicle(ObjectSelect[GetPlayerVehicleID(playerid)][3], GetPlayerVehicleID(playerid), 0.8, 2.25, 0.0, 0.0, 0.0, 180.0);
			PlayerPlaySound(playerid, 1133, 0, 0, 0);
	        GivePlayerMoney(playerid, -10000);
	        SendClientMessage(playerid,COLOR_WHITE,"Lights on cars has been successfully installed, price 10.000$");
		}
		else
		{
			SendClientMessage(playerid,COLOR_WHITE,"Money?!");
		}
    }
	return 1;
}

public SaveNeon()
{
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		new vehicleid = GetPlayerVehicleID(i);
		{
			if(IsValidObject(ObjectSelect[vehicleid][0]) || IsValidObject(ObjectSelect[vehicleid][1]))
			{
				new DiniString[16];
			 	format(DiniString, 16, "Neon_%d", vehicleid);
				dini_IntSet("CarNeon.ini", DiniString, NeonObject[vehicleid][0]);
			}
			if(IsValidObject(ObjectSelect[vehicleid][2]) || IsValidObject(ObjectSelect[vehicleid][3]))
			{
				new DiniString[16];
				format(DiniString, 16, "Lights_%d", vehicleid);
				dini_IntSet("CarNeon.ini", DiniString, NeonObject[vehicleid][1]);
			}
		}
	}
	return 1;
}
public LoadNeon()
{
	for(new i = 0; i < MAX_VEHICLES; i++)
	{
		new DiniString[16];
		format(DiniString, 16, "Neon_%d", i);
		NeonObject[i][0]=dini_Int("CarNeon.ini", DiniString);
		if(NeonObject[i][0])
		{
			ObjectSelect[i][0] = CreateObject(NeonObject[i][0],0,0,0,0,0,0);
			ObjectSelect[i][1] = CreateObject(NeonObject[i][0],0,0,0,0,0,0);
			AttachObjectToVehicle(ObjectSelect[i][0], i, -0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
			AttachObjectToVehicle(ObjectSelect[i][1], i, 0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
		}
		format(DiniString, 16, "Lights_%d", i);
		NeonObject[i][1]=dini_Int("CarNeon.ini", DiniString);
		if(NeonObject[i][1])
		{
			ObjectSelect[i][2] = CreateObject(NeonObject[i][1],0,0,0,0,0,0);
			ObjectSelect[i][3] = CreateObject(NeonObject[i][1],0,0,0,0,0,0);
			AttachObjectToVehicle(ObjectSelect[i][2], i, -0.8, 2.25, 0.0, 0.0, 0.0, 180.0);
			AttachObjectToVehicle(ObjectSelect[i][3], i, 0.8, 2.25, 0.0, 0.0, 0.0, 180.0);
		}
	}
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	if(IsValidObject(ObjectSelect[vehicleid][0]) || IsValidObject(ObjectSelect[vehicleid][1]))
	{
		DestroyObject(ObjectSelect[vehicleid][0]);
		DestroyObject(ObjectSelect[vehicleid][1]);
	}
	if(IsValidObject(ObjectSelect[vehicleid][2]) || IsValidObject(ObjectSelect[vehicleid][3]))
	{
		DestroyObject(ObjectSelect[vehicleid][2]);
		DestroyObject(ObjectSelect[vehicleid][3]);
	}
	return 1;
}
public GateOpenn()
{
	if(openedgate == 0)
	{
		MoveObject(gatemover,690.54302979,-1182.41369629,10.17897415,2);
 		SetTimer("CloseGate",7000,0);
 		openedgate = 1;
 	}
}
public CloseGate()
{
	MoveObject(gatemover,690.54302979,-1182.41369629,17.17897415,2);
	openedgate = 0;
}
public CheckForNeonPos(playerid)
{
	if(IsPlayerInAnyVehicle(playerid))
	{
		if(PlayerToPoint(4, playerid, 697.2826,-1183.6445,15.5834))
		{
			ShowPlayerDialog(playerid, 9010, DIALOG_STYLE_MSGBOX, "Pimp my car > Tuning", "{FFFFFF}You stopped at a saloon car leveling {ffb449}'Los Santos'\n{0bcd5a}You wish to purchase an additional tuning?", "Buy", "Cancel");
		}
	}
}
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
	{
		new Float:oldposx, Float:oldposy, Float:oldposz;
		new Float:tempposx, Float:tempposy, Float:tempposz;
		GetPlayerPos(playerid, oldposx, oldposy, oldposz);
		tempposx = (oldposx -x);
		tempposy = (oldposy -y);
		tempposz = (oldposz -z);
		if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
		{
			return 1;
		}
	}
	return 0;
}
Reply
#2

you get any erorrs or warining?
Reply
#3

Nothing :\ maybe with dialog id something?
Reply
#4

I found it hard to scan through the text given I'm extremely tired and the amount of if statements, I just converted it to switch statements. Try this:

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

    switch(dialogid) {
        case 9010: {
            if(!response) return 1;
            ShowPlayerDialog(playerid, 9011, DIALOG_STYLE_LIST, "What interests you? "," Neon lights (30,000) \nLights - backlight (10.000) "," Next","Back");
        }
        case 9011: {
            if(!response) return 1;
            switch(listitem)
            {
                case 0: ShowPlayerDialog(playerid, 9012, DIALOG_STYLE_LIST, "Select COLOR", "Blue neon\nRed neon\nGreen neon\nWhite neon\nPink neon\nYellow neon", "Buy!", "Cancel");
                case 1: ShowPlayerDialog(playerid, 9013, DIALOG_STYLE_LIST, "Select COLOR", "White lights\nRed lights\nGreen lights\nBlue lights\nLights beacons\nPolice lights", "Buy!", "Cancel");
            }
        }
        case 9012: {
            if(!response) return ShowPlayerDialog(playerid, 9011, DIALOG_STYLE_LIST, "What interests you? "," Neon lights (30,000) \nLights - backlight (10.000) "," Next","Back");
            if(IsValidObject(ObjectSelect[GetPlayerVehicleID(playerid)][0]) || IsValidObject(ObjectSelect[GetPlayerVehicleID(playerid)][1]))
            {
                DestroyObject(ObjectSelect[GetPlayerVehicleID(playerid)][0]);
                DestroyObject(ObjectSelect[GetPlayerVehicleID(playerid)][1]);
            }
            switch(listitem)
            {
                case 0:NeonObject[GetPlayerVehicleID(playerid)][0]=18648;
                case 1:NeonObject[GetPlayerVehicleID(playerid)][0]=18647;
                case 2:NeonObject[GetPlayerVehicleID(playerid)][0]=18649;
                case 3:NeonObject[GetPlayerVehicleID(playerid)][0]=18652;
                case 4:NeonObject[GetPlayerVehicleID(playerid)][0]=18651;
                case 5:NeonObject[GetPlayerVehicleID(playerid)][0]=18650;
            }
            if(GetPlayerMoney(playerid) > 10000)
            {
                ObjectSelect[GetPlayerVehicleID(playerid)][0] = CreateObject(NeonObject[GetPlayerVehicleID(playerid)][0],0,0,0,0,0,0);
                ObjectSelect[GetPlayerVehicleID(playerid)][1] = CreateObject(NeonObject[GetPlayerVehicleID(playerid)][0],0,0,0,0,0,0);
                AttachObjectToVehicle(ObjectSelect[GetPlayerVehicleID(playerid)][0], GetPlayerVehicleID(playerid), -0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
                AttachObjectToVehicle(ObjectSelect[GetPlayerVehicleID(playerid)][1], GetPlayerVehicleID(playerid), 0.8, 0.0, -0.55, 0.0, 0.0, 0.0);
                PlayerPlaySound(playerid, 1133, 0, 0, 0);
                GivePlayerMoney(playerid, -30000);
                SendClientMessage(playerid,COLOR_WHITE,"Neon on cars has been successfully installed, price 30.000$");
            }
            else
            {
                SendClientMessage(playerid,COLOR_WHITE,"Money?!");
            }
        }
        case 9013: {
            if(!response)   return ShowPlayerDialog(playerid, 9011, DIALOG_STYLE_LIST, "What interests you? "," Neon lights (30,000) \nLights - backlight (10.000) "," Next","Back");
            if(IsValidObject(ObjectSelect[GetPlayerVehicleID(playerid)][2]) || IsValidObject(ObjectSelect[GetPlayerVehicleID(playerid)][3]))
            {
                DestroyObject(ObjectSelect[GetPlayerVehicleID(playerid)][2]);
                DestroyObject(ObjectSelect[GetPlayerVehicleID(playerid)][3]);
            }
            switch(listitem)
            {
                case 0:NeonObject[GetPlayerVehicleID(playerid)][1]=19281;
                case 1:NeonObject[GetPlayerVehicleID(playerid)][1]=19282;
                case 2:NeonObject[GetPlayerVehicleID(playerid)][1]=19283;
                case 3:NeonObject[GetPlayerVehicleID(playerid)][1]=19284;
                case 4:NeonObject[GetPlayerVehicleID(playerid)][1]=19285;
                case 5:NeonObject[GetPlayerVehicleID(playerid)][1]=19293;
            }
            if(GetPlayerMoney(playerid) > 10000)
            {
                ObjectSelect[GetPlayerVehicleID(playerid)][2] = CreateObject(NeonObject[GetPlayerVehicleID(playerid)][1],0,0,0,0,0,0);
                ObjectSelect[GetPlayerVehicleID(playerid)][3] = CreateObject(NeonObject[GetPlayerVehicleID(playerid)][1],0,0,0,0,0,0);
                AttachObjectToVehicle(ObjectSelect[GetPlayerVehicleID(playerid)][2], GetPlayerVehicleID(playerid), -0.8, 2.25, 0.0, 0.0, 0.0, 180.0);
                AttachObjectToVehicle(ObjectSelect[GetPlayerVehicleID(playerid)][3], GetPlayerVehicleID(playerid), 0.8, 2.25, 0.0, 0.0, 0.0, 180.0);
                PlayerPlaySound(playerid, 1133, 0, 0, 0);
                GivePlayerMoney(playerid, -10000);
                SendClientMessage(playerid,COLOR_WHITE,"Lights on cars has been successfully installed, price 10.000$");
            }
            else
            {
                SendClientMessage(playerid,COLOR_WHITE,"Money?!");
            }
        }
    }
    return 1;
}
Reply
#5

Now shows just dialog id 9010 not other :\
Reply
#6

You aren't checking if the player has the dialog open if so don't reopen it thus your timer is just going to keep opening dialog 9010.
Reply
#7

Yes, the dialog keep opening(ID:9010) cant close it, so what to do ?
Reply
#8

You need to create a bool and set it to true if the user has the dialog open, under the timer if the bool is true then don't show the dialog.
Reply
#9

Oh, some tut for that bool? Newbie at scripting, :$
Reply
#10

pawn Код:
new bool:BREAK_POS_TIMER = false; // Top of script
    if(!BREAK_POS_TIMER) {
        if(PlayerToPoint(4, playerid, 697.2826,-1183.6445,15.5834)) {
            ShowPlayerDialog(playerid, 9010, DIALOG_STYLE_MSGBOX, "Pimp my car > Tuning", "{FFFFFF}You stopped at a saloon car leveling {ffb449}'Los Santos'\n{0bcd5a}You wish to purchase an additional tuning?", "Buy", "Cancel");
            BREAK_POS_TIMER = true;
        }
    }
Set it back to false when the person exits the dialog, also your timer won't work for multiple users, you need to use

pawn Код:
SetTimerEx("CheckForNeonPos", 1000, true, "i", playerid);
Upon OnPlayerConnect.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)