21.05.2011, 13:56
Bem como me estou a iniciar no Pawn, decidi postar o meu primeiro trabalho.
BUGS:
Eu criei isto num GameMode em que estou a trabalhar, passei para FilterScript e tem um pequeno Bug. Os comandos do GameMode nгo funcionam. Mas irei postar na mesma para vocкs me poderem ajudar e ajudar tambйm a quem tem duvidas.
Aceito criticas, e principalmente ajudas no que devo fazer para melhorar e afins.
Cumps
SlinghShot
BUGS:
Eu criei isto num GameMode em que estou a trabalhar, passei para FilterScript e tem um pequeno Bug. Os comandos do GameMode nгo funcionam. Mas irei postar na mesma para vocкs me poderem ajudar e ajudar tambйm a quem tem duvidas.
pawn Код:
#include <a_samp>
//=====[Defines]======
#define SLOT 1
#define FILTERSCRIPT
//=======[Cores]======
#define Amarelo 0xFFFF00AA
#define Azul 0x2641FEAA
#define Vermelho 0xA10000AA
//=====[FORWARDS]=====
forward Tontura(playerid);
forward IsABike(vehicleid);
//======[News's]======
new CintoStatus[MAX_PLAYERS];
new CapaceteStatus[MAX_PLAYERS];
//=====[Defines]======
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n---------------------------------------------------------------");
print(" Cinto de Seguranзa e Capacete Filterscript criado por SlinghShot");
print("-----------------------------------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
if(CintoStatus[playerid] == 0)
{
new Float:VIDA;
GetPlayerHealth(playerid, VIDA);
SetPlayerHealth(playerid, VIDA-20.0);
SetTimer("Tontura",20000,0);
SetPlayerDrunkLevel(playerid, 500000);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/capacete", cmdtext, true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(IsABike(GetPlayerVehicleID(playerid)))
{
if(CapaceteStatus[playerid] == 0)
{
SendClientMessage(playerid, Azul,"Clocas-te o Capacete.");
CapaceteStatus[playerid] = 1;
switch(GetPlayerSkin(playerid))
{
#define SPAO{%0,%1,%2,%3,%4,%5} SetPlayerAttachedObject(playerid, SLOT, 18645, 2, (%0), (%1), (%2), (%3), (%4), (%5));
case 0, 65, 74, 149, 208, 273: SPAO{0.070000, 0.000000, 0.000000, 88.000000, 75.000000, 0.000000}
case 1..6, 8, 14, 16, 22, 27, 29, 33, 41..49, 82..84, 86, 87, 119, 289: SPAO{0.070000, 0.000000, 0.000000, 88.000000, 77.000000, 0.000000}
case 7, 10: SPAO{0.090000, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
case 9: SPAO{0.059999, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
case 11..13: SPAO{0.070000, 0.019999, 0.000000, 88.000000, 90.000000, 0.000000}
case 15: SPAO{0.059999, 0.000000, 0.000000, 88.000000, 82.000000, 0.000000}
case 17..21: SPAO{0.059999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 23..26, 28, 30..32, 34..39, 57, 58, 98, 99, 104..118, 120..131: SPAO{0.079999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 40: SPAO{0.050000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
case 50, 100..103, 148, 150..189, 222: SPAO{0.070000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
case 51..54: SPAO{0.100000, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
case 55, 56, 63, 64, 66..73, 75, 76, 78..81, 133..143, 147, 190..207, 209..219, 221, 247..272, 274..288, 290..293: SPAO{0.070000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 59..62: SPAO{0.079999, 0.029999, 0.000000, 88.000000, 82.000000, 0.000000}
case 77: SPAO{0.059999, 0.019999, 0.000000, 87.000000, 82.000000, 0.000000}
case 85, 88, 89: SPAO{0.070000, 0.039999, 0.000000, 88.000000, 82.000000, 0.000000}
case 90..97: SPAO{0.050000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 132: SPAO{0.000000, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 144..146: SPAO{0.090000, 0.000000, 0.000000, 88.000000, 82.000000, 0.000000}
case 220: SPAO{0.029999, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
case 223, 246: SPAO{0.070000, 0.050000, 0.000000, 88.000000, 82.000000, 0.000000}
case 224..245: SPAO{0.070000, 0.029999, 0.000000, 88.000000, 82.000000, 0.000000}
case 294: SPAO{0.070000, 0.019999, 0.000000, 91.000000, 84.000000, 0.000000}
case 295: SPAO{0.050000, 0.019998, 0.000000, 86.000000, 82.000000, 0.000000}
case 296..298: SPAO{0.064999, 0.009999, 0.000000, 88.000000, 82.000000, 0.000000}
case 299: SPAO{0.064998, 0.019999, 0.000000, 88.000000, 82.000000, 0.000000}
}
}
else if(CapaceteStatus[playerid] == 1)
{
SendClientMessage(playerid,Azul,"Retiras-te o Capacete.");
CapaceteStatus[playerid] = 0;
RemovePlayerAttachedObject(playerid, SLOT);
}
}
}
else
{
SendClientMessage(playerid,Amarelo,"[CW-RP:] Nгo estбs numa mota!");
}
return 1;
}
if (strcmp("/cinto", cmdtext, true) == 0)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(IsABike(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid,Amarelo, "[CW-RP:] Nгo podes por o cinto numa mota. (Digita /capacete)");
return 1;
}
if(CintoStatus[playerid] == 0)
{
SendClientMessage(playerid,Azul,"Clocas-te o Cinto de Seguranзa.");
CintoStatus[playerid] = 1;
}
else if(CintoStatus[playerid] == 1)
{
SendClientMessage(playerid,Azul,"Retiras-te o Cinto de Seguranзa.");
CintoStatus[playerid] = 0;
}
}
else
{
SendClientMessage(playerid,Amarelo,"[CW-RP:] Nгo estбs num carro!");
}
return 1;
}
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(CintoStatus[playerid] == 1)
{
SendClientMessage(playerid,Azul,"Retiras-te o Cinto de Seguranзa.");
CintoStatus[playerid] = 0;
}
if(CapaceteStatus[playerid] == 1)
{
SendClientMessage(playerid,Azul,"Retiras-te o Capacete.");
CapaceteStatus[playerid] = 0;
RemovePlayerAttachedObject(playerid, SLOT);
}
return 1;
}
public IsABike(vehicleid)
{ new model = GetVehicleModel(vehicleid);
if(model == 581 || model == 509 || model == 481 || model == 462 || model == 521 || model == 463 || model == 510 || model == 522 || model == 461 || model == 448 || model == 471 || model == 468 || model == 586)
{
return 1;
}
return 0;
}
#endif
//Fim do meu primeiro FilterScript :D
Cumps
SlinghShot