Jump to content

elementdata problem


Sande

Recommended Posts

Posted

Hello, this is part from my level system. The problem is this code isn´t actually do anything xD for somereason, no debug errors. This function have to work like this: Get All players, check does they have needed elementdata if not then set the data. I need some help to get this working because now some players just have an empty hole in scoreboard xD, soo i want there is something like the default details.

  
function setUP ( ) 
    setTimer(makeThisWorking, 100, 0) 
    setTimer(noFalse, 100, 0) 
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), setUP) 
  
function makeThisWorking ( ) 
local players = getElementsByType ( "player" ) 
for theKey,thePlayer in ipairs(players) do 
local rank = getElementData(thePlayer, "Rank") 
local xp = getElementData(thePlayer, "XP") 
local level = getElementData(thePlayer, "Level") 
 if (rank) == false then 
  setElementData(source, "XP", dfX ) 
  setElementData(source, "Rank", dfR ) 
  setElementData(source, "Level", dfL ) 
  setElementData(source, "XPTNR", dfXN ) 
  elseif (xp) == false then 
    setElementData(source, "XP", dfX ) 
    setElementData(source, "Rank", dfR ) 
    setElementData(source, "Level", dfL ) 
    setElementData(source, "XPTNR", dfXN ) 
    elseif (level) == false then 
      setElementData(source, "XP", dfX ) 
      setElementData(source, "Rank", dfR ) 
      setElementData(source, "Level", dfL ) 
      setElementData(source, "XPTNR", dfXN ) 
      end 
          end 
end 
  

560x95_FFFFFF_FF9900_000000_000000.png
Posted

Give this a try

  
function setUP ( ) 
    setTimer(makeThisWorking, 500, 0) 
    setTimer(noFalse, 500, 0) 
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), setUP) 
  
function makeThisWorking ( ) 
local players = getElementsByType ( "player" ) 
for theKey,thePlayer in ipairs(players) do 
local rank = getElementData(thePlayer, "Rank") 
local xp = getElementData(thePlayer, "XP") 
local level = getElementData(thePlayer, "Level") 
 if (rank) == false then 
  setElementData(thePlayer, "XP", dfX ) 
  setElementData(thePlayer, "Rank", dfR ) 
  setElementData(thePlayer, "Level", dfL ) 
  setElementData(thePlayer, "XPTNR", dfXN ) 
  elseif (xp) == false then 
    setElementData(thePlayer, "XP", dfX ) 
    setElementData(thePlayer, "Rank", dfR ) 
    setElementData(thePlayer, "Level", dfL ) 
    setElementData(thePlayer, "XPTNR", dfXN ) 
    elseif (level) == false then 
      setElementData(thePlayer, "XP", dfX ) 
      setElementData(thePlayer, "Rank", dfR ) 
      setElementData(thePlayer, "Level", dfL ) 
      setElementData(thePlayer, "XPTNR", dfXN ) 
      end 
          end 
end 
  

Script Trading Status

Successful Trading : 26

Scam : 0

On Sale : Banking System SQL Based

On Sale : Housing System MySQL Based

Download and Support my new script on Community : http://community.mtasa.com/index.php?p=resources&s=details&id=11686

SQL Based Housing

Posted
Give this a try
  
function setUP ( ) 
    setTimer(makeThisWorking, 500, 0) 
    setTimer(noFalse, 500, 0) 
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), setUP) 
  
function makeThisWorking ( ) 
local players = getElementsByType ( "player" ) 
for theKey,thePlayer in ipairs(players) do 
local rank = getElementData(thePlayer, "Rank") 
local xp = getElementData(thePlayer, "XP") 
local level = getElementData(thePlayer, "Level") 
 if (rank) == false then 
  setElementData(thePlayer, "XP", dfX ) 
  setElementData(thePlayer, "Rank", dfR ) 
  setElementData(thePlayer, "Level", dfL ) 
  setElementData(thePlayer, "XPTNR", dfXN ) 
  elseif (xp) == false then 
    setElementData(thePlayer, "XP", dfX ) 
    setElementData(thePlayer, "Rank", dfR ) 
    setElementData(thePlayer, "Level", dfL ) 
    setElementData(thePlayer, "XPTNR", dfXN ) 
    elseif (level) == false then 
      setElementData(thePlayer, "XP", dfX ) 
      setElementData(thePlayer, "Rank", dfR ) 
      setElementData(thePlayer, "Level", dfL ) 
      setElementData(thePlayer, "XPTNR", dfXN ) 
      end 
          end 
end 
  

thePlaeyr - not defined

noFalse - where is it in the script ?

dfX - not defined ?

dfr - not defined ?

dfL - samething ?

dfXN - samething ?

- New , Kill System

- New, GameMode Intro

- Leve / Exp System

- New nametag showing style

- New , Hud For Players

- Skin Selection from SA-MP

- Money System / Buy Weapons

- Drop Weapons

- New, Flood System

- New , Group Assign

- Gun license For Weapons

- Random Rule System For Money

Posted

Sorry i wasnt see there is missing parts.

  
local dfX = 0 
local dfXN = 50 
local dfL = 1 
local dfR = "Newbie Drifter" 
  
function setUP ( ) 
    setTimer(makeThisWorking, 100, 0) 
    setTimer(noFalse, 100, 0) 
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), setUP) 
  
function makeThisWorking ( ) 
local players = getElementsByType ( "player" ) 
for theKey,thePlayer in ipairs(players) do 
local rank = getElementData(thePlayer, "Rank") 
local xp = getElementData(thePlayer, "XP") 
local level = getElementData(thePlayer, "Level") 
 if (rank) == false then 
  setElementData(source, "XP", dfX ) 
  setElementData(source, "Rank", dfR ) 
  setElementData(source, "Level", dfL ) 
  setElementData(source, "XPTNR", dfXN ) 
  elseif (xp) == false then 
    setElementData(source, "XP", dfX ) 
    setElementData(source, "Rank", dfR ) 
    setElementData(source, "Level", dfL ) 
    setElementData(source, "XPTNR", dfXN ) 
    elseif (level) == false then 
      setElementData(source, "XP", dfX ) 
      setElementData(source, "Rank", dfR ) 
      setElementData(source, "Level", dfL ) 
      setElementData(source, "XPTNR", dfXN ) 
      end 
          end 
end 
  
function noFalse ( ) 
local players = getElementsByType ( "player" ) 
for theKey,thePlayer in ipairs(players) do 
if getElementData(thePlayer, "XP" ) == false or getElementData(thePlayer, "Level" ) == false or getElementData(thePlayer, "Rank" ) == false then 
setElementData(thePlayer, "XP", 0) 
setElementData(thePlayer, "Rank", "Newbie Drifter") 
setElementData(thePlayer, "Level", 1) 
end 
end 
end 
  

560x95_FFFFFF_FF9900_000000_000000.png
Posted

Try This , register then login in F8 after that start the script and type in f8 debugscript 3 to see any erros . .,

local dfX = 0 
local dfXN = 50 
local dfL = 1 
local dfR = "Newbie Drifter" 
  
function setUP ( ) 
    setTimer(makeThisWorking, 100, 0) 
    setTimer(noFalse, 100, 0) 
end 
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), setUP) 
  
function makeThisWorking ( ) 
local players = getElementsByType ( "player" ) 
for theKey,thePlayer in ipairs(players) do 
local rank = getElementData(source, "Rank") 
local xp = getElementData (source, "XP") 
local level = getElementData(source, "Level") 
 if (rank) == false then 
  setElementData(source, "XP", dfX ) 
  setElementData(source, "Rank", dfR ) 
  setElementData(source, "Level", dfL ) 
  setElementData(source, "XPTNR", dfXN ) 
  elseif (xp) == false then 
    setElementData(source, "XP", dfX ) 
    setElementData(source, "Rank", dfR ) 
    setElementData(source, "Level", dfL ) 
    setElementData(source, "XPTNR", dfXN ) 
    elseif (level) == false then 
      setElementData(source, "XP", dfX ) 
      setElementData(source, "Rank", dfR ) 
      setElementData(source, "Level", dfL ) 
      setElementData(source, "XPTNR", dfXN ) 
      end 
          end 
        end 
          addEventHandler('onPlayerLogin', root, makeThisWorking ) 
  
function noFalse ( ) 
local players = getElementsByType ( "player" ) 
for theKey,thePlayer in ipairs(players) do 
if getElementData(source, "XP" ) == false or getElementData(source, "Level" ) == false or getElementData(source, "Rank" ) == false then 
setElementData(source, "XP", 0) 
setElementData(source, "Rank", "Newbie Drifter") 
setElementData(source, "Level", 1) 
end 
end 
end 
addEventHandler('onPlayerLogin', root, noFalse ) 

- New , Kill System

- New, GameMode Intro

- Leve / Exp System

- New nametag showing style

- New , Hud For Players

- Skin Selection from SA-MP

- Money System / Buy Weapons

- Drop Weapons

- New, Flood System

- New , Group Assign

- Gun license For Weapons

- Random Rule System For Money

Posted

Thanks for that. If have now only one problem to get rank up message working i have been trying this:

  
function systemrankup(dataName,oldValue) 
if getElementType(source) ~= "player" then  
    return end 
if dataName == "rank" then 
local rank = getElementData(source, "Rank") 
local level = getElementData(source, "Level") 
outputChatBox("* Congrulations, you rank and level has been raised your rank is now "..tostring(rank).." and your level is "..tostring(level)..".",source,0,255,167) 
end 
end 
addEventHandler("onElementDataChange",getRootElement(),systemrankup) 

The idea is, when elementdata changing and the elementdata what changing is rank then output that message.

560x95_FFFFFF_FF9900_000000_000000.png
Posted

Try This ,

function systemrankup(dataName) 
    if getElementType(source) == 'player' then 
    if getElementData(source, dataName) == 'Rank' and getElementData(source, dataName ) == 'Level' then 
   local rank = getElementData(source, 'Rank') 
   local level = getElementData(source, 'Level') 
  outputChatBox("* Congrulations, you rank and level has been raised your rank is now "..tostring(rank).." and your level is "..tostring(level)..".",source,0,255,167) 
        end 
     end 
  end 
addEventHandler("onElementDataChange",getRootElement(),systemrankup) 

- New , Kill System

- New, GameMode Intro

- Leve / Exp System

- New nametag showing style

- New , Hud For Players

- Skin Selection from SA-MP

- Money System / Buy Weapons

- Drop Weapons

- New, Flood System

- New , Group Assign

- Gun license For Weapons

- Random Rule System For Money

Posted

I guess

if getElementData(source, dataName) == 'Rank' and getElementData(source, dataName ) == 'Level' then 

That ^That would be the problem. As soon as setElementData is fired, it fires onElementDataChange? So how can you check or the dataName = Rank AND Level?

(I mean it gets fired by each code apart. So first for "Rank", and then "Level")

Posted
Max it doesnt working, no debug errors.

is it serverside in meta.xml ?

- New , Kill System

- New, GameMode Intro

- Leve / Exp System

- New nametag showing style

- New , Hud For Players

- Skin Selection from SA-MP

- Money System / Buy Weapons

- Drop Weapons

- New, Flood System

- New , Group Assign

- Gun license For Weapons

- Random Rule System For Money

Posted

Max yes it is serverside. So if that is not possible how i can check the rank ups?

if getElementData(source, dataName) == 'Rank' and getElementData(source, dataName ) == 'Level' then 

560x95_FFFFFF_FF9900_000000_000000.png
Posted
function systemrankup ( dataName ) 
    if ( getElementType ( source ) == 'player' ) then 
        if ( dataName == "Rank" or dataName == "Level" ) then 
            local rank = getElementData ( source, 'Rank' ) 
            local level = getElementData ( source, 'Level' ) 
            outputChatBox ( "* Congrulations, you rank and level has been raised your rank is now ".. tostring ( rank ) .." and your level is ".. tostring ( level ) ..".", source, 0, 255, 167 ) 
        end 
    end 
end 
addEventHandler ( "onElementDataChange", getRootElement(), systemrankup ) 

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

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...