[Include] OnObjectShooted - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (
https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (
https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Include] OnObjectShooted (
/showthread.php?tid=356431)
OnObjectShooted -
ipsBruno - 03.07.2012
OnObjectShooted
Como prometido
neste topico segue aqui a include que estou desenvolvendo sobre detectar tiros em um determinado objeto
[ame]http://www.youtube.com/watch?v=8t3SZwa8YF4[/ame]
Modo de uso. Exemplo
Code:
// ---------
new objVAR;
// ------
main() {
objVAR = CreateObject(2587, 128.7418,-85.9495,1.4297, 0.0, 0.0, 96.0);
registerObject(objVAR);
}
// ------
public OnObjectShooted(playerid, objectid) {
if(objVAR == objectid) {
SendClientMessage(playerid,-1, "vocк acertouno objeto");
}
return true;
}
Falta terminar algumas coisas importantes. Como permitir a definicao do tamanho do objeto. Mas basta criar o objeto normalmente e depois registrar ele
registerObject(
objetoid)
Depois cada vez que ele tomar um tiro sera chamado a callback OnObjectShooted com id do jogador e do objeto atirado
-
Codigo da Include
pawn Code:
#define registerObject(%0) \
gObjectsShoot[++gObjectsShooted] = %0
new
gObjectsShooted,
gObjectsShoot[MAX_OBJECTS];
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys & KEY_FIRE || oldkeys & KEY_FIRE )) {
static
Float:x,
Float:y,
Float:z,
objectid;
static
Float:xPos,
Float:yPos,
Float:zPos,
Float:distancia,
Float:aPos;
for(new i; i < gObjectsShooted; i++) {
objectid = gObjectsShoot[i];
GetObjectPos(objectid, x, y, z);
if(IsPlayerInRangeOfPoint(playerid, 200.0, x, y, z)) {
GetPlayerPos(playerid, xPos, yPos, zPos);
GetPlayerFacingAngle(playerid, aPos);
distancia = floatsqroot(floatpower(floatabs(xPos-x), 2) + floatpower(floatabs(yPos-y), 2) + floatpower(floatabs(zPos-z), 2));
xPos += (distancia * floatsin(-aPos, degrees)),
yPos += (distancia * floatcos(-aPos, degrees));
distancia = floatsqroot(floatpower(floatabs(xPos-x), 2) + floatpower(floatabs(yPos-y), 2));
if(1.0 > distancia){
CallLocalFunction("OnObjectShooted", "dd", playerid, objectid);
}
}
}
}
return (funcidx("HOOKKeyStateChange") != -1) ? CallLocalFunction("HOOKKeyStateChange","iii",playerid, newkeys, oldkeys) : 0;
}
#if defined _ALS_OnPlayerKeyStateChange
#undef OnPlayerKeyStateChange
#else
#define _ALS_OnPlayerKeyStateChange
#endif
#define OnPlayerKeyStateChange HOOKKeyStateChange
forward OnObjectShooted(playerid, objectid);
Por Bruno da Silva
Re: OnObjectShooted -
ViictorDaay- - 03.07.2012
Lol , nada pra comentar
/|\
Como sempre postando muitas coisas ъteis espero ser um dia igual a vocк,rs.
Re: OnObjectShooted -
FireCat - 03.07.2012
Parece bom (':
Re: OnObjectShooted -
ipsBruno - 03.07.2012
Valeu ?)
Fire, voce tava banido
Re: OnObjectShooted -
CidadeNovaRP - 03.07.2012
Quote:
Originally Posted by FireCat
Parece bom (':
|
Vocк aqui?
Quanto tempo caramba '-'
Re: OnObjectShooted -
dPlaYer_ - 03.07.2012
Quote:
Originally Posted by CidadeNovaRP
Vocк aqui?
Quanto tempo caramba '-'
|
Ele tem treta com alguns daqui por isso nгo posta =]
-topic
Bom.
Re: OnObjectShooted -
leonardo1434 - 03.07.2012
rsrsrs. ele nгo й bem vindo aqui. vai lб pra бrea americana !!!
@topic: уtimo !
@@: acabei de acorda xD
Re: OnObjectShooted -
FireCat - 07.07.2012
Quote:
Originally Posted by [FeK]DraKiNs
Valeu ?)
Fire, voce tava banido
|
Ya >.< raio do dugi..
Re: OnObjectShooted -
SlashPT - 08.07.2012
Quote:
Originally Posted by FireCat
Ya >.< raio do dugi..
|
Sabes que nгo й o dugi que faz as asneiras... acho que nгo preciso dizer mais nada...
De qualquer maneira bom trabalho...
Re: OnObjectShooted -
FireCat - 08.07.2012
Quote:
Originally Posted by SlashPT
Sabes que nгo й o dugi que faz as asneiras... acho que nгo preciso dizer mais nada...
De qualquer maneira bom trabalho...
|
Nem sei porque й que fui banido, ele nunca poe uma razгo.