Alexs Posted April 23, 2012 Posted April 23, 2012 (edited) Hola a Todos, tengo una duda, como hago para hacer rangos en la ScoreBoard, tengo esto: exports.dxscoreboard:addScoreboardColumn('Rango') addEventHandler("onPlayerSpawn",root, function () local account = getPlayerAccount(source) local zombieKills = getAccountData(account,"Zombie kills") end) Mi Duda es como hacer para cuando sean mas de 100 que posea el rango de "MataZombies", mas de 250 que tenga el rango de "Experto", intente esto, pero no funcionaba: local MataZombies = (100, 249) if (zombieKills == MataZombies) then setAccountData ( account, "Rango", MataZombies ) Alguna ayuda o idea? Edited April 23, 2012 by Guest
Alexs Posted April 23, 2012 Author Posted April 23, 2012 te falto hacer un call al recurso de zombies pues lo saco del getAccountData que es guardado por otro resource, es igualmente necesario si los datos ya estan en las cuentas?
Renkon Posted April 23, 2012 Posted April 23, 2012 No sirve zombiekills > 100 and zombiekills < 250 ?
Alexs Posted April 23, 2012 Author Posted April 23, 2012 No sirve zombiekills > 100 and zombiekills < 250 ? Nunca aprendi como usar el simbolo > para LUA xDD no comprenderia como utilizarlo, asi que busco otra manera...
Renkon Posted April 23, 2012 Posted April 23, 2012 if (zombiekills > 100) and (zombiekills < 250) then
Alexs Posted April 24, 2012 Author Posted April 24, 2012 if (zombiekills > 100) and (zombiekills < 250) then Asi? local MataZombies = (100, 249) if (zombiekills > 100) and (zombiekills < 250) then setAccountData ( account, "Rango", MataZombies ) y lo otro, para otros rangos seria asi? addEventHandler("onPlayerSpawn",root, function () local account = getPlayerAccount(source) local zombieKills = getAccountData(account,"Zombie kills") if (zombiekills > 0) and (zombiekills < 5) then setAccountData ( account, "Rango", Nuevo ) if (zombiekills > 6) and (zombiekills < 99) then setAccountData ( account, "Rango", Iniciado ) if (zombiekills > 100) and (zombiekills < 250) then setAccountData ( account, "Rango", Asesino ) end)
iFoReX Posted April 24, 2012 Posted April 24, 2012 Nose si tu codigo funcione correctamente alex pero asi como isiste los if estan bien pero seria asi addEventHandler("onPlayerSpawn",root, function () local account = getPlayerAccount(source) local zombieKills = getAccountData(account,"Zombie kills") if (zombiekills > 0) and (zombiekills < 5) then setAccountData ( account, "Rango", Nuevo ) elseif (zombiekills > 6) and (zombiekills < 99) then setAccountData ( account, "Rango", Iniciado ) elseif (zombiekills > 100) and (zombiekills < 250) then setAccountData ( account, "Rango", Asesino ) end) Yo ise un script con esto de entre cierta cantidad y me funciono perfecto
Alexs Posted April 24, 2012 Author Posted April 24, 2012 Nose si tu codigo funcione correctamente alex pero asi como isiste los if estan bien pero seria asi addEventHandler("onPlayerSpawn",root, function () local account = getPlayerAccount(source) local zombieKills = getAccountData(account,"Zombie kills") if (zombiekills > 0) and (zombiekills < 5) then setAccountData ( account, "Rango", Nuevo ) elseif (zombiekills > 6) and (zombiekills < 99) then setAccountData ( account, "Rango", Iniciado ) elseif (zombiekills > 100) and (zombiekills < 250) then setAccountData ( account, "Rango", Asesino ) end) Yo ise un script con esto de entre cierta cantidad y me funciono perfecto ahh, se usan elseif.., ok, lo probare...
BorderLine Posted April 24, 2012 Posted April 24, 2012 y para poner el rango al score debes usar setElementData
Alexs Posted April 24, 2012 Author Posted April 24, 2012 2 Cosas, primero, como $·%" agrego esto a un setElementData y lo otro, dice que me sobra un ")" en la linea 39 -.- exports.dxscoreboard:addScoreboardColumn('Rango') addEventHandler("onPlayerSpawn",root, function () local account = getPlayerAccount(source) local zombieKills = getAccountData(account,"Zombie kills") if (zombiekills > 0) and (zombiekills < 4) then setAccountData ( account, "Rango", Nuevo ) elseif (zombiekills > 5) and (zombiekills < 99) then setAccountData ( account, "Rango", Iniciado ) elseif (zombiekills > 100) and (zombiekills < 249) then setAccountData ( account, "Rango", Aficionado ) elseif (zombiekills > 250) and (zombiekills < 499) then setAccountData ( account, "Rango", Amateur ) elseif (zombiekills > 500) and (zombiekills < 999) then setAccountData ( account, "Rango", Asesino ) elseif (zombiekills > 1000) and (zombiekills < 1499) then setAccountData ( account, "Rango", Maestro ) elseif (zombiekills > 1500) and (zombiekills < 1999) then setAccountData ( account, "Rango", Cannibal ) elseif (zombiekills > 2000) and (zombiekills < 2999) then setAccountData ( account, "Rango", Rampager ) elseif (zombiekills > 3000) and (zombiekills < 3999) then setAccountData ( account, "Rango", Monster ) elseif (zombiekills > 4000) and (zombiekills < 4999) then setAccountData ( account, "Rango", Blooder ) elseif (zombiekills > 5000) and (zombiekills < 5999) then setAccountData ( account, "Rango", ZombieKiller ) elseif (zombiekills > 5000) and (zombiekills < 5999) then setAccountData ( account, "Rango", HeadShooter ) elseif (zombiekills > 6000) and (zombiekills < 6999) then setAccountData ( account, "Rango", Animal ) elseif (zombiekills > 7000) and (zombiekills < 7999) then setAccountData ( account, "Rango", Depredador ) elseif (zombiekills > 8000) and (zombiekills < 8999) then setAccountData ( account, "Rango", Psicopata ) elseif (zombiekills > 9000) and (zombiekills < 10000000) then setAccountData ( account, "Rango", PsykoKiller ) end )
iFoReX Posted April 24, 2012 Posted April 24, 2012 ve ahora exports.dxscoreboard:addScoreboardColumn('Rango') addEventHandler("onPlayerSpawn",root, function() local account = getPlayerAccount(source) local zombieKills = getAccountData(account,"Zombie kills") if (zombiekills > 0) and (zombiekills < 4) then setAccountData ( account, "Rango", Nuevo ) elseif (zombiekills > 5) and (zombiekills < 99) then setAccountData ( account, "Rango", Iniciado ) elseif (zombiekills > 100) and (zombiekills < 249) then setAccountData ( account, "Rango", Aficionado ) elseif (zombiekills > 250) and (zombiekills < 499) then setAccountData ( account, "Rango", Amateur ) elseif (zombiekills > 500) and (zombiekills < 999) then setAccountData ( account, "Rango", Asesino ) elseif (zombiekills > 1000) and (zombiekills < 1499) then setAccountData ( account, "Rango", Maestro ) elseif (zombiekills > 1500) and (zombiekills < 1999) then setAccountData ( account, "Rango", Cannibal ) elseif (zombiekills > 2000) and (zombiekills < 2999) then setAccountData ( account, "Rango", Rampager ) elseif (zombiekills > 3000) and (zombiekills < 3999) then setAccountData ( account, "Rango", Monster ) elseif (zombiekills > 4000) and (zombiekills < 4999) then setAccountData ( account, "Rango", Blooder ) elseif (zombiekills > 5000) and (zombiekills < 5999) then setAccountData ( account, "Rango", ZombieKiller ) elseif (zombiekills > 5000) and (zombiekills < 5999) then setAccountData ( account, "Rango", HeadShooter ) elseif (zombiekills > 6000) and (zombiekills < 6999) then setAccountData ( account, "Rango", Animal ) elseif (zombiekills > 7000) and (zombiekills < 7999) then setAccountData ( account, "Rango", Depredador ) elseif (zombiekills > 8000) and (zombiekills < 8999) then setAccountData ( account, "Rango", Psicopata ) elseif (zombiekills > 9000) and (zombiekills < 10000000) then setAccountData ( account, "Rango", PsykoKiller ) end )
Alexs Posted April 24, 2012 Author Posted April 24, 2012 Ahora es un unexpected symbol en la linea 40.. y lo del elemendata, defino un source y con un getAccountData lo consigo? me faltaba un end, esto me envia lo mismo, pero le quito y le saco end's y nada addEventHandler("onPlayerSpawn",root, function () local cuenta = getPlayerAccount(source) if isGuestAccount(cuenta) then return end local rango = getAccountData(cuenta,"Rango") if Rango then setElementData(source,"Rango", rango) end end )
Renkon Posted April 24, 2012 Posted April 24, 2012 Debes poner <= o >= porque si no hay uno que se saltara digamos MAYOR A 0 Y MENOR A 5 MAYOR A 6 Y MENOR A 25 si vale 5? no hay rango. si vale 6? tampoco
Renkon Posted April 24, 2012 Posted April 24, 2012 zombieKills y luego usas zombiekills LUA ES CASE SENSITIVE
Alexs Posted April 24, 2012 Author Posted April 24, 2012 Debes poner <= o >= porque si no hay uno que se saltaradigamos MAYOR A 0 Y MENOR A 5 MAYOR A 6 Y MENOR A 25 si vale 5? no hay rango. si vale 6? tampoco eso que dijiste no lo comprenderia nadie.... me lo dirias en español?
Renkon Posted April 24, 2012 Posted April 24, 2012 Si pones : ( algo > 0 ) and ( algo < 5 ) Significa. Si es MAYOR que CERO, hasta MENOR QUE CINCO Incluye 1, 2, 3 y 4. 0 y 5 quedan excluídos. En todos deve ser >= (mayor o igual) y <= (menor o igual) if ( algo >= 0 ) and ( algo <= 5 ) then asi no retocas nada. solo agregale los 'igual'
Alexs Posted April 24, 2012 Author Posted April 24, 2012 Si pones : ( algo > 0 ) and ( algo < 5 ) Significa. Si es MAYOR que CERO, hasta MENOR QUE CINCO Incluye 1, 2, 3 y 4. 0 y 5 quedan excluídos. En todos deve ser >= (mayor o igual) y <= (menor o igual) if ( algo >= 0 ) and ( algo <= 5 ) then asi no retocas nada. solo agregale los 'igual' Vale, y respecto al setElementData que podria ser?
Edikosh998 Posted April 24, 2012 Posted April 24, 2012 Esta bien lo de elementData , y osea el elementData te sirve para pasar de server a client
Renkon Posted April 24, 2012 Posted April 24, 2012 Está mal que predefiniste zombieKills y luego comparás zombiekills
Alexs Posted April 24, 2012 Author Posted April 24, 2012 Esta bien lo de elementData , y osea el elementData te sirve para pasar de server a client y por que dice que hay un unexpected simbol near "end" ??
Renkon Posted April 24, 2012 Posted April 24, 2012 Tu arregla eso y prueba. Modifica el zombieKills = [...] por zombiekills = [...]
Edikosh998 Posted April 24, 2012 Posted April 24, 2012 addEventHandler("onPlayerSpawn",root, function () local cuenta = getPlayerAccount(source) if isGuestAccount(cuenta) then return end local rango = getAccountData(cuenta,"Rango") if rango then setElementData(source,"Rango", rango) end end ) If Rango no es, es if rango...
Alexs Posted April 24, 2012 Author Posted April 24, 2012 Asunto resuelto, pero en la dxscoreboard no me aparece el Rango, que podra ser, ya comprobe las mayusculas y minusculas y nada
Renkon Posted April 24, 2012 Posted April 24, 2012 Que tambien es un string y debe ir entre "" el valor
Recommended Posts