Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "a_samp.INC"
- #include "zcmd.INC"
- #define MAX_WOOD (200)//Máximo de Madeiras que você criara para lenhar !
- #define RANGE_WOOD (7.0)//Raio em que o jogador pode lenhar certa madeira !
- #define PRESSING(%0) \
- (newkeys & %0)
- /*******************************************************************************
- Include hLumberjack criada por Jhonatan Silva(Mr.Hardy) em 23/06/2012 ás
- 18:30
- Agradecimentos: Zeex (Pela #include ZCMD criada por ele. ZCMD Fast & Simple Command Processor)
- *******************************************************************************/
- enum wInfo
- {
- bool:ObjectWood,
- Float:HealthWood,
- Text3D:WoodLabel,
- };
- new WoodInfo[MAX_WOOD][wInfo];
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if (PRESSING(KEY_FIRE))
- {
- if(GetPlayerWeapon(playerid) == WEAPON_CHAINSAW)
- {
- for(new woodid = 0; woodid < MAX_WOOD; woodid++) if(IsWoodObject(woodid))
- {
- new Float:obj_PosX,
- Float:obj_PosY,
- Float:obj_PosZ;
- GetObjectPos(woodid, obj_PosX, obj_PosY, obj_PosZ);
- if(IsPlayerInRangeOfPoint(playerid, RANGE_WOOD, obj_PosX, obj_PosY, obj_PosZ)) ProcessWood(woodid);
- }
- }
- }
- return true;
- }
- CMD:wood(playerid, params[])
- {
- #define POS_TO_X 10.0
- #define POS_TO_Y 10.0
- new Float:Calculo_X = 108.3151,
- Float:Calculo_Y = 1727.4938;
- //X
- for(new woodid = 0; woodid < MAX_WOOD/4; woodid++)
- {
- Calculo_X = Calculo_X + POS_TO_X;
- CreateWood(700,Calculo_X,Calculo_Y,17.6406,0.0,0.0,0.0);
- }
- for(new woodid = 0; woodid < MAX_WOOD/4; woodid++)
- {
- Calculo_X = Calculo_X - POS_TO_X;
- CreateWood(700,Calculo_X,Calculo_Y,17.6406,0.0,0.0,0.0);
- }
- //Y
- for(new woodid = 0; woodid < MAX_WOOD/4; woodid++)
- {
- Calculo_Y = Calculo_Y + POS_TO_Y;
- CreateWood(700,Calculo_X,Calculo_Y,17.6406,0.0,0.0,0.0);
- }
- for(new woodid = 0; woodid < MAX_WOOD/4; woodid++)
- {
- Calculo_Y = Calculo_Y - POS_TO_Y;
- CreateWood(700,Calculo_X,Calculo_Y,17.6406,0.0,0.0,0.0);
- }
- return true;
- }
- CMD:irfloresta(playerid, params[])
- {
- SetPlayerPos(playerid, 108.3151,1727.4938,17.6406);
- return true;
- }
- CMD:unwood(playerid, params[])
- {
- for(new woodid = 0; woodid < MAX_WOOD; woodid++)
- {
- DestroyWood(woodid);
- }
- return true;
- }
- CMD:motoserra(playerid, params[])
- {
- GivePlayerWeapon(playerid, WEAPON_CHAINSAW, 1);
- return true;
- }
- stock CreateWood(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float: DrawDistance = 0.0)
- {
- new wood = CreateObject(modelid, X, Y, Z, rX, rY, rZ, DrawDistance);
- WoodInfo[wood][WoodLabel] = Create3DTextLabel("100.0%", 0xFFFFFFFF, X, Y, Z, 10.0, 0, 0);
- WoodInfo[wood][HealthWood] = 100.0;
- WoodInfo[wood][ObjectWood] = true;
- return wood;
- }
- stock DestroyWood(woodid)
- {
- DestroyObject(woodid);
- WoodInfo[woodid][HealthWood] = 100.0;
- WoodInfo[woodid][ObjectWood] = false;
- Delete3DTextLabel(WoodInfo[woodid][WoodLabel]);
- return true;
- }
- stock IsWoodObject(woodid)
- {
- if(IsValidObject(woodid) && WoodInfo[woodid][ObjectWood] == true) return true;
- return false;
- }
- stock ProcessWood(woodid)
- {
- new Float:DamageWood[5] =
- {
- 5.2,
- 7.9,
- 11.7,
- 3.4,
- 9.1,
- };
- WoodInfo[woodid][HealthWood] -= DamageWood[random(5)];
- if(WoodInfo[woodid][HealthWood] < 0.0)
- {
- DestroyWood(woodid);
- }
- return true;
- }
- public OnFilterScriptInit()
- {
- SetTimer("UpdateWoodLabel3D", 1000, true);
- return true;
- }
- forward UpdateWoodLabel3D();
- public UpdateWoodLabel3D()
- {
- for(new woodid = 0; woodid < MAX_WOOD; woodid++) if(IsWoodObject(woodid))
- {
- new string[12];
- format(string, sizeof(string),"%.2f%s", WoodInfo[woodid][HealthWood], "%");
- Update3DTextLabelText(WoodInfo[woodid][WoodLabel], 0xFFFFFFFF, string);
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment