What's new

Creaturescripts Daily Login Rewards

Status
Not open for further replies.

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
tpv7.png

Author: Dantez
Version: 1.1
Platform: The Forgotten Server 0.3.6pl1


Dzia?anie:
Przydziela nagrody za codzienne logowanie na serwer. Logowanie musi nast?powa? w ka?dy dzie? tygodnia, niekoniecznie co 24 godziny. Nagrody wybierane s? z puli nagr?d w tablicy. Po otrzymaniu ca?ej 'tablicy' wracamy na pocz?tek kolejki i otrzymujemy przedmioty od nowa.


Konfiguracja:
Mamy do dyspozycji 3 typy nagr?d: przedmioty, do?wiadczenie, storage. Dodajemy je nast?puj?co:
{"item", ITEMID, COUNT}
{"exp", EXP_VALUE}
{"storage", STORAGE_ID, STORAGE_VALUE}

Tablica z nagrodami ma nast?puj?c? struktur?:
rewards {
{pierwszy dzie?},
{drugi dzie?},
{itd.},
}



Skrypt:

creaturescripts/scripts/rewards.lua
[LUA]local config = {

dateStorage = 25563,
rowStorage = 25564,

rewards = {
{{"item", 2160, 5}},
{{"item", 2160, 1}, {"item", 2160, 3}, {"experience", 22000}},
{{"exp", 50000}, {"storage", 80444, 5}, {"item", 2160, 10}}
}
}

local today = os.date("*t")
local tomorrow = os.date("*t", os.time() + 86400)

function onLogin(cid)

if(getPlayerAccountManager(cid) ~= MANAGER_NONE) then return true end
local nextReward, rowCount = getPlayerStorageValue(cid, config.dateStorage), getPlayerStorageValue(cid, config.rowStorage)
local nextRewardDate = os.date("*t", (nextReward ~= -1 and nextReward) or nil)

if(nextRewardDate.day == tomorrow.day and nextRewardDate.month == tomorrow.month) then
return true
else
rowCount = (rowCount > 0 and nextRewardDate.day == today.day and nextRewardDate.month == today.month
and rowCount < #config.rewards) and rowCount + 1 or 1

local configRef = config.rewards[rowCount][math.random(#config.rewards[rowCount])]

if(configRef ~= nil) then
doPlayerSetStorageValue(cid, config.dateStorage, os.time(tomorrow))
doPlayerSetStorageValue(cid, config.rowStorage, rowCount)
doPlayerSendTextMessage(cid, 24, "You have received daily login reward. Keep logging in every day to obtain better rewards!")

if(configRef[1] == "item") then
if(not doPlayerAddItem(cid, configRef[2], configRef[3], false)) then
local parcel = doCreateItemEx(ITEM_PARCEL)
doAddContainerItem(parcel, configRef[2], configRef[3])
doPlayerSendMailByName(getCreatureName(cid), parcel, getPlayerTown(cid))
doPlayerSendTextMessage(cid, 19, "Reward was sent to the depot.")
end
elseif(configRef[1] == "storage") then
doPlayerSetStorageValue(cid, configRef[2], getPlayerStorageValue(cid, configRef[2]) + configRef[3])
elseif(configRef[1] == "experience" or configRef[1] == "exp") then
doPlayerAddExp(cid, configRef[2])
else
print("[Daily reward system]: Unknown reward type.")
end
else
print("[Daily reward system]: Reference to array's element that doesn't exist.")
end
end

return true
end
[/LUA]
creaturescripts/creaturescripts.xml
[XML]<event type="login" name="Rewards" event="script" value="rewards.lua"/>[/XML]
 

Anakonta

Senior User
Joined
Oct 5, 2010
Messages
536
Reaction score
10
Odp: Daily Login Rewards

Widzia?em ju? podobny skrypt ale tw?j jest lepszy. Nie mam w tej chwili mo?liwo?ci przetestowanie tego skryptu ale mam dla ciebie propozycje co by? m?g? doda? do tego. Zr?b mo?liwo?? dostania itema b?d? kilka item?w w bagu oraz skrypt by? by lepszy jak by gracze dostawali przedmioty do dp bo o ile dobrze si? orientuje to jak gracz ma za ma?o capa nie mo?e dosta? itema ale tego nie jestem pewien. A poza tym skrypt fajny i przydatny.

ps fajny napis
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Daily Login Rewards

zupx.png

  • Zmieniono wersje z 1.0 na 1.1
  • Poprawiono b??d z pierwszym logowaniem
  • Poprawiono b??d z logowaniem na posta? Account Manager
  • Dodano wysy?anie nagr?d parcelem do depo w przypadku braku capacity albo miejsca
 
Last edited:

Placek

Blue Waffle
Joined
Sep 30, 2008
Messages
6,793
Reaction score
672
Age
8
Odp: Daily Login Rewards

Ehh. Nic nowego. Daily juz byly dawno i masa roznych skryptow. Tutaj tylko roznica taka, ze np zamiast otwierac skrzynki w temple/depo czy gdzies to dostaje sie prosto do plecaka/depo.
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Daily Login Rewards

Ehh. Nic nowego. Daily juz byly dawno i masa roznych skryptow. Tutaj tylko roznica taka, ze np zamiast otwierac skrzynki w temple/depo czy gdzies to dostaje sie prosto do plecaka/depo.
Wi?kszo?? istniej?cych skrypt?w opiera?a si? o przerw? 20/24h, u mnie bonus wpadnie w np. poniedzia?ek o 23.59 i wtorek o 1
 

bastek13

Active User
Joined
Jun 4, 2011
Messages
106
Reaction score
0
Odp: Daily Login Rewards

mi daje nagrode tylko w 1 dniu potem juz nie ;/
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Daily Login Rewards

Zgaduj?, ?e wy??czasz silnik/zmieniasz date przed wylogowaniem/save.
 

bastek13

Active User
Joined
Jun 4, 2011
Messages
106
Reaction score
0
Odp: Daily Login Rewards

jest skrypt wgrany, reset serwera i nie dziala.. ;p jak prawidlowo mam zrobic?
 

Kahras

Senior User
Joined
Aug 26, 2011
Messages
2,714
Reaction score
167
Age
25
Odp: Daily Login Rewards

jest skrypt wgrany, reset serwera i nie dziala.. ;p jak prawidlowo mam zrobic?

Podaj wi?cej informacji:
  • wersja silnika
  • b??dy w konsoli
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Daily Login Rewards

jest skrypt wgrany, reset serwera i nie dziala.. ;p jak prawidlowo mam zrobic?

Skrypt nie dzia?a co RESET tylko co DZIE? (niekoniecznie co 24h). Powinno da? przedmiot o 23.59 oraz o 0.01.
 

bastek13

Active User
Joined
Jun 4, 2011
Messages
106
Reaction score
0
Odp: Daily Login Rewards

serwer by? w??czony 100+ H i dostali tylko za 1 dzien a potem juz nic ;/
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: Daily Login Rewards

Sprawdzi?em raz jeszcze, wszystko powinno dzia?a?. Jaka wersja TFS?
 
Status
Not open for further replies.
Top