Форум Pawn.Wiki - Воплоти мечту в реальность!: Авторынок Из Premiumgame - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ GF ]
Авторынок Из Premiumgame
Оценка: -----

#1
Пользователь офлайн   Romzes 

  • ( ^_^ )
  • Вставить ник
  • Раскрыть информацию
И так по прозьбе одного из форумчан я решил выложит авторынок из мода PremiumGame.
В начало мода, модно даже сразу после PlayerInfo[MAX_PLAYERS][pinfo];
#define MAX_xCARS 106 //Максимальное количиство персональных авто (ну и продажных)

//параметры авто

enum xCar
{
	cModel,
	Float:xcx,
	Float:xcy,
	Float:xcz,
	Float:xcrot,
	aOwner[MAX_PLAYER_NAME],//владелец
	cCoast,
	cOwner[60],
	cColor1,
	cColor2,
	cValue,
	cCarID
}

new cInfo[MAX_xCARS][xCar]; //переменная с параметрами авто

enum xCarToSell
{
	sCarid,
	sCoast,
	sOwnerid,
	sSellToid
}
new csInfo[500][xCarToSell];


В OnPlayerStateChange вставляем:
if(newstate == 2)
{
	new Car = GetPlayerVehicleID(playerid);
	new result;
	new cid;
	new pName[24];

	for(new i;i<MAX_xCARS;i++)
	{
	if(Car == cInfo[i][cCarID])
	{
	result = 1;
	cid = i;
	break;
	}
	else result = 0;
	}


	if(result)
{
	GetPlayerName(playerid,pName,24);
	if(strcmp(cInfo[cid][cOwner],pName,false,24))
	{
        if(!strcmp(cInfo[cid][cOwner],"sell",true,24))
        {
        new str[256];
        format(str,256,"Данная машина выставлена на продажу\nЦена: %i\nВы хотите ее купить?",cInfo[cid][cCoast]);
		ShowPlayerDialog(playerid,3500,0,"Рынок авто",str,"купить","выйти");
        }

		else
		{
		new str[256];
		format(str,256,"Это авто принадлежит %s",cInfo[cid][cOwner]);
        RemovePlayerFromVehicle(playerid);
        SendClientMessage(playerid,0xffffffaa,str);
		}

	}


}

}

Ну и конечно же добавим загрузку авто на сервер.В самый конеч public'a OnGameModeInit:
for(new i;i<MAX_xCARS;i++)
	{
		new input[256];
		new str[50];
		new data[9][60];
		new Text3D:fdtextid;
		new strfd[124];
		new fdtextnumber = i+1000;
		format(str,10,"%i",i);
		input = dini_Get("PrivCars.ini",str);
		split(input,data,',');
		cInfo[i][cModel] = strval(data[0]);
		cInfo[i][xcx] = floatstr(data[1]);
		cInfo[i][xcy] = floatstr(data[2]);
		cInfo[i][xcz] = floatstr(data[3]);
		cInfo[i][xcrot] = floatstr(data[4]);
		cInfo[i][cCoast] = strval(data[5]);
		cInfo[i][cOwner] = data[6];
		cInfo[i][cColor1] = strval(data[7]);
		cInfo[i][cColor2] = strval(data[8]);
		cInfo[i][cCarID] = CreateVehicle(cInfo[i][cModel],cInfo[i][xcx],cInfo[i][xcy],cInfo[i][xcz],cInfo[i]
[xcrot],cInfo[i][cColor1],cInfo[i][cColor2],-1);
		format(strfd,124,"LS %i BG\n %s",fdtextnumber ,cInfo[i][aOwner]);
		fdtextid = Create3DTextLabel(strfd,0xFFFF00AA,0.0,0.0,0.0,100.0,0);
		Attach3DTextLabelToVehicle(fdtextid,cInfo[i][cCarID],0.0,0.0,1.8);
	}

Ну и сами команды,я думаю не надо объяснять как и куда их вставлять :D
if(!strcmp(cmd,"/v",true))
{
	tmp = strtok(cmdtext, idx);

	if(!strcmp(tmp,"buy",true))
	{
	if(GetPlayerMoney(playerid) >= csInfo[playerid][sCoast])
	{
	if(csInfo[playerid][sCoast] != 0)
	{
	new pName[60];
	new str[256];
	new str2[60];
	new cid = csInfo[playerid][sCarid];
	GetPlayerName(playerid,pName,24);
	oGivePlayerMoney(playerid,-csInfo[playerid][sCoast]);
	oGivePlayerMoney(csInfo[playerid][sOwnerid],-csInfo[playerid][sCoast]);
	cInfo[csInfo[playerid][sCarid]][cOwner] = pName;

	SendClientMessage(playerid,0xffffffaa,"Вы купили авто");
	SendClientMessage(csInfo[playerid][sOwnerid],0xffffffaa,"Вы продали авто");

    RemovePlayerFromVehicle(csInfo[playerid][sOwnerid]);
 	format(str,256,"%d,%f,%f,%f,%f,%d,%s,%d,%d",cInfo[cid][cModel],cInfo[cid][xcx],cInfo[cid][xcy]
,cInfo[cid][xcz],cInfo[cid][xcrot],cInfo[cid][cCoast],cInfo[cid][cOwner],cInfo[cid]
[cColor1],cInfo[cid][cColor2]);
	format(str2,60,"%i",cid);
    dini_Set("PrivCars.ini",str2,str);
    }
	}
	}
	if(!strcmp(tmp,"Sellto",true))
{
	if(IsPlayerInAnyVehicle(playerid))
{
	new Car = GetPlayerVehicleID(playerid);
	new result;
	new cid;
	new pName[60];
	new str[256];

	GetPlayerName(playerid,pName,60);
	for(new i;i<MAX_xCARS;i++)
	{
	if(Car == cInfo[i][cCarID])
	{
	result = 1;
	cid = i;
	break;
	}
	else result = 0;
	}

	if(result)
{
	if(!strcmp(pName,cInfo[cid][cOwner]))
	{

	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
	SendClientMessage(playerid,0xffffffaa,"/v SellTo [id] [coast]");
	return 1;
	}

	new spid = strval(tmp);
	csInfo[spid][sSellToid] = strval(tmp);

	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp))
	{
	SendClientMessage(playerid,0xffffffaa,"/v SellTo [id] [coast]");
	return 1;
	}

	csInfo[spid][sCoast] = strval(tmp);
	csInfo[spid][sCarid] = cid;
	csInfo[spid][sOwnerid] = playerid;
	format(str,256,"Игрок %s хочет продать вам свое авто за %d, введите /v buy чтобы купить ее",pName,csInfo[spid][sCoast]);
	SendClientMessage(spid,0xffffff,str);
	return 1;

	}
	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы продать ее");
	return 1;
	}
}
	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы продать ее");
	return 1;
	}
}
	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы продать ее");
	return 1;
	}
}

	if(!strcmp(tmp,"Sell",true))
{
	if(IsPlayerInAnyVehicle(playerid))
{
	new Car = GetPlayerVehicleID(playerid);
	new result;
	new cid;
	new pName[60];
	new m;
	new str[256];
	new str2[60];

	GetPlayerName(playerid,pName,60);
	for(new i;i<MAX_xCARS;i++)
	{
	if(Car == cInfo[i][cCarID])
	{
	result = 1;
	cid = i;
	break;
	}
	else result = 0;
	}

	if(result == 1)
	{
	if(!strcmp(pName,cInfo[cid][cOwner]))
{

	m = cInfo[cid][cCoast];
	m /= 2;
	oGivePlayerMoney(playerid,m);
	SendClientMessage(playerid,0xffffffaa,"Ты продал свою машину");
	format(cInfo[cid][cOwner],60,"Sell");
    RemovePlayerFromVehicle(playerid);
 	format(str,256,"%d,%f,%f,%f,%f,%d,%s,%d,%d",cInfo[cid][cModel],cInfo[cid][xcx],cInfo[cid][xcy]
,cInfo[cid][xcz],cInfo[cid][xcrot],cInfo[cid][cCoast],cInfo[cid][cOwner],cInfo[cid]
[cColor1],cInfo[cid][cColor2]);
	format(str2,60,"%i",cid);
    dini_Set("PrivCars.ini",str2,str);
}
	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы продать ее");
	return 1;
	}

	}

	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы продать ее");
	return 1;
	}

}
	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы продать ее");
	return 1;
	}
}

	if(!strcmp(tmp,"Park",true))
{
	if(IsPlayerInAnyVehicle(playerid) == 1)
{
	new Car = GetPlayerVehicleID(playerid);
	new result;
	new cid;
	new pName[24];

	for(new i;i<MAX_xCARS;i++)
	{
	if(Car == cInfo[i][cCarID])
	{
	result = 1;
	cid = i;
	break;
	}
	else result = 0;
	}

	if(result && GetPlayerState(playerid) == 2)
	{
	if(!strcmp(pName,cInfo[cid][cOwner],false))
{

	new Float:x,Float:y,Float:z,Float:rot;
	new str[60];
	new str2[256];
	GetVehicleZAngle(Car,rot);
	GetVehiclePos(Car,x,y,z);
	cInfo[cid][xcx] = x;
	cInfo[cid][xcy] = y;
	cInfo[cid][xcz] = z;
	cInfo[cid][xcrot] = rot;
	format(str,256,"%d,%f,%f,%f,%f,%d,%s,%d,%d",cInfo[cid][cModel],cInfo[cid][xcx],cInfo[cid][xcy]
,cInfo[cid][xcz],cInfo[cid][xcrot],cInfo[cid][cCoast],cInfo[cid][cOwner],cInfo[cid]
[cColor1],cInfo[cid][cColor2]);
	format(str2,60,"%i",cid);
    dini_Set("PrivCars.ini",str2,str);
    RemovePlayerFromVehicle(playerid);
    DestroyVehicle(Car);
   	cInfo[cid][cCarID] = CreateVehicle(cInfo[cid][cModel],cInfo[cid][xcx],cInfo[cid][xcy],cInfo[cid][xcz],cInfo[
cid][xcrot],cInfo[cid][cColor1],cInfo[cid][cColor2],-1);
	SendClientMessage(playerid,0xffffffaa,"Авто припарковано");
}

	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы припорковать ее");
	return 1;
	}

	}

	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы припорковать ее");
	return 1;
	}
}

	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы припорковать ее");
	return 1;
	}

}

	if(!strcmp(tmp,"Color",true))
{
	if(IsPlayerInAnyVehicle(playerid) == 1)
{
	new Car = GetPlayerVehicleID(playerid);
	new result;
	new cid;
	new pName[24];
	new str[256];
	new str2[60];

	for(new i;i<MAX_xCARS;i++)
	{
	if(Car == cInfo[i][cCarID])
	{
	result = 1;
	cid = i;
	break;
	}
	else result = 0;
	}

	if(result && GetPlayerState(playerid) == 2)
	{
	if(!strcmp(pName,cInfo[cid][cOwner],false))
{
	new c1,c2;
	tmp = strtok(cmdtext, idx);
	c1 = strval(tmp);
	tmp = strtok(cmdtext, idx);
	c2 = strval(tmp);
	if(!strlen(tmp))
	{
 	SendClientMessage(playerid,0xffffffaa,"/v color [цвет1] [цвет2]");
	return 1;
	}
	ChangeVehicleColor(Car,c1,c2);

	cInfo[cid][cColor1] = c1;
	cInfo[cid][cColor2] = c2;
	format(str,256,"%d,%f,%f,%f,%f,%d,%s,%d,%d",cInfo[cid][cModel],cInfo[cid][xcx],cInfo[cid][xcy]
,cInfo[cid][xcz],cInfo[cid][xcrot],cInfo[cid][cCoast],cInfo[cid][cOwner],cInfo[cid]
[cColor1],cInfo[cid][cColor2]);
	format(str2,60,"%i",cid);
    dini_Set("PrivCars.ini",str2,str);
}


	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы сменить ей цвет");
	return 1;
	}

	}
	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы сменить ей цвет");
	return 1;
	}

}

	else
	{
	SendClientMessage(playerid,0xffffffaa,"Вы должны быть в своей машине, чтобы сменить ей цвет");
	return 1;
	}

}


	return 1;
}

В OnDialogResponse:
if(dialogid == 3500)
{
	if(response)
{

	new Car = GetPlayerVehicleID(playerid);
	new cid;

	for(new i;i<MAX_xCARS;i++)
	{
	if(Car == cInfo[i][cCarID])
	{
	cid = i;
	break;
	}
	}


	if(GetPlayerMoney(playerid) >= cInfo[cid][cCoast])
	{
	new str[256];
	new str2[60];
	new pName[60];
	oGivePlayerMoney(playerid,-cInfo[cid][cCoast]);
	GetPlayerName(playerid,pName,60);
    cInfo[cid][cOwner] = pName;
	format(str,256,"%d,%f,%f,%f,%f,%d,%s,%d,%d",cInfo[cid][cModel],cInfo[cid][xcx],cInfo[cid][xcy]
,cInfo[cid][xcz],cInfo[cid][xcrot],cInfo[cid][cCoast],cInfo[cid][cOwner],cInfo[cid]
[cColor1],cInfo[cid][cColor2]);
	format(str2,60,"%i",cid);
    dini_Set("PrivCars.ini",str2,str);
	}

	else RemovePlayerFromVehicle(playerid);

}

	else RemovePlayerFromVehicle(playerid);

}

Автор мануала: Barni, вырезано из мода PremiumGame.
Обязательно нужен инклуд Dini,Функцию oGivePlayerMoney замените на свою.
1

#2
Пользователь офлайн   Twist 

  • Маппер по вызову!
  • Вставить ник
  • Раскрыть информацию
Подскажите куда добавлять авто
0

#3
Пользователь офлайн   Lacoste 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
Авторынок не наш.
0

#4
Пользователь офлайн   Twist 

  • Маппер по вызову!
  • Вставить ник
  • Раскрыть информацию
леня это еще со старого ПГ
0

#5
Пользователь офлайн   Lacoste 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
И в старом он был переделан.
0

#6
Пользователь офлайн   KoTe 

  • Местный
  • Вставить ник
  • Раскрыть информацию
норм
0

#7
Пользователь офлайн   Zverek 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Сори за тупой вопрос.... Но как тут авто добавлять :blush:
0

#8
Пользователь офлайн   Romzes 

  • ( ^_^ )
  • Вставить ник
  • Раскрыть информацию
В ручную необходимо добавлять.
0

#9
Пользователь офлайн   DeD 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Как кары выставлять на продажу какая команда
0

#10
Пользователь офлайн   Hawk_Smoke 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Авторынок такой есть в FS.
0

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика