RESOLVIDO
Vá em data/creaturescripts/scripts, crie um arquivo chamado advance_1k.lua e adicione dentro:
function onLogin(cid) registerCreatureEvent(cid, "AdvancePa") return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 and newlevel == 1000 then doPlayerAddPremiumDays(cid, 1) end return true end
Agora em creaturescripts.xml adicione essa tag:
<event type="login" name="Advance1k" event="script" value="advance_1k.lua"/> <event type="advance" name="AdvancePa" event="script" value="advance_1k.lua"/>
opa.. fiz tudo aqui.. peguei 1k na mao mesmo.. e nao add a p.a, nao deu nehum erro no console, nem nada, apenas nao add o dia premium.
oq pode ser? vou testar melhor quando chegar em casa.
Você tem q sair da conta e voltar. Os days na lista de chars só aparece se relogar a CONTA.
boa.. deu certo. agora vi com mais tempo.
agora teria como colocar o texto quando upar o lvl para lvl 1000? -> "parabens pelo lvl 1000 voce ganhou 1 dia de premium"
ou quando ele relogar, quando ele voltar ja mandar uma msg para ele avisando que foi add 1 dia de premium por conquistar o lvl 1000? assim fica mais organizado.
espero.
Testa isso ae:
function onLogin(cid) registerCreatureEvent(cid, "AdvancePa") return true end function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 and newlevel == 1000 then doPlayerAddPremiumDays(cid, 1) doPlayerSendTextMessage(cid, 21, "Parabéns pelo level 1000. Você ganhou 1 dia de premium pelo seu feito. Relogue a conta para tanto!") end return true end
com esse script com msg, ele parou de funcionar, assim, nao add o dia de premium.. quando retirei o texto e o doPlayerSendTextMessage ai o script voltou ao normal..
oq sera que falto?
aguardo
function onLogin(cid) if getPlayerLevel(cid) == 1000 then doPlayerSendTextMessage(cid, 20, "Por conquistar o level 1000 você recebeu 1 dia de premium account.") return true end registerCreatureEvent(cid, "AdvancePa") return true end function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerStorageValue(cid, 12400) >= 1 then return true end if skill == 8 and newlevel == 1000 then doPlayerAddPremiumDays(cid, 1) doPlayerSendTextMessage(cid, 20, "Por conquistar o level 1000 você ganhou 1 dia de Premium Account grátis.") setPlayerStorageValue(cid, 12400, 1) end return true end
testei aqui, com texto nao esta funcionando.. e percebi que quando ultrapassa o lvl 1k de uma vez só, nao add o dia premium.. so quando pega o lvl 1k redondo e exato.. meu ot é exp alta, é quase impossivel o player pegar lvl 1k exato.. sempre ultrapassa, exemplo: 13:45 You advanced from Level 998 to Level 1017.
testei varias vezes e só add o dia premium se pegar lvl 1k exato, se passar nao nao adciona.. oq pode ser?
espero.
axo q teria q ser por storage, ja que nao ta funcionando
WOOOOOOL
function onLogin(cid) registerCreatureEvent(cid, "AdvancePa") return true end function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerStorageValue(cid, 12400) >= 1 then return true end if skill == 8 and newlevel >= 1000 then doPlayerAddPremiumDays(cid, 1) doPlayerSendTextMessage(cid, 20, "Por conquistar o level 1000 você ganhou 1 dia de Premium Account grátis.") setPlayerStorageValue(cid, 12400, 1) end return true end
"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬
"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein
esta funcionando e add o dia premium.. so que nao tem como add só 1 dia por ACCOUNT? se o player fizer 90 chars na mesma acc e pegar lvl 1k em cada char, ele vai add 1 dia de premium com cada char.. e acabar burlando o sistema donate vip.. n tem como?
testei aqui com 2 char na mesma acc, peguei lvl 1k em cada char, e fico 2 days de premium na acc.
Troca ai
function onLogin(cid) registerCreatureEvent(cid, "AdvancePa") return true end function onAdvance(cid, skill, oldlevel, newlevel) if getAccountStorageValue(getPlayerAccountId(cid), 12400) >= 1 then return true end if skill == 8 and newlevel >= 1000 then doPlayerAddPremiumDays(cid, 1) doPlayerSendTextMessage(cid, 20, "Por conquistar o level 1000 você ganhou 1 dia de Premium Account grátis.") setAccountStorageValue(getPlayerAccountId(cid), 12400, 1) end return true end
deu esse erro:
[17/05/2013 18:29:41] [Error - CreatureScript Interface] [17/05/2013 18:29:41] data/creaturescripts/scripts/advance_1k.lua:onAdvance [17/05/2013 18:29:41] Description: [17/05/2013 18:29:41] data/creaturescripts/scripts/advance_1k.lua:8: attempt to call global 'getAccountStorageValue' (a nil value) [17/05/2013 18:29:41] stack traceback: [17/05/2013 18:29:42] data/creaturescripts/scripts/advance_1k.lua:8: in function <data/creaturescripts/scripts/advance_1k.lua:7>
function onLogin(cid) registerCreatureEvent(cid, "AdvancePa") return true end function onAdvance(cid, skill, oldlevel, newlevel) if getGlobalStorageValue(getPlayerAccountId(cid)) > 0 then return true end if ((skill == 8) and (newLevel >= 1000)) then doPlayerAddPremiumDays(cid, 1) doPlayerSendTextMessage(cid, 20, "Por conquistar o level 1000 você ganhou 1 dia de Premium Account grátis.") setGlobalStorageValue(getPlayerAccountId(cid), 1) end return true end