[AJUDA/DESAFIO] Funзгo Pra Editar Mapa
#1

Ae galera
Bom, й algo relativamente simples, mas ta me dando um bom trabalho, entгo resolvi passar para todos como desafio e ver se alguйm consegue resolver =)

to tentando fazer uma pista de corrida com pneus, mas qro fazer com precisгo de verdade e nгo apenas ficar pondo os pneus com a imprecisгo do mouse.

Entгo quero criar uma funзгo que dado uma coordenada:
(por exemplo: (-1102.0000, -1040.0000, 128.1900))
a funзгo deve criar uma circunferкncia de pneus um do lado do outro com um raio dado

obs.: cada pneu individual tem raio 1
obs2.: ID do pneu: 1327



Caso alguйm nгo tenha entendido, vai um exemplo
eu jб criei uma funзгo que cria pneus em linha reta em um dado eixo (esse й fбcil nй rsrsrs)
Код:
stock Reta(Float:X,Float:Y,Float:Z,eixo,quantidade)
{
	switch(eixo)
	{
		case -2:
			for(new i = quantidade; i > 0; i--)
				printf("CreateDynamicObject(1327,%f,%f,%f,0,90,0);",X,Y-2*i,Z);
		case -1: 
			for(new i = quantidade; i > 0; i--)
				printf("CreateDynamicObject(1327,%f,%f,%f,0,90,0);",X-2*i,Y,Z);
		case 1: 
			for(new i = quantidade; i > 0; i--)
				printf("CreateDynamicObject(1327,%f,%f,%f,0,90,0);",X+2*i,Y,Z);
		case 2:
			for(new i = quantidade; i > 0; i--)
				printf("CreateDynamicObject(1327,%f,%f,%f,0,90,0);",X,Y+2*i,Z);
	}
}
Bom, essa funзгo й simples
agora to tentando fazer uma funзгo que cria pneus em uma circunferкncia, dado o raio e as coordenadas do centro

Vou continuar tentando...
Mas serб que alguйm consegue?
Reply
#2

Basta adaptar para objetos:

http://pastebin.com/YjBapCMf
Reply
#3

verdade
desse jeito sai fбcil, sу uma leve trigonometria pra descobrir o angulo que nesse caso nгo vai sair tггo fбcil qto no seu exemplo

to pensando aqui tb
acho que outra soluзгo seria considerar o primeiro pneu no eixo X, tirando entгo facilmente a coordenada de seu vetor (R,0)
ae por rotaзгo de vetor sai facinho tbm

o mais trabalhoso seria tambйm encontrar o valor do вngulo por trigonometria, mas acho que isso й inevitбvel =\


@edit
Код:
                x += (distance * floatsin(-a, degrees));
                y += (distance * floatcos(-a, degrees));
nгo seria
Код:
                x += (distance * floatcos(-a, degrees));
                y += (distance * floatsin(-a, degrees));
?
Reply
#4

https://sampwiki.blast.hk/wiki/GetObjectRot

O parвmetro "Rotz" equivale ao parвmetro "Angle" da funзгo GetPlayerFacingAngle.
Reply
#5

Quote:
Originally Posted by CyNiC
Посмотреть сообщение
https://sampwiki.blast.hk/wiki/GetObjectRot

O parвmetro "Rotz" equivale ao parвmetro "Angle" da funзгo GetPlayerFacingAngle.
isso eu sei
mas nгo me ajuda em nada lol
й lei dos cossenos pra encontrar o вngulo entre 2 pneus concecutivos
й isso que eu qro, nгo a rotaзгo dele em relaзгo ao N
Reply
#6

Nao sei ser й exatamente isso que vocк quer... Use o Tool Box do mta

[ame]http://www.youtube.com/watch?v=ZF1D5KQiMiw[/ame]

Nao tenho link de download.. mas creio eu que seja facil achar
Reply
#7

Quote:
Originally Posted by Kmatsu
Посмотреть сообщение
Nao sei ser й exatamente isso que vocк quer... Use o Tool Box do mta

http://www.youtube.com/watch?v=ZF1D5KQiMiw

Nao tenho link de download.. mas creio eu que seja facil achar
pow, nao conhecia essa tool box, deve ajudar bastante =)

mas ainda qro tentar resolver esse problema uhauha
mas agora acho q ta facinho...
Reply
#8

Quote:
Originally Posted by RoamBR
Посмотреть сообщение
Para isso й melhor o RCG, o toolbox nгo tem a flexibilidade de ser utilizado com qualquer objeto, jб o RCG irб fazer uma repetiзгo com qualquer objeto.

Se vocк modificasse o Toolbox para ele rodar com os objetos e os parвmetros dos pneus iria ser muito ъtil para vocк.
TollBox e RCG
vo ver os dois dps



@Edit2
Код:
stock Circunferencia(Float:Xo,Float:Yo,Float:Zo,raio)
{
	new Float:Teta = acos(1-floatdiv(2,floatpower(raio,2)));
	new Float:X,Float:Y;
	new lala = 1;
	while(Teta < 360)
	{
		X = Xo + raio*floatcos(Teta,degrees);
		Y = Yo + raio*floatsin(Teta,degrees);
		lala++;
		Teta = lala*acos(1-floatdiv(2,floatpower(raio,2)));
		printf("CreateDynamicObject(1327,%f,%f,%f,0,90,0);",X,Y,Zo);
	}
}
eis a funзгo
funcionando 100% certinho xD
agradeзo a quem ajudo
dps tento fazer com vetor tbm xD
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)