From 9889acfe7b6ca7e91536a736fa878ee2027622ad Mon Sep 17 00:00:00 2001 From: atticl Date: Wed, 12 Nov 2025 22:00:22 +0100 Subject: [PATCH] Project Init, no html --- client.lua | 40 +++++++++++++++++++++++++++++++++++++ fxmanifest.lua | 18 +++++++++++++++++ html/app.js | 0 html/img/apps/contacts.png | Bin 0 -> 19560 bytes html/img/apps/messages.png | Bin 0 -> 22850 bytes html/index.html | 14 +++++++++++++ html/style.css | 0 server.lua | 20 +++++++++++++++++++ 8 files changed, 92 insertions(+) create mode 100644 client.lua create mode 100644 fxmanifest.lua create mode 100644 html/app.js create mode 100644 html/img/apps/contacts.png create mode 100644 html/img/apps/messages.png create mode 100644 html/index.html create mode 100644 html/style.css create mode 100644 server.lua diff --git a/client.lua b/client.lua new file mode 100644 index 0000000..e62cff3 --- /dev/null +++ b/client.lua @@ -0,0 +1,40 @@ +local phoneOpen = false + +RegisterCommand('togglephone', function() + phoneOpen = not phoneOpen + SetNuiFocus(phoneOpen, phoneOpen) + SendNUIMessage({ action = 'toggle', open = phoneOpen }) +end, false) + +RegisterKeyMapping('togglephone', 'Toggle Phone', 'keyboard', 'M') + +RegisterNUICallback('close', function(data, cb) + phoneOpen = false + SetNuiFocus(false, false) + SendNUIMessage({ action = 'toggle', open = false }) + cb('ok') +end) + +RegisterNUICallback('sendMessage', function(data, cb) + if type(data.message) == 'string' then + TriggerServerEvent('gbcore-phone:sendMessage', data.message) + cb({ stauts = 'sent' }) + else + cb({ status = 'error' }) + end +end) + +RegisterNetEvent('gbcore-phone:receiveMessage') +AddEventHandler('gbcore-phone:receiveMessage', function(sourceId, msg) + SendNUIMessage({ action = 'receiveMessage', from = sourceeId, message = msg }) +end) + +Citizen.CreateThread(function() + while true do + Citizen.Wait(0) + if phoneOpen then + DisableControlAction(0, 1, true) + DisableControlAction(0, 2, true) + end + end +end) \ No newline at end of file diff --git a/fxmanifest.lua b/fxmanifest.lua new file mode 100644 index 0000000..9e46549 --- /dev/null +++ b/fxmanifest.lua @@ -0,0 +1,18 @@ +fx_version 'cerulean' +game 'gta5' + +author 'GB-Core' +description 'Standalone mobile phone' +version '1.0.0' + +ui_page 'html/index.html' + +files { + 'html/index.html', + 'html/style.css', + 'html/app.js', + 'html/img/apps/*' +} + +client_script 'client.lua' +server_script 'server.lua' \ No newline at end of file diff --git a/html/app.js b/html/app.js new file mode 100644 index 0000000..e69de29 diff --git a/html/img/apps/contacts.png b/html/img/apps/contacts.png new file mode 100644 index 0000000000000000000000000000000000000000..1367d3fc580b97f406168960e6b997480e4a401d GIT binary patch literal 19560 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 D^uywl literal 0 HcmV?d00001 diff --git a/html/img/apps/messages.png b/html/img/apps/messages.png new file mode 100644 index 0000000000000000000000000000000000000000..54a3d89b1cc6d5796a893135c829130167ba3447 GIT binary patch literal 22850 zcmXtA1z1#1w7*M-#Daiy3rLD|3rk3+pdgKcbV_0G(hbAG4iZj`pBG7$j{0R%xrk5mx45QG6PF(5n~@aNe3*FW$F%U%AF zJ|6h-$FoL(dwds_C+^_+3G^>ao-^GWd`Rt~Xyl>i{M^IK!p#Qq^77)dbFz20vT(8C zb9Q@?{zr-if|#I3h==;#89Q@68FV%uWcLU4#!hG7_glL$V!a^^L%s=3B$P_g)1IKX zO*LmgDvs58w6WX3y`+Sg!1jP^uj*pK!c7vBE_wqr1>ax%`Bt2{!1&;Y=5ybMV!wus z-z!Ha26x{V{kawhyAHf4D#%n;;d*$!O>6uZi%o!>tVf}ji;NRf+wC|J58}iog-8~MaDcoyKhrA( z^Hk_$-v3{5-4;qnN(2&L1w{Q)jk3}0Wlt2-P*o34UV&{Ee}TjEzK4-UhPMXdHS&cS zabS(lfpaT)MNUR zJ77;a={2SAn0S4nlF!1bSN$QrvG*vHTL!aG#KH|s~4kS~;P*QQ4h~G(xa@WmQYS~c}xUsi(bm%!5 zD`6_b6QaDbW={`&?JTg}K5g3b!RFYr>V-F*V9ZcFQ%UQB)-K0h4{IfwO+su3e}DFEe`0TW{^U$lC6+#J;x^6Vp`FWx zM_qt~i40NNK*DcCvKfzFJIV;9tlr6bHx?!As}U?$lD{OA9VO}XzNNu6*;IJ10;aOK zot`@Qg~unUdjFA%_m}gh4aUb5zCmWgUOwlpnJ9uJ_^v%(tjj|AbE&?+%1rl!q{{3p z*LaT%Ti(x6^~pLwICZY0hlF|T&WV&MHrv8rd4`|`4!>HnjRHTGdrwoi;3TJU#GU_w zeo|&z#0_;i*76x$rIt3SWLjWC=+%S13$8sIY0rt3t%qh!iRJ~Vr1JPS`6&HaauDhY zEaUb}(^gCjU#r|wLxw6Ij&^;m?Kiu6x&BeQ<+dm0KHx;plN1v!UK4`%ZA4yJizjyb zDGiIfo)4{tIaq)ys381^z`ssbY9|~l_3R}J4RX;r!5~jPoR8w=w{8BLL3-qk=o89j zSkz&x6jzK4T<5X%XKK>TaiLkBf9rUig2$ykxtladS`ogRFrhV7d~53sX$`7&J zTI14F_-k*SXJOrqTlEQp{B8KoN@j=V8nr&6IH}&d5-!Dyu}I@6J)OpK(RPpOb9z?c z>#5YfmKEXvIn6ejB;{Wg*(}k@{rhqu{H)b%DWtsp=f&SB)M1#7DxzT-&x@M%1Bdxb z8Yjwzv!L1mv(M(PD?9hDyQOM(B)evtm0Wx8bVpPj?9}BL?LUu z%L{)5D~7yzQhtmYdRgc7ks?EFqE;f>RI|GpKDAi)MgoYPi{jr@n(|F5AoQ647$#{H zt3|KGF)%jC8tT?-!b=$Y&4uy^a$t29qlbcaKg^6N`5v8$0~oOjGt>oS%qk=FQOj`h zwiKgll?}(OO%(kd2 z1VT~qsazdvgm&5yCKf4G!&%!d;l$;O_0hQaM!?d^Ms*dv>)xvUH4lcpgKbXQjkVqY zFla!K%{MIv6+W8Im}Ph7oE^jMoZfPGFWPQi7!q}Oy8br*GSp@%N1u@!!YY==)6bJK zmqQ@1d49o_3wcw@KI1mGdvxynQA zUrh)0IaqR%5x%#u(sPTnNNNU5XTLY{vu%n8QNADUY$Mm-6oO_P5=)@)6 zl!b+c8Xs%M5-6ZvfVIkK*9#}J>h<3aoxNchj!@Y`#m;C77o&W%@mb2a_hQK+PY`f# z87hW!O}v%*jL&Tw&USWV#--BY)LGvq5w-rMP5od)eMk+-^pKFrO^NY0<~7c10Y5{v zD?BuMTQT~SKuIW7Z0{u8-n3V@w0h0tKRg`qD3mD?(Eh_C;$++lof-7J1U&OwwjiI2 zWKAs6Alw`=u{;N0Xndb%WcQ;8XYpTLU;fjGS;)L`w8xe&_z+*FPAX$Z8G)F3(Fx>( zFsJ4k8|+9^<7o(3O1qlseOsJi2X<5E5Np#*lqlBr+sY#$A{t+Y@3$HPk=rZC)3mI8!w7eY1$V26v7|)do%tR=w*@sS=0G zW-5-8QkWUteVf-Q3o}+DyDiWne3-&D>?3fCJA4jHIQ8roeayH_W|vWi?g-@X*fH`W zg?Rx>p!>(UJQWzS(r^t{811hM9|(o3jJi5HPMBEEgCXND9vHIZ&VwN5_}+GbtQiWQpMQpuZ(K|419Jv9!K(M3Sw_DQehpB3Y-IFtm6Eb#@VpeFv(Ws$Qa8=Evu1yOKCL5C(!1+V1>Vlv>=*6v{ z>;nz%!_%Hq{X#>9!eFa))$Ky7l8NtjRxjVYB)K%09ZLX@8`iPLo2Pd?!@}P3Og(F* zC!Ba?BWmzbht{}O-KS-Ad5>%O37Uw#^OD&CDuOrf9Nr&Z@7(<-n=6RnGRLh}UZH-@ z&9U*4FSz)J$r_lEAXJE5Vyh!wlw`!ib?rmU#I;0UWz_;?QXBZ2t}n4115Zr6#ge7= zFFQ+4I~hs(ro?SmUtbmXD3Up!?&;4{{mElEiw#6-;WpnV@;aqBHgLP^;CEJjJY`^E zVKI>3y&pEc5z%*Q9UcP%BS*cGGgdo*@eB6=_#-z?KWK(>zFEi4|geSho4!le~1}> z^@3Fm4B#P@b<@3sWdTFA4D=LR%bhTJT#RlvrLdCclGFG}6=1>czq|*$3eAMA_FiS> z{oy07H3e|6e(ZccCyR7Ml3s3_T8762wY`^(gu-Jb=o9-MGIY888@6i3D|rN%Gv`w` z=G@fx+S-=<=O*2>Nc#!?D^#^hW|F&Fw=c60@fA5-#}%F?_rvH#?!rjB&qSHozt^!Z zzOS+)?L~RUcodp>+1IB(Y~ycoeq8kbg2lp;BR@Jv`jE$ZI+Fuye$-@n^&92quY!N4 zsp(;fl+9b8&J-YaEAeBnp{~!?rMNBvqJ`RA`78tXsP|sHPg7t23=yoEC=)ucvYVm`(xAfAuMZxc34ez| zalXJVo<*J9spww~*HMjqdpGdbVuO04lM)cYvzAXILe|o3s=EWcMF*{BZ6B^tC{#S2 zR~OvDwZgGNuKW*K(w>CXvkeuq2dwVUr|^;ww}a+#+sp>gA`nV!nI)QA$zoGWRwXoi zu`H}Cg%$yOgU$CVUCW%g`ZaR@eXP1sMmT)fyfQKB56%TWW_T;}PxkzI&u)o}8QeE_ z4(K4YW%ra&G_;q9HyhEMNJdI#bv(;qrBpWsphKwm6SwXu9s061V=-y?G$kEjjAi^q zKNdUs^mp~i-3K{1i)n@_8SLzum6C(xLrZRMj-lv~t6nNCS8YvqIoaOyiQBk}sXfAA zs%qbpW8?gu_yJIk@Aw76qjp3Ln$twB!rQ6+Z&EJb&G|HRI7I+1{8Re*VHVEBdtPZj z&j0@HpY2a`(D&wnj+2AHz< zu)*v8a8&#R%@kq~vZjdNDNGeR*fLD%*E~Ph3qV%86eS&<{RZH%waysVE%@q_B}4=H zyq**1YavceCAl`!_yak zv7|i1CxasO+s*(t_4d;A4T5@oR8=Q0K_Snc?(!+uY)(1yTR2rFYs*Bu|4*;}37pIo zvL9YF53Fz9pPIPUX>)9AHFUc1{r=DP*Y5HD{0@I}Ms4LIr@~NUlB%-QIm@KKV_7G+ zHU(Sz{U}=+XMVU#Fu+`-F3ozEf^zhI!Wa$88m?K)BJY<;=x?pW2mUO08?Q>7y5Gt! zg_q@z7$mRs9kvk3?yyA^OohG5g?~_587}X#7E_3diViLK6>e_a|H`K6`stM($KdZq zSmIgOZjz6uE#Lfwme4z6Z=K&Xk@uR24a!^#e(~@6QLAwC_ch z{;^8O`~s&}BA4h_@}SW`^=)!;-0cP7QtR571;T+J(;tJF7E(@yn*SZXu}iVo4gM(< zCigWm{YHD(9iQZG-3!Y%ULtpWo?BJD5GgkCEVf#EOPmY;Tj?lvXC@+a*wGfX7s9+7 zDH}!b1f&<*>AOL=y6$!l{)oHJ$$TTHkAqaWZm5aZnS8}BwG@@)vZjUMNsR&Ffp1=j zY|TE%BD}5@ATt2$so!#OGZ%+ilW}NP{9FWTK9}D|IVq&OqLL_!3cb~yY0^N$W?u}a zKWy$i>um>+IDAQWT@XSwbWgyimE$5R^T~d~$lr6zd_tYcfz=c!nvXZ`<`vdOQreW zmXj!)LWYV%hE0vu#WqG4JDG)URg4XheK)#+NA@=F*3uKEuEWLVgCrW;%O%L-DXtnKWb(ARf|p;OI@?^euEG^e-6UfbTb9TJ%H z6U_J1>K1=%rlfWW)kJ^^tueQ9jeWQx4l09o*7K%_R>DUU<$kmotY7C5Teedv6*CnD%bh7`5VmTH ze1?U#lD82q{XBh31<`|w)bJ3U6e)^WAGsIkv)(Y|!okJ}OFXuM*62eDG0bY#7gVSu4%3l zmb6sb-xyhX8T7A>K^EVn?&~~`bJyy*9C5$T?;_&=G-^vsp9u@=uHU-(;X84$fM%&(+^`GlU)e;Wk`*pN7V*9Ztu~J zxfZsbSCjGZG?5aj@plGqK6dyWfU_4i?xv4S-khOoef2Oa{Lx3&Dbc*@9V+M$zXCIB zSbsY+`aExA>DL>QglRq>1g6HpKpU7W!_bp`9`70x5b@Am>NoEMf_m))AJOn;!t@(< zaKs0!v$vivGHt2H{a!H_=i}623D|s4^LEiS$6rs)j4YZ@((hrWu?#wX=I{s55Haq$ z!qO|zm$*48yK~u`E0ij7I?vAE@^RCzBLPzJsS4$Ieo#`P;ui zZ&@{y{qlV`EQ`JP2Fm{tn37!68~c7#RBJT#TxToy!7tvT)s&QP7HTz;@6~E4 zR8Qo?RCN0y9idOv&QRSYzs(yQ`ht{EG_F^t8w0s;IHmudlWvCfH*U^&5+X;YXfy zIi)49G+H@&X2WdOQWx{eBKKd}Qk*hnRg0Il=|x^BwSR+}tNy54&^*RN@=twvtU)L@ zDo!9*1SdU{Gp8Q7cSHAbHp!reSvQ~EG$FMiD8WnKeiBc+mq#zh>f`PQ2tJpG{pZ=? zVPcDUM;xRcqH#baUvZ|ViiNd~ld`yTIG8;y?VzWsF9fDJ;2&G)jy_a7usq#6Ftw$p zg}JGZVuz8c)D)2XdwI?VDL6fPGzqDEe_zAjzkRcsh-{6ze&F(|%jV8TW|;)B&Oni; zRu}u&f}-BJY2)Nyrg@U`7p!vewtTP$PG6X`%{08mq1JZwZ!LZeF|<%(llZlw*tccD z*i*U!2?Ct~+KtS3wVpu6NULuLmJ^|qH1k;!WNTt`?B>&-C2cJ3A`L=YGU{N76#=#5 zvyIq^5nhdZ3TG;7YwtG2O+9btG(MPjr;{-}QlN|8?Oc!yiuv%`&_FqdZp<*o(TSHn zKcB+^;xTX7rHA<1U=U4?NqP6Vfmz$5VD{o%(zT|j%oSIk-Jr#}A&JYcE2bXlj>W7x z@vgctyll-BE_HBdhWaTTEGrlbi!$XIGU2g5%#=3^?E0ZNR|Qtjg$#XpXdu6pHkT(W{rCq|$#DULV{A*hA5z zYRD^NcBIfq<%_N5bxAh&yktw|6OweK2DVwUyGebPhe(A~9nCaW_Jb;ivn(D?g`cT( zt?j=ItO-JhuXeUt0_R8+wD*r!O(>! z{S#NsL)Kn$a_OFxV!)y7jY041BUq=6z9(C+V5G2*ildeQF2w%oGgbj~yZPzqZ4=$2 z8-e)r6Vf$$A{xrnXR+^_NB33ww1(+q0q$&G=ce&Q#zVKxjX3E0VWgJ=MnmgwGr~){ z7k(~lC2w@s7c3Vacv+eLcv76JO(|aVBkHAJjv91wdWvs~!HM8oYCE@T4guD;I9?t> zy$qM}_uUb_|ML`f`Sr^5&WO{-onFa-mxqbdGX0K75%gX{^mfybYWCNRUc0RKw2#yV zyQ~L!q-GEGs;P;JSF~}&i+|vQH6o|tA-s6#c5)Jin##Enky;~K3=y{t(cQLjq!7AE|n8E3s#N&=e@yZaM7@C-i zp=Rc`&ln13Kc8^+YPeq#y8ir+p6FS&LHxSsm(sw~7fKMsg(ao!tcu9VP0LcyA{#$F z?5Q`niSK(E1hqVGS$+VgkZE}w4Q`R{CD-&c9%HVY^zknbho&>lxy+fd%CV_3+?r@o z$Nh2jn%oVPnRDn^nJPYA>RqK`1x7f1(EtJ#c)w`chS-L*gMkTZqw2Zh=>7Y$<`qJy zlxx1e?&amPx|ZKFCejsnZ0|4^7s;TtxF7RVbvb_?CvT4dbn7s1PL#MR&V2@f&Swb% z8{Lp;nPV~}_KY#XryWVo+7F92q%wvV(skj6fE~T8fuC>P$o$zj3pmoMV7)Bf60`1j zq>+OE3Z*H4D@R}B!~SAP&&oNB&--m8N_PVwwfQ8{yY%nlMrwax`&E0J z8PqtEAg&u;zLq;1arGD{adhzEeUGK~0{iA*vL=jj57{CKVjH8Ja3p6!K=qbeX<;40 z^A^iJQVfiZgnBY|Uu@IOv(H;%$z@nTc6gAi$T~ADIHtI~>r(K~sxsnzZO$@TvMq&o z@h+cApl-i%BbGMGq&;r%mp`F9W=tD19ZPS@xy?ovg1?9H=`~?QY)QNVYiC@*QHJ5s z3gJrNv>B)cRoOe4-)|Q9QvkGiOvg4XLI@gZTRN6vn37gKR`oA(Vt;<7Nqt%V8pUZ3 zuG&(!9_Jv+^{-{V=O&CE;Vk3HWfr@|b-eYgwaj^uzr~5r54-F8e7U#5SZ9p}nEt#d zcj!>N-ZYLs!8q!kq2qE*Jj(WVtfxk2YR~7+rnm|B8>Cbx94WOjhH)mpt921A3x92C zQ1;Y6`vlOWP?KIjm+DOqebaiYIglMY8cz7J{2aC=HG00nk&~gb@jiZV;u1O)4WP;w z((mDt(cC^^qJw=W$H4f=;787J3D?m~Tav^^-xxCeWOaZJJAJI0W0TZUisByv41tTK z#`|WE=|kyM#qbjiA-BGfXe|rZ^R8kmQux$Ulfe58{UW8izUrRIIj@~G*74-x(+#UI zHuSI3x9%Vi@gMa5I=?fllJ~q-)rP|q`SbW^hipRA>xo||&T>4w%cDu!`=g>-p0`y) zwxQKR{7mY)(vyp!aAH#z<{bZALi*IPK*koQO9>iFKmDF;EV5Xr(DYZL^4pRWdq;Ae zdC4lnM+*(?TMNcMbTO%ro4Oo#56}VJ-s5{?I-oXNs$SlXzQ=f4zr`tpM~kFerZhE? z`O{PAs-;UGj^eZe-rwcCjNj?J;WhEum&YCWH#zKtwO;VA?x? za+~Ya1nK(QHw^{g_Z6{6N2l^Q8lHyU1f~Sx;EB z5d7Dt{(_fIa%i^~n@Ch1A=|pFf2uXA2n1IHxR~|XzsEK!46 zM?es^4p3ER`P=1OgH*KoB-hG3^`yRhTC{Zs8-TNFmDM1XIV&~TogIZ5As_17e_h8bS1vM&RgNaLAhjb}c}7`&(U=&chpb6M)6DmG7Zmqq-Ng zFxX=yV2W{vIbq)-@LU`}s16j}e2)4C+ZH4lG(mNSa)Xh)G2DEe5r10b53fWW@o69q+5V+6&fBQ~RloqC zab39itB%9+)uM+3k)tj>JFZyK4~3RNHHft$EJl|U&ed_c_}T(9F<)X(sQ-9S4?V*6 z=kcJzf7hi8We>HYL*-bZzJRqGFvf~`% zc76Gq01evc`Jy~-?P9~?_}8hE&?gI>^LiKj+W+=4$UbYNA6T|^$0v$NE*iMQoaiG1 z!1bKKn0o_}eBOqB#bCtduaPy*6(@ZJLOd53xT3s1gP!k_4v=o=k01o1K63A8krifQ z2v_rycZ(mg0l?uzf^CwRdj4PZd%kl=Ib&A)XjhhDiq%@X>Rh{%!`DLV*<&hYtDbqr z>ZHy~AZH1g*xl7Av&4)US#oAYYpr3Kj^E5YV;kGlAmXt)j+}AnCje*G}-0U00-fhJJhENx**6ezALIY(c78Y9n@>lUhNX$H6_WXbA zXq+KLz=eyQc_jLbhvg3pJUldizDI!cik%S9N{GLQkr>5CdFx;EoOpPc0?@;AE2kgw z4qJhmfYv0m!$A_&?k}IU7NHULTA>G5Gu+r4u*1gza_A?>z^UE;Zz1CPaNI8#1x4|% zk0znX#a+Os^T@rq6L1nF`{9Z;88{{50SK_=aed^>g>wg(!Xpb^uX*nE22{`tx8ace$oDU`9d!1x0lG(>t6D>I|Qo7h~^zCb?s=7|z} z`gpeC(+j`~(GRz9hw;-D#ja~?+wrL|!OL@vKFszy-bl;=mwM1?`qT5_KKFw13z7C4Ph z55XP$YkP6-YHX((Y=&!y8ERQ9K<|HziXGL9;Q;+7E?jfSl$C|$o{4{gEF~=xcG-BX zh0w1!V+i6IfZb^=p!mZEXUVbbfg`PeZGvQP+`x`_ntK?z+Z>T(WbG%xRgf&VpC{jK zU~~%`eY2SCsTNm7TC-ocfX81&A`sy*dj~yWf6#wJ`M}T^qE^TRI}ugrav*(e1a>!+ zRT2+QGCZ-A{r0&IoGxokygvp9y(zW!=PI6I8E?F~7Fp(qIGq%A5^u~Ah_H$=<9E&n zc7Jd>=OA2^I~EdEXdeF4{NZ?+hZiPjw!tPLKxG-KOAW#VoXpxIgFu@vr(&u^LS7U2 zcR7=8v_9wXEaA0Q)=>{ZuGGBWw-peGU$Xd#@ymFvkZTMp1W1prg)yM1)!{DvPgMBI zQ2g6{GP%lmoJqUt;{S+dVupWZ!G7{>o#iaSf{tC~PI#R6;q-iWU zw``;6mHML#<6parVF;kG2{kG)|I_#gA%ytlM-Yf&(d1m{qq%qsxEHj({m1n9h)squ zxSMYK3>4!j+R94&1qNL1oyeREf`;efpJzhZGqH?T>E#rx843O|0t~1iO2OGKjbbZn z!!+UdsSw$w$TVE&+kZX-{&Mm2TnE^EtODHh0nkM+B49iKOf7bZTT0Lpi5p^`hY9eA zKpm6RzRGAtreU5R69&g1J0=#Z{z^ciQS$Gt?>@ty1)kkOOBf&66g>r$D+EMIQPD<9Pp_3Kfw~E$QUTuOt(#w zrnORmLH{Y)l%6~hZ6brSA}_~fv~WO|l2EULhPdkDZYB}n+S}t4j8|@&u$R#cotZ-y z@8DuOAUS8D$>MsNAl=3?_YIwfu(jbKlX^`*(L?`~{?q8Sl(Ai{hwZxb3a^hPAX5yL z;qA$#< zH}D@LwFtzz4~CNp`k}#nPh$7rZrP=%yaS}f^ir{+EcA;OIR815c2ZzLvD+^D{(dz~ z#fDjq!D#eE$nx>8Hj+5t8<<~)S7xtZukGE4dxC626J!h@q(~B)b9;8$BL=AGE`I^D zNiOp0n%;u@)8&;n&^}g;*lGv9m6I*#h^uDqlsgybeJq00fD-ILp^vX}~ zuYSVoh8cMh1aO^)exL1$o?1nMtOhRw>mBo;h%A;u_kTni-RF*O5xN1HSqR966~I8F zzQ2W_%&^Yrn2`Noz8Hk;=9q~O`Kx7mJ%Pom%3_@lp)&rcO`n?uP61~nPQ`2(-xLCo z=(L@?k7CXqigu8xVm4Gw@oEvW2p4+aF?WZpW7<{R)L0Fiu^O!!DsS@@b z13#)D?GIYpILj4FNw23bvp`B?zexviY!gU4^Q%DZ5;VvB{J?J!$WDa|aN6U}8ziUI zsOK3wyYau-1&?pef#|02e}<`7lD874)afDyOcJLCd!aM5)0Pz1(q=>Mj7AM-xzz9( z?Yj~5ritvJj6e4}xuF4vEt7B(gN*R0yd!;JVS5Q@d>2|JrHz4J(%PBA7TJ-*`#l|} zOir#aLKYUu6d|xPXONQ-0DwHSFNFu$`=IMbIT@!8eXO>z<6zUbK_2^tY9_NY`@89X z$>jLJqNI2Bnhr=NaX_kS`G}lEbe2dh4b;itYZ<0rXj>$`2~*!QDuOwOgZDKrzn-6> z0lJnENjw+KmkZ+OoOT@ZGwx3UjIwC z_+GcgsTf6sWZ64*=uWEv%7@PQb0dSo*Eg8~;o|~oFn7_c;eGv;E3xKPHuZfCJ-}33 z{if-98d}NgYzd`cmGZmp{80F^V8q3CP`opP7w&ADG9V&HXP8DZR#s>>7bNm4>`)g? z?qBb^B_}jkX9wG zJ0XiQln127&WvMEHM*km81>PT<*qqtjt6+Qy!wvu2j^W68yiERSyYNqDB2!VPu%(3 zgZY=c{+BcH5<8NPOeFMd?E2$kK6Pz-0XFEnvGk$_yt)5Ood$&Un}TW_6c4Sw%inx> znL=wxsuPTt{_xW6hGZD-Y(O851H5YJ{O(k{1_13IwP3s%;~5ulxdzJFSP`ZeE>)S( z1gy7VBb`w(&JTm~F}nB(*XdJ z`^KpzQ_owfmMWM`KCAr}s^q6*H+0_=_DIgDlo81#na)19fhOu)GxV-ZS_uFu>*^>v znl6H3BfiU^%Tf-GJKpdhJ6~KGeKp2W)MI`=)VAxitOty4vYR}q;>`yz52S{(|zmHdsEUb|O(A1g9+S%{X*0~RQ!G(O2TW$_imQ;|e5Ox-qFKO-G zHRU%~mfqrthVdoCi@^S=YwQprxnK}_bnp5#ho?+h0NxftpY8l`Na&346=*dmhced(cdy;&*7zmjn@kJU#cP>#&2%Qtp`$IBXB*v({$I5{8LYMusZD3n+q&S!l zA|w0`9FADg4USt+@Hl_?2PY3OdoBycUyzg{?4Pm9JU-$Yb478IP>;0kZ8>+?KjSZn zmlpv^L7Nzcb`~4k_3T-T_vR3PorowrkL{)6eqVsBeJ_Dk@)OlX5 z_U;jx9Na!ZcxC+ALTBIZAYcz7w=>aI%5BqB%4P8}EBc$R0_yi2vA#P3xdhgBd zpJwLC#?t#{+=w;s%gsh1$=+l7a5uRSoYo(582lKw(=_P$Ee!Xc`3D~UMVmLY3_9j_ zrjfWL^HCMlz{&{nH9Z2IoUGhw%b#^tr(Q0ve)hOp%-NtzEGi&>&KEk+U)kHY?9&6n zjkmy*>q$&JQ|{CAF5mDpkvYdvKN-}fk3x<7f;)EwTsU`U4vCEEaN@d>F|m7yxj~|P z4e&u>Spv1E#Ve#b(Wbj5kso*K;=4XZymb+klgxl=)7`RL9*k@0nVB)*OcwT2m^t|J!K`CF9^H!>7ErfacK(^L%rR5`{D4DQ z3>Qfk^%O3p9YkC6w>ccJ2fHy%3$SOa_Q4qggUp$lkkU3VXj1KYNG^8TX|vAxA>zx6 zU(V(s&Y&}cP~^2eUi{HPVy^U8tQ6 zpOl*iT*w+-a`84|$=OBq-C+w1z7Vt&0IN} zh^}xHdKiLci@pnbSCJ&wWW1FfKo-Qyj>u2?R>w?Eb6338-DyA-@7>WDR;b%+Rh_Nh z@Z-5ob_KLikJ8w;1BH*-qYI){Jr)EAIDD*D3Lg}?f~QLwy0dHc(uhFGI=hw6XT265 zn>@I}B_##2T6;TgM1DPf$tm)xG=yCPeX67qmK8fQeT0+gu>?Rvf*{&hIylTw~m#Hl&X{H1$1&ee$Bs+L1)PnWCKy-feQWdi?tb zko#I#nKy2xbKtG*=}cu4&;-cFV7BqCg&mSXHe(BE*PS@XXw%x^DB!GmrfXW5ohtYB zoXj!ho_zg$%IncRqqD@2D?u<^D0yc-#?x`o!m39NC^_Iud>bJCkDRxtOe>fI(I371 zb-)vdo$e&!Rbjk>P$^;t=01ksTZp+dcP4lK8^kg;1`5`)<6osCHRwx7MHB$v=(!&{ zGD_fUvpCfH6LLVh_qIB|fyAyix-NF<>p*H{*{=8wzLOq(WOQ;;8V`GWXiLhbNGsFM zV;3u2IW9b!CQx~?(YN~4d^3H0FHHUV>TVa^m^C%skm1ITMXI z{J^~8-Q+GkULzg(tnCz>?vUsO?L{($GBqMcs6U&7-J6A_M=H(G6Dy}$ScznLt%j;1 zdxaerh2@pFC8I8P>Qmewux?KUw@@HYLSG-h>_vU6Zm8q3adt+y+S~J>5<}Ryqc57sM-e6mAOBL!&V-^60T+>rDbH*kk~;y zqXZbfBO6N)l(!uACJE#+G&$V!fya8+Cz)P#Li}sI9K!YGHH`MQn4}6ruS9~^%$F=! zjy0eR9YHk^enJ7&rcIotir%tpoF336xhSMlryCQEz;@dpdSv1p?#P3L8*wsfE2!IJ!qw6fdX9W_xVz zY}+$z<>f-lV)8bDAj3ldmr2KwaRdrWw``)|z`-c66 zv*Z@Fa)3Ag367V!nXM!MM;7~Zp#T$pVFRc_Z&=jH*erX+sDOu z``bU#fB3s`Rx#Q?{n(YcC?cdpERPqg+eG(u{@~q?EOFA+=zT5$%$263tf*CTJ1)9sZs+xUS{ z4qHl`w6bSdEMA(l_kQb~_ZRz>%7sL^$g${nZ|<7YX7}ShzNK!g8-4YI!B(~#5A{Dc zV3b3OS($d7C4VyoE6>mj~N--V!jA)o$4S311i_TZtiTr+ag!h`r8#EsA|-|pOQ z<4Br4?_b_q+G|Bz4So0#LPKzSkZRyNR_0%ur6*iZ)9-21zvkrsUKgr}MDnrOl9P!* z6)vQ{hd8Z*Y(l_Df#w*;U6XkK7WLy-r<9k2&2LdphT*cQVF>qX7~mK4f;&D{vGiB; zszzFKS?lIJ{%Jv-<+9T}b~)1X(KSZyH^X7$Mh~WQ0i%numvqXb(8Gk7qNp)NoT zQc5R0U7uEMBt>A$x!-vm{o}WR+R^psP1^X2gC2#J;5BRCT|DX$IlXF_27Vf5*4`WW z_a!-dE{0jZ41y1@Wm6f>eQ%b={9Wvv>cVLGUT?}e`=wNqeqjOj1@W2F@-dbUcSs?H z;%qd-)z!_1(Np{Hw-|VjKOBtfoKL|izBND1$guh0E9L~Pgqk8cbQpe9e(u6Sh z7=oy~FYbc2#2b(zFp^x6jDM9W|1TB!^xK@xl%?UQHj<>{5hhb!7-{>P#7Hc}NYQKx zbM_Y)r|%b4S>%_O{Mz)a?6@5l`?430mt9t~&)~%Rc?QAul()9^i%WdRYIaMc z9+M)_^u86AK9;{Pl&aOl=S*2u`6-IZ_&U0P_=dqX=AwmM=emk+7RJO&*DkPv)gcV! z3$4MvEd>l_#f1713$$ghiqg8- z0v`v{**3B;{knAnp3a=&FK*XPi4osnm%oRuyjwPi(3}+PeneEW?8d0;0I5H)-1U0P z_Ho!z$;aKbviPrNYl~(*D3W{%Q6jk>ITHZxpvT}hs&EmUNqpWponY}8gSrNWC)_!I z`uJOtOr;Rp9u}v3pfs{v^M)A17pgxySV+G6_^V9l3z{2LB8UnjQJgEExR~ipFwmoV z1Xv-K;eI*hFj~2;L*?~9WO9mC9H(P-O9ZP6O$*5ku;7vx{v;f4Ip*%kzpwpPyI83} za_d_ec&n9JK>jWZ?~l~o6uF5lwfS`XEVbTjdw&v1@NWJ{_5AGyqm&)&{z7a+WI6^# zjF$S@Lld%bVN?Vof`5)7-+~FNol3KXLGPS#qEI%UG8Ftb215Z-~yb%A0>0*69%U0Px z_m5U!ZVUVi6MG^@ZLnTierg7?FW=w5Gd8#8Z(}%>ac1|-vvM~xAC`N3RplqsQLj2h zF;wdCNChtOAn4u2$Cq!dH?m zQL9PvUwECmDk`mnO&tPhh+bo=ejx=fcy-goHPWJ|3A2c}fu-YQ{a!2E-{IzPqM}*9 zOGIvgsa@!w#%MTr#&>VlpjWWE=V@ib-zTN^0SphFz?-Rx1F@4q|57PyM4M(Ql+uWh z*w9FYDHQ{+9j3XWIF>Ouxf5RU+@Dqtqle4q>RH=o@5*z##^JB<6uOf=0l1EitFC*V zMN{DF@zTH}2_Orlq3P8F+f;TxW&tCNwHaq#1VjD}Cb+4ZYgY1HS zY~n6UFRtdxGI+HJy?8*Ky8|t9z%iTXYfNuab7D1HX+eh9a&P^5?yV18#djF*0UKX5Qz zz~>owGnxG$(WV8vf-7Oi|2doFU>OXBx&IDspH!l+H4VMfAsk60(kV$brvo1wEOj*8$(C zgykt`*Ji1h7&VCcJ6klqF<6FiOVAVS^^9MKw0t?0MwGflkbzSiqO7Y9?ExF(i=)a6 zZ+4`ViCX9Qw1d%4$Z3 zEU_})Kd3Bt8!-CEn$_C%HWSHJ{Sq^snFOw9^CN-0sEGYQI=nqaFyB^(pAO@6Od*91 zeG;mWQ=I;KZ<5l#@uv32DFF_X0}U1)b0gFXnNNjslm$nSCw(aQ6F%FPiVxBKbMPD1 z`I(br8=Nglbg}9W#Ad`AH||gMaDUmB zw7lZ5@xzCpFj5<+5vn+D6W`9VcvW@e`4Q(v%oGQ- z?~NAXot>McrPY73i#vQs)*R&lQI_$fGGvN}2E@f~*>qQmVwO1()a4B-P02Oae^bM^ zf53wNr-SPbg!+HupW_@t&b*M$NV1g~aaM_BMk0Gvl5s}n-PsZ?p>*iV7ulPPBeSx% zth164hj2LO_v!cd`~7)7&+~f5dpz&wF$!6m)yh`}#DIQs*ipEJEPtpBfGKBetH1T+ z`@J)B+uPuO+OO@6m@*1f#0q436TO?W1XTdzW#BBD&vDj8M$p|z)9FaaVz0=~2%MYD zr_JT#!#DlxoA{o_=%DYSlX2V$j+-AFp|74;?DfGR8xxLob=LTo5{fsUD-EZn$p4B-LA=eRc67n5;FsZ0zY4`7;9?CHcr< zh1od?oX0irRO6kxiQ6J1r#B=)Ei1w5o)I-{lH(V&l8$?LF zWAiqYO|J5U9a}mbRhS;5>dkUqL`3a+Lud4o<1ZA}2h*dWLnyhBD_sQB+OtzpJ&Zg; zdajf@Z*z!0PYUAmX)=O<+&jIta`5v1`t+Or-pTA&6aas@a_@)!JFu~h7Sjj%Jhkm* z3B<^4Au5Q754pms#LOLNEREn#>4NekyM4NZq{gcr(7T zpfqKWTc-_p0+5<5Wbj-ltKfnHqmzVbmjw;jy&Qf;6%}SMJ2&sv?uOY4DqZ(330}*d zN8YTV(697CROi#zXeF4SP0URe^*Hr|lN-iN=S2vFu{$h(5{Z?iJG+}3f?;b}f2QhP zuPdIG%X!8k{7kfu%S)xu$6`H{wv~w**VsF$2`ahd_hwnJ`DF77dLl6>ynP%d5C!4l z=g)o-ZLfLWoB&nQ`S8-r)bzHjpSDQ) z_n$lv2vkX9;N%z>{5S-&zc57~7BYU|9ylfSUVAwq-gYk0iOp@Xr0jLr&IDkZYZn6$Hb8#{b?68afWer+-fbsyH$JKj% zHSzrFlm#yJr^M??F_@>vfOz~!{sQOPz>Q^W zom1Vb*m_GS@sy=nNPm~0NO1Qsj0bl%?>m)>cYjm!Bt;iSgHjJaelNkUCg9gK>Dbq+ z4r@Yf+M-6UinlvcX+vP3?@O&ctgYFLmpgLhK&MoX~s#eb8_cqvqz6dF-`jr48BCBVd zvE6xzrE4?O4>o5S*-!HzMt0x>;~3+fP)LfGX}&6UseRUAt8El%?Hk~huI#L#{K|9w zH_4?@9(p>xo2< zS5!iL-k&-JHGgs(>32W+ql3iOP32V*yP^<;>67X3m@g%!EPvQ(*&X;m6MN4rM@8|2 zZko7d{^eb`xBqG>dS?#N@!!)Xgr4eFiK#9p)-i|>>~<<>T7&Y`IAb&B5yONTyILzV z1O(IGze7l!|M5p8(Enhk(JqL+$$UQ7UqhW{IoP$b_kdf51&USK3wl!CF-R3v=bA4863~!@EL&>Ov-8xYyx-N=OG< zmg!~ha>s!&~!Uq#xN@8GTs$tD4et9t6%?X>imnr_;u#(CVN zE<(~DxjuV*za3BN@GvDHU6;M+`&OR?D?YOA;Bqyty-y-CfLPtq!*(aEMiP6|^?yJy z5c#1l5ZzivAq+>(E8x)ZIIx||7HQ!d5HMc7F3Vz<+YSkYg2pPv6p2xKJ=*@p!=W)^ zcJDH(FaE~#pS>g@a%+;eCVz5+0W*FtfA+MdlAm+f z{<<>L_v6-XmwVcWwHDJSpwSc5hPgwb;vGSKj|`nwBvS-0ygpTb4_88LTfKu=*AJL=rU12(dnCm zMB)HFz;P*0e!yuAA4T*NZiOni#GTKKS|)X~a>pB~ePVYykvN?@N`E?z9-X&pvz7u4YE=}guwqHP z)+qE^5bYhjQ$R0wTUAm_gl%F)?%B0l;BqHX#d;A*LiwFc-1+<1kYMSS`=c6+_C-F{*Y)02FP5ZO-2i}Wq!wZ75@M!m zD{=|B8VoZmDk=67DwB-0F0os-0~Z4G`JM-=3--H9%h!@`9m`gEZ6<#Rk~+Htq}%_c z)Q_tG!1q47LrB{XLG;GnuD~eO>BJ;^IC!KQxmNYUnlH{Kg^wNdY}q!TH=4z}IMyln z}n>lT09VAkIFf1H%$RH}yS>YT?w`G6pZ?Vc?)di(D z3uIWo*c+m1cjRU<_vfUXZ1i*xHJ+)dM*rk}gUy28_8(}>klma~4>OXeD*JD3{L~f? z82twdxlMV29M!oO@fSs$f%x0DxDsi(oH^r%@x?Nw5NO^>3e1OyQuR)x_4i{h}ok6$@k-tTx%`}96d3_&7Dgm)z#kg}#T^WlNIkyYi9 zuFdY3we)VLQ(EpCk=tgmd((Vu-W>&=6fH>Th5hbn%1o<1qwd+_IZ#9I$af5F&jVT! z363c2xK3wa$<1-ZOvRR_l+$#yn(|fiYMq9@*lAA{eeZGuVcIip+pIQm6G-Gbm5_H#!8MUqnwW*nuHw`SJ}moB2S9*luGgo) zocWGp4xW0d$|#0d`co2wH@@d&*h1c{VHqr+Z2Xv@rL|E!Y#w~`?j+n_dhyC# zK*0-PGWjPK7slDolC8de1^LBus9ht2bJmOxLMT!f4TUU-eKWo0pg_Z{UDy) z97uPSo3vMFMz5J+K&uH<=cp^Wf(YNN*~ES2dpQ+V1h;h;9d)@@?*~T7UmP-IbJ)zI z>4hVPr1^ODqD{Dn)2-CXW%K_ze6PIbSxWCaeMTgb*16KivqnJ-k?X0pA#Z1OerkgF zzNQa__*fc;E>l45yH>+oPPzm9@v35O_f(sw8QS% zbJT&ZEy=!~X3Vzt5ov;hSu5FGl9|Y4YRR!5S>jEN%4AFMmS9O!oNxNajLakZe(yFV z*1()(wb>{8xDP6yHF%l}<8KdH^be~2Q}Qm|p=m2j8`-p3h`Lo6Kg}BR{5r-%Q|fVx zp`>6S_ktUT?#qi-^ z%Ct9f#?nPV0?1E(_6ASUUmCuwUD|(l4BzCm)ZSQQbIDUck9X>=JZI{6ar!_V?RJ^s zU2#ISC=5QPr7j+&$!~qU$!&N`pzo?eS?IVj5Dx$c%#j*-1b3}6 zOXS+-m7Se};+j{ZS@aJr{DTn5<CvFQ$I5rF;v|}7n zdi}1rmjC+J+Lwg7M4Mc>Ey$KLhuRJD$F5VLLgM45c?d1SsPg*bn|9>gTX))zifn_y&>F9d$Kg(>idae6 z{Hg+7Kt$soa2FqTYCF?+DW^_%BA4;pl|6gtty5Hkh!rtDmb7^!o=ci&*ufhVNP@CMJTJ41E2b%m&tz%cpwJv++uv7mZA zO8Nr8kYesj(WO^1;gzNkD==S9KSmrm5{<#rw7 zGS6v@MtcfST&Qnzu67XN7XV>sd-N+Z7cMpxCOaDRILPl$uGM?+FrYqbXp>>dnjw>; zobVMUX3ZGWb?W_E)^h$9R>i}Yb08m$ea!+8kD{g z;%%63NnF^_s~l#gVmH5LwQu^uFlc#*_4$@qJ!Pt%P#U*SBZ?zHE$Ma33_~_w94{jm zmY4G{=VAz>GdYp{l7tW;FlP?2^o=1j&1AnQididB>bFGc(;0MDT?-f>dAS-CjbTSr z^@W?BE_D6BBJHETE^57b@}YY_hR8KAD9U5M6w${Rtl3jjbHd1y6L&5d{iFoEIRy-^ L8S546I7a>tOE + + + + + Phone + + + + + + + + \ No newline at end of file diff --git a/html/style.css b/html/style.css new file mode 100644 index 0000000..e69de29 diff --git a/server.lua b/server.lua new file mode 100644 index 0000000..c99adc1 --- /dev/null +++ b/server.lua @@ -0,0 +1,20 @@ +local lastMessage = {} + +RegisterServerEvent('gbcore-phone:sendMessage') +AddEventHandler('gbcore-phone:sendMessage', function(message) + local src = source + table.insert(lastMessages, { from = src, text = message, time = os.time() }) + for _, id in ipairs(GetPlayers()) do + TriggerClientEvent('gbcore-phone:receiveMessage', id, src, message) + end +end) + +RegisterCommand('phonehistory', function(source, args, raw) + if source == 0 then + for i, m in ipairs(lastMessages) do + print(i, m.from, m.text, os.date("%Y-%m-%d %H:%M:%S", m.time)) + end + else + TriggerClientEvent('chat:addMessage', source, { args = { '[PHONE]', 'History printed to server console (admin)' } }) + end +end, true) \ No newline at end of file