Jump to content

[Problema] Explota muchas veces


Platin

Recommended Posts

Hola, ya que hace poco tiempo pude terminar de arreglar el problema con mis super zombies, decidí que el zombie con el modelo 277 explotará al morir, pero esto no fue tan fácil como me parecía. Este explota, pero cada vez que un zombie muere. Esto pasa hasta que el cadaver desaparece. ¿Qué podría hacer para que no pase?

serverside

function zsp2(ped) 
local peds = getElementsByType("ped") 
    for k, ped in pairs( peds ) do 
        if (getElementData (ped, "zombie") == true) then 
            if getElementModel ( ped ) == 277 then 
                local X, Y, Z = getElementPosition ( ped ) 
                createExplosion ( X, Y, Z, 0) 
            end 
        end 
    end 
end 
addEvent("onZombieWasted", true) 
addEventHandler("onZombieWasted", root, zsp2) 

Link to comment

mucho te complicas en tu codigo lo que quieres hacer es algo mas simple

function zsp2() 
            if getElementModel ( source ) == 277 then 
                local X, Y, Z = getElementPosition ( source ) 
                createExplosion ( X, Y, Z, 5) 
    end 
end 
addEvent("onZombieWasted", true) 
addEventHandler("onZombieWasted", root, zsp2) 
  

Link to comment

Creo que tienes un grave problema con los for-loops, en cada script que haces le metes un loop sin sentido, aquí tienes una guía que me ayudó mucho cuando tenía problemas similares a los tuyos;

http://www.lua.org/manual/5.1/es/manual.html#2.4.5

Si no te quedó claro puedes buscar un manual de loops en otro lenguaje de programación como en PHP ya que cumplen la misma función, la sintaxis no será similar a la de Lua obviamente.

Link to comment
mucho te complicas en tu codigo lo que quieres hacer es algo mas simple
function zsp2() 
            if getElementModel ( source ) == 277 then 
                local X, Y, Z = getElementPosition ( source ) 
                createExplosion ( X, Y, Z, 5) 
    end 
end 
addEvent("onZombieWasted", true) 
addEventHandler("onZombieWasted", root, zsp2) 
  

Prefiero quedarme bien seguro de que me esta detectando los zombies y no tener problemas como el antecesor que cambiaba la gravedad a los usuarios. Por cierto, eso no soluciona mi problema. De todas formas gracias.

Creo que tienes un grave problema con los for-loops, en cada script que haces le metes un loop sin sentido, aquí tienes una guía que me ayudó mucho cuando tenía problemas similares a los tuyos;

http://www.lua.org/manual/5.1/es/manual.html#2.4.5

Si no te quedó claro puedes buscar un manual de loops en otro lenguaje de programación como en PHP ya que cumplen la misma función, la sintaxis no será similar a la de Lua obviamente.

Me lo leeré, gracias :)

Link to comment
  • 3 weeks later...

Creo que eso es Client-side por lo que source no debería funcionar (no estoy 100% seguro). No se si te fijas pero la variable "ped" se pinta de color verde, por lo cual es una variable reservada y no la debes usar ya que te puede generar conflictos.

Intenta cambiar la variable ped por otra.

Link to comment
Creo que eso es Client-side por lo que source no debería funcionar (no estoy 100% seguro). No se si te fijas pero la variable "ped" se pinta de color verde, por lo cual es una variable reservada y no la debes usar ya que te puede generar conflictos.

Intenta cambiar la variable ped por otra.

source funciona tanto en client-side como en server-side, en este caso es server-side

Y sobre 'ped' está marcada en verde porque es un elemento, pero de todos modos funciona como variable.

ej:

  
ped 
player 
pickup 
vehicle 
object 
blip 
team 
marker 
  

Link to comment
  • 2 weeks later...

server

  
  addEvent("onZombieWasted",true) 
addEventHandler("onZombieWasted", root, 
function zsp2(element) 
if getElementType ( element ) == "ped" and getElementModel (element ) == 277 then 
    for k, ped in pairs( element ) do 
        if (getElementData (element, "zombie") == true) then 
                local x, y, z = getElementPosition ( ped ) 
              triggerClientEvent(root, "onWasted", root, x, y, z) 
            end 
        end 
        end 
end) 

Client

  
addEvent("onWasted") 
addEventHandler("onWasted", root, 
function(x, y, z) 
    createExplosion(x, y, z, 0, true, -1.0, false) 
end) 

Link to comment
  • 1 month later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...