Szerző Téma: /setdim /givemoney ALAP parancsok  (Megtekintve 2890 alkalommal)

Nem elérhető KrisT

  • 106
    • Profil megtekintése
/setdim /givemoney ALAP parancsok
« Dátum: 2017. június 12. - 23:15:26 »
0 Show voters
Sziasztok! Az a napokban belekezdtem a Lua programozás tanulásába, azonban most megakadtam egy picit. Bárhogy próbáltam a problémámat megoldani, nem sikerült, így hát fordulok hozzátok.
 
Segítenétek benne, hogy hogyan lenne ez helyes és milyen problémákat vétettem? Ha felmerülhet a kérdés, hogy egy kezdőnek a helyes megoldás kérdéseket hozhat fel, akkor hozzá egy magyarázatot is kérnék 
 
Hibaleírás: Nem működik a script valamiért.
 
/setdim parancs:
 

  1.    

          function setdim(thePlayer, command, playerID,dimID)
       


  2.    

              local elerheto = isPlayerOnline(playerID)
       


  3.    

              local dimID = tonumber (dimID)
       


  4.    

              if (elerheto == true) then
       


  5.    

                  if (dimID >= 0) then
       


  6.    

                          local interiorvaltas = setElementDimension(playerID, dimID)
       


  7.    

                          if (interiorvaltas == true) then
       


  8.    

                              outputChatBox(\"A játékos interiorja sikeresen átírva!\",thePlayer)
       


  9.    

                          else outputChatBox(\"#808080/setdim #C0C0C0[PlayerID] [DimenzióID]\", thePlayer,255,255,0,true)
       


  10.    

                          end
       


  11.    

                  else outputChatBox(\"Az interiorIDnek minimum 0-nak kell lenni!\",thePlayer)
       


  12.    

                  end
       


  13.    

              else outputChatBox(\"Ilyen játékos nincs, vagy nincs bejelentkezve!\",thePlayer)
       


  14.    

              end
       


  15.    

          end
       


  16.    

          addCommandHandler(\"setdim\", setdim)
       


/givemoney parancs:
 

  1.    

          function givemoney(thePlayer, command, playerID, amount)
       


  2.    

              local jatekosID = playerID
       


  3.    

              local amount = tonumber (osszeg)
       


  4.    

              local penzAdas = givePlayerMoney(playerID,osszeg)
       


  5.    

              if (penzAdas == true) then
       


  6.    

                  outputChatBox(\"#FFFFFFSikeresen adtál a(z) #FF0000\"..jatekosID..\" #FFFFFF ID-jű játékosnak #00FF00\" ..amount..\"#FFFFFFforintot!\",player,255,255,0,true)
       


  7.    

                  outputChatBox(\"#FFFFFFAdmin adott neked#00FF00\"..amount..\"#FFFFFFforintot!\",jatekosID,255,255,0,true)
       


  8.    

              else outputChatBox(\"#808080/givemoney #C0C0C0[PlayerID] [Mennyiség]\",player,255,255,0,true)
       


  9.    

              end
       


  10.    

          end
       


  11.    

          addCommandHandler(\"givemoney\",givemoney)
       


/setdim /givemoney ALAP parancsok
« Válasz #1 Dátum: 2017. június 13. - 01:18:02 »
+1 Show voters
milyen hibát ír ki? szerintem használj getElementData -t player ID lekérdezéséhez, since a getPlayerID törölve lett, mást szerintem nem lehet használni, a playerID az alapból boolean lenne, neked mégis stringben van alapból

/setdim /givemoney ALAP parancsok
« Válasz #2 Dátum: 2017. június 13. - 01:31:31 »
0 Show voters

function giveJatekosMoney(jatekos, parancs, celszemely, osszeg)
if not celszemely or not osszeg then
   outputChatBox (\"Hibás szintaxis!\", jatekos)
elseif celszemely and osszeg then
   local celszemely = getPlayerFromPartialName(celszemely)
   givePlayerMoney (celszemely, tonumber(osszeg))
else return nil
end
end
addCommandHandler (\"givemoney\", giveJatekosMoney)


function setJatekosDimenzio(jatekos, parancs, celszemely, ertek)
    if not celszemely or not ertek then
        outputChatBox (\"Hibás szintaxis!\", jatekos)
    elseif celszemely and ertek then
        local celszemely = getPlayerFromPartialName(celszemely)
        setElementDimension (celszemely, tonumber(ertek))
    else return nil
    end
end
addCommandHandler (\"setdim\", setJatekosDimenzio)

 
írd át amúgy amilyenre szeretnéd
« Utoljára szerkesztve: 2017. június 13. - 09:36:26 írta rusztamas »

Nem elérhető Enigma

  • 391
    • Profil megtekintése
/setdim /givemoney ALAP parancsok
« Válasz #3 Dátum: 2017. június 13. - 09:41:24 »
+1 Show voters
Minek bele elseif ág? :D

/setdim /givemoney ALAP parancsok
« Válasz #4 Dátum: 2017. június 13. - 10:07:47 »
0 Show voters
napszúrást kaptam, és hányingerem van, fáj mindenem és fáradt vagyok... :D ezért... fölösleges.

Nem elérhető KrisT

  • 106
    • Profil megtekintése
/setdim /givemoney ALAP parancsok
« Válasz #5 Dátum: 2017. június 13. - 12:20:09 »
0 Show voters
Valamiért nem működik. Hibát kiírja, ha rosszul lett beírva, de a pénzt nem adja ide. Ilyenekkel próbálkoztam
 
/givemoney NEVEM 500 - semmi sem történik
/setdim NEVEM 1 - semmi sem történik :/ ID-kkel is így próbálkoztam, de nothing happened

/setdim /givemoney ALAP parancsok
« Válasz #6 Dátum: 2017. június 13. - 17:06:04 »
0 Show voters
Idézetet írta: rusztamas date=1497310291


   

function giveJatekosMoney(jatekos, parancs, celszemely, osszeg)
if not celszemely or not osszeg then
   outputChatBox (\"Hibás szintaxis!\", jatekos)
elseif celszemely and osszeg then
   local celszemely = getPlayerFromPartialName(celszemely)
   givePlayerMoney (celszemely, tonumber(osszeg))
else return nil
end
end
addCommandHandler (\"givemoney\", giveJatekosMoney)

   

function setJatekosDimenzio(jatekos, parancs, celszemely, ertek)
    if not celszemely or not ertek then
        outputChatBox (\"Hibás szintaxis!\", jatekos)
    elseif celszemely and ertek then
        local celszemely = getPlayerFromPartialName(celszemely)
        setElementDimension (celszemely, tonumber(ertek))
    else return nil
    end
end
addCommandHandler (\"setdim\", setJatekosDimenzio)

   
      írd át amúgy amilyenre szeretnéd
   



If not then return end-t érdemes használni, ahogy tapasztaltam, illetve nem árt ha nem tud a játékos negatív összeget adni sem, illetve az se árt ha mondjuk csak számokat vihet be \"összegnek\".  
 
 
Idézetet írta: krist date=1497349209


   
      Valamiért nem működik. Hibát kiírja, ha rosszul lett beírva, de a pénzt nem adja ide. Ilyenekkel próbálkoztam
   
   
      /givemoney NEVEM 500 - semmi sem történik
      /setdim NEVEM 1 - semmi sem történik :/ ID-kkel is így próbálkoztam, de nothing happened
   



Neved alatt az mta-s neved kell neki, ha jól tudom (már ha nem azt írod be). 

Nem elérhető KrisT

  • 106
    • Profil megtekintése
/setdim /givemoney ALAP parancsok
« Válasz #7 Dátum: 2017. június 13. - 20:18:56 »
0 Show voters
A nevemet írtam, amit az opciókban adok meg, de úgy sem működik. Nem tudom, hogy ID rendszer alapból van e, és 0-tól vagy 1-től kezdődik-e. Ha egyedül vagyok fenn, akkor 0-ás, vagy 1 es az ID-m?  Az if-es részt pedig így gondoltad?
Ui: valamiért nem fut le a parancs, viszont kiírja a hibaüzenetet, hogyha gond van a paraméterekben
 

function giveJatekosMoney(jatekos, parancs, celszemely, osszeg)
if not celszemely or not osszeg then
   outputChatBox (\"Hibás szintaxis!\", jatekos)
elseif celszemely and osszeg then
   local celszemely = getPlayerFromPartialName(celszemely)
   givePlayerMoney (celszemely, tonumber(osszeg))
else return end
end
end
addCommandHandler (\"givemoney\", giveJatekosMoney)

Nem elérhető KrisT

  • 106
    • Profil megtekintése
/setdim /givemoney ALAP parancsok
« Válasz #8 Dátum: 2017. június 13. - 20:26:58 »
0 Show voters
A parancs meghívásakor a szerverlog ezt írja hibaként: 
 
\"hibakod.png\"
 
\"hibasscript.png\"
« Utoljára szerkesztve: 2017. június 13. - 20:29:29 írta krist »

/setdim /givemoney ALAP parancsok
« Válasz #9 Dátum: 2017. június 13. - 20:30:19 »
0 Show voters

function getPlayerFromPartialName(name)
    local name = name and name:gsub(\"#%x%x%x%x%x%x\", \"\"):lower() or nil
    if name then
        for _, player in ipairs(getElementsByType(\"player\")) do
            local name_ = getPlayerName(player):gsub(\"#%x%x%x%x%x%x\", \"\"):lower()
            if name_:find(name, 1, true) then
                return player
            end
        end
    end
end

 
ezt másold be eléjük és menni fog

Nem elérhető KrisT

  • 106
    • Profil megtekintése
/setdim /givemoney ALAP parancsok
« Válasz #10 Dátum: 2017. június 13. - 20:41:06 »
0 Show voters
Köszi, már működik! :) 

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal