Guest User

Untitled

a guest
Aug 14th, 2016
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 11.36 KB | None | 0 0
  1. -----------------------------------------------------------------------------------------
  2. --
  3. -- main.lua
  4. --
  5. -----------------------------------------------------------------------------------------
  6. -- Your code here
  7. print ("Game started")
  8. crypto = require("crypto")
  9. require("noobhub")
  10. local weapon={"Деревянный меч",1}
  11. local armor={"Одежда",1}
  12. local money="100"
  13. local scene  = display.newGroup()
  14. local playergroup = display.newGroup()
  15. local controls = display.newGroup()
  16. local inventory = display.newGroup()
  17.  
  18. local map = display.newImage (scene,"map1.png",  display.contentCenterX+16, display.contentCenterY+16)
  19. -- local layer2 = display.newImage (map, "layer2.png")
  20. local character = display.newImage (scene, "char.png" ,display.contentCenterX , display.contentCenterY)
  21. local player = display.newImage (scene,"char.png",1000,1000)
  22. local upbutton = display.newImage (controls,"up.png" , 165, 400)
  23. local downbutton = display.newImage (controls,"down.png" , upbutton.x , upbutton.y+64)
  24. local leftbutton = display.newImage (controls,"left.png" , upbutton.x-64 , upbutton.y+64)
  25. local rightbutton = display.newImage (controls,"right.png" , upbutton.x+64 , upbutton.y+64)
  26. local invbutton = display.newImage (controls,"inv.png" , rightbutton.x+64 , rightbutton.y-64)
  27. local atkbutton = display.newImage (controls,"attack.png" , leftbutton.x-64 , rightbutton.y-64)
  28.  
  29. local playerobj={}
  30. local playersid={}
  31.  
  32. local coords = display.newText(controls,"Hello World!", 100, 200, native.systemFont, 16 )
  33. local menu = display.newImage (inventory,"menu.jpg" ,display.contentCenterX , display.contentCenterY)
  34.  
  35. local send = display.newImage (controls,"send.png" ,display.contentCenterX+135, 0)
  36.  
  37. local mycloud = display.newText("", character.x, character.y-25, native.systemFont, 16 )
  38. local hiscloud = display.newText("", player.x, player.y-25, native.systemFont, 16 )
  39. local chatinput = native.newTextField(display.contentCenterX, display.contentCenterY, 250, 25)
  40. local passinput = native.newTextField(display.contentCenterX-25, 64, 250, 25)
  41.  
  42. chatinput.anchorX=0.5
  43. chatinput.anchorY=0.5
  44. chatinput.x = display.contentCenterX-25
  45. chatinput.y=0
  46. chatinput.height=25
  47. local packet={}
  48. local startbutton = display.newImage (inventory,"start.png" , chatinput.x , chatinput.y+128)
  49.  
  50. local nickname=""
  51.  
  52. function sendchat()
  53. notify(chatinput.text)
  54. packet[1]=nickname
  55. packet[2]="chat"
  56. packet[5]=chatinput.text
  57. hub:publish({
  58.         message = {
  59.             action  =  packet,
  60.             timestamp = system.getTimer()
  61.         }
  62.         })
  63. chatinput.text=""
  64. end
  65. send:addEventListener( "tap", sendchat )
  66.  
  67. function reload ()
  68. mycloud.x=character.x
  69. mycloud.y=character.y-25
  70. hiscloud.x=player.x
  71. hiscloud.y=player.y-25
  72.     -- None for now
  73.     if character.x>map.x+1024 then
  74.         map.x=map.x+32
  75.         character.x=map.x+1024-16
  76.         elseif character.y>map.y+1024 then
  77.             map.y=map.y+32
  78.             character.y=map.y+1024-16
  79. elseif character.y<map.y-1024 then
  80.             map.y=map.y-32
  81.             character.y=map.y-1024+16
  82.         elseif character.x<map.x-1024 then
  83.         map.x=map.x-32
  84.         character.x=map.x-1024+16  
  85.         end
  86. coord()
  87. coords.text = map.x.." "..map.y
  88. -- "X: "..coordx.." Y: "..coordy
  89. local packet={}
  90. packet[1]=nickname
  91. packet[2]="move"
  92. packet[3]=map.x-character.x
  93. packet[4]=map.y-character.y
  94. hub:publish({
  95.         message = {
  96.             action  =  packet,
  97.             timestamp = system.getTimer()
  98.         }
  99.         })
  100. checkloot()
  101. end
  102.  
  103. function goup()
  104. map.y=map.y+32
  105. playergroup.y=playergroup.y+32
  106. --[[map.y=map.y+32
  107.     player.y=player.y+32]]--
  108.     reload()
  109.     napr = "up"
  110. end
  111. upbutton:addEventListener( "tap", goup )
  112. function godown()
  113. map.y=map.y-32
  114.     playergroup.y=playergroup.y-32
  115.     reload()
  116.     napr = "down"
  117. end
  118. downbutton:addEventListener( "tap", godown )
  119. function goleft()
  120. map.x=map.x+32
  121.     playergroup.x=playergroup.x+32
  122.     reload()
  123.     napr = "left"
  124. end
  125. leftbutton:addEventListener( "tap", goleft )
  126. function goright()
  127. map.x=map.x-32
  128.     playergroup.x=playergroup.x-32
  129.     reload()
  130.     napr = "right"
  131. end
  132. rightbutton:addEventListener( "tap", goright )
  133. function reader(message)
  134.     print (message.action[1].."  "..message.action[2].."  "..message.action[3].." "..message.action[4])
  135. if message.action[1]~=nickname then
  136. if message.action[2]=="move" then
  137.     for i=1,10 do
  138.         if playersid[i]==message.action[1] then
  139. print (message.action[3].." "..message.action[4])
  140. -- local playerx=-(coordx-message.action[3])*32
  141. -- local playery=-(coordy-message.action[4])*32
  142. playerobj[i].x = map.x+(-message.action[3])
  143. -- display.contentCenterX-playerx
  144. playerobj[i].y = map.y+(-message.action[4])
  145. -- display.contentCenterY-playery
  146. break
  147. end
  148. end
  149. elseif message.action[2]=="chat" then
  150. hiscloud.text=message.action[5]
  151. timer.performWithDelay( 1000, removecloud, 1 )
  152. elseif message.action[2]=="login" then
  153.     for i=1,10 do
  154.         if playersid[i]==nil then
  155.         coord()
  156. playersid[i]=message.action[1]
  157. playerobj[i]=display.newImage (playergroup,"char.png",1000,1000)
  158. playerobj[i].x = map.x+(-message.action[3])
  159. -- display.contentCenterX-playerx
  160. playerobj[i].y = map.y+(-message.action[4])
  161. --[[playerobj[i].x = (map.x-1024)+(message.action[3]*32)
  162. playerobj[i].y = (map.y-1024)+(coordy-message.action[4]*32)
  163. print ("Вошел игрок с id "..playersid[i])]]--
  164. login()
  165. break
  166.         end
  167.     end
  168. end
  169. end
  170. end
  171. function coord()
  172. _G.coordx=-(((map.x-1024)-character.x+16)/32)+1
  173. -- (((map.x-1024-176+32)/32)-1)
  174. -- -(((map.x - character.x)/32)-0.5+32)
  175. -- -(((map.x-1024-176+32)/32)-1)
  176. _G.coordy=-(((map.y-1024)-character.y+16)/32)+1
  177. -- (((map.y-1024-256+48)/32)-1.5)
  178. -- ((map.y - character.y)/32)-0.5
  179. -- -(((map.y-1024-256+32)/32)-1)
  180. end
  181. function start ()
  182. nickname = chatinput.text
  183. passfile= "https://raw.githubusercontent.com/SneakBug8/Ancaria-Online/master/characters/"..nickname.."/password.txt"
  184. network.request(passfile, "GET", passlistener )
  185.     if passinput.text == password then
  186. chatinput.text=""
  187. hub = noobhub.new({ server = "46.4.76.236"; port = 1337; });
  188. hub:subscribe({
  189.     channel = "ancaria";
  190.     callback = reader
  191.     });
  192. login()
  193.     reload()
  194. menu:removeSelf()
  195. startbutton:removeSelf()
  196. -- load
  197. function loaddata()
  198.     passinput:removeSelf()
  199. if nickname=="" then
  200. charstatus="Житель"
  201. else
  202. charfile= "https://raw.githubusercontent.com/SneakBug8/Ancaria-Online/master/characters/"..nickname.."/status.txt"
  203. armor1file = "https://raw.githubusercontent.com/SneakBug8/Ancaria-Online/master/characters/"..nickname.."/armor1.txt"
  204. armor2file = "https://raw.githubusercontent.com/SneakBug8/Ancaria-Online/master/characters/"..nickname.."/armor2.txt"
  205. weapon1file = "https://raw.githubusercontent.com/SneakBug8/Ancaria-Online/master/characters/"..nickname.."/weapon1.txt"
  206. weapon2file = "https://raw.githubusercontent.com/SneakBug8/Ancaria-Online/master/characters/"..nickname.."/weapon2.txt"
  207. moneyfile = "https://raw.githubusercontent.com/SneakBug8/Ancaria-Online/master/characters/"..nickname.."/money.txt"
  208. network.request(charfile, "GET", statuslistener )
  209. network.request(armor1file, "GET", armor1listener )
  210. network.request(armor2file, "GET", armor2listener )
  211. network.request(weapon1file, "GET", weapon1listener )
  212. network.request(weapon2file, "GET", weapon2listener )
  213. network.request(moneyfile, "GET", moneylistener )
  214. end
  215. end
  216. loaddata()
  217. end
  218.     end
  219.     startbutton:addEventListener( "tap",start )
  220.  function login ()
  221.     -- body
  222.  print ("Login")
  223. coord()
  224.     local packet={}
  225. packet[1]=nickname
  226. packet[2]="login"
  227. packet[3]=coordx
  228. packet[4]=coordy
  229. hub:publish({
  230.         message = {
  231.             action  =  packet,
  232.             timestamp = system.getTimer()
  233.         }
  234.         })
  235.  end
  236.     function removecloud()
  237.         -- body
  238.         mycloud.text=nickname
  239.         hiscloud.text=hisnick
  240.     end
  241.  
  242. function showinventory()
  243.     inventory.x=0
  244. invbackground = display.newImage (inventory,"invbackground.png" ,display.contentCenterX , display.contentCenterY)
  245. local status = display.newText(inventory,"Статус: "..charstatus,display.contentCenterX, display.contentCenterY-80-64, native.systemFont, 24)
  246. local stats = display.newText(inventory,"ATK: "..weapon[2].." DEF: "..armor[2],display.contentCenterX, display.contentCenterY-80, native.systemFont, 24)
  247. local weapontext = display.newText(inventory,"Оружие: "..weapon[1].." ATK:"..weapon[2], display.contentCenterX, display.contentCenterY, native.systemFont, 16 )
  248. local armortext = display.newText(inventory,"Броня: "..armor[1].." DEF: "..armor[2], display.contentCenterX , display.contentCenterY+64, native.systemFont, 16 )
  249. local moneytext = display.newText(inventory,"Золото: "..money, display.contentCenterX , display.contentCenterY+128, native.systemFont, 16 )
  250.  
  251. local closeinv = display.newImage (inventory,"closeinv.png" , display.contentWidth-32, 15)
  252.  
  253. function hideinventory()
  254.     -- body
  255. inventory.x=1000
  256. end
  257. closeinv:addEventListener( "tap", hideinventory )
  258. end
  259. invbutton:addEventListener( "tap", showinventory )
  260. function checkloot()
  261.     -- body
  262.     if coordx==15 and coordy==15 then
  263.         addarmor("Доспех",2)
  264.     end
  265. end
  266.  
  267. function addarmor(name, def)
  268.     -- body
  269. armor[1]=name
  270. armor[2]=def
  271. notify("Подобрано: "..armor[1].." DEF: "..armor[2])
  272. end
  273.  
  274. function addweapon(name, atk)
  275.     -- body
  276.     weapon[1]=name
  277.     weapon[2]=atk
  278. end
  279.  
  280. function addmoney(count)
  281.     -- body
  282.     money=money+count
  283. end
  284.  
  285. function notify (text)
  286.     mycloud.text=text
  287.     timer.performWithDelay( 2000, removecloud, 1 )
  288. end
  289.  
  290. function attack()
  291.     -- body
  292. attackanim=nil
  293. if napr == "up" then
  294. _G.attackanim = display.newImage (controls,"attackanim.png" ,character.x,character.y-32)
  295. elseif napr == "down" then
  296. _G.attackanim = display.newImage (controls,"attackanim.png" ,character.x,character.y+32)
  297. elseif napr=="left" then
  298. _G.attackanim = display.newImage (controls,"attackanim.png" ,character.x-32,character.y)
  299. elseif napr=="right" then
  300. _G.attackanim = display.newImage (controls,"attackanim.png" ,character.x+32,character.y)
  301. end
  302. timer.performWithDelay( 1000,destroysword, 1 )
  303. end
  304. atkbutton:addEventListener( "tap", attack )
  305.  
  306. function destroysword()
  307.     attackanim:removeSelf()
  308. end
  309.  
  310. function statuslistener( event )
  311.  
  312.     if ( event.isError ) then
  313.         print( "Network error: ", event.response )
  314.         charstatus="Житель"
  315.     else
  316.         print ( "RESPONSE: " .. event.response )
  317.         charstatus=event.response
  318.         if string.match (charstatus,"404")==nil then
  319.             else
  320.         charstatus="Житель"
  321.     end
  322.     end
  323. end
  324. function armor1listener( event )
  325.  
  326.     if ( event.isError ) then
  327.         print( "Network error: ", event.response )
  328.         charstatus="Житель"
  329.     else
  330. armor[1]=event.response
  331.     end
  332. end
  333. function armor2listener( event )
  334.  
  335.     if ( event.isError ) then
  336.         print( "Network error: ", event.response )
  337.         charstatus="Житель"
  338.     else
  339.         armor[2]=event.response
  340.     end
  341. end
  342. function weapon1listener( event )
  343.  
  344.     if ( event.isError ) then
  345.         print( "Network error: ", event.response )
  346.         charstatus="Житель"
  347.     else
  348.        weapon[1]=event.response
  349.     end
  350. end
  351.  
  352. function weapon2listener( event )
  353.  
  354.     if ( event.isError ) then
  355.         print( "Network error: ", event.response )
  356.         charstatus="Житель"
  357.     else
  358.         weapon[2]=event.response
  359.     end
  360. end
  361.  
  362. function moneylistener( event )
  363.  
  364.     if ( event.isError ) then
  365.         print( "Network error: ", event.response )
  366.         charstatus="Житель"
  367.     else
  368.        money=event.response
  369.     end
  370. end
  371.  
  372. function passlistener( event )
  373.  
  374.     if ( event.isError ) then
  375.         print( "Network error: ", event.response )
  376.         charstatus="Житель"
  377.     else
  378.        password = event.response
  379.     end
  380. end
Advertisement
Add Comment
Please, Sign In to add comment