
Atouk
Members-
Posts
221 -
Joined
-
Last visited
Everything posted by Atouk
-
Muy buenas gente de la comunidad!, hace mucho que no los veo, espero que hayan tenido una feliz navidad!. También eh vuelto al scripting haciendo mi mejor servidor de DayZ y tengo un problema que el arma no se equipa y me da los siguientes errores! Bad argument @ 'getElementData' [Expected string at argument 2, got nil] attempt to compare boolean with number Los dos los dice en la misma linea y la remarcare. Script: weaponAmmoTable = { ["Makarov Mag"] = {{"Makarov PM", 22}}, ["M9SD Mag"] = {{"M9 SD", 23}}, [".45 ACP"] = {{"Revolver", 24}}, ["PDW Mag"] = {{"PDW", 28}}, ["MP5 Mag"] = {{"MP5A5", 29}}, ["30Rnd. AK"] = {{"AKS-74 Kobra", 30}}, ["30Rnd. STANAG"] = {{"M4A1 CCO", 31}}, ["8Rnd. Slugs"] = {{"Remington 870", 25}}, ["2Rnd. Slug"] = {{"Sawn-Off Shotgun", 26}}, ["SPAZ-12 Pellet"] = {{"SPAZ-12 Combat Shotgun", 27}}, ["DMR Mag"] = {{"DMR", 34}}, ["5Rnd. M24"] = {{"M14 AIM", 33}}, ["M136 Rocket"] = {{"Heat-Seeking RPG", 36},{"M136 Rocket Launcher", 35}}, ["others"] = {{"Parachute", 46},{"Satchel", 39},{"Tear Gas", 17},{"M67 Frag Grenade", 16},{"Hunting Knife", 4},{"Machete", 8},{"Binoculars", 43},{"Baseball Bat", 5},{"Hatchet", 3},{"Shovel", 6},{"Crowbar", 2}} } function getWeaponAmmoType(weaponName) for i, weaponData in ipairs(weaponAmmoTable.others) do if weaponName == weaponData[2] then return weaponData[1], weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["Makarov Mag"]) do if weaponName == weaponData[2] then return "Makarov Mag", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["M9SD Mag"]) do if weaponName == weaponData[2] then return "M9SD Mag", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable[".45 ACP"]) do if weaponName == weaponData[2] then return ".45 ACP", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["PDW Mag"]) do if weaponName == weaponData[2] then return "PDW Mag", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["MP5 Mag"]) do if weaponName == weaponData[2] then return "MP5 Mag", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["30Rnd. AK"]) do if weaponName == weaponData[2] then return "30Rnd. AK", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["30Rnd. STANAG"]) do if weaponName == weaponData[2] then return "30Rnd. STANAG", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["8Rnd. Slugs"]) do if weaponName == weaponData[2] then return "8Rnd. Slugs", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["SPAZ-12 Pellet"]) do if weaponName == weaponData[2] then return "SPAZ-12 Pellet", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["2Rnd. Slug"]) do if weaponName == weaponData[1] then return "2Rnd. Slug", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["DMR Mag"]) do if weaponName == weaponData[2] then return "DMR Mag", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["5Rnd. M24"]) do if weaponName == weaponData[2] then return "5Rnd. M24", weaponData[2] end end for i, weaponData in ipairs(weaponAmmoTable["M136 Rocket"]) do if weaponName == weaponData[2] then return "M136 Rocket", weaponData[2] end end end function rearmPlayerWeapon(weaponName, slot) takeAllWeapons(source) local ammoData, weapID = getWeaponAmmoType(weaponName) if getElementData(source, ammoData) <= 0 then -- Aca salta el error triggerClientEvent(source, "displayClientInfo", source, "Rearm", shownInfos.nomag, 255, 22, 0) return end setElementData(source, "currentweapon_" .. slot, weaponName) local weapon = getElementData(source, "currentweapon_1") if weapon then local ammoData, weapID = getWeaponAmmoType(weapon) giveWeapon(source, weapID, getElementData(source, ammoData), true) end local weapon = getElementData(source, "currentweapon_2") if weapon then local ammoData, weapID = getWeaponAmmoType(weapon) giveWeapon(source, weapID, getElementData(source, ammoData), false) end local weapon = getElementData(source, "currentweapon_3") if weapon then local ammoData, weapID = getWeaponAmmoType(weapon) giveWeapon(source, weapID, getElementData(source, ammoData), false) end if elementWeaponBack[source] then detachElementFromBone(elementWeaponBack[source]) destroyElement(elementWeaponBack[source]) elementWeaponBack[source] = false end setElementModel(source, getElementData(source, "skin")) end addEvent("onPlayerRearmWeapon", true) addEventHandler("onPlayerRearmWeapon", getRootElement(), rearmPlayerWeapon) Espero recibir alguna respuesta y que la pasen bomba! Gracias a todos los que me ayudaron y me soportaron en todo este tiempo!
-
Proba con esto: local canciones = { {"song.mp3"}, {"song2.mp3"} } marker_entrada = createMarker(1837,-1682,14,"arrow",1,0,255,255,255) marker_salida = createMarker(493.5,-25,1001,"arrow",1,0,255,255,255) addEventHandler("onClientMarkerHit",marker_entrada, function(source) if (source == localPlayer) then local cancionesrandom = math.random ( #canciones ) musica = playSound(unpack (canciones[cancionesrandom]),true) end end ) addEventHandler("onClientMarkerHit",marker_salida, function(source) if(source == localPlayer) then stopSound(musica) end end )
-
Agreguale los end! 1 para cerrar la funcion y otro para el if
-
Mira por ejemplo si tengo un elemento que sea de 132, 321, 400, 380 y mi resolución es de 1024 x 768. Lo que se debe hacer es esto: 132/1024, 321/768, 400/1024 y 380/768. El resultado de eso lo pegas en ese argumento pero definido con sX*NUMEROS Lo definirías de esta forma sX, sY = guiGetScreenSize() sX*Numeros, sY*Numeros, sX*Numeros, sY*Numeros Si no entiendes decime que te lo explico mejor.
-
Para ajustar lo que quieres para que se acomode en todas las resoluciones debes usar lo siguiente: guiGetScreenSize
-
En cualquier parte del script, pero que sea server-side.. PD: Me caga de gusto la foto de perfil de chaz! ajajjaajajjaja :D
-
Ahi no cambias nada, mira tenes que probar con este.. addEventHandler ( "onPlayerChat", getRootElement(), function ( message, messageType ) if messageType == 1 then cancelEvent() outputChatBox( "#FF0000* "..getPlayerName(source).." "..message, root, 255, 255, 255, true ) outputServerLog( "CHAT: * ".. getPlayerName ( source )..": #0080FF" .. message, 255, 255, 255, true) end end) Acordate que podes cambiarle el color!
-
Porque no tomas la rotación del jugador y le ajustas esa rotación a la witch?
-
Y que podria ir haciendo?, esque pienso que no les gustara
-
Jaja, antes de que lo publique te voy a invitar a mi amigaso fanchuli jajja PD: Alguien me dice que podria aprender ademas de Lua?, Quiero crear una pagina para el server.
-
Estoy haciendo un servidor de Zombies RP que pronto lo terminare y les aseguro que les encantara porque yo soy muy estricto y es difícil que me guste un server de zombies, estuve pensando que mas le podría poner pero no se me ocurre mas. Por si me dicen ideas que ya hice se las dejo por las dudas: .- Zombies de diferentes dificultades y niveles, dependiendo del nivel del zombie tiene formas de caminar, hay 5 formas de caminar de los zombies y también dependiendo el color de dificultad. Si el zombie tiene dificultad normal su color sera verde y tendrá sus respectivas formas de caminar, si es de dificultad media sera amarillo y peligroso con color rojo. Dependiendo de la dificultad del zombie recibirás tu respectiva recompensa. .- Un sistema de inventario que esta en progreso gracias a mi amigaso [COD]Plate, que de paso me enseña a hacer tablas que no entiendo nada .- El panel de logueo es muy lindo ya que hice unas imágenes que hasta ami me gustaron, que son de color blanco y negro como todos los paneles, y los botones cuando el cursor pasa por arriba se marca el botón de forma muy linda . .- Tiendas de armas, alimentos y medicinas, con las imágenes muy parecidas al panel de logueo. .- Un sistema de creación y adición de clanes que solo los administradores pueden crear clanes porque sino se hace como los DayZ que los usuarios crean 12321 de grupos y llegan a un punto que buguean todo. .- Velocímetro y un sistema de combustible con imágenes muy conocidas que lo digo de una porque no soy el único que las saque del valaha o como se llame jaja, se que seria como un robo, pero unas imágenes no cuestan nada, disculpen. Estoy pensando en hacer un HUD muy lindo pero no se como hacerlo ya que quiero ser muy original, si alguien tiene alguna idea me pudiera decir?, gracias! También estoy haciendo un panel de misiones con sus respectivas misiones que cuando terminas la misión puedes seguir a la segunda base, como el GTAChile! Otra cosa, si alguien esta dispuesto a ayudar a mappear no dude en decirme ya que ami no me gusta mappear, pero si lo tengo que hacer lo ago. Si me hace falta algo mas que decir solo diganme, gracias por su tiempo de lectura! ----------- UN SALUDO A PEKIO123 QUE ES SU CUMPLE! :D ----------------- Que los cumplas feliz!, un saludo de parte de toda la community! Ringaringarin -------------------------------------------------------------------------------------------
-
Claro pero mira bien, si lo pones en client-side, en este caso, debes sacar el primer argumento(source). Y cuando usas getElementData el elemento source, es localPlayer, no se si me entiendo. En este caso deberias probar de esta forma: function opcion1() local cantidad = getElementData(localPlayer, "score") givePlayerMoney( tonumber(cantidad)) end -- o Sino function opcion2() local cantidad = getElementData(localPlayer, "Last Drift") givePlayerMoney( tonumber(cantidad)) end Espero que te sirva!
-
Primero tenes que tomar la salud del jugador, luego verificar si su salud es mayor a 101, si es mayor, le aplicas una sanción. Lo que se debería usar para mi seria. -- Funciones getElementHealth -- Para tomar la salud del jugador kickPlayer -- Para kickearlo banPlayer -- Para Banearlo -- Eventos onPlayerSpawn -- Para que cuando el jugador spawne ejecute la función Si queres que si el jugador tiene mas vida también podes matarlo usando las siguientes funciones. getElementData -- En este caso usa la sangre 'blood' onPlayerSpawn Yo pienso que deberías usar eso, cualquier cosa me avisas!
-
No se preocupen, ya lo pude arreglar!, gracias de todas formas!
-
Y bueno pero si no me pongo a ver, nunca lo aprendere..
-
Y como aria, para que 22, sea a, b sea Arma Secundaria y 17 balas sea z. De otra forma me lo podrías facilitar es que trate de leer lo que me mandaste pero no se tanto de ingles, tengo 14 años jaja y recién estoy en 3er Año. Otra cosa que forma para vos es la mas fácil de hacer tablas?
-
Y por ejemplo podria hacer esto? table = { [a, b, z] = 22, "Arma Secundaria", "17 Balas", [a, b, z] = 23, "Arma Principal", "7 Balas" } No entiendo nada
-
Me podrías explicar mas especifico?, es que no me doy ni un poquito cuenta, como dije por favor algo fácil para empezar. Seria de mucho que me des un ejemplo?
-
Y que método me recomendarías?
-
En este momento no estoy en mi casa pero me pueden decir diferentes tipos de inventarios? El mio lo hare mas o menos como el de DayZ, que se puedan recoger y tirar cosas pero no habra los 'pickups' porque se debera comprar los articulos en la tienda, preferiria dar las cosas por seElementData porque te facilita el trabajo. Y como podria darle una propiedad a un articulo, osea por ejemplo un GPS, podria verificar si el jugador tiene ese articulo por medio de getElementData, algo como eso. De otra forma diganme como hacer un inventario sencillo pero no tan feo porque sino no valdria la pena, espero que no sea de tanta molestia, ¡Gracias!.
-
Hola, estuve pensando y creo que querría aprender a crear inventarios porque es como una herramienta muy buena para su uso, ya que es muy formal y muy útil. Quería algo fácil al principio para entender como crearlos y avanzare de a poquito. Yo pienso que se deberían usar tablas, pero yo no se que como por ejemplo. table = { {Colt45, 22, Arma Secundaria}, {Silenced, 23, Arma Primearia} } Como ago para aplicar esos 3 datos a diferentes cosas, por ejemplo el primer argumento a la row de una grid, el 22 para nose, que tome el id del arma y que Arma Secundaria la tome para un label. Por ultimo que pase con las demas. Alguien me puede explicar eso?, gracias!! Ademas de usar lo anterior que mas debería utilizar? Gracias por tomarse el tiempo!
-
Hola, estoy re caliente de que nose que me viene pasando que no me salen los scripts. Ta todo bien y anda, despues cambio unas cosas y no anda, las vuelvo a poner como antes y no andan, me paso lo mismo con otro panel de login mas lindo, y nada.. script: --client: enableKickPlayer = true maxLoginAttempts = 5 addEventHandler("onClientResourceStart", resourceRoot, function() sX, sY = guiGetScreenSize() wdwMain = guiCreateWindow(sX*3.282051282051282, sY*2.865671641791045, sX*2.56, sY*4, "Identificacion", false) guiWindowSetSizable(wdwMain, false) imgLogo = guiCreateStaticImage(10, 22, 380, 62, ":login/logo.png", false, wdwMain) btnLogin = guiCreateButton(268, 136, 95, 42, "Loguear", false, wdwMain) guiSetFont(btnLogin, "default-bold-small") guiSetProperty(btnLogin, "NormalTextColour", "FFAAAAAA") labelUsuario = guiCreateLabel(20, 97, 46, 16, "Usuario:", false, wdwMain) guiSetFont(labelUsuario, "default-bold-small") editUsername = guiCreateEdit(71, 94, 182, 24, "", false, wdwMain) labelClave = guiCreateLabel(20, 150, 36, 16, "Clave:", false, wdwMain) guiSetFont(labelClave, "default-bold-small") editPassword = guiCreateEdit(61, 146, 192, 24, "", false, wdwMain) guiEditSetMasked(editPassword, true) btnConfirmRegistration = guiCreateButton(268, 84, 95, 42, "Registrar", false, wdwMain) guiSetFont(btnConfirmRegistration, "default-bold-small") guiSetProperty(btnConfirmRegistration, "NormalTextColour", "FFAAAAAA") guiSetVisible(wdwMain, true) guiSetInputEnabled(true) showCursor(true) addEventHandler("onClientGUIClick",btnLogin,onClickLogin) addEventHandler("onClientGUIClick",btnConfirmRegistration,onClickRegisterConfirm) addEventHandler("onRequestIncreaseAttempts",getRootElement(),increaseAttempts) attemptedLogins = 0 end ) function onClickLogin(button,state) if(button == "left" and state == "up") then if (source == btnLogin) then username = guiGetText(editUsername) password = guiGetText(editPassword) triggerServerEvent("onRequestLogin",getLocalPlayer(),username,password,enableKickPlayer,attemptedLogins,maxLoginAttempts) end end end function onClickRegisterConfirm(button,state) if(button == "left" and state == "up") then if (source == btnConfirmRegistration) then username = guiGetText(editUsername) password = guiGetText(editPassword) triggerServerEvent("onRequestRegister",getLocalPlayer(),username,password) end end end function onStop() guiSetInputEnabled(false) guiSetVisible(wdwMain, false) showCursor(false) end addEventHandler( "onClientResourceStop", root, onStop ) function hideLoginWindow() guiSetInputEnabled(false) guiSetVisible(wdwMain, false) showCursor(false) end addEvent("hideLoginWindow", true) addEventHandler("hideLoginWindow", getRootElement(), hideLoginWindow) function increaseAttempts() attemptedLogins = attemptedLogins+1 end --server: function loginPlayer(username,password,enableKickPlayer,attemptedLogins,maxLoginAttempts) if not (username == "") then if not (password == "") then local account = getAccount ( username, password ) if ( account ~= false ) then logIn (source, account, password) outputChatBox ("#0000FF* #FFFFFFTe logueaste con exito!",source,255,255,255,true) spawnPlayer ( source, 946.90917696875, 2103.4135742188, 19.6938877, 270, 287, getTeamFromName( "Civiles" ) ) givePlayerMoney( source, 500 ) fadeCamera( source, true, 5 ) triggerClientEvent (source,"hideLoginWindow",getRootElement()) else if enableKickPlayer == true then if (attemptedLogins >= maxLoginAttempts-1) then outputChatBox ("#0000FF* #FFFFFFError en usuario y/o contraseña!",source,255,255,255,true) setTimer(outputChatBox,500,1,"#0000FF* #FFFFFFAtencion! Intentos de logueo! [#008AFF"..attemptedLogins+1 .."/"..maxLoginAttempts.."#FFFFFF]",source,255,255,255,true) setTimer(outputChatBox,1000,1,"#0000FF* #FFFFFFSeras kickeado en #008AFF5 segundos#FFFFFF!",source,255,255,255,true) setTimer(kickPlayer,5000,1,source,"Fallo al loguearte") else outputChatBox ("#0000FF* #FFFFFFError en usuario y/o contraseña!",source,255,255,255,true) setTimer(outputChatBox,500,1,"#0000FF* #FFFFFFIntentos de logueo: [#008AFF"..attemptedLogins+1 .."/"..maxLoginAttempts.."#FFFFFF]",source,255,255,255,true) triggerClientEvent(source,"onRequestIncreaseAttempts",source) end else outputChatBox ("#0000FF* #FFFFFFError en usuario y/o contraseña!",source,255,255,255,true) end end else outputChatBox ("#0000FF* #FFFFFFError! Porfavor escriba una contraseña!",source,255,255,255,true) end else outputChatBox ("#0000FF* #FFFFFFError! Porfavor escriba un nombre de usuario!",source,255,255,255,true) end end function registerPlayer(username,password) if not (username == "") then if not (password == "") then local account = getAccount (username,password) if (account == false) then local accountAdded = addAccount(tostring(username),tostring(password)) if (accountAdded) then outputChatBox ("#0000FF* #FFFFFFTe registraste con exito! [usuario: #ABCDEF" .. username .. " #FF0000| #FFFFFFContraseña: #ABCDEF" .. password .. "#FFFFFF]",source,255,255,255,true ) setTimer(outputChatBox,800,1,"#0000FF* #FFFFFFAhora puedes loguearte correctamente.",source,255,255,255,true ) else outputChatBox ("#0000FF* #FFFFFFOcurrio un error! Porfavor escriba un nombre de usuario y/o contraseña diferente y vuelva a intentar.",source,255,255,255,true ) end else outputChatBox ("#0000FF* #FFFFFFError! Ya existe una cuenta con ese nombre de usuario!",source,255,255,255,true ) end else outputChatBox ("#0000FF* #FFFFFFError! Porfavor escriba una contraseña!",source,255,255,255,true) end else outputChatBox ("#0000FF* #FFFFFFError! Porfavor escriba un nombre de usuario!",source,255,255,255,true) end end function onWasted(player) spawnPlayer ( player, 946.90917696875, 2103.4135742188, 19.6938877, 90, 287, getTeamFromName( "Civiles" ) ) fadeCamera( player, true, 5 ) end addEventHandler( "onPlayerWasted", root, onWasted ) addEvent("onRequestLogin",true) addEvent("onRequestRegister",true) addEventHandler("onRequestLogin",getRootElement(),loginPlayer) addEventHandler("onRequestRegister",getRootElement(),registerPlayer) Ayudenme porfa, si hay algo que pueda mejorar o achicar, diganme , gracias!
-
Proba ahí, perdona si esta muy desacomodado esque estoy en la tablet jaja GUIEditor = { button = {}, window = {}, } function ven() dxDrawRectangle(209, 90, 337, 46, tocolor(255, 0, 0, 255), true) dxDrawText("Panel de Musica", 239, 92, 501, 129, tocolor(255, 255, 255, 255), 1, "bankgothic", "left", "top", false, false, true, false, false) dxDrawText("Skrillex:", 209, 155, 443, 196, tocolor(255, 255, 255, 255), 1, "bankgothic", "left", "top", false, false, true, false, false) end addEventHandler("onClientRender", root, ven ) GUIEditor.window[1] = guiCreateWindow(208, 119, 339, 406, "", false) guiWindowSetSizable(GUIEditor.window[1], false) guiSetVisible(GUIEditor.window[1], false ) Bang = guiCreateButton(209, 206, 120, 36, "Bangarang", false) parar = guiCreateButton(427, 489, 120, 36, "Parar Musica", false) Rock = guiCreateButton(427, 206, 120, 36, "Rock n Roll", false) Cinema = guiCreateButton(209, 290, 120, 36, "Cinema", false) First = guiCreateButton(427, 290, 120, 36, "First of the year", false) Rep = guiCreateButton(209, 378, 120, 36, "Reptile", false) Get = guiCreateButton(427, 378, 120, 36, "Get Up!", false) function bangarang() if source == Bang then sonido = playSound("Musica/Bang.mp3") setSoundVolume(sonido, 0.5) end end addEventHandler("onClientGUIClick", getResourceRootElement(getThisResource()), bangarang ) function first() if source == First then sonido = playSound("Musica/First.mp3") setSoundVolume(sonido, 0.5) end end addEventHandler("onClientGUIClick", getResourceRootElement(getThisResource()), first ) function rock() if source == Rock then sonido = playSound("Musica/Rock.mp3") setSoundVolume(sonido, 0.5) end end addEventHandler("onClientGUIClick", getResourceRootElement(getThisResource()), rock ) function ci() if source == Cinema then sonido = playSound("Musica/Cinema.mp3") setSoundVolume(sonido, 0.5) end end addEventHandler("onClientGUIClick", getResourceRootElement(getThisResource()), ci ) function one() if source == Get then sonido = playSound("Musica/Get.mp3") setSoundVolume(sonido, 0.5) end end addEventHandler("onClientGUIClick", getResourceRootElement(getThisResource()), one ) function by() if source == Rep then sonido = playSound("Musica/Rep.mp3") setSoundVolume(sonido, 0.5) end end addEventHandler("onClientGUIClick", getResourceRootElement(getThisResource()), by ) function par() if source == parar then sonido = stopSound( sonido ) setSoundVolume(sonido, 0.0) end end addEventHandler("onClientGUIClick", getResourceRootElement(getThisResource()), par ) function abrir() guiSetVisible(GUIEditor.window[1], true ) showCursor( true ) end bindKey("F4", "down", abrir )