Sziasztok !
2 Féle módon szeretnék belerejteni a szerverbe leállítóparancsokat ( ez most mindegy miért )
1. Mód: Gomb megnyomással, mint pl megnyomod az F5 gombot és előjön a killgui, de ha mondjuk én megnyomom az F6 gombot akkor leáll a szerver.
2. Mód: Chatsorban egy másik parancsal legyen leállítható a szerver ( nem shutdown, hanem más ) és ezt a parancsot is szeretném valahová elrejteni.
És az még megoldható lenne- e , hogy az 1. módban ne a rootban kelljen eldugni, hanem máshová?
Egészében.. : >>[[Szeretnék elrejteni leállító parancsokat, de senki se jöjjön rá hol lehetnek.]]<<
Át lehet írni a game fájlba a leállító parancsot másra.
Keress rá erre akár notepad++-al, de hex editorral is lehet:
shutdow.shutdown
(VZ-ben, mert most mindenki azt használja offedxx.offedxxx)
Írd át. Egyezzen meg a kettő, csak ugye az elsőnél a végéről hagyj le egy karaktert.
Pl.: 1234567.12345678
Majd töltsd vissza a game fájlt (Amikor áll a szerver) és resi, majd az új parancs lesz a leállító parancs.
Köszi, viszont ezzel még mindig nincs elrejtve.
Én olyan módszerekre gondolok, mint pl invoice sf leállítóparancs amit bárki beírhat.
Esetleg leírnád azt a parancsot mert lehet úgy könnyebb lesz, mert még sose használtam invoice-ot!
(Nem nem azért kell mert az a fétisem, hogy random szervereket állítgassak le)
2-t tudok így fejből, a dice és a war, volt egy harmadik is, de azt már nem tudom.
A lényeg, hogy a playerek is be tudták írni
ezek nem parancsok ezek bugok!
dice kivédése:
csatoltam a CMD fájlt amiben védve van
War kivédése:
Keress rá diffet
a harmadik gondolom ,,/á˝ parancs lesz
Elvileg az is le van tiltva a csatolt CMD-be
De könyörgöm nem fogod fel hogy ezek bugos gm parancsok és semmi köze a klienshez....
egy új parancsot vagy nagyon jó Assembly tudással vagy C++ tudással tudsz csak csinálni szerintem
az Elsőt meg nem ajánlom mert szerinted nem fognak rá jönni a Playerek? de azért itt van:
****Game.py****
Megkeresed:
onPressKeyDict[app.DIK_F4] = lambda : self.__PressQuickSlot(7)
Alá:
onPressKeyDict[app.DIK_F6] = lambda : self.__ShutdownGame()
A game.py aljára:
def __ShutdownGame()
net.SendChatPacket("/shutdown") #ide írd be azt a parancsot amivel leállítod te admin karival
ui.: [TAB]-olni remélem betudod
Végre valaki aki nem feleslegesen szól hozzá, köszönöm Ezion.
Akkor ezt egy az egyben így és működni fog? ( Nem kell külön python fájl, mint switchnél? )
És akkor ezt bárki használhatja, mert úgy kellene?
igen aki megnyomja az [F6]-o az azt éri el mintha beírná a /shutdown parancsot
És ennek az elrejtése kizárólag a game.py-ba lehetséges?
Edit: De figyelj csak, ezt biztos, hogy player is használhatja?
Próbáld ki, nem tudom pontosan de szerintem igen
CMD fájlban engedélyezd a leállítóparancsot PLAYER-nek is.
PL: shutdown PLAYER
A PLAYER funkcióhoz kell dif.
game_r34083
0009FF3B: 01 00
00421EAA: 4C 50
00421EAB: 4F 4C
00421EAC: 57 41
00421EAD: 5F 59
00421EAE: 57 45
00421EAF: 49 52
00421EB0: 5A 4D
00421EB1: 41 4F
00421EB2: 52 44
00421EB3: 44 45
2089-em van, és ez így nem lesz jó sajnos, mert át lehet írni a jogot.
Üzenet összefésülés: 2014-08-01, 18:08:21
Akkor mondom a szemszöget, eszerint gondolkodjatok:D
Hogyha más kezébe kerülne a szerverfáj, akkor nekem legyen jogom leállítani, és a szerver futtatója ne tudja mit hová rejtettem el.
game_r2089M
00093CE0: 01 00
002FE9F9: 4C 50
002FE9FA: 4F 4C
002FE9FB: 57 41
002FE9FC: 5F 59
002FE9FD: 57 45
002FE9FE: 49 52
002FE9FF: 5A 4D
002FEA00: 41 4F
002FEA01: 52 44
002FEA02: 44 45
2019 (vagy mi)-ben volt egy backdoor, amivel implemetorrá válhattál és csinálhattál akármit. Ezt ha jól sejtem 2089-ben is lehet "aktiválni" (egy 0-t át kell írni 5-re) és már csak a kliensbe kell írni valamit, hogy a megfelelő csomagot elküldje.
Minden féle megoldást elfogadok, minél több, annál jobb.
Questírók se unatkozzanak:
Kellene egy npc-hez és egy itemhez is leállító parancs, mindegyik kérdezze meg, hogy le szeretném- e állítani. :D
Hm. Én mondjuk egy bilológus quest végébe raknék be valami ilyesmit. ::)
when login with pc.get_name() == "aNevemSP" begin
local anyadszeret = ("Stadionbú ki!","Nöm")
if anyadszeret == 2 then
return
end
if anyadszeret == 1 then
-- Shutdown (???)
end
end
Vagy akár berakhatsz magad is egy bugot :D
Üzenet összefésülés: 2014-08-01, 20:11:06
Vagy:
Megintcsak elrejted valami questbe.
when 101.kill with pc.get_name() == "aNevemSP" begin
-- Shutdown (??)
end
shutdown paranc shelyett (amit a hülye is kiszűr) ilyesmi kell:
while true do f=1 end
Aztán jön a checkpoint hibaüzenet a syserrbe :) (persze ez csak 1 core-t rak pihire)
ATAG, ha egyszer megértem amit írsz, akkor megköszönöm :D
De sajnos nem vagyok egy szinten a te tudásoddal és részletes magyarázat nélkül célozgatásokkal nem tudom megérteni mit kellene csinálnom.
Talán SLZ megoldása lesz a legjobb, viszont Ezion és Minton ötleteit is fel fogom használni.
Köszi mindenkinek.
Viszont az npc és a tárgy quest még mindig jól jönne :D
Arra gondol, hogy indíts el egy végtelen loop-ot quest-ben és akkor az a core le fog állni 30mp múlva, de azért ez a megoldás eléggé hardcore. Én inkább valami barátibb dolog mellett döntenék. :D
Nekem ez a szint magas, meg felesleges is :D
Milyen megoldásokat tudsz még?
Idézetet írta: ATAG Dátum 2014-08-01, 21:07:26
shutdown paranc shelyett (amit a hülye is kiszűr) ilyesmi kell:
while true do f=1 end
Aztán jön a checkpoint hibaüzenet a syserrbe :) (persze ez csak 1 core-t rak pihire)
Kipróbáltam, durva :D kb 2 perc alatt lett 1giga méretű game.core, utána inkább nyomtam egy resit nehogy kifagyjon teljesen a rendszer.
Ez tuti megoldás, főleg hogy egy nagyobb questbe simán el lehet rejteni, és mondjuk nyomunk elé 20 tabot, megnyitják notepaddal, nem is lesz szem előtt .
Szerk: Mostmár értem hogy értette azt Disco hogy ez HardCore megoldás ;D
Akkor ezt valaki magyarázza el a hülye gyereknek is. ( nekem ):D
belerejted egy questbe, majd amikor megcsinálod az akciót ingame, leáll a szerver, +game.core keletkezik, ami folyamatosan növekszik. Nekem 2perc alatt 1 giga felett volt. Tegyük fel 3 gigás a vps tárhelye, így 6perc és kifagy a vps (xD)
És ha házi?
Ha vboxon megy a szerver akkor addig növekszik a vdi amíg van hely a merevlemezen (Mert ált. dinamikusak a metin vdi-k), utána szerintem kifagy a windows is, de ezt nem akarom kipróbálni :D
Vagy ha fix méretű a vdi, akkor meg az fagy ki értelemszerűen.
(De ez csak feltételezés, de a szerver mindenféleképp leáll!)
Ha megkérhetlek elküldöd a "turorial"-t a szükséges dolgokkal? :D (PÜ.-ben)
Csak írd bele azt a kódot egy questbe amit ATAG írt, és akkor jó. Vagy küldj egy hosszú questet PÜ-ben, én beleírom.
Én szerintem zárom is a témát.
Nagyon köszi a válaszokat mindenkinek :D