Jump to content

Patrick

Moderators
  • Posts

    1,143
  • Joined

  • Last visited

  • Days Won

    42

Everything posted by Patrick

  1. The source of the events is the player that left the server or logout. So, if onPlayerQuit FUNCTION triggered by onPlayerLogout or onPlayerQuit EVENT, the source exists and it is the player's element. BUT if you call the onPlayerQuit FUNCTION with the timer, the source doesn't exists. Solutions: 1) Remove the setTimer. 2) Or modify the script, like this: function savePlayerAccount() -- rename the function, because it's less misleading local playeraccount = getPlayerAccount(source) if (playeraccount) then local x,y,z = getElementPosition (source) local HijackExp = getElementData (source, "hiExp" ) local health = getElementHealth (source) local armor = getPedArmor (source) local storeRobExp = getElementData (source, "srExp" ) local CriminalExp = getElementData (source, "CriminalExp" ) local married = getElementData (source, "married" ) local CopKillingExp = getElementData (source, "cExp" ) local walkstyle = getAccountData( source, "walks") local job = exports.CISbusiness:getPlayerJob(source) local w = getElementData(source, "w") local policearrests = getElementData(source, "policeArrests") local arrestpoints = getElementData(source, "arrestPoints") local arrestkills = getElementData(source, "arrestsKills") local sweepam = getElementData(source, "sweeps") local farmam = getElementData(source, "farmer_bails") local taxiam = getElementData(source, "taxi_dropoff") local limoam = getElementData(source, "limo_dropoff") local busam = getElementData(source, "busdriver_progress") local fisham = getElementData(source, "fish_sales") local wasteam = getElementData(source, "rubbish_collections") local pizzaam = getElementData(source, "delivered_pizzas") local ironam = getElementData(source, "iron") local ironlifeam = getElementData(source, "lifetimeiron") local turftakenam = getElementData(source, "turfTaken") local bagtakenam = getElementData(source, "bagtaken") local oil = getElementData(source, "oil") local EX = getElementData(source, "explosive") local EP = getElementData(source, "engineparts") local Ch = getElementData(source, "chemicals") local gold = getElementData(source, "gold") local pin = getElementData(source, "ATMPW") local r,g,b = getPlayerNametagColor(source) setAccountData (playeraccount, "pin", pin) setAccountData (playeraccount, "TagR", r) setAccountData (playeraccount, "TagG", g) setAccountData (playeraccount, "TagB", b) setAccountData (playeraccount, "chemicals", Ch) setAccountData (playeraccount, "gold", gold) setAccountData (playeraccount, "EX", EX) setAccountData (playeraccount, "engineparts", EP) setAccountData (playeraccount, "cis.job", job) setAccountData (playeraccount, "health", health) setAccountData (playeraccount, "armor", armor) setAccountData (playeraccount, "hiExp", HijackExp) setAccountData (playeraccount, "CriminalExp", CriminalExp) setAccountData (playeraccount, "policeArrests", policearrests) setAccountData (playeraccount, "arrestPoints", arrestpoints) setAccountData (playeraccount, "arrestsKills", arrestkills) setAccountData (playeraccount, "married", married) setAccountData (playeraccount, "cExp", CopKillingExp) setAccountData (playeraccount, "srExp", storeRobExp) setAccountData (playeraccount, "w", w) setAccountData (playeraccount, "sweeps", sweepam) setAccountData (playeraccount, "farmer_bails", farmam) setAccountData (playeraccount, "taxi_dropoff", taxiam) setAccountData (playeraccount, "limo_dropoff", limoam) setAccountData (playeraccount, "busdriver_progress", busam) setAccountData (playeraccount, "fish_sales", fisham) setAccountData (playeraccount, "rubbish_collections", wasteam) setAccountData (playeraccount, "delivered_pizzas", pizzaam) setAccountData (playeraccount, "iron", ironam) setAccountData (playeraccount, "lifetimeiron", ironlifeam) setAccountData (playeraccount, "bagtaken", bagtakenam) setAccountData (playeraccount, "turfTaken", turftakenam) setAccountData (playeraccount, "oil", oil) setAccountData (playeraccount, "s.HandMoney", getPlayerMoney ( source ) ) setAccountData (playeraccount, "s.skin", tostring (getPedSkin (source))) setAccountData (playeraccount, "s.x", x) setAccountData (playeraccount, "s.y", y) setAccountData (playeraccount, "s.z", z) setAccountData (playeraccount, "s.int", getElementInterior (source)) setAccountData (playeraccount, "s.dim", getElementDimension (source)) setAccountData (playeraccount, "s.rot", getPedRotation (source)) setAccountData (playeraccount, "s.weap0", getPedWeapon ( source, 0 )) setAccountData (playeraccount, "s.weap1", getPedWeapon ( source, 1 )) setAccountData (playeraccount, "s.weap2", getPedWeapon ( source, 2 )) setAccountData (playeraccount, "s.ammo2", getPedTotalAmmo ( source, 2 )) setAccountData (playeraccount, "s.weap3", getPedWeapon ( source, 3 )) setAccountData (playeraccount, "s.ammo3", getPedTotalAmmo ( source, 3 )) setAccountData (playeraccount, "s.weap4", getPedWeapon ( source, 4 )) setAccountData (playeraccount, "s.ammo4", getPedTotalAmmo ( source, 4 )) setAccountData (playeraccount, "s.weap5", getPedWeapon ( source, 5 )) setAccountData (playeraccount, "s.ammo5", getPedTotalAmmo ( source, 5 )) setAccountData (playeraccount, "s.weap6", getPedWeapon ( source, 6 )) setAccountData (playeraccount, "s.ammo6", getPedTotalAmmo ( source, 6 )) setAccountData (playeraccount, "s.weap7", getPedWeapon ( source, 7 )) setAccountData (playeraccount, "s.ammo7", getPedTotalAmmo ( source, 7 )) setAccountData (playeraccount, "s.weap8", getPedWeapon ( source, 8 )) setAccountData (playeraccount, "s.ammo8", getPedTotalAmmo ( source, 8 )) setAccountData (playeraccount, "s.weap9", getPedWeapon ( source, 9 )) setAccountData (playeraccount, "s.ammo9", getPedTotalAmmo ( source, 9 )) setAccountData (playeraccount, "s.weap10", getPedWeapon ( source, 10 )) setAccountData (playeraccount, "s.weap11", getPedWeapon ( source, 11 )) setAccountData (playeraccount, "s.weap12", getPedWeapon ( source, 12 )) end end addEventHandler("onPlayerLogout", getRootElement(), savePlayerAccount) addEventHandler("onPlayerQuit", getRootElement(), savePlayerAccount) addEvent("savePlayerAccount", true) -- register a custom event what we can call with triggerEvent and pass the source addEventHandler("savePlayerAccount", getRootElement(), savePlayerAccount) setTimer(function() for _, player in ipairs(getElementsByType("player")) do -- loop all online players and call savePlayerAccount function triggerEvent("savePlayerAccount", player) end end, 3000, 0)
  2. Something else is doing it.
  3. Server side load before client side. You need to wait, until client side load. outputChatBox("Test") -- good addEvent("trig1", true) addEventHandler("trig1", root, function() outputChatBox("trig111") end) addEventHandler("onClientResourceStart", resourceRoot, function() triggerServerEvent("onClientSideStarted", resourceRoot) end) addEvent("onClientSideStarted", true) addEventHandler("onClientSideStarted", resourceRoot, function() triggerClientEvent(root, "trig1", root, var1) end)
  4. Maybe, but you need to cancel the event. -- SERVER local pickup = createPickup(...) setElementData(pickup, "unique_id", 1) addEventHandler("onPlayerPickupHit", pickup, function() cancelEvent() -- cancel the event ==> the player can't pickup this "pickup" :D outputChatBox(getElementData(source, "unique_id")) end)
  5. Okay, i see ? In the for loop you define a global marker variable what you overwrite every time until the for loop is running. So, when the loop ends, the marker variable is still alive, whats the last marker's element. In the onMarkerHit event you print the unique_id of this element. You need to replace it to source. function func1() outputChatBox(tostring(getElementData(source, "unique_id"))) end addEventHandler("onMarkerHit", marker, func1, false) btw, nice drawing xd
  6. This part of the code isn't wrong, more info is needed about the script.
  7. I don't quite understand what you want, but: -- CLIENT SIDE -- FIRST RESOURCE function applySetting() setSetting(slcSet, guiGetText(settingsEdit)) triggerEvent("onSettingsChange", localPlayer) -- Trigger the event, whats in a another client sided resource end addEventHandler("onClientGUIClick", apply, applySetting, false) addEventHandler("onClientGUIClick", apply, onApplying, false) -- (?) -- CLIENT SIDE (?) -- SECOND RESOURCE function set() if ( exports.settings:getSetting("setHaze") ) then setHaze( exports.settings:getSetting("setHaze") ) end end addEvent("onSettingsChange", true) -- register our custom event addEventHandler("onSettingsChange", root, set)
  8. https://wiki.multitheftauto.com/wiki/AddEvent
  9. You attached the onPlayerChat event to resourceRoot. A resource can't use chat (like a player ?). You need to change it to root, what contains players. (https://wiki.multitheftauto.com/wiki/Element_tree)
  10. local var1 = "Bobby_Bob" local lengthofvar1 = #var1 -- returns: 9 local positionof_ = var1:find("_") -- returns: 6 local first_part = var1:sub(1, positionof_- 1) -- returns: Bobby local second_part = var1:sub(positionof_ + 1, lengthofvar1) -- returns: Bob
  11. You can't modify it. But the client can for himself in settings.
  12. Replace source of event to root instead of resourceRoot.
  13. The simplest way if you limit the command usage.
  14. Patrick

    help plz

    This "not work" is not a big help dude. - Do you use this code on client side? - Do you test it with Turismo? (id: 451)
  15. Patrick

    help plz

    increase old health with 50 setElementHealth(source, CarHP + 50)
  16. Patrick

    help plz

    The maximum health of the vehicle is 1000, not 100, so: -- CLIENT SIDE function fix() local CarHP = getElementHealth(source) -- use as local variable, because you want to use this variable inside this function only if (getElementModel(source) == 451) then if (CarHP < 900) then setElementHealth(source, 1000) end end end addEventHandler("onClientVehicleDamage", root, fix)
  17. Patrick

    Event

    removeEventHandler("onClientRender", root, ATTACHED_FUNCTION)
  18. Wiki: https://wiki.multitheftauto.com/wiki/Slothman/Slothbot Download: https://community.multitheftauto.com/index.php?p=resources&s=details&id=672
  19. Slothbot is the correct answer. Create a ped with slothbot and set bot mode to follow. Or do your own following algorithm with setPedControlState.
  20. https://wiki.multitheftauto.com/wiki/Slothman/Slothbot
  21. It is possible because the event triggered on button press and release. Trigger event only on button release. addEventHandler("onClientClick", root, function(button, state) if button == "left" then -- if clicked with left button if state == "up" then -- if button released -- trigger end end end)
  22. We can't say exactly because we can't see it. But, you can increase load distance with https://wiki.multitheftauto.com/wiki/EngineSetModelLODDistance Or try to disable occlusion with https://wiki.multitheftauto.com/wiki/SetOcclusionsEnabled
  23. It's just Tiny Encryption Algorithm with base64 encode. You need a 'key' to decode it.
×
×
  • Create New...