0.3d sscanf

Indította totar, 2011. november 05. - 08:50:25

Előző téma - Következő téma

totar

Üdvözlök mindenkit!
Megmondaná valaki, hogy kb mikor jön ki az sscanf 0.3d-re?
mert a szerveremen még 0.3c-s sscanf van és buggolnak a parancsok.
tudom, hogy ez a baja, mert már volt ijen amikor 0.3c-röl 0.3c rc5 re áltam át.
Elõre is köszönöm a segítséget!
:)

Zsolesszka

#1
A sscanf plugin akkor lesz frissítve ha 0.3d is ki lesz adva rendesen, mert a jelenlegi verziók azok teszt verziók http://hu.wikipedia.org/wiki/A_szoftverkiad%C3%A1s_%C3%A9letciklusa\" rel=\"external nofollow\">RC (Release candidate) kiadásra jelölt.
Majd ha csak release lesz 0.3d R1 vagy 0.3d R2 (nem lesz benne C jelölés) majd akkor kerül frissítésre a sscanf plugin.
Oka: Mert a memória címek eltolódhatnak ahogy újabb verziók készülnek és ezek a tesztverziók csak pár napig élnek, (addig míg nem jön ki újabb verzió).
Ezért várj a rendes kiadásra samp 0.3d-bõl vagy keresd meg saját magad a memória címeket, a sscanf plugin nyílt forráskódú, de a megtalált memóriacím lehet csak arra a verzióra lesz jó amelyikhez megkerested.
Edit:
0.3d RC7-nél mûködik a 0.3c-hez kiadott verzió, mely javítva lett 03cR5 verzióhoz:
Legalábbis én teszteltem, nálam jó volt.
http://solidfiles.com/d/329c7/\" rel=\"external nofollow\">http://solidfiles.com/d/329c7/

totar

Nekem nemmûködik :D
ugyan olyan bugosak a parancsok :D

Zsolesszka

#3
Idézetet írta: totar date=1320683407\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"13104\" data-ipsquote-contentclass=\"forums_TopicNekem nemmûködik :D
ugyan olyan bugosak a parancsok :D
 
Az már lehet a te hibád.  :D :D
De kiadva a 0.3d RC8 is. Ott már lehet megint nem jó a sscanf.  :-\\
Edit: persze hogy nem.  :D

totar



totar

Már át is áltam a szerómmal :DDDD
Vajon ide melyik sscanf jó, vagy ide is várni kell az újításig?:D

kurta999

\'Egyik se\'
Elõbb le lett írva, hogy miért.
Amúgy Y_Less azt mondta, hogy ez nem konkrétan memória címekre alapszik, hanem struktúrákra és azoknak az offset-jük tolódik el.
De ha nincs igazam, akkor nem mondtam semmit, mert ez nem az erõsségem :angel:

totar

Értem!
na m1
amugy kössz az infót zsoleszka!

Zsolesszka

#9
Várni kell, megnéztem nem megy talán az IsPlayerConnected része megy, de abban se vagyok biztos de a játékos neveket tuti nem találja.
Én meg nem keresgetem a memória címeket, pedig nem nehéz csak idõigényes kicsit. Egyszerû matek csak az a baj hogy az értékek hex számok, és azok számomra nem olyanok hogy ránézek és tudom mennyi az értékük.  :D
@kurta999
De memória címre hivatkozik, mindegy hogy most felépítésre és offset értéknek nevezik :D. Csak kell egy kiindulási pont mert minden szerver indításkor megváltozhat ez a cím (elindult másik program vagy épp leállításra került).
Lehet pont emiatt nem memória címnek nevezik mert minden szerver indításkor megváltozhat. ;)
Röviden van egy indítási cím amit innen nyer ki a sampgdk is ennél a visszahívásnál nyeri ki az adatokat kezdésnek.
 
PLUGIN_EXPORT bool PLUGIN_CALL
Load(void ** ppData)
{
pAMXFunctions = ppData[PLUGIN_DATA_AMX_EXPORTS];
logprintf = (logprintf_t)ppData[PLUGIN_DATA_LOGPRINTF];
GetServer = (GetServer_t)ppData[0xE1];
[/quote]
 Ezen részt majdnem de majdnem úgy lehet tekinteni mint az OnGameModeInit-et vagy OnFilterscriptInit-et szerver indításkor egyszer hívódik meg.
Majd ezt a kinyert címet kell arrébb tolni míg rá nem mutat a tárolt nevekre, adatokra.
 
      g_pServer = (char **)(GetServer() + 8 ) ;
   g_pConnected = *g_pServer + g_iTrueMax * 120 + 8;
   g_pNPCs = *g_pServer + g_iTrueMax * 4;
   g_pNames = *g_pServer + g_iTrueMax * 128 + 8;
[/quote]

totar


kurta999

Kösz a felvilágosítást, így már valamennyivel érhetõbb :)
Amúgy ezt a GetServer-es izét már észrevettem, hogy ebbõl indul ki.
De ha esetleg letudnád írni, hogy mivel vagy hogyan jössz rá, hogy mennyivel kell arrébbtolni azt a címkét, akkor nagyon örülnék :D

totar

Ja de magyarul ne kínaiul :D
És ha netán netán megvan neked a megoldaás akkor rám számíthatol :DD:D
mert én ehez nem értek

kurta999

Én ezt már úgy ahogy kezdem értegetni, majd megpróbálok vele valamit csinálni, csak most egy object crashet jelentettem Kye-nek és tesztelgetem, hogy konkrétan mi a baj.

Zsolesszka

Hát elég nehéz leírni a folyamatot, hogy keresem meg mennyivel kell arrébb vinni az értékeket.
Talán annyit írok hogy cheatengine programot használok abban van Memory Viewer, szóval elindítom a szervert csatlakoztatok rá NPC játékosokat és felmegyek rá én is, ezt csak akkor ha az IsPlayerConnected és az IsPlayerNPC adatai közt keresek különbséget, mivel ha pl.: 5 NPC van a szerveren az 5 csatlakozott játékos 5 NPC így nem lehet különbséget tenni közte mert mindegyik 5. :D
Ha csatlakozok én is akkor 6 Connected players 5 NPC így különbséget lehet tenni.
Viszont mindig játékosnévre keresek rá, mert csatlakozási és NPC adat 1-1 byte játékosonként erre nem lehet keresni. :D csak görgetni lehet a memória adatokban. Így ki lehet szúrni hol van 5 illetve 6 adat egymás után.
Visszatérve a játékosnévre rákeresel valamelyik NPC nevére és a név listában a legelsõ játékos nevének legelsõ karakterének offset értéke lesz a kiindulási értéke a játékosneveknek, ennek azt az értéket kell visszaadnia:
 

logprintf(\" %p GetNames()\", GetNames());

 
Jha igen ha elindítottam a szervert és felmentem rá kilépek ALT+TAB-al és szüneteltetem a szerver futását (pause), vagy csak kattintok rá egyet (Tulajdonságok/Beállítás/Gyors szerkesztés -hez egy pipa).
De nagyon macerás nem is tudom leírni mivel még én se értem teljesen, csak egy kis idõ ráfordítással megtudom találni már.  :D :D