GTA Közösség - A magyar GTA fórum

Multi Theft Auto (MTA) => MTA: Szerverfejlesztés => Segítségkérés => A témát indította: Lezlike - 2018. Február 24. - 20:25:03

Cím: Táblából törlés
Írta: Lezlike - 2018. Február 24. - 20:25:03
Sziasztok!Az lenne a gondom hogy van egy script ami egy üzenetküldést valósít meg.
 
belerakom a cuccokat így egy táblába pl.:
 

messages[id] = {}
messages[id][\"name\"]=name
messages[id][\"tema\"]=tema
messages[id][\"text\"]=text
messages[id][\"player\"]=player

 
ez meg is van és utana leküldöm minden kliensnek , mert ez szerver oldalon van.
 
A kliens oldaloon aztán
 

for k,v in ipairs(messages) do

 
ciklussal megjeleníttetem dxDrawText es hasonlók segístégével az üzenetet.
 
Ez eddig meg minden oké, te van olyan hogy törlés és amikor pl.: van 6 üzenet egymás alatt és a 4-et kitörlöm így.:
 

--------SZERVER OLDAL-------
for k,v in ipairs(messages) do
   if v[\"name\"]==message[\"name\"] and v[\"tema\"]==message[\"tema\"] and v[\"text\"]==message[\"text\"] then --itt megvizsgálom
      table.remove(messages,k)--ezzel törlöm
      triggerClientEvent(root, \"serveruzitoclients\", root,messages)---leküldöm megint a modosított táblát

 
a kliens oldalon nem mutatja a többi üzenetet csak a első hármat ugye mert a negyediket töröltem és az utánnavalókat sem mutatja és ha a táblába megint valaki ír pl a 7 üzit mar az sem látszik.
 
Előre is köszi a válaszokat
Cím: Táblából törlés
Írta: Max98 - 2018. Március 05. - 22:36:04
Idézetet írta: Lezlike date=1519500303


   
      Sziasztok!Az lenne a gondom hogy van egy script ami egy üzenetküldést valósít meg.
   
   
      belerakom a cuccokat így egy táblába pl.:
   
   

messages[id] = {}
messages[id][\"name\"]=name
messages[id][\"tema\"]=tema
messages[id][\"text\"]=text
messages[id][\"player\"]=player

   
      ez meg is van és utana leküldöm minden kliensnek , mert ez szerver oldalon van.
   
   
      A kliens oldaloon aztán
   
   

for k,v in ipairs(messages) do

   
      ciklussal megjeleníttetem dxDrawText es hasonlók segístégével az üzenetet.
   
   
      Ez eddig meg minden oké, te van olyan hogy törlés és amikor pl.: van 6 üzenet egymás alatt és a 4-et kitörlöm így.:
   
   

--------SZERVER OLDAL-------
for k,v in ipairs(messages) do
   if v[\"name\"]==message[\"name\"] and v[\"tema\"]==message[\"tema\"] and v[\"text\"]==message[\"text\"] then --itt megvizsgálom
      table.remove(messages,k)--ezzel törlöm
      triggerClientEvent(root, \"serveruzitoclients\", root,messages)---leküldöm megint a modosított táblát

   
      a kliens oldalon nem mutatja a többi üzenetet csak a első hármat ugye mert a negyediket töröltem és az utánnavalókat sem mutatja és ha a táblába megint valaki ír pl a 7 üzit mar az sem látszik.
   
   
      Előre is köszi a válaszokat
   


Ne használj table.remove-ot, adj nil értéket a táblában a kívánt loop kulcsnak.
Cím: Táblából törlés
Írta: Lezlike - 2018. Március 09. - 22:52:05
Köszi közben megoldottam, de ha \"nil\"-t tettem akkor is ugyan ez volt a helyzet
Cím: Táblából törlés
Írta: HUMROLI1 - 2018. Március 11. - 10:18:53
Eggyel lejeb rakd a tabel.remove-ot mer így kitörlöd mielőtt átküldené client oldalra.
 
triggerClientEvent(root, \"serveruzitoclients\", root,messages)
 
table.remove(messages,k)
Cím: Táblából törlés
Írta: Lezlike - 2018. Március 16. - 22:24:13
Úgy nem jó mert nekem úgy kell a tábla hogy ki van törölve belőle az az üzenet amit megnéztek