kevincouto6 Posted February 20, 2019 Share Posted February 20, 2019 Estava, fazendo um teste com setWeaponProperty, e dei de cara com desafio, será que e possível ativar apenas para um jogador, tipo um arma especifica para cada jogador. tentativas Tentei expecificar o player e do grupo ADMIN. verifiquei pelo NOME player. porem acho que o problema e em si no setWeaponProperty, tipo "weaponSkill: Either: "pro", "std" or "poor". The player must have this skill level set to have the effect.", ele ativa para um class de jogador tipo, pensei em fazer no lado client pois não entendi como funciona, ao meu ver vou ter que criar um "weapon", ou algo do tipo. estava pensando em criar um "função" para botar no lugar de "PRO" "STD" "POOR", que funcione apenas par um, mas não sei como fazer. (posso estar viajando, (falando besteira) ) se existir outro modo podem me ensinar ? Obrigado desde já ! createPed ( 120, -2422, -610, 132 ) function desertWeaponEdited ( playerSource ) if ( playerSource ) then local theAccount = getPlayerAccount( playerSource ) if theAccount then local accountName = getAccountName( theAccount ) if isObjectInACLGroup("user." .. accountName, aclGetGroup ( "Owner", "Moderator" ) ) then if getPlayerName ( playerSource ) == ( "mane321" ) then setWeaponProperty(24,"pro", "damage", 500) outputChatBox("Funcionou, Arma Admin Adicionada") end end end end end addCommandHandler ( "desertWeapon", desertWeaponEdited ) para apenas um player Link to comment
Other Languages Moderators androksi Posted February 20, 2019 Other Languages Moderators Share Posted February 20, 2019 Usando essa função creio eu que não, não seja possível. Porém há outra forma de fazer isso. Usando o evento onClientPlayerDamage. Link to comment
Other Languages Moderators Lord Henry Posted February 20, 2019 Other Languages Moderators Share Posted February 20, 2019 (edited) Tente fazer ela client-side. Pela lógica só vai afetar no cliente específico. Mas não tenho certeza. Edited February 20, 2019 by Lord Henry Link to comment
kevincouto6 Posted February 20, 2019 Author Share Posted February 20, 2019 (edited) 15 minutes ago, Lord Henry said: Tente fazer ela client-side. Pela lógica só vai afetar no cliente específico. Mas não tenho certeza. Pesei assim tmb, mas não funciona, pede para criar um createWeapon se eu usar esta função, vai criar weapon, mas não vou poder usar arma em si. 19 minutes ago, asrzk said: Usando essa função creio eu que não, não seja possível. Porém há outra forma de fazer isso. Usando o evento onClientPlayerDamage. Poderia tentar eu verificario o player, o grupo, e se é a desert deagle, mas como eu modificaria o dano para funcionar em PED e em Players ? Edited February 20, 2019 by kevincouto6 Link to comment
Other Languages Moderators Lord Henry Posted February 20, 2019 Other Languages Moderators Share Posted February 20, 2019 Hum, realmente. A função client-side não funciona com ID da arma, precisa ser um weapon element. Que vacilo... 1 Link to comment
Other Languages Moderators androksi Posted February 20, 2019 Other Languages Moderators Share Posted February 20, 2019 (edited) Faça assim: -- // CLIENT-SIDE addEventHandler( "onClientPlayerDamage", root, function( attacker, weapon, bodypart, loss ) cancelEvent( ); -- // Cancela o dano if ( attacker == localPlayer ) then -- // Verifica se o 'attacker' é o jogador que está dando dano e não o que está sofrendo o dano triggerServerEvent( "onClientGotDamage", localPlayer, attacker, weapon, bodypart, loss, source ); -- // Sincroniza o dano else if ( weapon == 53 ) then -- // Verifica se o jogador sofreu uma queda setElementHealth( localPlayer, loss ); -- // Sofreu? Então ele perderá vida end end end ); -- // SERVER-SIDE local TABLE_DAMAGE = { -- // [ID da Arma] = Novo Dano [23] = 20, -- // Pistola Silenciada [24] = 35, -- // Desert Eagle [30] = 25, -- // AK-47 }; addEvent( "onClientGotDamage", true ) -- // atirador, arma, bodypart, dano, alvo addEventHandler( "onClientGotDamage", root, function( attacker, weapon, bodypart, damage, target ) if ( not isPeadDead( attacker ) ) then -- // Caso o atirador esteja morto, o alvo não sofrerá mais danos local newDamage local targetArmor = getPedArmor( target ); -- // Obtém o valor do colete (se tiver) local targetHealth = getElementHealth( target ); -- // Obtém o valor da vida if ( getElementData( attacker, "mane123" ) ) then -- // A sua verificação, se ele é um "admin" local g_Damage = TABLE_DAMAGE[ weapon ] or damage; newDamage = g_Damage; if ( targetArmor > 0 ) then -- // O alvo tem colete? setPedArmor( target, targetArmor - newDamage ); else -- // O alvo não tem colete? Então bora tirar a vida dele. local h = math.max( targetHealth - newDamage, 0 ); setElementHealth( target, h ); if ( h <= 0 ) then killPed( target, attacker, weapon, bodypart, false ); end end end end end ); Edited February 20, 2019 by asrzk 2 Link to comment
kevincouto6 Posted February 24, 2019 Author Share Posted February 24, 2019 @asrzk Olá, hoje quando fui testar o script, não funcionou, continua com o dano normal Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now