Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
davi54723 - 11.08.2012
Aew, galera o maior desafio , foi achar o tapete de prego que funcione, eu jб consegui.
Caso alguйm queira sу pegar..
Preciso que alguйm modifique o o comando de tapete de prego para apenas policias, pois qualquer um pode colocar..
alguйm pode me ajudar.
Code:
#include <a_samp>
#include <SpikeStrip>
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
if (strcmp(cmd,"/ctapete",true) == 0)
{
new Float:plocx,Float:plocy,Float:plocz,Float:ploca;
GetPlayerPos(playerid, plocx, plocy, plocz);
GetPlayerFacingAngle(playerid,ploca);
CreateStrip(plocx,plocy,plocz,ploca);
return 1;
}
else if (strcmp(cmd,"/rtapete",true) == 0)
{
DeleteClosestStrip(playerid);
return 1;
}
else if (strcmp(cmd,"/removerall",true) == 0)
{
DeleteAllStrip();
return 1;
}
return 0;
}
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
UkTaKe - 11.08.2012
Vocк tem que passar a funзгo para identificar um policial (EX: PlayerInfo[playerid][Organizacao] == 10).
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
RebeloX - 11.08.2012
O meu bspikes й dinвmico o problema й que vocк nгo sabe usar..
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
davi54723 - 11.08.2012
Quote:
Originally Posted by UkTaKe
Vocк tem que passar a funзгo para identificar um policial (EX: PlayerInfo[playerid][Organizacao] == 10).
|
Como faзo isso?
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
davi54723 - 11.08.2012
Quote:
Originally Posted by BlueX
O meu bspikes й dinвmico o problema й que vocк nгo sabe usar..
|
Nгo sei usar o seu, e vocк nгo me ajudou :/
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
RebeloX - 11.08.2012
Quote:
Originally Posted by davi54723
Nгo sei usar o seu, e vocк nгo me ajudou :/
|
Sу fazer assim.
Comando de criar tapete
pawn Code:
if (strcmp(cmd,"/ctapete",true) == 0)
{
new name[24];
GetPlayerName(playerid,name,24);
CreateSpike(playerid,name);
SendClientMessage(playerid,-1,"Criando um tapete de pregos.");
return 1;
}
Comando de deletar tapete
pawn Code:
if (strcmp(cmd,"/ctapete",true) == 0)
{
DestroySpike(playerid);
return 1;
}
Lembrando que tem de estar onde o tapete esta.
Agora й sу fazer assim, na public OnPlayerUpdate coloque este cуdigo:
pawn Code:
IsPlayerInSpike(playerid,/*true/false para desligar o motor*/,/*true/false para criar fogo*/,/*velocidade necessбria para criar fogo.*/,/*tempo para destruir o fogo, coloque 60000*/)
ex:
pawn Code:
IsPlayerInSpike(playerid,true,true,60,60000)
Agora caso queira enviar uma mensagem quando ele passa pelo tapete de pregos sу usar este cуdigo.
pawn Code:
public OnPlayerPassedSpike(playerid,bool:fire,bool:engine){
if(fire && engine){
SendClientMessage(playerid,0x800000AA,"Opa, seu carro esta pegando fogo!");
}
return 1;
}
Agora para voce permitir o comando para policial sу, veja este exemplo:
[pawn]
pawn Code:
if (strcmp(cmd,"/ctapete",true) == 0)
{
if(policial[playerid] != 1) return 1;
new name[24];
GetPlayerName(playerid,name,24);
CreateSpike(playerid,name);
SendClientMessage(playerid,-1,"Criando um tapete de pregos.");
return 1;
}
Aconselho vocк a ver o meu tutorial de empregos, espero que isso ajude
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
Delay - 11.08.2012
Um simples IsACop nao resorve?
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
RebeloX - 11.08.2012
Quote:
Originally Posted by Delay
Um simples IsACop nao resorve?
|
Depende, o IsACop pode nгo estar usando as variбveis que o server usa.
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
DartakousLien - 12.08.2012
Quote:
Originally Posted by davi54723
Como faзo isso?
|
Na verdade o que voce queria saber nao explicaram para voce neh? Eu explico entao. Voce quer colocar o criar tapete so para policia. Muito bem, entao logicamente voces sabe que o server vai precisar saber se voce й policia ou nao e para isso vamos usar uma condicao ou seja "if"
este й o seu comando
pawn Code:
if (strcmp(cmd,"/ctapete",true) == 0)
{
new Float:plocx,Float:plocy,Float:plocz,Float:ploca;
GetPlayerPos(playerid, plocx, plocy, plocz);
GetPlayerFacingAngle(playerid,ploca);
CreateStrip(plocx,plocy,plocz,ploca);
return 1;
}
aqui todo o mundo pode criar, entao vamos colcar o if ( condicao para saber se ele й policia )
ficaria assim
pawn Code:
if (strcmp(cmd,"/ctapete",true) == 0)
{
if(SerPolicia(playerid))//aqui voce usa de acordo com o seu gm para saber se й policia pode ser IsACop ou outros..nao sei, ou simplesmente a tecnica do pMembro]==x nao sei...
{
new Float:plocx,Float:plocy,Float:plocz,Float:ploca;
GetPlayerPos(playerid, plocx, plocy, plocz);
GetPlayerFacingAngle(playerid,ploca);
CreateStrip(plocx,plocy,plocz,ploca);
return 1;
}
else
{
SendClientMessage(playerid,-1,"Voce nao й policia");
return 1;
}
}
como й obvio este comando podia ser bastante melhorado...talvez pra voce seja complicado porque й iniciado em pawn, pelo menos parece entao aconselho voce primeiro a aprender e depois melhorar, mas vou deixar o codigo melhorado
pawn Code:
if(!strcmp(cmdtext,"/ctapete",true)) {
if(!SerPolicia(playerid)) {
return SendClientMessage(playerid,-1,"Voce nao й policia"),1;
}
new Float:pos[4];
GetPlayerPos(playerid,pos[0],pos[1],pos[2]);
GetPlayerFacingAngle(playerid,pos[3]);
CreateStrip(pos[0],pos[1],pos[2],pos[3]);
return 1;
}
Re: Pedir, Apenas uma modificaзгo.(quem quiser tapete de prego) -
davi54723 - 12.08.2012
Quote:
Originally Posted by DJloko
Na verdade o que voce queria saber nao explicaram para voce neh? Eu explico entao. Voce quer colocar o criar tapete so para policia. Muito bem, entao logicamente voces sabe que o server vai precisar saber se voce й policia ou nao e para isso vamos usar uma condicao ou seja "if"
este й o seu comando
pawn Code:
if (strcmp(cmd,"/ctapete",true) == 0) { new Float:plocx,Float:plocy,Float:plocz,Float:ploca; GetPlayerPos(playerid, plocx, plocy, plocz); GetPlayerFacingAngle(playerid,ploca); CreateStrip(plocx,plocy,plocz,ploca); return 1; }
aqui todo o mundo pode criar, entao vamos colcar o if ( condicao para saber se ele й policia )
ficaria assim
pawn Code:
if (strcmp(cmd,"/ctapete",true) == 0) { if(SerPolicia(playerid))//aqui voce usa de acordo com o seu gm para saber se й policia pode ser IsACop ou outros..nao sei, ou simplesmente a tecnica do pMembro]==x nao sei... { new Float:plocx,Float:plocy,Float:plocz,Float:ploca; GetPlayerPos(playerid, plocx, plocy, plocz); GetPlayerFacingAngle(playerid,ploca); CreateStrip(plocx,plocy,plocz,ploca); return 1; } else { SendClientMessage(playerid,-1,"Voce nao й policia"); return 1; } }
como й obvio este comando podia ser bastante melhorado...talvez pra voce seja complicado porque й iniciado em pawn, pelo menos parece entao aconselho voce primeiro a aprender e depois melhorar, mas vou deixar o codigo melhorado
pawn Code:
if(!strcmp(cmdtext,"/ctapete",true)) { if(!SerPolicia(playerid)) { return SendClientMessage(playerid,-1,"Voce nao й policia"),1; } new Float:pos[4]; GetPlayerPos(playerid,pos[0],pos[1],pos[2]); GetPlayerFacingAngle(playerid,pos[3]); CreateStrip(pos[0],pos[1],pos[2],pos[3]); return 1; }
|
Vocк respondeu minha pergunta, mбs infelizmente nгo consegui fazer com as informaзхes que me passou.
Poderia substituir e enviar o cуdigo pronto?
Obrigado...