Dupla harmatok használata bug fix

Indította endox93, 2018-07-20, 23:49:11

2018-07-20, 23:49:11 Utolsó szerkesztés: 2018-07-21, 00:02:10 Szerző: endox93
Sziasztok,  a téma adott valakinek nincs meg az a fix amivel ki lehet ezt védeni ?
És ez kibővítve Sárkány isten cuccok és Italok harmatokra is igaz mindent lehet duplán használni és meg is adja sajnos.
https://www.youtube.com/watch?v=qObmGblVq0Q
Skype : Derota2

Inventoryra teszel login utáni delayt

Megkérdezhetem, hogy mi történik a videóban pontosan? Nem értek románul, a videó meg nem magyarázza el cselekedetben, hogy mikor mit csinál konkrétan.

Végig kell nézni és megérted. Ez egy régebbi bug. Benyomsz egy harmatot, majd karicserézel, és ha szerencsés vagy és gyors, akkor még egyszer aktiválhatod a már aktív harmatot.
Van egy vegasos shit védelem erre, de azt nem javaslom senkinek.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

2018-07-21, 12:27:11 #4 Utolsó szerkesztés: 2018-07-21, 13:37:50 Szerző: K3zX
Amúgy azzal mi a gond?
Nálam bent van, működik, sose volt még vele gond.

2018-07-21, 18:15:04 #5 Utolsó szerkesztés: 2018-07-21, 21:06:28 Szerző: [VIP]Rin the Exorcist
Nem azt mondtam, hogy nem működik, hanem hogy rossz. Egyébként is. kódjai nagy része fájdalmas.. Itt ha jól emlékszek questflagban tárolja az időt. Könyörgöm...
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

2018-07-21, 19:32:44 #6 Utolsó szerkesztés: 2018-07-21, 19:47:51 Szerző: K3zX
Szerintem korrekt a kódja. (Mindenen lehetne szépíteni persze)
Nem eventflag-be tárolja az időt, hanem questflag-be, tehát mindenkinek külön, ergo nincs ütközés. Rengeteg más dolog is questflagben van tárolva amúgy. Én úgy vagyok vele hogy mivel nincs más publikálva...

#ifdef ENABLE_YMIR_AFFECT_FIX
/*********************************************************************
* date        : 2016.07.19
* file        : char_item.cpp
* author      : VegaS
* description :
A guy from another forum say that:

* ''I need help to correct some potions and other item, what putting on F1, F2, F3 and F4, uses, log out,
* ''enter the game by clicking and gives bug and gets the double effect.''

* I see all people have other protection about this with other method shit in python like a :
* He blocked inventory for open to 5 second to login or you cannot used quickslot on taskbar for 5 second or he change type on item_proto client for cannot put in taskbar etc..or other people make a restriction
* in char_quickslot.cpp in function add, but that is not good is much better for make a timer for that, no for restriction item to put in other zone.
*/
bool CHARACTER::CheckTimeUsed(LPITEM item)
{
switch (item->GetVnum())
{
/****************
* Type = 27 -> ITEM_BLEND (Delete the other case you do not want for check)
*/
case 50821: case 50822: case 50823: case 50824: case 50825: case 50826:

/****************
* SubType = 7 -> USE_ABILITY_UP (Delete the other case you do not want for check)
*/
case 27866: case 27868: case 27870: case 27873: case 39026: case 50093: case 50094:
case 50123: case 50801: case 50802: case 50817: case 50818: case 50819: case 50820:
/****************
* SubType = 8 -> USE_AFFECT (Delete the other case you do not want for check)
*/
case 39010: case 39017: case 39018: case 39019: case 39020: case 39024: case 39025:
case 39031: case 50813: case 50814: case 71014: case 71015: case 71016: case 71017:
case 71027: case 71028: case 71029: case 71030: case 71034: case 71044: case 71045:
case 71101: case 71102: case 71153: case 71154: case 71155: case 71156: case 72025:
case 72026: case 72027: case 72031: case 72032: case 72033: case 72034: case 72035:
case 72036: case 72037: case 72038: case 72039: case 72040: case 72041: case 72042:
case 72046: case 72047: case 72048: case 72312: case 72313: case 72501: case 72502:
case 76003: case 76017: case 76018:

int pGetTime[] = {10}; // Set timer for how you need a long after you login for can use item

int pGetFlag = GetQuestFlag("item.last_time"); // Get questflag where him set from input_login.cpp (Not change)

const char* pGetMessage[] = {"|cFFd0ffcc|H|hMost nem használhatod: |cFFc9ff00|H|h[%s] |cFFd0ffcc|H|hvárj |cFFec03e2|H|h[%u] |cFFd0ffcc|H|hmásodpercet!"}; // Get message when you use time so fast

if (pGetFlag) // Initializate questflag on item
{
if (get_global_time() < pGetFlag + pGetTime[0]) // Initializate to get a + second for questflag
{
ChatPacket(CHAT_TYPE_INFO, pGetMessage[0], item->GetName(), pGetTime[0]); // Get message
return false; // Returns false if you use the item quicker than those seconds
}
}
break;
}
return true;
}
#endif

Hoppsz, elírtam. Ha abban tárolná, akkor már valóban teljesen pocsék lenne.. :D

Én meg úgy vagyok vele, hogy a questflag-nak nem "leltár blokkoló" a neve, nem erre lett kitalálva. Másfelől meg le sem kéne tárolni az időt. Sőt, egy ilyen rendszer esetében még értelme sincs a szerver forrást számításba venni. Egyszerűbb verziónak egy pythonos tiltás is bőven elég, advancednek meg esetleg indító forrásban.
És rögtön nem kell rengeteg felesleges adattal, lekérdezéssel terhelni a szervert. Igaz, hogy nem tízezres nagyságrendekről beszélünk, ahol már számítana is, de ettől még nem lesz korrekt a rendszer.

A kódot illetően meg például nézd meg, fel vannak sorolva az értékek, mintha csak Pisti egyik kódrészletét látnám. De még nála ez rendben is van, viszont a vegas gyerek valami programozó féle, a részéről már ez meglehetősen ciki. Meg egy elemű tömböt használ és hasonlóak? Ó Istenem, mindjárt kikaparom a szememet.... És ez csak egy "rendszere" a sokból...

A részemről túltárgyaltuk a témát.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

2018-07-21, 21:41:53 #8 Utolsó szerkesztés: 2018-07-21, 21:53:38 Szerző: Deangerious
Szeretném felvenni a fonalat...

Szóval ha egy harmatot használunk, és ha gyorsan ki-be lépünk akkor újra használhatjuk ugyan azt a harmatot, amit előbb használtunk (nem veszi el ha már használtuk?) vagy egy másik ugyan olyan típusú harmatot (akkor meg miért nem ellenőrizzük a forrásban, mikor elhasznál egy harmatot, hogy egy olyan harmat már aktív-e?)?



Üzenet összefésülés: 2018-07-21, 21:53:38

UI.: A harmatokat affectkén adja hozzá ugyebár, akkor nem értem, hogy hogyan tudna ráadni még egy ugyan olyan bónuszt (affectet), ha ellenőrzi, hogy aktív-e már egy olyan affect.

2018-07-21, 22:14:20 #9 Utolsó szerkesztés: 2018-07-21, 22:24:08 Szerző: K3zX
Jess, Rin the Exorcist te ezt a Vegast szívből gyűlölöd ;D
Oké, hagyjuk, viszont egy valamire akkor is reagálok, kliens oldali védés még Vegas kódjánál is rosszabb, ami csak kliensoldalt van védve, az nincs is védve. Akármilyen kicsi dologról van szó, egy programozó ekkora bakit nem engedhet meg hogy csak kliensoldalt védje.

Deangerious,
Másik ugyanolyan típusút lehet, és ellenőrizve van.
IdézA harmatokat affectkén adja hozzá ugyebár, akkor nem értem, hogy hogyan tudna ráadni még egy ugyan olyan bónuszt (affectet), ha ellenőrzi, hogy aktív-e már egy olyan affect.
A dolog nagyjából olyan mint az offline shop itemduplikációs bugg.
Gyorsabbnak kell lenned mint ahogy lefut a kód, vagy nem is tudom hogy mondjam másképp :D




Amúgy aki jobban meg tudná írni, én is szívesen venném. Mint mondtam, más fix erre nincs publikálva.

IdézA dolog nagyjából olyan mint az offline shop itemduplikációs bugg.
Gyorsabbnak kell lenned mint ahogy lefut a kód, vagy nem is tudom hogy mondjam másképp

De ez hülyeségnek hangzik, ugyanis maga az item lefuttatása az később történhet meg, mint az affectek adatbázisból betöltése a programba...

Mivel az affectek azok akkor töltődnek be a játékos ch (karakter) osztályába, amikor belépett a játékba, ergó az hamarabb betöltődik, mint hogy itemet használhatna, mivel alapból a ch osztálynak hamarabb kell betöltődnie, hogy itemet tudjunk kezelni abban az osztályban.

Hát a bug mégis jelen van :D
Ahogy mondtam nem tudom jobban leírni, a videót nézd meg párszor.
(Annyit hozzáteszek hogy otthoni szerveren sokkal nehezebb megcsinálni, úgy mint offline shoppal itemet duplikálni is nehezebb, mert általában gyorsabb az otthoni rendszer már a localhost miatt is)

Megkértem egy ismerősömet még a jó előbb és csinált nekem rá fixet. :)
Nem is gondolná az ember h milyen egyszerű ezt fixálni, nem kell az undorító vegasos meg a többi tákolás.

Én még szívesen várom az ötleteket a védelemről viszont úgy gondolom a legjobb az lenne ha indító forrásban lehetne ez valahogy megoldani esetleg valami delay-t adni az inventory megnyitásának vagy valami hasonló
Skype : Derota2

Idézetet írta: [VIP]Rin the Exorcist Dátum 2018-07-21, 21:06:09

A kódot illetően meg például nézd meg, fel vannak sorolva az értékek, mintha csak Pisti egyik kódrészletét látnám.



Én nem tanultam és nem is tanulok programozni, szóval nem kell lenézni a másikat, mert te "programozni tanulsz". Egy olyan kódrészletem volt, ami felsorolás volt, a boss név szín, de most ez hogy jön ide? Vegas-ról van szó nem rólam. Örülnék neki ha nem lennék napi témája a fórum közösségének.


2018-07-29, 09:15:21 #15 Utolsó szerkesztés: 2018-07-29, 14:30:28 Szerző: [VIP]Rin the Exorcist
Ez most nem sértés akart lenni. Neked mint "nem programozónak" ez rendjén is van így, viszont aki az, annak már meglehetősen gáz. Erre utaltam vele.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Máskor az utalásaidból vedd ki a nevem, köszi.

Nehéz rád utalni a neved nélkül. :-X :-\
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"

Lehet csúnya kódot írok, de a lényeg hogy működik, Vegasnak is vannak csúnya kódjai, ami fura lehet másoknak, de mindenkinek más látásmódja van és máshogy jár az agya.
Ymir is használ sok ronda kódot, de sztem nem kell azokat becsmérelni akik próbálkoznak.

Akkor, hogy tovább ne offoljuk a témát, egyezzünk ki abban, hogy ízlések és pofonok. Van aki igényes a kódjára, és van aki igénytelen. Van akinek az számít, hogy effektíven működjön, és van akinek bőven elég az, ha csak éppen eldöcög.
"Tisztelet a kivételnek! Mindig tisztelet a kivételnek!"
"KezdÅ' vagyok, ne nézz le... (:"