Szerző Téma: Táblából törlés  (Megtekintve 1209 alkalommal)

Táblából törlés
« Dátum: 2018. február 24. - 20:25:03 »
0 Show voters
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

Táblából törlés
« Válasz #1 Dátum: 2018. március 05. - 22:36:04 »
0 Show voters
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.

Táblából törlés
« Válasz #2 Dátum: 2018. március 09. - 22:52:05 »
0 Show voters
Köszi közben megoldottam, de ha \"nil\"-t tettem akkor is ugyan ez volt a helyzet

Táblából törlés
« Válasz #3 Dátum: 2018. március 11. - 10:18:53 »
0 Show voters
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)

Táblából törlés
« Válasz #4 Dátum: 2018. március 16. - 22:24:13 »
0 Show voters
Úgy nem jó mert nekem úgy kell a tábla hogy ki van törölve belőle az az üzenet amit megnéztek

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal