Szerző Téma: Adminskin  (Megtekintve 793 alkalommal)

Adminskin
« Dátum: 2016. október 22. - 12:55:50 »
0 Show voters
Sziasztok! Kezdő scripter vagyok, és azon gondolkodtam hogy egy privát szerveren megnézem, hogy hogyan lehetne admin-skint adni, a /adminduty parancsra.
Az adminskint megadja, de amikor kilépnék, a 0-s skin adja. Hogyan lehet változókat használni, setPlayerSkinnél?
 
function adminDuty(thePlayer, commandName)
if exports.global:isPlayerAdmin(thePlayer) then
local adminduty = getElementData(thePlayer, \"adminduty\")
local username = getPlayerName(thePlayer)
local adminrang = exports.global:getPlayerAdminTitle(thePlayer)
local playerName = getPlayerName(thePlayer)
local pmid = getElementData(thePlayer, \"playerid\")
local skinadmin = getPlayerSkin(thePlayer)
if (adminduty==0) then
   exports[\'anticheat-system\']:changeProtectedElementDataEx(thePlayer, \"adminduty\", 1)
   exports.global:sendMessageToAdmins(\"\" .. username .. \" szolgálatba lépett.\")
   exports.infobox:showBox(getRootElement(), \"info\", playerName.. \" adminszolgálatba lépett!\\n/pm \"..pmid..\" parancsal írhatsz neki!\")
   outputChatBox(\"#3399FF\".. playerName .. \"#FFFFFF adminszolgálatba lépett!#3399FF /pm #3399FF\"..pmid..\"#FFFFFF parancsal írsz neki!\", getRootElement(), 255, 255, 255,true)
   setPlayerSkin(thePlayer, 299)
elseif (adminduty==1) then
   exports[\'anticheat-system\']:changeProtectedElementDataEx(thePlayer, \"adminduty\", 0)
   exports.infobox:showBox(getRootElement(), \"info\", playerName.. \" kilépett adminszolgálatból!\")
   outputChatBox(\"#3399FF \".. playerName .. \"#FFFFFF kilépett az adminszolgálatból!\", getRootElement(), 255, 255, 255,true)
   setPlayerSkin(thePlayer, \".. skinadmin ..\")
   outputChatBox(\"lefut\")
end
mysql:query_free(\"UPDATE accounts SET adminduty=\" .. mysql:escape_string(getElementData(thePlayer, \"adminduty\")) .. \" WHERE id = \" .. mysql:escape_string(getElementData(thePlayer, \"gameaccountid\")) )
exports.global:updateNametagColor(thePlayer)
end
end
addCommandHandler(\"adminduty\", adminDuty, false, false)
addCommandHandler(\"aduty\", adminDuty, false, false)
addCommandHandler(\"aszoli\", adminDuty, false, false)

 
mi a probléma?
zeroedit...
« Utoljára szerkesztve: 2016. október 22. - 13:36:10 írta Flαsн »

Adminskin
« Válasz #1 Dátum: 2016. október 22. - 16:34:08 »
0 Show voters
\".. skinadmin ..\"

 --> Ezt ne így használd!
pl egy fajta megoldás:
 
local skinadmin = 100

 --> és ezt a skinadmin-t használod fel a második argumentnél.

Dupla hozzászólás automatikusan összefûzve. ( 2016. október 22. - 17:46:41 )

Másik pedig hogy úgy old meg, hogy az aktuális (tehát nem admin) skint mentesd el egy táblába és ha kilép a játékos a szolgálatból vagy lelép a szerverről azt mentse el az sql. Létezik más megoldás is ettől függetlenül. Azért lesz 0 a skin mert összekevered már az egészet. Arra viszont ügyelj, hogy ha client oldalon táblázol, akkor nem lehet sok gondod, ellenben szerver oldali táblában, ne keveredjenek a skinek stb, szóval legyen valamiféle azonosítója ami alapján menti bele és visszafele is ez alapján legyen kérdezve (ez azért clienten se árt, hiszen \"olvashatóbb a táblád\".). :)
« Utoljára szerkesztve: 2016. október 22. - 17:46:41 írta AlexSwamp »

Adminskin
« Válasz #2 Dátum: 2016. október 22. - 19:05:05 »
0 Show voters
Heló. A mysql-en kívül van másik lehetőség?
 
function adminDuty(thePlayer, commandName)
local hackerusername = getPlayerName(thePlayer)
if exports.global:isPlayerAdmin(thePlayer) then
local adminduty = getElementData(thePlayer, \"adminduty\")
local username = getPlayerName(thePlayer)
local adminrang = exports.global:getPlayerAdminTitle(thePlayer)
local playerName = getPlayerName(thePlayer)
local pmid = getElementData(thePlayer, \"playerid\")
local hp = getElementHealth(thePlayer)
if (adminduty==1) then
      exports[\'anticheat-system\']:changeProtectedElementDataEx(thePlayer, \"adminduty\", 0)
   exports.infobox:showBox(getRootElement(), \"info\", playerName.. \" kilépett adminszolgálatból!\")
   outputChatBox(\"#3399FF \".. playerName .. \"#FFFFFF kilépett az adminszolgálatból!\", getRootElement(), 255, 255, 255,true)
   setPlayerSkin(thePlayer, skinesseg)
   outputChatBox(\"hamis, \"..skinesseg..\"igaz\")
   setElementHealth(thePlayer, 100)
elseif (adminduty==0) then
   skinesseg = getPlayerSkin(thePlayer)
   exports[\'anticheat-system\']:changeProtectedElementDataEx(thePlayer, \"adminduty\", 1)
   exports.global:sendMessageToAdmins(\"\" .. username .. \" szolgálatba lépett.\")
   exports.infobox:showBox(getRootElement(), \"info\", playerName.. \" adminszolgálatba lépett!\\n/pm \"..pmid..\" parancsal írhatsz neki!\")
   outputChatBox(\"#3399FF\".. playerName .. \"#FFFFFF adminszolgálatba lépett!#3399FF /pm #3399FF\"..pmid..\"#FFFFFF parancsal írsz neki!\", getRootElement(), 255, 255, 255,true)
   setPlayerSkin(thePlayer, 299)
   setElementHealth(thePlayer, 1000)
   outputChatBox(\"igaz, \"..skinesseg..\"hamis\")
end
mysql:query_free(\"UPDATE accounts SET adminduty=\" .. mysql:escape_string(getElementData(thePlayer, \"adminduty\")) .. \" WHERE id = \" .. mysql:escape_string(getElementData(thePlayer, \"gameaccountid\")) )
exports.global:updateNametagColor(thePlayer)
else
exports.global:sendMessageToAdmins(\"\"..hackerusername..\" megpróbált bedutyzni adminként...\")
end
end
addCommandHandler(\"adminduty\", adminDuty, false, false)
addCommandHandler(\"aduty\", adminDuty, false, false)
addCommandHandler(\"aszoli\", adminDuty, false, false)

 
most ez a jelenlegi, viszont ez nem jó, ugyanis ha x bedutyzik és utána y is, y skinjét menti el xnek is, szóval mindketten ugyanazt a skint kapják.

Adminskin
« Válasz #3 Dátum: 2016. október 22. - 21:59:14 »
0 Show voters
Táblában kell tárolnod az adatait és onnan kikérdezni. :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal