Jump to content

[Problema] Explota muchas veces


Platin

Recommended Posts

Posted

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) 

Posted

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) 
  

Posted

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.

Posted
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 :)

  • 3 weeks later...
Posted

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.

Posted
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 
  

  • 2 weeks later...
Posted

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) 

  • 1 month later...
Posted

Perdón por la espera de la respuesta, estuve muy inactivo en esto del scripting. Lo solucione de otra forma pero no tengo el archivo ahora mismo para hacer un Ctrl+C Ctrl+V.

Gracias de todos modos.

  • Recently Browsing   0 members

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