my first tpt element (Nitrogen)

  • xxx70307
    30th Jul 2013 Member 0 Permalink

    Hi guys
    I had made my first element thats Nitrogen(N2)
    so here is the link to the code

    click me to go to the link
     
    I hope you like it! :)

    Any bugs can be reported

    Edited 3 times by xxx70307. Last: 30th Jul 2013
  • mniip
    30th Jul 2013 Developer 0 Permalink
    tpt.parts[i].type = tpt.element('PHOT')
    tpt.set_property("life", 900, i)

    you'er using tpt.parts and tpt.get/set_property in a single block... pick one of those and use

    also, by your code, probabilities are 0.0451579 : 0.0496737 : 0.0546411 : 0.0601052 : 0.0661157 : 0.272727 , and not whatever you're likely to be expecting (seems like you expected 3:1:1:2:1:3 or something)
    Edited 2 times by mniip. Last: 30th Jul 2013
  • xxx70307
    30th Jul 2013 Member 0 Permalink

    Thanks or the reply

    now the probabilities are 1:1:1:1:1:6
      --------------------
    --Made By XXX70307--
    --------------------
    local nit = elements.allocate("MOD", "N2")
    elements.element(elements.MOD_PT_N2, elements.element(tpt.element("HYGN")))
    elements.property(elements.MOD_PT_N2, "Name", "N2")
    elements.property(elements.MOD_PT_N2, "Description", "Nitrogen gas")
    elements.property(elements.MOD_PT_N2, "MenuVisible", 1)
    elements.property(elements.MOD_PT_N2, "MenuSection", 6)
    elements.property(elements.MOD_PT_N2, "Advection", 2.0)
    elements.property(elements.MOD_PT_N2, "AirDrag", 0)
    elements.property(elements.MOD_PT_N2, "AirLoss", 0.99)
    elements.property(elements.MOD_PT_N2, "Loss", 0.3)
    elements.property(elements.MOD_PT_N2, "Collision", -0.10)
    elements.property(elements.MOD_PT_N2, "Gravity", 0)
    elements.property(elements.MOD_PT_N2, "Diffusion", 3)
    elements.property(elements.MOD_PT_N2, "Falldown", 0)
    elements.property(elements.MOD_PT_N2, "Flammable", 0)
    elements.property(elements.MOD_PT_N2, "Explosive", 0)
    elements.property(elements.MOD_PT_N2, "Meltable", 0)
    elements.property(elements.MOD_PT_N2, "Hardness", 0)
    elements.property(elements.MOD_PT_N2, "Weight", 1)
    elements.property(elements.MOD_PT_N2, "HeatConduct", 100.0)
    elements.property(elements.MOD_PT_N2, "State", ST_GAS)
    elements.property(elements.MOD_PT_N2, "LowTemperature", 190.15)
    elements.property(elements.MOD_PT_N2, "LowTemperatureTransition", tpt.element('LN2'))

    local function nit(i, x, y, s, n)
    local element = tpt.get_property("temp", x,y,i)
    local rand =math.random(-1, 1)

    if simulation.pressure(x/4,y/4)>=160 then
    if element >= 9273.15 then
    if math.random(1, 11) == 1 then
    tpt.parts[i].type = tpt.element('PLSM')
    end
    if math.random(1, 11) == 2 then
    tpt.parts[i].type = tpt.element('EXOT')
    end
    if math.random(1, 11) == 3 then
    tpt.set_pressure(x+1, y+1)
    end
    if math.random(1, 11) == 4 then
    tpt.parts[i].type = tpt.element('NEUT')
    tpt.set_property("life", 900, i)
    tpt.set_property("vx", rand, i)
    tpt.set_property("vy", rand, i)
    end
    if math.random(1, 11) == 5 then
    tpt.parts[i].type = tpt.element('PHOT')
    tpt.set_property("life", 900, i)
    tpt.set_property("vx", rand, i)
    tpt.set_property("vy", rand, i)
    end
    if math.random(1, 11) >= 6 then
    tpt.parts[i].type = tpt.element('OXYG')
    end
    end
    end
    end

    tpt.element_func(nit, elements.MOD_PT_N2)
    tpt.eltransition.ln2.tempHighValue = 190.16
    tpt.eltransition.ln2.tempHighType = tpt.element('N2')

    Edited once by xxx70307. Last: 30th Jul 2013
  • mniip
    30th Jul 2013 Developer 0 Permalink
    and they're still not
    1) you need to examine the /same/ random value
    2) you need elseif, otherwise the next test might override previous
  • xxx70307
    30th Jul 2013 Member 0 Permalink

    @mniip (View Post)

     

    I tried as u said but is shows
    "bad argument #1 to 'property' (number expected got nil)"

    This is the correct code:-

    local function nit(i, x, y, s, n)
    local element = tpt.get_property("temp", x,y,i)
    local rand =math.random(-1, 1)

    if simulation.pressure(x/4,y/4)>=160 then
    if element >= 9273.15 then

    if math.random(1, 11) == 1 then
    tpt.parts[i].type = tpt.element('PLSM')

    elseif math.random(1, 11) == 2 then
    tpt.parts[i].type = tpt.element('EXOT')

    elseif math.random(1, 11) == 3 then
    tpt.set_pressure(x+1, y+1)

    elseif math.random(1, 11) == 4 then
    tpt.parts[i].type = tpt.element('NEUT')
    tpt.set_property("life", 900, i)
    tpt.set_property("vx", rand, i)
    tpt.set_property("vy", rand, i)

    elseif math.random(1, 11) == 5 then
    tpt.parts[i].type = tpt.element('PHOT')
    tpt.set_property("life", 900, i)
    tpt.set_property("vx", rand, i)
    tpt.set_property("vy", rand, i)

    else
    tpt.parts[i].type = tpt.element('OXYG')
    end
    end
    end
    end

    Edited 3 times by xxx70307. Last: 30th Jul 2013
  • thepowderguy
    30th Jul 2013 Member 0 Permalink

    "elseif" is actually "else if".


    I was wrong.

    Edited once by thepowderguy. Last: 30th Jul 2013
  • boxmein
    30th Jul 2013 Former Staff 0 Permalink
    @xxx70307 (View Post)
    > local element = tpt.get_property("temp", x,y,i)
    Just wanna point out that it's either get_property("temp", x, y) or get_property("temp", i), not both :)
    Also http://boxmein.x10.mx/tptelements/lua/lua-reference.html#tpt.get_property
    Edited 2 times by boxmein. Last: 30th Jul 2013
  • xxx70307
    30th Jul 2013 Member 0 Permalink

    Actually i learnt lua from other moods like MrSalit0s

    So can anyone help me in this post (View Post)

     

    sorry, it was interfearence from another script.

    Edited 2 times by xxx70307. Last: 30th Jul 2013
  • KOTOM
    30th Sep 2013 Member 0 Permalink

    I think nitrogen must become liquid under pressure

  • NF
    30th Sep 2013 Member 0 Permalink

    @KOTOM (View Post)

     NTRG shall be its name. And it does became a liquid underpressure. A banana dipped in liquid nitrogen can be used to hammer a nail in a block of wood.