O seguinte script recria o navio pirata de Las Venturas com alguns enfeites e controlado por comandos na caixa de texto do chat.
Sem limites de distância ou filtros de classe para operar o navio.
EN: The following script remakes the pirate ship of Las Venturas with a few ornament and controlled by commands in the chat. No class-filters or distance limits for control.
The followiong lines are used in OnGameModeInit()
{ // NAVIO PIRATA
- comentarios em portugues and comments in english
new Npirata = CreateObject(8493, 365.0259,-2125.4492,17.0, 0,0,0); // 19 nesse caso eh o id de objeto, a o numero desse objeto apos todos os outros, deve ser lembrado para substituir para o especifico do seu script mais aa frente. Essas coordenadas colocam o navio na roda gigante de Santa Maria Beach.
// 19 - nineteen is the objectid, remind to replace by the order in which this object is created. The coordinates are for Santa Maria Beach ferris wheel.
new pirataVelas = CreateObject(9159, 365.0259,-2111.4492,15.0, 0,0,0);
new pirataCordas = CreateObject(8981, 365.0259,-2111.4492,15.0, 0,0,0);
// sails and ropes are created and attached. Feel free to attach anything else you find necessary BELOW this line
//as cordas e as velas sao adicionadas, senta-se aa vontade para colocar o que mais quiser ABAIXO dessa linha
AttachObjectToObject(pirataVelas, Npirata, 0,0,0, 0,0,0, 1);
AttachObjectToObject(pirataCordas, Npirata, -0.6,-6.2,-0.5, 0,0,0, 1);
}
The following lines are used in OnPlayerCommandText()
// COMANDOS DO NAVIO PIRATA
//
// GUINADA DO navio pirata - YAWING
if(strcmp(cmdtext,"/npd")==0) // para a direita - TO THE RIGHT
// a partir desta linha substitua o numero em "(19" pelo numero de objeto do casco no seu script
//from this line all the way to the end of the script replace the number in '(19' by the objectid of your hull: new Npirata
{
new Float:RotX, Float:RotY, Float:RotZ;
new Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
GetObjectRot(19, RotX, RotY, RotZ);
switch(RotZ)
{
case 180.0:
{
MoveObject(19, x-20, y-20, z, 0.9, RotX, RotY, 90);
}
case 270.0:
{
MoveObject(19, x+20, y-20, z, 0.9, RotX, RotY, 180);
}
case 0.0:
{
MoveObject(19, x+20, y+20, z, 0.9, RotX, RotY, 270);
}
case 90.0:
{
MoveObject(19, x-20, y+20, z, 0.9, RotX, RotY, 0);
}
}//switch
SendClientMessageToAll(-1, "proa para estibordo, NP");
//uma mensagem para que todos os jogadores do servidor saibam o que o navio esta fazendo
// this is a message for all players stating what the ship is doing
return 1;
}//direita
if(strcmp(cmdtext,"/npe")==0) // para a esquerda // yawing to the left
{
new Float:RotX, Float:RotY, Float:RotZ;
new Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
GetObjectRot(19, RotX, RotY, RotZ);
switch(RotZ)
{
case 180.0:
{
MoveObject(19, x+20, y-20, z, 0.9, RotX, RotY, 270);
}
case 270.0:
{
MoveObject(19, x+20, y+20, z, 0.9, RotX, RotY, 0);
}
case 0.0:
{
MoveObject(19, x-20, y+20, z, 0.9, RotX, RotY, 90);
}
case 90.0:
{
MoveObject(19, x-20, y+20, z, 0.9, RotX, RotY, 180);
}
}//switch
SendClientMessageToAll(-1, "proa para bombordo, NP");
return 1;
}//esquerda
if(strcmp(cmdtext,"/npf")==0) //comando do navio pirata devagar para a frente - slow ahead
{
new Float:RotX, Float:RotY, Float:RotZ, Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
GetObjectRot(19, RotX, RotY, RotZ);
SendClientMessageToAll(-1, "Devagar a frente, NP");
switch (RotZ) // soma ou subtrai x ou y dependendo da proa do navio pirata
{
case 270.0: // proa em graus
{
MoveObject(19, x+10000, y, z, 2.0);
return 1;
}
case 0.0:
{
MoveObject(19, x, y+10000, z, 2.0);
return 1;
}
case 90.0:
{
MoveObject(19, x-10000, y, z, 2.0);
return 1;
}
case 180.0:
{
MoveObject(19, x, y-10000, z, 2.0);
return 1;
}
}//switch
/////////////////////////////////////
} // IF a frente
if(strcmp(cmdtext,"/npff")==0) //comando do navio pirata para frente - mid speed ahead
{
new Float:RotX, Float:RotY, Float:RotZ, Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
GetObjectRot(19, RotX, RotY, RotZ);
SendClientMessageToAll(-1, "Velocidade mediana a frente, NP");
switch (RotZ) // soma ou subtrai x ou y dependendo da proa do navio1
{
case 270.0: // proa em graus
{
MoveObject(19, x+10000, y, z, 9.0);
return 1;
}
case 0.0:
{
MoveObject(19, x, y+10000, z, 9.0);
return 1;
}
case 90.0:
{
MoveObject(19, x-10000, y, z, 9.0);
return 1;
}
case 180.0:
{
MoveObject(19, x, y-10000, z, 9.0);
return 1;
}
}//switch
/////////////////////////////////////
} // IF a frente
if(strcmp(cmdtext,"/npfff")==0) //comando do navio pirata rapido para frente - full speed ahead
{
new Float:RotX, Float:RotY, Float:RotZ, Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
GetObjectRot(19, RotX, RotY, RotZ);
SendClientMessageToAll(-1, "Toda velocidade a frente, NP");
switch (RotZ) // soma ou subtrai x ou y dependendo da proa do navio1
{
case 270.0: // proa em graus
{
MoveObject(19, x+10000, y, z, 15.0);
return 1;
}
case 0.0:
{
MoveObject(19, x, y+10000, z, 15.0);
return 1;
}
case 90.0:
{
MoveObject(19, x-10000, y, z, 15.0);
return 1;
}
case 180.0:
{
MoveObject(19, x, y-10000, z, 15.0);
return 1;
}
}//switch
} //IF muito a frente
if(strcmp(cmdtext,"/npr")==0) //comando do navio pirata para trás - reverse
{
new Float:RotX, Float:RotY, Float:RotZ, Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
GetObjectRot(19, RotX, RotY, RotZ);
SendClientMessageToAll(-1, "Reversao, NP");
switch (RotZ) // soma ou subtrai x ou y dependendo da proa do navio pirata
{
case 270.0: // proa em graus
{
MoveObject(19, x-10000, y, z, 2.0);
return 1;
}
case 0.0:
{
MoveObject(19, x, y-10000, z, 2.0);
return 1;
}
case 90.0:
{
MoveObject(19, x+10000, y, z, 2.0);
return 1;
}
case 180.0:
{
MoveObject(19, x, y+10000, z, 2.0);
return 1;
}
}//switch
} // IF a ré
if(strcmp(cmdtext,"/npld")==0) //comando do navio pirata derivar a direita - SWAY to the right
{
new Float:RotX, Float:RotY, Float:RotZ, Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
GetObjectRot(19, RotX, RotY, RotZ);
SendClientMessageToAll(-1, "Derivando a estibordo, NP");
switch (RotZ) // soma ou subtrai x ou y dependendo da proa do navio pirata
{
case 270.0: // proa em graus
{
MoveObject(19, x, y-100, z, 1.0);
return 1;
}
case 0.0:
{
MoveObject(19, x+100, y, z, 1.0);
return 1;
}
case 90.0:
{
MoveObject(19, x, y+100, z, 1.0);
return 1;
}
case 180.0:
{
MoveObject(19, x-100, y, z, 1.0);
return 1;
}
}//switch
} // IF a lateral direita
if(strcmp(cmdtext,"/nple")==0) //comando do navio pirata derivar aa esquerda - SWAY to the left
{
new Float:RotX, Float:RotY, Float:RotZ, Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
GetObjectRot(19, RotX, RotY, RotZ);
SendClientMessageToAll(-1, "Derivando a bombordo, NP");
switch (RotZ) // soma ou subtrai x ou y dependendo da proa do navio pirata
{
case 270.0: // proa em graus
{
MoveObject(19, x, y+100, z, 1.0);
return 1;
}
case 0.0:
{
MoveObject(19, x-100, y, z, 1.0);
return 1;
}
case 90.0:
{
MoveObject(19, x, y-100, z, 1.0);
return 1;
}
case 180.0:
{
MoveObject(19, x+100, y, z, 1.0);
return 1;
}
}//switch
} // IF a lateral esquerda
if(strcmp(cmdtext,"/npp")==0) //comando do navio pirata PARAR - STOP
{
new Float:x, Float:y, Float:z;
GetObjectPos(19, x, y, z);
MoveObject(19, x, y, z, 0.5);
SendClientMessageToAll(-1, "Cessando movimento, NP");
return 1;
} // IF PARADO
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
// FIM DOS COMANDOS DO navio pirata
//--------------------------------------------------------------------
//--------------------------------------------------------------------