Jump to content

Recommended Posts

Posted (edited)

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

Posted

Si ce trebuie sa adaug la ongamemodelnit? Mie imi arata ------ la toate masinile si nici geamul nu se dechide

Posted (edited)

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

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

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...

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.