OnPlayerEnterVehicle
#1

Hello!

Im trying to make team cars with the cars coords, if you dont is a member/leader of 1 you get removed from the vehicle. I dont know if i doing wrong or if i am on the right road here.
So far i got these problems ( the line code is after = )
Код:
pwn(293) warning 213: tag mismatch = {476,1978.6555,-2396.0037,14.2643,89.5653},
pwn(293) warning 213: tag mismatch = {476,1978.6555,-2396.0037,14.2643,89.5653},
pwn(293) warning 213: tag mismatch = {476,1978.6555,-2396.0037,14.2643,89.5653},
pwn(293) warning 213: tag mismatch = {476,1978.6555,-2396.0037,14.2643,89.5653},
pwn(293) error 008: must be a constant expression; assumed zero = {476,1978.6555,-2396.0037,14.2643,89.5653},
pwn(312) error 008: must be a constant expression; assumed zero = else
Can i do like this? and do i missing some important code to get it to work properly?
The code
Код:
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
 	if(IsPlayerConnected(playerid))
	{
		if(PlayerBase[playerid][pMedlem] == 1 || PlayerBase[playerid][pLedare] == 1)
		{
   		if(OnPlayerEnterVehicle(playerid,
        	{
			{476,1978.6555,-2396.0037,14.2643,89.5653},
			{476,1978.7040,-2383.6899,14.2553,90.1082},
			{476,1978.8127,-2370.9258,14.2562,89.6564},
			{476,1978.7545,-2358.6887,14.2611,90.8094},
			{476,1978.7524,-2346.6282,14.2542,90.3923},
			{476,1978.7271,-2334.2107,14.2586,89.8635},
			{476,1967.9773,-2334.0098,14.2537,89.2006},
			{476,1968.0304,-2346.7659,14.2564,89.5600},
			{476,1968.0143,-2359.2332,14.2567,89.3761},
			{476,1967.8055,-2372.2275,14.2629,89.7649},
			{476,1967.7516,-2384.9595,14.2562,89.7772},
			{476,1967.9479,-2396.9973,14.2661,90.1868},
			{476,1978.8635,-2409.2715,14.2563,89.8173},
			{548,1994.9091,-2449.0818,13.6136,87.4790},
			{432,1978.8031,-2322.4282,13.5596,89.2325},
			{432,1978.6914,-2314.6343,13.5596,89.3591},
			{432,1978.3168,-2306.7822,13.5596,88.8411},
			{432,1978.5193,-2299.1052,13.5598,88.8872},
			}
			else
			{
			RemovePlayerFromVehicle(playerid);
 			}
		}
	}
}
Reply
#2

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
For one thing you are missing some brackets/braces and need to indent your code better.

OnPlayerEnterVehicle(playerid) is a callback, called when an event happens in the SA:MP program, in this case it's when a player entered a vehicle.

I think it can be used in a statement [being the fact that it returns a value] but In this context I think it isn't needed. anyway I think that is just a mistake, if not, remove it.

Inside that statement is just a bunch of numbers, the computer doesn't know what to do with them does it?

Tell me what they are for, and I can help further :P
I have tried different ways to make my vehicles so only team members can enter and use them, but i have fail.
so i got an idea to put it in OnPlayerEnterVehicle that if you enter a vehicle witch belongs to a another team you will get removed from it, and i tried to do that with the vehicles coords. Leader and member of team 1 has the vehicle coords you see in the code, if a player in team 2 tries to enter these vehicles with these coords you get removed from the vehicle. And if i understand you right i have the code in total wrong place right?
Reply
#3

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
Ok, I understand now.

To make vehicles only enterable by one team, firstly just create them as normal on OnGameMode/FilterScriptInit but give them IDs [names] so you can check what vehicle a player enters when the get into it.

To do this, use CreateVehicle with your sets of coordinates:

pawn Код:
OnGameModeInit()
{
CreateVehicle(476,1978.6555,-2396.0037,14.2643,89.5653);
CreateVehicle(476,1978.7040,-2383.6899,14.2553,90.1082);
CreateVehicle(476,1978.8127,-2370.9258,14.2562,89.6564);
CreateVehicle(476,1978.7545,-2358.6887,14.2611,90.8094);
CreateVehicle(476,1978.7524,-2346.6282,14.2542,90.3923);
CreateVehicle(476,1978.7271,-2334.2107,14.2586,89.8635);
CreateVehicle(476,1967.9773,-2334.0098,14.2537,89.2006);
CreateVehicle(476,1968.0304,-2346.7659,14.2564,89.5600);
CreateVehicle(476,1968.0143,-2359.2332,14.2567,89.3761);
CreateVehicle(476,1967.8055,-2372.2275,14.2629,89.7649);
CreateVehicle(476,1967.7516,-2384.9595,14.2562,89.7772);
CreateVehicle(476,1967.9479,-2396.9973,14.2661,90.1868);
CreateVehicle(476,1978.8635,-2409.2715,14.2563,89.8173);
CreateVehicle(548,1994.9091,-2449.0818,13.6136,87.4790);
CreateVehicle(432,1978.8031,-2322.4282,13.5596,89.2325);
CreateVehicle(432,1978.6914,-2314.6343,13.5596,89.3591);
CreateVehicle(432,1978.3168,-2306.7822,13.5596,88.8411);
CreateVehicle(432,1978.5193,-2299.1052,13.5598,88.8872);
}
But you need to assign ID lables to these vehicles, so later on on the callback OnPlayerEnterVehicle, you can check that the vehicle they entered is equal to one of those ID's

pawn Код:
//Top of Script
new TeamCar01, TeamCar02, TeamCar03, TeamCar04, TeamCar05, TeamCar06, etcetera...
OnGameModeInit()
{
TeamCar01=CreateVehicle(476,1978.6555,-2396.0037,14.2643,89.5653);
TeamCar02=CreateVehicle(476,1978.7040,-2383.6899,14.2553,90.1082);
TeamCar03=CreateVehicle(476,1978.8127,-2370.9258,14.2562,89.6564);
TeamCar04=CreateVehicle(476,1978.7545,-2358.6887,14.2611,90.8094);
TeamCar05=CreateVehicle(476,1978.7524,-2346.6282,14.2542,90.3923);
TeamCar06=CreateVehicle(476,1978.7271,-2334.2107,14.2586,89.8635);
TeamCar07=CreateVehicle(476,1967.9773,-2334.0098,14.2537,89.2006);
TeamCar08=CreateVehicle(476,1968.0304,-2346.7659,14.2564,89.5600);
TeamCar09=CreateVehicle(476,1968.0143,-2359.2332,14.2567,89.3761);
TeamCar10=CreateVehicle(476,1967.8055,-2372.2275,14.2629,89.7649);
TeamCar11=CreateVehicle(476,1967.7516,-2384.9595,14.2562,89.7772);
TeamCar12=CreateVehicle(476,1967.9479,-2396.9973,14.2661,90.1868);
TeamCar13=CreateVehicle(476,1978.8635,-2409.2715,14.2563,89.8173);
TeamCar14=CreateVehicle(548,1994.9091,-2449.0818,13.6136,87.4790);
TeamCar15=CreateVehicle(432,1978.8031,-2322.4282,13.5596,89.2325);
TeamCar16=CreateVehicle(432,1978.6914,-2314.6343,13.5596,89.3591);
TeamCar17=CreateVehicle(432,1978.3168,-2306.7822,13.5596,88.8411);
TeamCar18=CreateVehicle(432,1978.5193,-2299.1052,13.5598,88.8872);
}
But Wait! Why create 18 different variables, one for each car, when you can have an array that contains all of the ID numbers in One simple Label:

pawn Код:
//Top of Script
new TeamCar[18];
OnGameModeInit()
{
TeamCar[0]=CreateVehicle(476,1978.6555,-2396.0037,14.2643,89.5653);
TeamCar[1]=CreateVehicle(476,1978.7040,-2383.6899,14.2553,90.1082);
TeamCar[2]=CreateVehicle(476,1978.8127,-2370.9258,14.2562,89.6564);
TeamCar[3]=CreateVehicle(476,1978.7545,-2358.6887,14.2611,90.8094);
TeamCar[4]=CreateVehicle(476,1978.7524,-2346.6282,14.2542,90.3923);
TeamCar[5]=CreateVehicle(476,1978.7271,-2334.2107,14.2586,89.8635);
TeamCar[6]=CreateVehicle(476,1967.9773,-2334.0098,14.2537,89.2006);
TeamCar[7]=CreateVehicle(476,1968.0304,-2346.7659,14.2564,89.5600);
TeamCar[8]=CreateVehicle(476,1968.0143,-2359.2332,14.2567,89.3761);
TeamCar[9]=CreateVehicle(476,1967.8055,-2372.2275,14.2629,89.7649);
TeamCar[10]=CreateVehicle(476,1967.7516,-2384.9595,14.2562,89.7772);
TeamCar[11]=CreateVehicle(476,1967.9479,-2396.9973,14.2661,90.1868)
TeamCar[12]=CreateVehicle(476,1978.8635,-2409.2715,14.2563,89.8173);
TeamCar[13]=CreateVehicle(548,1994.9091,-2449.0818,13.6136,87.4790);
TeamCar[14]=CreateVehicle(432,1978.8031,-2322.4282,13.5596,89.2325);
TeamCar[15]=CreateVehicle(432,1978.6914,-2314.6343,13.5596,89.3591);
TeamCar[16]=CreateVehicle(432,1978.3168,-2306.7822,13.5596,88.8411);
TeamCar[17]=CreateVehicle(432,1978.5193,-2299.1052,13.5598,88.8872);
}
This way you can check if the vehicle that the player entered is equal to ANY of the ID numbers in that array with a simple loop:

pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid)
{
    for(new var; var < 18; var++)
    {
        if(vehicleid == TeamCar[var]) // Checks that Vehicle that 'playerid' entered is one of the 'TeamCar' vehicles
        {
            // This is the team check you made, but reversed, so it will remove the player if the variables don't match.
            if(PlayerBase[playerid][pMedlem] != 1 || PlayerBase[playerid][pLedare] != 1) RemovePlayerFromVehicle(playerid);
        }
    }
    return 1;
}
Hope that helps slightly, I would write more but I have to go now, let me know if you have any more problems and I will try and explain things in detail tomorrow. Good luck
Nice there is someone helpful guy here
i used the code
Код:
new TeamCar[18];
And
	TeamCar[0]=CreateVehicle(476,1978.6555,-2396.0037,14.2643,89.5653);
	TeamCar[1]=CreateVehicle(476,1978.7040,-2383.6899,14.2553,90.1082);
	TeamCar[2]=CreateVehicle(476,1978.8127,-2370.9258,14.2562,89.6564);
	TeamCar[3]=CreateVehicle(476,1978.7545,-2358.6887,14.2611,90.8094);
	TeamCar[4]=CreateVehicle(476,1978.7524,-2346.6282,14.2542,90.3923);
	TeamCar[5]=CreateVehicle(476,1978.7271,-2334.2107,14.2586,89.8635);
	TeamCar[6]=CreateVehicle(476,1967.9773,-2334.0098,14.2537,89.2006);
	TeamCar[7]=CreateVehicle(476,1968.0304,-2346.7659,14.2564,89.5600);
	TeamCar[8]=CreateVehicle(476,1968.0143,-2359.2332,14.2567,89.3761);
	TeamCar[9]=CreateVehicle(476,1967.8055,-2372.2275,14.2629,89.7649);
	TeamCar[10]=CreateVehicle(476,1967.7516,-2384.9595,14.2562,89.7772);
	TeamCar[11]=CreateVehicle(476,1967.9479,-2396.9973,14.2661,90.1868);
	TeamCar[12]=CreateVehicle(476,1978.8635,-2409.2715,14.2563,89.8173);
	TeamCar[13]=CreateVehicle(548,1994.9091,-2449.0818,13.6136,87.4790);
	TeamCar[14]=CreateVehicle(432,1978.8031,-2322.4282,13.5596,89.2325);
	TeamCar[15]=CreateVehicle(432,1978.6914,-2314.6343,13.5596,89.3591);
	TeamCar[16]=CreateVehicle(432,1978.3168,-2306.7822,13.5596,88.8411);
	TeamCar[17]=CreateVehicle(432,1978.5193,-2299.1052,13.5598,88.8872);

public OnPlayerEnterVehicle(playerid, vehicleid)
{
    for(new var; var < 18; var++)
    {
        if(vehicleid == TeamCar[var]) // Checks that Vehicle that 'playerid' entered is one of the 'TeamCar' vehicles
        {
            // This is the team check you made, but reversed, so it will remove the player if the variables don't match.
            if(PlayerBase[playerid][pMedlem] != 1 || PlayerBase[playerid][pLedare] != 1) RemovePlayerFromVehicle(playerid);
        }
    }
    return 1;
}
i got 54 warnings on the veicles and only 2 vehicles was visible on the server.
Question: dont i need a code that says that TeamCar[0] to TeamCar[17] is only enterable for team 1? because i have 4 teams
Reply
#4

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
Yeah sorry, lol I was too tired to notice that there isn't enough parameters in the CreateVehicle functions, there needs to be:

model, x, y, z, rotation, colour1, colour2, respawn time

I missed out all the colour and respawn time so you'll just have to add them in [copy and paste :P]


Question: dont i need a code that says that TeamCar[0] to TeamCar[17] is only enterable for team 1? because i have 4 teams

The code under OnPlayerEnterVehicle does do that, I will explain:

The braces at the top:

" for(new var; var < 18; var++)"
This is a loop, it creates a variable ['var'] which equals 0
It executed the code underneath it [in the braces] while the 'var' = 0
So imagine it like this:
pawn Код:
if(vehicleid == TeamCar[0]) // 'var' = 0 on the first pass so this is what it looks like
{
    if(PlayerBase[playerid][pMedlem] != 1 || PlayerBase[playerid][pLedare] != 1) RemovePlayerFromVehicle(playerid);
}
Because it's a loop, it executes the code again but this time it increments the variable 'var' to 1, so it checks the next car

This does it enough times to check every car.

Hope that helps :P
Ah ok!
now i have made the cars for all teams, i hope i made the "TeamCar" numbers right? 0-73?
Код:
//TEAM_4 New player
        TeamCar[0]=CreateVehicle(476,419.9781,2441.7148,17.2157,90.9542,1,1,3000); // New player
	TeamCar[1]=CreateVehicle(476,419.7993,2453.4229,17.2155,89.1848,1,1,3000); // New player
	TeamCar[2]=CreateVehicle(476,420.0335,2466.9705,17.2098,88.6598,1,1,3000); // New player
	TeamCar[3]=CreateVehicle(476,389.5863,2439.7012,17.2138,273.9613,1,1,3000); // New player
	TeamCar[4]=CreateVehicle(476,389.2481,2452.0327,17.2109,271.2024,1,1,3000); // New player
	TeamCar[5]=CreateVehicle(476,389.3371,2466.8743,17.2080,269.3279,1,1,3000); // New player
	TeamCar[6]=CreateVehicle(476,369.9770,2471.4199,17.1923,1.0170,1,1,3000); // New player
	TeamCar[7]=CreateVehicle(476,355.2772,2471.4446,17.1924,0.1990,1,1,3000); // New player
	TeamCar[8]=CreateVehicle(476,341.0659,2471.6011,17.1892,359.4792,1,1,3000); // New player
	TeamCar[9]=CreateVehicle(476,289.9539,2536.9458,17.5328,182.0488,1,1,3000); // New player
	TeamCar[10]=CreateVehicle(476,324.9881,2537.0947,17.5249,180.0883,1,1,3000); // New player
	TeamCar[11]=CreateVehicle(476,342.7910,2537.0664,17.4873,180.8570,1,1,3000); // New player
	TeamCar[12]=CreateVehicle(476,382.3123,2537.2183,17.2524,180.4406,1,1,3000); // New player
	TeamCar[13]=CreateVehicle(548,364.2266,2536.7107,16.7929,175.6206,1,1,3000); // New player Cargobob
	TeamCar[14]=CreateVehicle(432,330.9751,2547.3921,16.8178,1.1064,0,0,3000); // New Player Rhino
	TeamCar[15]=CreateVehicle(432,320.8236,2548.0957,16.8227,359.7192,0,0,3000); // New Player Rhino
	TeamCar[16]=CreateVehicle(432,296.3745,2548.3577,16.8338,358.0152,0,0,3000); // New Player Rhino
	TeamCar[17]=CreateVehicle(432,284.9641,2548.6011,16.8317,359.1052,0,0,3000); //New Player Rhino

    //TEAM_3 Airwolves
	TeamCar[18]=CreateVehicle(476,1581.9852,1162.1902,11.5066,0.8701,0,0,3000); // Airwolves
	TeamCar[19]=CreateVehicle(476,1570.1849,1162.0282,11.5137,1.1687,0,0,3000); // Airwolves
	TeamCar[20]=CreateVehicle(476,1558.3748,1161.9513,11.5302,359.4196,0,0,3000); // Airwolves
	TeamCar[21]=CreateVehicle(476,1595.0438,1181.5055,11.5254,359.7671,0,0,3000); // Airwolves
	TeamCar[22]=CreateVehicle(476,1606.4656,1188.0414,11.5129,359.9229,0,0,3000); // Airwolves
	TeamCar[23]=CreateVehicle(476,1582.0078,1173.1418,11.5260,0.0395,0,0,3000); // Airwolves
	TeamCar[24]=CreateVehicle(476,1569.7256,1172.8888,11.5189,2.2377,0,0,3000); // Airwolves
	TeamCar[25]=CreateVehicle(476,1558.2279,1172.7627,11.5180,358.3973,0,0,3000); //Airwolves
	TeamCar[26]=CreateVehicle(476,1582.1110,1182.9968,11.5135,0.9782,0,0,3000); // Airwolves
	TeamCar[27]=CreateVehicle(476,1570.1838,1182.8129,11.5197,1.4127,0,0,3000); // Airwolves
	TeamCar[28]=CreateVehicle(476,1558.6588,1182.8693,11.5206,358.3985,0,0,3000); // Airwolves
	TeamCar[29]=CreateVehicle(476,1558.8196,1192.9263,11.5295,359.2359,0,0,3000); // Airwolves
	TeamCar[30]=CreateVehicle(476,1570.2063,1192.8105,11.5265,0.3085,0,0,3000); // Airwolves
	TeamCar[31]=CreateVehicle(548,1602.0354,1281.8556,15.0148,102.5360,0,0,3000); // Airwolves Cargobob
	TeamCar[32]=CreateVehicle(432,1281.8174,1317.7827,10.8330,269.8667,0,0,3000); // Airwolves Rhino
	TeamCar[33]=CreateVehicle(432,1281.3157,1329.9841,10.8332,270.0224,0,0,3000); // Airwolves Rhino
	TeamCar[34]=CreateVehicle(432,1281.8860,1354.4025,10.8330,270.5049,0,0,3000); // Airwolves Rhino
	TeamCar[35]=CreateVehicle(432,1281.9857,1368.0791,10.8330,270.8093,0,0,3000); // Airwolves Rhino

	//TEAM_1 Bluefoxes
	TeamCar[36]=CreateVehicle(476,1978.6555,-2396.0037,14.2643,89.5653,2,2,3000); // Bluefoxes
	TeamCar[37]=CreateVehicle(476,1978.7040,-2383.6899,14.2553,90.1082,2,2,3000); // Bluefoxes
	TeamCar[38]=CreateVehicle(476,1978.8127,-2370.9258,14.2562,89.6564,2,2,3000); // Bluefoxes
	TeamCar[39]=CreateVehicle(476,1978.7545,-2358.6887,14.2611,90.8094,2,2,3000); // Bluefoxes
	TeamCar[40]=CreateVehicle(476,1978.7524,-2346.6282,14.2542,90.3923,2,2,3000); // Bluefoxes
	TeamCar[41]=CreateVehicle(476,1978.7271,-2334.2107,14.2586,89.8635,2,2,3000); // Bluefoxes
	TeamCar[42]=CreateVehicle(476,1967.9773,-2334.0098,14.2537,89.2006,2,2,3000); // Bluefoxes
	TeamCar[43]=CreateVehicle(476,1968.0304,-2346.7659,14.2564,89.5600,2,2,3000); // Bluefoxes
	TeamCar[44]=CreateVehicle(476,1968.0143,-2359.2332,14.2567,89.3761,2,2,3000); // Bluefoxes
	TeamCar[45]=CreateVehicle(476,1967.8055,-2372.2275,14.2629,89.7649,2,2,3000); // Bluefoxes
	TeamCar[46]=CreateVehicle(476,1967.7516,-2384.9595,14.2562,89.7772,2,2,3000); // Bluefoxes
	TeamCar[47]=CreateVehicle(476,1967.9479,-2396.9973,14.2661,90.1868,2,2,3000); // Bluefoxes
	TeamCar[48]=CreateVehicle(476,1978.8635,-2409.2715,14.2563,89.8173,2,2,3000); // Bluefoxes
	TeamCar[49]=CreateVehicle(548,1997.4635,-2430.8811,17.1481,94.3798,2,2,3000); // Bluefoxes Cargobob
	TeamCar[50]=CreateVehicle(432,1978.8031,-2322.4282,13.5596,89.2325,2,2,3000); // Bluefoxes Rhino
	TeamCar[51]=CreateVehicle(432,1978.6914,-2314.6343,13.5596,89.3591,2,2,3000); // Bluefoxes Rhino
	TeamCar[52]=CreateVehicle(432,1978.3168,-2306.7822,13.5596,88.8411,2,2,3000); // Bluefoxes Rhino
	TeamCar[53]=CreateVehicle(432,1978.5193,-2299.1052,13.5598,88.8872,2,2,3000); // Bluefoxes Rhino

	//TEAM_2 Thunderbirds
	TeamCar[54]=CreateVehicle(476,-1511.3623,-164.6398,14.8441,11.8009,6,6,3000); // Thunderbird plane
	TeamCar[55]=CreateVehicle(476,-1491.9832,-145.5590,14.8648,11.7777,6,6,3000); //Thunderbird
	TeamCar[56]=CreateVehicle(476,-1501.6255,-155.3166,14.8596,8.5552,6,6,3000); // Thunderbird
	TeamCar[57]=CreateVehicle(476,-1481.5931,-135.6380,14.8579,7.9517,6,6,3000); // Thunderbird
	TeamCar[58]=CreateVehicle(476,-1471.6337,-125.5648,14.8578,8.5159,6,6,3000); // Thunderbird
	TeamCar[59]=CreateVehicle(476,-1461.9418,-116.3714,14.8641,4.4572,6,6,3000); // Thunderbird
	TeamCar[60]=CreateVehicle(476,-1451.6680,-105.8881,14.8565,5.1509,6,6,3000); // Thunderbird
	TeamCar[61]=CreateVehicle(476,-1440.7518,-95.2124,14.8536,3.1080,6,6,3000); // Thunderbird
	TeamCar[62]=CreateVehicle(476,-1430.0154,-84.5389,14.8576,3.0299,6,6,3000); // Thunderbird
	TeamCar[63]=CreateVehicle(476,-1418.5612,-73.0776,14.8428,4.4553,6,6,3000); // Thunderbird
	TeamCar[64]=CreateVehicle(476,-1407.5093,-61.9155,14.8408,5.2833,6,6,3000); // Thunderbird
	TeamCar[65]=CreateVehicle(476,-1396.1097,-50.7228,14.8596,2.7714,6,6,3000); // Thunderbird
	TeamCar[66]=CreateVehicle(476,-1385.4530,-39.9416,14.8657,3.3986,6,6,3000); // Thunderbird
	TeamCar[67]=CreateVehicle(476,-1385.4337,-39.9457,14.8662,3.9818,6,6,3000); // Thunderbird
	TeamCar[68]=CreateVehicle(548,-1500.4371,-224.0978,18.0048,1.0643,0,0,3000);// Thunderbird Cargobob
	TeamCar[69]=CreateVehicle(432,-1458.5845,-181.6641,14.1613,76.4453,2,2,3000); // Thunderbird Rhino
	TeamCar[70]=CreateVehicle(432,-1456.9139,-174.5814,14.1613,75.6198,2,2,3000); // Thunderbird Rhino
	TeamCar[71]=CreateVehicle(432,-1460.0137,-189.2424,14.1610,77.0195,2,2,3000); // Thunderbird Rhino
	TeamCar[72]=CreateVehicle(432,-1454.8531,-166.4090,14.1613,76.0108,2,2,3000); // Thunderbird Rhino
So now i have to modify this, but im not sure how to, i guess i have to change 18 to 73 like i did with ( new TeamCar[18]; ) ?
Код:
public OnPlayerEnterVehicle(playerid, vehicleid)
{
    for(new var; var < 18; var++)
    {
        if(vehicleid == TeamCar[var]) // Checks that Vehicle that 'playerid' entered is one of the 'TeamCar' vehicles
        {
            // This is the team check you made, but reversed, so it will remove the player if the variables don't match.
            if(PlayerBase[playerid][pMedlem] != 1 || PlayerBase[playerid][pLedare] != 1) RemovePlayerFromVehicle(playerid);
        }
    }
    return 1;
'

and also add
Код:
if(PlayerBase[playerid][pMedlem] != 2 || PlayerBase[playerid][pLedare] != 2) RemovePlayerFromVehicle(playerid); 
if(PlayerBase[playerid][pMedlem] != 3 || PlayerBase[playerid][pLedare] != 3) RemovePlayerFromVehicle(playerid);
if(PlayerBase[playerid][pMedlem] != 0 || PlayerBase[playerid][pLedare] != 0) RemovePlayerFromVehicle(playerid);
Reply
#5

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
Ok, for this you may as well change the variable name to make it easier.

this time make 4 variables:

new Team1car[size], Team2car[size], Team3car[size], Team4car[size];

one for each set of cars, now use the search and replace function in pawno to quickly change them.
Do this by selecting the first load of cars, press ctrl+h check the box "Selected text only" so it only replaces the vehicle array labels you have selected. Enter in the first box: "TeamCar" and in the second box "Team1Car", do this for each of the 4 sets of cars, and make sure you have also changed the array numbers in each set [make them start from 0]


Now you need to change the code under OnPlayerEnterVehicle, so it checks all teams:
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid)
{
    for(new var; var < 18; var++)
    {
        if(vehicleid == Team1Car[var])
        {
// In here make your team check so you can remove the player if they enter the wrong vehicle
        }
        if(vehicleid == Team2Car[var])
        {
// And here
        }
        if(vehicleid == Team3Car[var])
        {
// And here
        }
        if(vehicleid == Team4Car[var])
        {
// And here
        }
    }
    return 1;
}
Hope that helps further
Ok all done i replace
Код:
new TeamCar[73]; with Team1car[size], Team2car[size], Team3car[size], Team4car right?
Reply
#6

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
Yeah but you have to enter the size in numbers, don't just leave the word 'size'. :P
Hehe that was just what i did :P sorry im just learning

Ok to make it clear what i have done
Код:
new Team1car[18], Team2car[18], Team3car[18], Team4car[19];

public OnGameModeInit()
{
	Team1Car[0]=CreateVehicle(476,419.9781,2441.7148,17.2157,90.9542,3,1,3000); // New player
	Team1Car[1]=CreateVehicle(476,419.7993,2453.4229,17.2155,89.1848,3,1,3000); // New player
	Team1Car[2]=CreateVehicle(476,420.0335,2466.9705,17.2098,88.6598,3,1,3000); // New player
	Team1Car[3]=CreateVehicle(476,389.5863,2439.7012,17.2138,273.9613,3,1,3000); // New player
	Team1Car[4]=CreateVehicle(476,389.2481,2452.0327,17.2109,271.2024,3,1,3000); // New player
	Team1Car[5]=CreateVehicle(476,389.3371,2466.8743,17.2080,269.3279,3,1,3000); // New player
	Team1Car[6]=CreateVehicle(476,369.9770,2471.4199,17.1923,1.0170,3,1,3000); // New player
	Team1Car[7]=CreateVehicle(476,355.2772,2471.4446,17.1924,0.1990,3,1,3000); // New player
	Team1Car[8]=CreateVehicle(476,341.0659,2471.6011,17.1892,359.4792,3,1,3000); // New player
	Team1Car[9]=CreateVehicle(476,289.9539,2536.9458,17.5328,182.0488,3,1,3000); // New player
	Team1Car[10]=CreateVehicle(476,324.9881,2537.0947,17.5249,180.0883,3,1,3000); // New player
	Team1Car[11]=CreateVehicle(476,342.7910,2537.0664,17.4873,180.8570,3,1,3000); // New player
	Team1Car[12]=CreateVehicle(476,382.3123,2537.2183,17.2524,180.4406,3,1,3000); // New player
	Team1Car[13]=CreateVehicle(548,364.2266,2536.7107,16.7929,175.6206,3,1,3000); // New player Cargobob
	Team1Car[14]=CreateVehicle(432,330.9751,2547.3921,16.8178,1.1064,0,0,3000); // New Player Rhino
	Team1Car[15]=CreateVehicle(432,320.8236,2548.0957,16.8227,359.7192,0,0,3000); // New Player Rhino
	Team1Car[16]=CreateVehicle(432,296.3745,2548.3577,16.8338,358.0152,0,0,3000); // New Player Rhino
	Team1Car[17]=CreateVehicle(432,284.9641,2548.6011,16.8317,359.1052,0,0,3000); //New Player Rhino

    //TEAM_3 Airwolves
	Team2Car[0]=CreateVehicle(476,1581.9852,1162.1902,11.5066,0.8701,0,1,3000); // Airwolves
	Team2Car[1]=CreateVehicle(476,1570.1849,1162.0282,11.5137,1.1687,0,1,3000); // Airwolves
	Team2Car[2]=CreateVehicle(476,1558.3748,1161.9513,11.5302,359.4196,0,1,3000); // Airwolves
	Team2Car[3]=CreateVehicle(476,1595.0438,1181.5055,11.5254,359.7671,0,1,3000); // Airwolves
	Team2Car[4]=CreateVehicle(476,1606.4656,1188.0414,11.5129,359.9229,0,1,3000); // Airwolves
	Team2Car[5]=CreateVehicle(476,1582.0078,1173.1418,11.5260,0.0395,0,1,3000); // Airwolves
	Team2Car[6]=CreateVehicle(476,1569.7256,1172.8888,11.5189,2.2377,0,1,3000); // Airwolves
	Team2Car[7]=CreateVehicle(476,1558.2279,1172.7627,11.5180,358.3973,0,1,3000); //Airwolves
	Team2Car[8]=CreateVehicle(476,1582.1110,1182.9968,11.5135,0.9782,0,1,3000); // Airwolves
	Team2Car[9]=CreateVehicle(476,1570.1838,1182.8129,11.5197,1.4127,0,1,3000); // Airwolves
	Team2Car[10]=CreateVehicle(476,1558.6588,1182.8693,11.5206,358.3985,0,1,3000); // Airwolves
	Team2Car[11]=CreateVehicle(476,1558.8196,1192.9263,11.5295,359.2359,0,1,3000); // Airwolves
	Team2Car[12]=CreateVehicle(476,1570.2063,1192.8105,11.5265,0.3085,0,1,3000); // Airwolves
	Team2Car[13]=CreateVehicle(548,1602.0354,1281.8556,15.0148,102.5360,0,0,3000); // Airwolves Cargobob
	Team2Car[14]=CreateVehicle(432,1281.8174,1317.7827,10.8330,269.8667,0,0,3000); // Airwolves Rhino
	Team2Car[15]=CreateVehicle(432,1281.3157,1329.9841,10.8332,270.0224,0,0,3000); // Airwolves Rhino
	Team2Car[16]=CreateVehicle(432,1281.8860,1354.4025,10.8330,270.5049,0,0,3000); // Airwolves Rhino
	Team2Car[17]=CreateVehicle(432,1281.9857,1368.0791,10.8330,270.8093,0,0,3000); // Airwolves Rhino

	//TEAM_1 Bluefoxes
	Team3Car[0]=CreateVehicle(476,1978.6555,-2396.0037,14.2643,89.5653,2,1,3000); // Bluefoxes
	Team3Car[1]=CreateVehicle(476,1978.7040,-2383.6899,14.2553,90.1082,2,1,3000); // Bluefoxes
	Team3Car[2]=CreateVehicle(476,1978.8127,-2370.9258,14.2562,89.6564,2,1,3000); // Bluefoxes
	Team3Car[3]=CreateVehicle(476,1978.7545,-2358.6887,14.2611,90.8094,2,1,3000); // Bluefoxes
	Team3Car[4]=CreateVehicle(476,1978.7524,-2346.6282,14.2542,90.3923,2,1,3000); // Bluefoxes
	Team3Car[5]=CreateVehicle(476,1978.7271,-2334.2107,14.2586,89.8635,2,1,3000); // Bluefoxes
	Team3Car[6]=CreateVehicle(476,1967.9773,-2334.0098,14.2537,89.2006,2,1,3000); // Bluefoxes
	Team3Car[7]=CreateVehicle(476,1968.0304,-2346.7659,14.2564,89.5600,2,1,3000); // Bluefoxes
	Team3Car[8]=CreateVehicle(476,1968.0143,-2359.2332,14.2567,89.3761,2,1,3000); // Bluefoxes
	Team3Car[9]=CreateVehicle(476,1967.8055,-2372.2275,14.2629,89.7649,2,1,3000); // Bluefoxes
	Team3Car[10]=CreateVehicle(476,1967.7516,-2384.9595,14.2562,89.7772,2,1,3000); // Bluefoxes
	Team3Car[11]=CreateVehicle(476,1967.9479,-2396.9973,14.2661,90.1868,2,1,3000); // Bluefoxes
	Team3Car[12]=CreateVehicle(476,1978.8635,-2409.2715,14.2563,89.8173,2,1,3000); // Bluefoxes
	Team3Car[13]=CreateVehicle(548,1997.4635,-2430.8811,17.1481,94.3798,2,1,3000); // Bluefoxes Cargobob
	Team3Car[14]=CreateVehicle(432,1978.8031,-2322.4282,13.5596,89.2325,2,1,3000); // Bluefoxes Rhino
	Team3Car[15]=CreateVehicle(432,1978.6914,-2314.6343,13.5596,89.3591,2,1,3000); // Bluefoxes Rhino
	Team3Car[16]=CreateVehicle(432,1978.3168,-2306.7822,13.5596,88.8411,2,1,3000); // Bluefoxes Rhino
	Team3Car[17]=CreateVehicle(432,1978.5193,-2299.1052,13.5598,88.8872,2,1,3000); // Bluefoxes Rhino

	//TEAM_2 Thunderbirds
	Team4Car[0]=CreateVehicle(476,-1511.3623,-164.6398,14.8441,11.8009,6,1,3000); // Thunderbird plane
	Team4Car[1]=CreateVehicle(476,-1491.9832,-145.5590,14.8648,11.7777,6,1,3000); //Thunderbird
	Team4Car[2]=CreateVehicle(476,-1501.6255,-155.3166,14.8596,8.5552,6,1,3000); // Thunderbird
	Team4Car[3]=CreateVehicle(476,-1481.5931,-135.6380,14.8579,7.9517,6,1,3000); // Thunderbird
	Team4Car[4]=CreateVehicle(476,-1471.6337,-125.5648,14.8578,8.5159,6,1,3000); // Thunderbird
	Team4Car[5]=CreateVehicle(476,-1461.9418,-116.3714,14.8641,4.4572,6,1,3000); // Thunderbird
	Team4Car[6]=CreateVehicle(476,-1451.6680,-105.8881,14.8565,5.1509,6,1,3000); // Thunderbird
	Team4Car[7]=CreateVehicle(476,-1440.7518,-95.2124,14.8536,3.1080,6,1,3000); // Thunderbird
	Team4Car[8]=CreateVehicle(476,-1430.0154,-84.5389,14.8576,3.0299,6,1,3000); // Thunderbird
	Team4Car[9]=CreateVehicle(476,-1418.5612,-73.0776,14.8428,4.4553,6,1,3000); // Thunderbird
	Team4Car[10]=CreateVehicle(476,-1407.5093,-61.9155,14.8408,5.2833,6,1,3000); // Thunderbird
	Team4Car[11]=CreateVehicle(476,-1396.1097,-50.7228,14.8596,2.7714,6,1,3000); // Thunderbird
	Team4Car[12]=CreateVehicle(476,-1385.4530,-39.9416,14.8657,3.3986,6,1,3000); // Thunderbird
	Team4Car[13]=CreateVehicle(476,-1385.4337,-39.9457,14.8662,3.9818,6,1,3000); // Thunderbird
	Team4Car[14]=CreateVehicle(548,-1500.4371,-224.0978,18.0048,1.0643,0,0,3000);// Thunderbird Cargobob
	Team4Car[15]=CreateVehicle(432,-1458.5845,-181.6641,14.1613,76.4453,2,2,3000); // Thunderbird Rhino
	Team4Car[16]=CreateVehicle(432,-1456.9139,-174.5814,14.1613,75.6198,2,2,3000); // Thunderbird Rhino
	Team4Car[17]=CreateVehicle(432,-1460.0137,-189.2424,14.1610,77.0195,2,2,3000); // Thunderbird Rhino
	Team4Car[18]=CreateVehicle(432,-1454.8531,-166.4090,14.1613,76.0108,2,2,3000); // Thunderbird Rhino

public OnPlayerEnterVehicle(playerid, vehicleid)
{
    for(new var; var < 18; var++)
    {
        if(vehicleid == Team1Car[var])
        {
		if(PlayerBase[playerid][pMedlem] != 0 || PlayerBase[playerid][pLedare] != 0) RemovePlayerFromVehicle(playerid);
        }
        if(vehicleid == Team2Car[var])
        {
		if(PlayerBase[playerid][pMedlem] != 3 || PlayerBase[playerid][pLedare] != 3) RemovePlayerFromVehicle(playerid);
        }
        if(vehicleid == Team3Car[var])
        {
		if(PlayerBase[playerid][pMedlem] != 1 || PlayerBase[playerid][pLedare] != 1) RemovePlayerFromVehicle(playerid);
        }
        if(vehicleid == Team4Car[var])
        {
		if(PlayerBase[playerid][pMedlem] != 2 || PlayerBase[playerid][pLedare] != 2) RemovePlayerFromVehicle(playerid);
        }
    }
    return 1;
}
i got these stuffs, Line 91 is the first car
Код:
\\PERHP-PC\Users\Perhp\Desktop\Airstrike Battle\gamemodes\Fort4444.pwn(91) : error 017: undefined symbol "Team1Car"
\\PERHP-PC\Users\Perhp\Desktop\Airstrike Battle\gamemodes\Fort4444.pwn(91) : warning 215: expression has no effect
\\PERHP-PC\Users\Perhp\Desktop\Airstrike Battle\gamemodes\Fort4444.pwn(91) : error 001: expected token: ";", but found "]"
\\PERHP-PC\Users\Perhp\Desktop\Airstrike Battle\gamemodes\Fort4444.pwn(91) : error 029: invalid expression, assumed zero
\\PERHP-PC\Users\Perhp\Desktop\Airstrike Battle\gamemodes\Fort4444.pwn(91) : fatal error 107: too many error messages on one line
Reply
#7

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
Hmm, confusing, are you sure you have the declaration of variables (line with 'new Team1Car[etc...) above the OnGameModeInit callback?

Should look something like this:
pawn Код:
#includes

#defines

new various variables

new Team1Car[18]... etc

public OnGameModeInit()
{
vehicles...

and a small note, to get the syntax highlighting use [ pawn] tags not [ code ] tags [without spaces :P]
Thanks for the note yes i have put everything in right place
Reply
#8

Quote:
Originally Posted by [HLF]Southclaw
Посмотреть сообщение
Ok, I just tested it, it's just the case of the letters:

the declared variables are: Team1Car with a capital 'C'

the assigned variables are Team1car

Change the declarations to 'Car' not 'car' lol

My mistake sorry :P
Lol i should have seen that to :P
but its just one problem, it seams that i can enter and use all vehicles anyway. im gonna test the last 2 teams vehicles also to se if i can enter and use them

Edit: i can enter and use all vehicles even if i am in team 1-2-3-4

Can it be some wrong in OnPlayerEnterVehicle? because i donґt get removed from the vehicles
pawn Код:
public OnPlayerEnterVehicle(playerid, vehicleid)
{
    for(new var; var < 18; var++)
    {
        if(vehicleid == Team1Car[var])
        {
        if(PlayerBase[playerid][pMedlem] != 0 || PlayerBase[playerid][pLedare] != 0) RemovePlayerFromVehicle(playerid);
        }
        if(vehicleid == Team2Car[var])
        {
        if(PlayerBase[playerid][pMedlem] != 3 || PlayerBase[playerid][pLedare] != 3) RemovePlayerFromVehicle(playerid);
        }
        if(vehicleid == Team3Car[var])
        {
        if(PlayerBase[playerid][pMedlem] != 1 || PlayerBase[playerid][pLedare] != 1) RemovePlayerFromVehicle(playerid);
        }
        if(vehicleid == Team4Car[var])
        {
        if(PlayerBase[playerid][pMedlem] != 2 || PlayerBase[playerid][pLedare] != 2) RemovePlayerFromVehicle(playerid);
        }
    }
    return 1;
}
Reply
#9

Bump, need help
Reply
#10

offtopic: [pawn] will make trouble copy and pasting :P
[code] doesnt
try else if??
else if(vehicleid == Team2Car[var])
{
so on.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)