Szerző Téma: Item-rendszer  (Megtekintve 602 alkalommal)

Item-rendszer
« Dátum: 2015. Március 05. - 20:28:15 »
0 Show voters
Sziasztok! Lenne egy kis problémám az item rendszerrel. A probléma a következő, a debugscript ezt a hibát írja:
\"error.jpg\"
A script pedig itt lenne:
 

452 function vilagItemekBetoltese( )
453    local betoltesQuery = \"SELECT `index` FROM `vilagitemek` ORDER BY `index` ASC\"
454    local betoltesQueryEredmeny = mysql:query_free( betoltesQuery)
455    if betoltesQueryEredmeny then
456      for sorSzam, sorErtek in ipairs (betoltesQueryEredmeny) do
457         vItemBetoltesre[tonumber(sorErtek[\"index\"])] = true
458      end
459      
460      for id in pairs( vItemBetoltesre ) do
461         local co = coroutine.create(vilagItemBetoltese)
462         coroutine.resume(co, id, true)
463         --table.insert(vItemBetoltesreVarakozok, co)
464      end
465      --setTimer(folytatas, 1000, 4)
466   else
467      outputDebugString( \"[iTEM][VILAG_ITEM] Nem sikerult betolteni a világ item objekteket!\" )
468   end
469 end
470 addEventHandler(\"onResourceStart\", getResourceRootElement(), vilagItemekBetoltese)

Pluszba ha valaki elmagyarázná nekem a for ciklust akkor nagyon megköszönném.

Nem elérhető Feher

  • 123
    • Profil megtekintése
Item-rendszer
« Válasz #1 Dátum: 2015. Március 05. - 22:16:11 »
0 Show voters
Hali,
Az a baj, hogy a letoltesqueryeredmény egy változó de neked az ipairs utáni zárójelbe tábla kell amit ugye így kell definiílni: table = {}.
A for ciklus nagyon egyszerű, de gondolom a te kérdésed most a pairs, ipairs ciklus volt. A pairs ipairs ciklus is forral kezdődik de míg a for ciklusba megadod, hogy hányszor ismétlődjon, a pars-ipairs ciklus annyiszor fog ismétlődni ahány elem van a tabládban ami az ipair/pair szó után áll zárójelben.
Az ipairst akkor kell használni mikor a táblában számokat tárolsz, ha például egy markert vagy egy kocsit tárolsz akkor az pairst kell használni.
Példa:

table = {}
a=0
function fun()
table = getAttachedElements(source)
for i, v in pairs(table) do
outputChatBox(\"yolo\", source)
end
end
addEventHandler(\"onPlayerWasted\", root, fun)

 
Most írtam telefonról lehet, hogy előfordul benne hiba. Ez azt csinálja, hogy mikor egy játékos meghal akkor egy táblába teszi azokat az elementeket amik hozzá vannak csatolva. Aztán ahány element hozzá van csatolva annyiszor kiírja, hogy yolo.
Még pár megjegyzés. A for után van 2 változó az i az azt jelzi, hogy a táblában hanyadik elemnél jár a v pedig maga az elem aminél jár.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal