Jump to content

/window pe dialog


Punct.

Recommended Posts

Salut. Recent cineva a facut o cerere de ajutor pentru un sistem de /window pe dialog, fara ca el sa incerce sa faca. Avand in vedere ca in cererea de ajutor nu se cer scripturi, am hotarat sa fac un astfel de script si sa-l postez aici, poate-l mai vrea cineva.

 

Eu am scriptul direct in gamemode, deci voi pune partile de cod ce tin de acest sistem. Atentie! Trebuie sa aveti setate geamurile masinilor la OnGameModeInit pentru ca scriptul sa functioneze cum trebuie. De preferat, la avioane/elicoptere/barci/motociclete sa fie -1,-1,-1,-1, la masinile cu 4 portiere 1,1,1,1, iar la masinile cu doua portiere sa fie 1,1,-1,-1. In cazul masinilor cu doua portiere, la geamurile 3/4 va aparea un text [------]

Am vrut sa fac si un videoclip, dar cand am vrut sa filmez, aveam un lag enorm, si mai bine nu, asa ca am facut cateva poze care le puteti gasi la adresa http://imgur.com/ERHAEsw,SsJoVx2,HQWtZGt,IXmTwi9,Dd11CiF#0

 

 

#define     DIALOG_WINDOW       136
#define     SendClientMessage   SCM
#define     0xFFFFFFFF          c_alb


// Comanda /window
	if(strcmp(cmd, "/window", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			new vehicleid = GetPlayerVehicleID(playerid);
			//if(IsPlane(vehicleid)) return SCM(playerid, -1, "Nu poti deschide geamul unui avion/elicopter");
			//if(IsMoto(vehicleid)) return SCM(playerid, -1, "Nu poti deschide geamul unei motociclete");
		    if(IsPlayerInAnyVehicle(playerid))
			{
			
			    new driver, passenger, backleft, backright, text1[28], text2[28], text3[28], text4[28], textt[150];
                GetVehicleParamsCarWindows(vehicleid, driver, passenger, backleft, backright);
                if(driver == 0)
					format(text1, sizeof(text1), "{25CF3C}[OPENED]{FFFFFF}");
				else if(driver == 1)
					format(text1, sizeof(text1), "{E02D2D}[CLOSED]{FFFFFF}");
				else
					format(text1, sizeof(text1), "{9D3BFF}[------]{FFFFFF}");
				
				if(passenger == 0)
					format(text2, sizeof(text2), "{25CF3C}[OPENED]{FFFFFF}");
				else if(passenger == 1)
					format(text2, sizeof(text2), "{E02D2D}[CLOSED]{FFFFFF}");
                else
					format(text2, sizeof(text2), "{9D3BFF}[------]{FFFFFF}");
				
				if(backleft == 0)
					format(text3, sizeof(text3), "{25CF3C}[OPENED]{FFFFFF}");
				else if(backleft == 1)
					format(text3, sizeof(text3), "{E02D2D}[CLOSED]{FFFFFF}");
                else
					format(text3, sizeof(text3), "{9D3BFF}[------]{FFFFFF}");
				
				if(backright == 0)
					format(text4, sizeof(text4), "{25CF3C}[OPENED]{FFFFFF}");
				else if(backright == 1)
					format(text4, sizeof(text4), "{E02D2D}[CLOSED]{FFFFFF}");
                else
					format(text4, sizeof(text4), "{9D3BFF}[------]{FFFFFF}");
				format(textt, sizeof(textt), "1. %s\n2. %s\n3. %s\n4. %s", text1, text2, text3, text4);
				
    			ShowPlayerDialog(playerid, DIALOG_WINDOW, DIALOG_STYLE_LIST, "WINDOW", textt, "OK", "Cancel");
            }
		}
		return 1;
	}
	

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid)
	{
	    
case DIALOG_WINDOW:
        {
            new vehicleid = GetPlayerVehicleID(playerid);
            if(response)
            {
                  new driver, passenger, backleft, backright;
                GetVehicleParamsCarWindows(vehicleid, driver, passenger, backleft, backright);

                switch(listitem)
                {
                    case 0:
                    {
                        if(driver == 0)
                            SetVehicleParamsCarWindows(vehicleid, 1, passenger, backleft, backright);
                        else if(driver == 1)
                            SetVehicleParamsCarWindows(vehicleid, 0, passenger, backleft, backright);
                        else
                            SetVehicleParamsCarWindows(vehicleid, -1, passenger, backleft, backright);
                    }
                    case 1:
                    {
                        if(passenger == 0)
                            SetVehicleParamsCarWindows(vehicleid, driver, 1, backleft, backright);
                        else if(passenger == 1)
                            SetVehicleParamsCarWindows(vehicleid, driver, 0, backleft, backright);
                        else
                            SetVehicleParamsCarWindows(vehicleid, driver, -1, backleft, backright);
                    }
                    case 2:
                    {
                        if(backleft == 0)
                            SetVehicleParamsCarWindows(vehicleid, driver, passenger, 1, backright);
                        else if(backleft == 1)
                            SetVehicleParamsCarWindows(vehicleid, driver, passenger, 0, backright);
                          else
                              SetVehicleParamsCarWindows(vehicleid, driver, passenger, -1, backright);
                    }
                    case 3:
                    {
                        if(backright == 0)
                            SetVehicleParamsCarWindows(vehicleid, driver, passenger, backleft, 1);
                        else if(backright == 1)
                            SetVehicleParamsCarWindows(vehicleid, driver, passenger, backleft, 0);
                        else
                            SetVehicleParamsCarWindows(vehicleid, driver, passenger, backleft, -1);
                    }
                }
            }
        }
    }
    return 1;
}

 

Edited by Punct.
  • Upvote 1

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

Link to comment
Share on other sites

Atentie! Trebuie sa aveti setate geamurile masinilor la OnGameModeInit pentru ca scriptul sa functioneze cum trebuie. De preferat, la avioane/elicoptere/barci/motociclete sa fie -1,-1,-1,-1, la masinile cu 4 portiere 1,1,1,1, iar la masinile cu doua portiere sa fie1,1,-1,-1. In cazul masinilor cu doua portiere, la geamurile 3/4 va aparea un text [------]

Poti folosi include-ul de aici, sau, sa le faci pe toate odata, poti folosi codul de mai jos, dar are o problema. Daca il folosesti, setezi toate geamurile inchise(1), iar daca masina are numai doua geamuri care se pot deschide, in dialog vei putea utiliza si geamurile 3/4. 

    new string[3];
    for(new car=1; car<MAX_VEHICLES; car++)
    {
        if(car != INVALID_VEHICLE_ID)
        {
            SetVehicleParamsCarWindows(vehicleid, 1, 1, 1, 1);
        }
    }
[/code]
Edited by Punct.

Nu mai deschideti in pu*a mea servere de SA:MP !

Jucati-va pe cele care sunt !   Sunt suficiente !

Reguli de bun simt:

1. Nu faceti reclama unde nu trebuie !

2. Nu injurati ca la usa cortului !

3. Daca esti analfabeti, taci din gura !

4. Nu abuza de 'scuze', 'din greseala' !

 

My work ::: http://pastebin.com/VRNRcaAs

Link to comment
Share on other sites

  • 4 weeks later...
  • 2 years later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.