-
Posts
516 -
Joined
-
Last visited
Everything posted by Bc#
-
Creo que tendrias que empesar desde cosas mas basicas para poder entender eso te aconsejo que visites constante mente la wiki y te leas esto: https://wiki.multitheftauto.com/wiki/Scripting_Introduction Aparte podrias ver los videos de este canal que es simple para entender las cosas mas basicas de el scripting en lua. Parte con este:
-
en el race client dentro de esta funcion: function updatePickups()
-
Ahora que me fijo tienes mal la sintaxis de set timer intenta esto: local sHeight,sHeight = guiGetScreenSize() function greetPlayer ( ) addEventHandler("onClientRender", root, drawTheText) setTimer ( function ( ) removeEventHandler ( "onClientRender", root, drawTheText ) end ,10000,1) end addEventHandler ( "onClientResourceStart", resourceRoot, greetPlayer ) function drawTheText() dxDrawText("#ff0000Welcome: #7CFC00"..getPlayerName(localPlayer)..'Al Servidor Estan Cargando Los Resource', sWidth* 0.2, sHeight*0.2, sWidth*0.3, sHeight*0.2, tocolor(255, 255, 255, 255), 5, "bankgothic", "left", "top", false, false, true, true, true) end
-
El post decía como hacerlo o como conseguirlo, ademas solo ibas a conseguir una apariencia similar editando los colores rgb, te lo digo por que ya intente crearlo así y no se pudo.
-
Puedes mostrar tus primeras lineas de tu race_client (donde aparece el render de esos dxdraw), por que previamente tienes que definir algunas variables, para poder crear condiciones que te permitan hacer el script.
-
De partida men si subiste bien la imagen pero esa pagina web siempre da bugs asiq ue te recomiendo que la subas a otra web para que podamos verla, segundo podrias intentar poner en el buscador de tu editor la palabra defaul que creo que es la fuente que viene por defecto en el killmessages y esa es la que tienes que cambiar. Puedes usar alguna fuente de aqui: https://wiki.multitheftauto.com/wiki/Standard_GUI_Font_Names O crear alguna fuente con esto: https://wiki.multitheftauto.com/wiki/GuiCreateFont
-
Ese script nunca funcionara si no tienes definido sHeight ni sHeight, prueba con esto: local sHeight,sHeight = guiGetScreenSize() function greetPlayer ( ) addEventHandler("onClientRender", root, drawTheText) setTimer(removeEventHandler, 10000, 1, "onClientRender", root, drawTheText) end addEventHandler ( "onClientResourceStart", resourceRoot, greetPlayer ) function drawTheText() dxDrawText("#ff0000Welcome: #7CFC00"..getPlayerName(localPlayer)..'Al Servidor Estan Cargando Los Resource', sWidth* 0.2, sHeight*0.2, sWidth*0.3, sHeight*0.2, tocolor(255, 255, 255, 255), 5, "bankgothic", "left", "top", false, false, true, true, true) end Recuerda siempre definir las variables que usas.
-
Es verdad lo que dice castillo yo comenze hace 1 año con el scriptingy aun me cuesta. Hace un par de semanas se me ocurrio hacer algo similar pero con algo mas interactivo con menus de seleccion y varias animaciones bien atractivas, pero lleva mucho tiempo de practica y dedicacion.
-
Yo tengo ese scoreboard si te interesa puedes contactarme a mi skipe: bnja15 PD: Si quieres hacerlo es mucho mas que solo agregar colores y fuentes.
-
screenHeight - dxGetFontHeight(3, 'bankgothic')/2 Esa es la pocision en el eje Y, podrias cambiarlo a algo mas simple como: screenHeight - 10 el 10 corresponde a la distancia que estara de abajo hacia arriba si quieres que el tecto este un poco mas arriba solo le subes al numero pero tendras como limite el tamaño de la resolucion que estes usando.
-
donde dice esto: if getActivePlayerCount() <=1 then poner esto if getActivePlayerCount() < 1 then Si quieres un script mas elaborado puedes reemplazar todo el lua por esto: DestructionDerby = setmetatable({}, RaceMode) DestructionDerby.__index = DestructionDerby DestructionDerby:register('Destruction derby') function DestructionDerby:isApplicable() return not RaceMode.checkpointsExist() and RaceMode.getMapOption('respawn') == 'none' end function DestructionDerby:getPlayerRank(player) return #getActivePlayers() end -- Copy of old updateRank function DestructionDerby:updateRanks() for i,player in ipairs(g_Players) do if not isPlayerFinished(player) then local rank = self:getPlayerRank(player) if not rank or rank > 0 then setElementData(player, 'race rank', rank) end end end -- Make text look good at the start if not self.running then for i,player in ipairs(g_Players) do setElementData(player, 'race rank', '' ) setElementData(player, 'checkpoint', '' ) end end end function DestructionDerby:onPlayerWasted(player) if isActivePlayer(player) then self:handleFinishActivePlayer(player) if getActivePlayerCount() < 1 then RaceMode.endMap() return end if getActivePlayerCount() <= 1 and getElementModel(player) == 425 then RaceMode.endMap() else TimerManager.createTimerFor("map",player):setTimer(clientCall, 2000, 1, player, 'Spectate.start', 'auto') end end RaceMode.setPlayerIsFinished(player) showBlipsAttachedTo(player, false) end function DestructionDerby:onPlayerQuit(player) if isActivePlayer(player) then self:handleFinishActivePlayer(player) if getActivePlayerCount() < 1 then RaceMode.endMap() return end if getActivePlayerCount() <= 1 and getElementModel(player) == 425 then RaceMode.endMap() end end end addEvent("onPlayerPickUpRacePickup",true) addEventHandler("onPlayerPickUpRacePickup",getRootElement(),someoneReachedHunter) function DestructionDerby:handleFinishActivePlayer(player) -- Update ranking board for player being removed if not self.rankingBoard then self.rankingBoard = RankingBoard:create() self.rankingBoard:setDirection( 'up', getActivePlayerCount() ) end local timePassed = self:getTimePassed() self.rankingBoard:add(player, timePassed) -- Do remove finishActivePlayer(player) -- Update ranking board if one player left local activePlayers = getActivePlayers() if #activePlayers == 1 then showMessage(getPlayerName(activePlayers[1]) .. ' is the Winner!', 179, 255, 71) end if #activePlayers == 0 then self.rankingBoard:add(activePlayers[1], timePassed) end end ----------------------------------------------------------- -- activePlayerList stuff -- function isActivePlayer( player ) return table.find( g_CurrentRaceMode.activePlayerList, player ) end function addActivePlayer( player ) table.insertUnique( g_CurrentRaceMode.activePlayerList, player ) end function removeActivePlayer( player ) table.removevalue( g_CurrentRaceMode.activePlayerList, player ) end function finishActivePlayer( player ) table.removevalue( g_CurrentRaceMode.activePlayerList, player ) table.insertUnique( g_CurrentRaceMode.finishedPlayerList, _getPlayerName(player) ) end function getFinishedPlayerCount() return #g_CurrentRaceMode.finishedPlayerList end function getActivePlayerCount() return #g_CurrentRaceMode.activePlayerList end function getActivePlayers() return g_CurrentRaceMode.activePlayerList end
-
I like to report this resource that is originally made by me, this person does not have permission to publish this resource because it has been stolen. If you need proof just tell me. PS: I have the uncompiled resource. In order to see the differences. https://community.multitheftauto.com/ind ... ls&id=6942 ATTE: Bc DONE!
-
local elp = getPlayerFromName(pname) local clan = getPlayerTeam(source) Si el script va dirigido a pname prueba: local elp = getPlayerFromName(pname) local clan = getPlayerTeam(pname)
-
En race, ¿Cual es la función para detectar cuantos players en estado alive (vivos) hay?
-
Necesito crear un contador de muertes que por cada ves que muera alguien a una variable le sume 1. Daré un ejemplo para que se entienda. muertes = 0 if un jugador muere then muertes = muertes +1 end Pero el "un jugador muere" ¿Como lo expresaría en script?
-
Ok lo integre dentro ahora se ve por ensima pero al hacer eso me surgio otro problema. g_GUI = { timeleftstatic = guiCreateStaticImage(screenWidth-333, -20, 1920/4.8, 1024/4.4, 'img/timeleft.png', false, nil), timeleft = guiCreateLabel(screenWidth-156, 72, 100, 30, '', false), timepassed = guiCreateLabel(screenWidth-140, 136, 100, 30, '', false), fpslbl = guiCreateLabel(screenWidth-220, 36, 100, 30, '', false), } guiSetText ( g_GUI.fpslbl, ""..getElementData(getLocalPlayer(),"fps").."") Al poner eso aparecen mis fps, pero aparece un numero estático no varia. Ej: sale 56 y se queda en 56 no baja ni sube, siendo que en el scoreboard si varia. ¿ Tendría que usar alguna herramienta de refresh para que fuera variando, y si es así cual seria la sintaxis que tendría que usar?
-
Necesito enviar esto al fondo para poner un dxText por encima pero no he podido, ayuda por favor. g_GUI = { timeleftstatic = guiCreateStaticImage(screenWidth-333, -20, 1920/4.8, 1024/4.4, 'img/timeleft.png', false, timeleft = guiCreateLabel(screenWidth-156, 72, 100, 30, '', false), timepassed = guiCreateLabel(screenWidth-140, 136, 100, 30, '', false), } guiMoveToBack(g_GUI) o por ultimo que me digan como enviar la staticimage al fondo
-
Lol no eso fue solo error mio al escribirlo acá en el foro xDD
-
Uso: exports["Evo-notificaciones"]:showBox(player, "info","Terminaste ["..pos..posName.."] y Ganó $"..money.."!");; Pero tampoco funciona
-
Para mostrarlo a todos funciona perfectamente pero al mostrar a la persona que realiza una accion no funciona al hacer esto: exports["Evo-notificaciones"]:showBox("player", "info","Terminaste ["..pos..posName.."] y Ganó $"..money.."!");
-
Yo se como mostrarlo a un solo jugador, se usa getPlayerName(player) ¿pero como hago para mostrarlo a todos? PD: Probé con esto y no funcionó. exports["Evo-notificaciones"]:showBox("getPlayerName(source)", "info","Terminaste ["..pos..posName.."] y Ganó $"..money.."!");
-
Tengo un problema al ocupar este resource: https://community.multitheftauto.com/index.php?p= ... ls&id=5812 @ElMota en este post: https://forum.multitheftauto.com/viewtop ... ee#p481332 Pudo aclarar su duda pero cuando yo pruebo el script no me funciona. ¿Como lo puedo reparar? function giveMoneyWinDie() local account = getPlayerAccount(source); local playersAlive = getAliveGuys(2); local playersDead = getDeadGuys(); local pAll = playersAlive + playersDead; local checkYourPos = pAll - playersDead; local pos = nil; if tonumber(checkYourPos) == 1 then pos = 1 else pos = checkYourPos + 1; end if tonumber(checkYourPos) == 2 then pos = 2; end if pos == 1 or pos == 21 or pos == 31 then posName = "st"; elseif pos == 2 or pos == 22 or pos == 32 then posName = "nd"; elseif pos == 3 or pos == 23 or pos == 33 then posName = "rd"; else posName = "th"; end if not getElementData(source,"gotMoney") then local money = math.ceil(getPlayerCount()*50 / pos); givePlayerMoney(source,money); outputChatBox("* You were #abcdef[#ff0000"..pos..posName.."#abcdef]#ffffff and #abcdefearned #ffffff"..money.."#00ff00$!",source,255,255,255,true); exports["Evo-notificaciones"]:showBox("info","test"); setElementData(source,"gotMoney",true); if account then setAccountData(account,"money", tostring(getPlayerMoney(source))); end end end addEventHandler("onPlayerWasted",getRootElement(),giveMoneyWinDie)
-
en realidad lo que quiero hacer es tomar los numeros que estan ahi y usarlos con ese tipo de animacion pero creo que al usarlo se laggearia mucho un servidor.