Jump to content

Help-me | Drugs


Dinossauro

Recommended Posts

Hello!

In this script there is a location on the map where players can buy drugs, there are several different lengths (1m. 2. Etc.) and who have to buy special effects, the screen is tremendous, almost can not aim, shaking trees, etc. .. . Only has 1 bug. The screen is mostly black!

Codes:

d_drug.lua

--[[ 
    Para se drogar, diriga-se à respetiva loja,  
    marcada no mapa, compre a quantidade que  
    quiser por um determinado dinheiro, irá  
    ter vários efeitos visuais, esp. que goste! 
]]-- 
  
function restoreWeather() 
    local ww,bb = getWeather() 
    triggerClientEvent(source, "restoreWeather", source, ww) 
end 
  
addEvent("restoreWeather", true) 
addEventHandler("restoreWeather", getRootElement(), restoreWeather) 
  
function takeMoney(howmuch) 
    takePlayerMoney(source,tonumber(howmuch)) 
end 
  
  
addEvent("takeMoney", true) 
addEventHandler("takeMoney", getRootElement(), takeMoney) 
  
  

c_drug.lua

function timeCheck() 
    local hh, mm = getTime()
    if (hh<7) then
        local ww, bb = getWeather()
        if (ww ~= -52123) then
            setWeather(-52123)
        end    
    else
        local ww, bb = getWeather()
        if (ww ~= 190) then
            setWeather(190)
        end
    end
end
 
function fall()
    if (isDrugActive) then
        setPedAnimation(getLocalPlayer(), "ped", "getup_front",1000, false, false)
        setTimer(function() fall() end, math.random(10000, 30000), 1)
        setTimer(function() setControlState ('jump',true) end, 1500, 1)
        setTimer(function() setControlState ('jump',false) end, 2000, 1)
    end
end
 
function fades()
    local rnd = math.random(2,4)
    fadeCamera(false, rnd, math.random(1,255), math.random(1,255), math.random(1,255))
    local xx, yy, zz = getElementPosition(getLocalPlayer())
    setTimer(function() fadeCamera(true, 1) end, rnd*1000/2, 1)
end
 
 
function drugSteer()
    left=false
    right=false
    up=false
    down=false
   
    local keys = getBoundKeys ('vehicle_left')
    if keys then
        tmpLeft = false
        for keyName, state in pairs(keys) do
            if (getKeyState(keyName)) then
                tmpLeft=true
            end
        end
        if tmpLeft then
            left=true
            right=false
        end
    end
 
    local keys = getBoundKeys ('vehicle_right')
    if keys then
        tmpRight = false
        for keyName, state in pairs(keys) do
            if (getKeyState(keyName)) then
                tmpRight=true
            end
        end
        if tmpRight then
            left=false
            right=true
        end
    end
 
    if (left) then
        setControlState('vehicle_left', false)
        setControlState('vehicle_right', true)
    elseif (right) then
        setControlState('vehicle_right', false)
        setControlState('vehicle_left', true)
    else
        setControlState('vehicle_right', false)
        setControlState('vehicle_left', false)
    end
   
   
    local keys = getBoundKeys ('accelerate')
    if keys then
        tmpUp = false
        for keyName, state in pairs(keys) do
            if (getKeyState(keyName)) then
                tmpUp=true
            end
        end
        if tmpUp then
            down=false
            up=true
        end
    end
   
    local keys = getBoundKeys ('brake_reverse')
    if keys then
        tmpDown = false
        for keyName, state in pairs(keys) do
            if (getKeyState(keyName)) then
                tmpDown=true
            end
        end
        if tmpDown then
            down=true
            up=false
        end
    end
   
    if (up) then
        setControlState('accelerate', false)
        setControlState('brake_reverse', true)
    elseif (down) then
        setControlState('brake_reverse', false)
        setControlState('accelerate', true)
    else
        setControlState('brake_reverse', false)
        setControlState('accelerate', false)
    end
end
 
roll = 0
rollGrow = false
function drugCam()
    if (rollGrow) then
        if (roll > 15) then rollGrow = false end
        roll = roll + 1
    else
        if (roll < -15) then rollGrow = true end
        roll = roll -1
    end
    local xx, yy, zz = getElementPosition(getLocalPlayer())
    local rot = getPedRotation(getLocalPlayer())
    local lx = xx + math.sin (math.rad(-rot)) * -10
    local ly = yy + math.cos (math.rad(-rot)) * -10
    setCameraMatrix(lx, ly, zz + 4, xx, yy, zz, roll)
    fxAddBlood(xx, yy, zz, 0, 0, 0, 6)
end
 
function startDrug(time)
    fadeCamera(false)
    setTimer(function(time)
        if (time == nil) then
            time = 10*1000
        else
            if (tonumber(time) < 5000) then
            tiaaame = 10*1000
            end
        end
       
        timerWeather = setTimer(function() timeCheck() end, 1000)
        timerFades = setTimer(function() fades() end, 4000)
        isDrugActive = true
        setTimer(function() fall() end, 1000, 1)
        addEventHandler("onClientRender", getRootElement(), drugSteer)
        addEventHandler("onClientPreRender", getRootElement(), drugCam)
       
        setTimer(function() stopDrug() end, time, 1)
    end, 1500, 1, time)
end
 
function stopDrug()
    fadeCamera(false)
    killTimer(timerFades)
    killTimer(timerWeather)
    isDrugActive = false
    fadeCamera(false)
    removeEventHandler("onClientRender", getRootElement(), drugSteer)
    removeEventHandler("onClientPreRender", getRootElement(), drugCam)
    fadeCamera(false)
    triggerServerEvent("restoreWeather", getLocalPlayer())
    setTimer(function()
        setCameraTarget(getLocalPlayer())
        fadeCamera(true)
    end, 2500, 1)
end
 
function startDrug2()
    startDrug(4)
end
function stopDrug2()
    stopDrug()
end
 
--addCommandHandler("sd", startDrug2)
--addCommandHandler("sds", stopDrug2)
 
function restoreWeather(ww)
    setWeather(ww)
end
 
addEvent("restoreWeather", true)
addEventHandler("restoreWeather", getRootElement(), restoreWeather)
 
 
 
 
 
function missionStart(whichMouse, state, absoluteX, absoluteY)
    local number = getElementData(source,"number") -- this is the button "id"
   
    local money=getPlayerMoney(getLocalPlayer())
    if (number=='a') then
        if (money>=1000) then
            startDrug(1*60*1000)
            triggerServerEvent("takeMoney", getLocalPlayer(),5000)
        else
            outputChatBox("Não tens dinheiro suficiente!", 255, 0, 0)
        end
    elseif (number=='b') then
        if (money>=3000) then
            startDrug(3*60*1000)
            triggerServerEvent("takeMoney", getLocalPlayer(),10000)
        else
            outputChatBox("Não tens dinheiro suficiente!", 255, 0, 0)
        end
    elseif (number=='c') then
        if (money>=5000) then
            startDrug(6*60*1000)
            triggerServerEvent("takeMoney", getLocalPlayer(),15000)
        else
            outputChatBox("Não tens dinheiro suficiente!", 255, 0, 0)
        end
    else
        if (money>=8000) then
            startDrug(10*60*1000)
            triggerServerEvent("takeMoney", getLocalPlayer(),20000)
        else
            outputChatBox("Não tens dinheiro suficiente!", 255, 0, 0)
        end
    end
 
    --outputChatBox("#00ff00\"dfdf\" #ffffff started!",255,255,255,true)
    guiSetVisible (missionSelectWindow1, false)
    showCursor (false)
end
 
 
-- this fires when player hits the marker
function missionSelect(hitPlayer, matchingDimension)
    if (hitPlayer == getLocalPlayer()) and (isPedOnGround (getLocalPlayer()) and not isPedInVehicle(hitPlayer)) then
        if isDrugActive then
            outputChatBox("Tu já estas drogado. Queres morrer?", 255, 0, 0)
        else
            guiSetVisible (missionSelectWindow1, true)
            guiBringToFront (missionSelectWindow1)
            showCursor (true)   
        end
    end
end
 
function guiCancel ()
    guiSetVisible (missionSelectWindow1, false)
   
Link to comment

try

server

--[[ 
    Para se drogar, diriga-se a respetiva loja, 
    marcada no mapa, compre a quantidade que 
    quiser por um determinado dinheiro, ira 
    ter varios efeitos visuais, esp. que goste! 
]]-- 
  
function restoreWeather() 
    local ww,bb = getWeather(); 
    triggerClientEvent("setWeatherForAll",source,ww); 
end 
addEvent("restoreWeather",true) 
addEventHandler("restoreWeather",getRootElement(),restoreWeather) 
  
function takeHisMoney(thePlayer,money) 
    if not thePlayer or not money then return end 
    takePlayerMoney(thePlayer,tonumber(money)); 
end 
addEvent("doTakeMoney",true) 
addEventHandler("doTakeMoney",getRootElement(),takeHisMoney) 

Client

local dButtons = {}; 
local missionSelectWindow = {};
local dUtils = {};
dUtils.roll = 0;
dUtils.rollGrow = false;
 
--[[function startDrug2()
    startDrug(4)
end
function stopDrug2()
    stopDrug()
end
addCommandHandler("sd", startDrug2)
addCommandHandler("sds", stopDrug2)--]]
 
 
-- this fires when player hits the marker
function missionSelect(hitPlayer,matchingDimension)
    if (hitPlayer == localPlayer) and (isPedOnGround (localPlayer) and not isPedInVehicle(hitPlayer)) then
        if isDrugActive then
            outputChatBox("Tu ja estas drogado. Queres morrer?",255,0,0);
        else
            guiSetVisible(missionSelectWindow[1],true);
            guiBringToFront(missionSelectWindow[1]);
            showCursor(true);  
        end
    end
end
 
addEventHandler ("onClientResourceStart", getResourceRootElement(getThisResource()),
    function()
        local missionElements = getElementsByType ("drugstore",getResourceRootElement(getThisResource()));
        num = 0;
        drugMarker = {};
        drugSphere = {};
        drugBlip = {};
        for key,val in ipairs(missionElements) do
            num = num+1;
            local tmpX = getElementData(val,"posX");
            local tmpY = getElementData(val,"posY");
            local tmpZ = getElementData(val,"posZ");
            drugMarker[num] = createMarker(tmpX,tmpY,tmpZ,"cylinder",2,255,34,23);
            drugSphere[num] = createColSphere(tmpX,tmpY,tmpZ,2);
            drugBlip[num] = createBlip(tmpX,tmpY,tmpZ,22,2,0,0,0,255,100,360);
            addEventHandler("onClientColShapeHit",drugSphere[num],missionSelect);
        end
        missionSelectWindow[1] = guiCreateWindow(0.35,0.15,0.3162,0.5717,"Loja de Drogas",true);
        guiWindowSetSizable(missionSelectWindow[1],false);
        dButtons[1] = guiCreateButton(0.08,0.20,0.84,0.1,"Droga Leve [1 min-$1000]",true,missionSelectWindow[1]);
        dButtons[2] = guiCreateButton(0.08,0.35,0.84,0.1,"Droga Media [3 mins-$3000]",true,missionSelectWindow[1]);
        dButtons[3] = guiCreateButton(0.08,0.50,0.84,0.1,"Droga Pesada [6 mins-$5000]",true,missionSelectWindow[1]);
        dButtons[4] = guiCreateButton(0.08,0.65,0.84,0.1,"Droga Excessiva [10mins-$8000]",true,missionSelectWindow[1]);
        dButtons[5]  = guiCreateButton(0.08,0.90,0.84,0.1,"Sair",true,missionSelectWindow[1]);
        missionSelect_Label1 = guiCreateLabel(0.08,0.1,0.84,0.1,"Selecionar Droga",true,missionSelectWindow[1]);
        guiLabelSetVerticalAlign(missionSelect_Label1,"top");
        guiLabelSetHorizontalAlign(missionSelect_Label1,"center",false);
        guiSetVisible (missionSelectWindow[1], false);
        addEventHandler ("onClientGUIClick",getResourceRootElement(getThisResource()),onGUIClick);
    end
)
 
function onGUIClick(button,state)
    local money = getPlayerMoney();
    if source == dButtons[1] then
        if (money >= 1000) then
            startDrug(1*60*1000);
            triggerServerEvent("doTakeMoney",localPlayer,localPlayer,5000);
        else
            outputChatBox("Nao tens dinheiro suficiente!",255,0,0);
        end
    elseif source == dButtons[2] then
        if (money >= 3000) then
            startDrug(3*60*1000);
            triggerServerEvent("doTakeMoney",localPlayer,localPlayer,10000);
        else
            outputChatBox("Nao tens dinheiro suficiente!",255,0,0);
        end
    elseif source == dButtons[3] then
        if (money >= 5000) then
            startDrug(6*60*1000);
            triggerServerEvent("doTakeMoney",localPlayer,localPlayer,15000);
        else
            outputChatBox("Nao tens dinheiro suficiente!",255,0,0);
        end
    elseif source == dButtons[4] then
        if (money >= 8000) then
            startDrug(10*60*1000);
            triggerServerEvent("doTakeMoney",localPlayer,localPlayer,20000);
        else
            outputChatBox("Nao tens dinheiro suficiente!",255,0,0);
        end
    elseif source == dButtons[5] then
        guiSetVisible(missionSelectWindow[1],false);
        showCursor(false);
    end
    guiSetVisible(missionSelectWindow[1],false);
    showCursor(false);
end
 
function startDrug(time)
    fadeCamera(false,0.0)
    setTimer(
        function(time)
            if (time == nil) then
                time = 10*1000
            else
                if (tonumber(time) < 5000) then
                    tiaaame = 10*1000
                end
            end
            timerWeather = setTimer(function() timeCheck() end, 1000);
            timerFades = setTimer(function() fades() end, 4000);
            isDrugActive = true;
            setTimer(function() fall() end, 1000, 1);
            addEventHandler("onClientRender",getRootElement(),drugSteer);
            addEventHandler("onClientPreRender",getRootElement(),drugCam);
            setTimer(function() stopDrug() end,time,1);
        end, 1500, 1
    );
end
 
function timeCheck()
    local hh,mm = getTime();
    if (hh <7 ) then
        local ww,bb = getWeather();
        if (ww ~= -52123) then
            setWeather(-52123); -- WHAT THE HELL?
        end    
    else
        local ww,bb = getWeather();
        if (ww ~= 190) then
            setWeather(190);
        end
    end
end
 
function fades()
    local rnd = math.random(2,4);
    fadeCamera(false,rnd,math.random(1,255),math.random(1,255),math.random(1,255));
    local xx,yy,zz = getElementPosition(localPlayer);
    setTimer(function() fadeCamera(true,1) end, rnd*1000/2, 1);
end
 
function fall()
    if (isDrugActive) then
        setPedAnimation(localPlayer,"ped","getup_front",1000,false,false);
        setTimer(function() fall() end, math.random(10000,30000),1);
        setTimer(function() setControlState('jump',true) end,1500,1);
        setTimer(function() setControlState('jump',false) end,2000,1);
    end
end
 
function drugSteer()
    left = false;
    right = false;
    up = false;
    down = false;
    local keys = getBoundKeys ('vehicle_left');
    if keys then
        tmpLeft = false;
        for keyName, state in pairs(keys) do
            if (getKeyState(keyName)) then
                tmpLeft = true;
            end
        end
        if tmpLeft then
            left = true;
            right = false;
        end
    end
    local keys = getBoundKeys ('vehicle_right');
    if keys then
        tmpRight = false;
        for keyName, state in pairs(keys) do
            if (getKeyState(keyName)) then
                tmpRight = true;
            end
        end
        if tmpRight then
            left = false;
            right = true;
        end
    end
    if (left) then
        setControlState('vehicle_left',false);
        setControlState('vehicle_right',true);
    elseif (right) then
        setControlState('vehicle_right',false);
        setControlState('vehicle_left',true);
    else
        setControlState('vehicle_right',false);
        setControlState('vehicle_left',false);
    end
    local keys = getBoundKeys ('accelerate');
    if keys then
        tmpUp = false
        for keyName, state in pairs(keys) do
            if (getKeyState(keyName)) then
                tmpUp = true;
            end
        end
        if tmpUp then
            down = false;
            up = true;
        end
    end
    local keys = getBoundKeys ('brake_reverse');
    if keys then
        tmpDown = false
        for keyName, state in pairs(keys) do
            if (getKeyState(keyName)) then
                tmpDown = true;
            end
        end
        if tmpDown then
            down = true;
            up = false;
        end
    end
    if (up) then
        setControlState('accelerate',false);
        setControlState('brake_reverse',true);
    elseif (down) then
        setControlState('brake_reverse',false);
        setControlState('accelerate',true);
    else
        setControlState('brake_reverse',false);
        setControlState('accelerate',false);
    end
end
 
function drugCam()
    if (dUtils.rollGrow) then
        if (dUtils.roll > 15) then dUtils.rollGrow = false; end
        dUtils.roll = dUtils.roll + 1;
    else
        if (dUtils.roll < -15) then dUtils.rollGrow = true; end
        dUtils.roll = dUtils.roll -1;
    end
    local xx,yy,zz = getElementPosition(localPlayer);
    local rot = getPedRotation(localPlayer);
    local lx = xx + math.sin (math.rad(-rot)) * -10;
    local ly = yy + math.cos (math.rad(-rot)) * -10;
    setCameraMatrix(lx,ly,zz + 4,xx,yy,zz,dUtils.roll);
    fxAddBlood(xx,yy,zz,0,0,0,6);
end
 
function stopDrug()
    if isTimer(timerFades) then killTimer(timerFades); end
    if isTimer(timerWeather) then killTimer(timerWeather); end
    isDrugActive = false;
   
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...