їCуmo hacer para que el arma no desaparezca cuando las balas se acaben?
#1

Le adaptй a mi Gamemode el sistema de /bol (bolsillo) lo cual cuando cojo algъn arma me aparece en mi mano derecha tranquilamente pero no la puedo usar, hasta ahн todo bien, el problema es que cuando la cargo y las balas se acaban, el arma desaparece visualmente de mi mano pero cuando uso /guardar y luego /sacar, reaparece con las balas que tenнa anteriormente.

їCуmo puedo hacer para arreglar este bug?

Gracias de antemano.
Reply
#2

Puedes ponerle mas municiуn para hacerla infinita GivePlayerWeapon(playerid,24,100000);
Reply
#3

La intenciуn no es hacerla infinita, si no, las municiones/cargadores no servirнan de nada, la idea es que cuando las balas del arma se acaben, el arma no desaparezca o al menos lo mнnimo de municiуn quede en 0 - 1, dando asн que el arma no tenga posibilidad de recargarse al cambiar mano o guardarla en el inventario. No sй si me explico bien.

Hay dos servidores muy reconocidos en los cuales esto estб implementado.
Reply
#4

Transformarla en toy quizбs.
Reply
#5

Cuando le das un arma le seteas el arma como un Attached y cuando se acabe las balas se le quedarб el attached en la mano simulando el arma.
Reply
#6

Lo que puedes hacer es lo siguiente. Solo te dare un ejemplo.

Obtener la municion del arma, si el valor obtenido es menor a 1, entonces la arma no pueda ser disparada.

https://sampwiki.blast.hk/wiki/GetPlayerAmmo, seria algo como esto.

Код:
new mun = GetPlayerAmmo(playerid);

if(mun < 1)
{
....
}
Solo es un ejemplo.
Reply
#7

Quote:
Originally Posted by Lucille
Посмотреть сообщение
Lo que puedes hacer es lo siguiente. Solo te dare un ejemplo.

Obtener la municion del arma, si el valor obtenido es menor a 1, entonces la arma no pueda ser disparada.

https://sampwiki.blast.hk/wiki/GetPlayerAmmo, seria algo como esto.

Код:
new mun = GetPlayerAmmo(playerid);

if(mun < 1)
{
....
}
Solo es un ejemplo.
No soy el mas inteligente del mundo....
Pero eso verifica que si la municiуn es menor a 1(0,-1,-2...-oo) haga lo que el condicional diga.
Pero estarнa en la misma situaciуn que el usuario que escribiу el tema quiere evitar: Desaparecer el arma. Simplemente no se puede evitar como tal.


Sobre el tema:
Como te dijeron antes, podes hacer que en OnPlayerWeaponShot si un jugador deja de tener un arma(no podemos usar GetPlayerAmmo y sus variantes, puesto que la municiуn ya habrнa reducido a 0 y desaparecido el arma), le pegues un objeto al personaje simulando ser el arma. Tambiйn puedes poner un textdraw con un icono del arma en el HUD...
Tambiйn puedes usar OnPlayerKeyStateChange supongo, que al presionar la tecla de disparo(KEY_FIRE), este revise la municiуn del arma, para saber mas fбcilmente(con GetPlayerAmmo) si tiene 1 de municiуn. Si tiene 1, al disparar se reducirб a 0, por lo tanto, hacemos lo del objeto aquн. Esto no estoy seguro de que funcione siempre, por el hecho de que no se que se llama primero en OnPlayerKeyStateChange, si las funciones de presionar la tecla(disparar, osea, OnPlayerWeaponShot), o las funciones del callback(lo que colocamos dentro del mismo)
Reply
#8

Quote:
Originally Posted by ByMatt20030
Посмотреть сообщение
No soy el mas inteligente del mundo....
Pero eso verifica que si la municiуn es menor a 1(0,-1,-2...-oo) haga lo que el condicional diga.
Pero estarнa en la misma situaciуn que el usuario que escribiу el tema quiere evitar: Desaparecer el arma. Simplemente no se puede evitar como tal.


Sobre el tema:
Como te dijeron antes, podes hacer que en OnPlayerWeaponShot si un jugador deja de tener un arma(no podemos usar GetPlayerAmmo y sus variantes, puesto que la municiуn ya habrнa reducido a 0 y desaparecido el arma), le pegues un objeto al personaje simulando ser el arma. Tambiйn puedes poner un textdraw con un icono del arma en el HUD...
Tambiйn puedes usar OnPlayerKeyStateChange supongo, que al presionar la tecla de disparo(KEY_FIRE), este revise la municiуn del arma, para saber mas fбcilmente(con GetPlayerAmmo) si tiene 1 de municiуn. Si tiene 1, al disparar se reducirб a 0, por lo tanto, hacemos lo del objeto aquн. Esto no estoy seguro de que funcione siempre, por el hecho de que no se que se llama primero en OnPlayerKeyStateChange, si las funciones de presionar la tecla(disparar, osea, OnPlayerWeaponShot), o las funciones del callback(lo que colocamos dentro del mismo)
Creo que si ubieses leido te darias cue ta. Nunca dine que funcionaria.. De hecho solo puse eso para que mas o menos supiese como podria ser
Код:
if(mun <=1)
Publicado deste celular..
Reply
#9

Quote:
Originally Posted by StreK
Посмотреть сообщение
Cuando le das un arma le seteas el arma como un Attached y cuando se acabe las balas se le quedarб el attached en la mano simulando el arma.
Ya estб colocado como Attached

PHP код:
UpdateAttach(playerid); 
Pero cuando el arma se acaba, desaparece o sencillamente puedes cambiarla con la ruedita del ratуn.
Reply
#10

La ъnica manera de hacer eso es con objetos que estйn en el personaje.
En cuanto a que se desaparecen se debe que a los debes estar removiendo con RemovePlayerAttachedObject, o alguna funciуn que tengas hecha.
Con respecto al cambio de armas con la rueda del mouse lo ъnico que te queda es sуlo tener 1 slot para equipar arma, o puedes no dejar equipar las otras al tener una en la mano, y en caso de estar equipando varias al momento de que el arma estй en la mano se quitan todas las armas y se usan objetos. Por ejemplo, teniendo un fusil y una pistola, al momento de que la pistola estй sin balas el fusil que tenнas equipado se quita y se usa un objeto en la espalda o donde sea.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)