Arkam
Forum friend
- Dołączył
- Grudzień 20, 2008
- Posty
- 1980
- Liczba reakcji
- 180
Autorem skryptu jest u?ytkownik 'Socket'.
Utw?rz plik o nazwie rep.lua w data \ creaturescripts \ scripts i umie?? w nim:
Utw?rz plik o nazwie rep.lua w data \ talkactions \ scripts i umie?? w nim:
Utw?rz plik o nazwie rep.lua w data \ lib i dodaj w nim to:
Utw?rz kolejny plik o nazwie rep.lua w data \ movements \ scripts i umie?? w nim:
w bazie danych wykonaj zapytanie
w data \ lib lub przejd? do pliku data.lua lub global.lua go i dodaj w nim:
w pliku creaturescripts.xml dodaj:
do login.lua dodaj:
do talkactions.xml dodaj:
do movements.xml dodaj:
w itemid = "5588" zmiana id p?yty "chroniona przez rz?d."
Screeny:
!addreward lub !removereward
!pay
!setreward
Co si? dzieje gdy gracz wejdzie na chronion? kratke?
Dok?adniejszego korzystania ze skryptu nie b?d? omawia? gdy? jest to banalne i gdy kto? na prawd? b?dzie chcia? go w?o?y? w sw?j ots to zauwa?y jak dzia?a.
Utw?rz plik o nazwie rep.lua w data \ creaturescripts \ scripts i umie?? w nim:
PHP:
function onKill(cid,target)
if isPlayer(cid) and isPlayer(target) then
local sk = getCreatureSkullType(target)
local level = getPlayerLevel(target)
local prize = {0.7*level*100, 1.3*level*100}
if getPlayerIp(cid) ~= getPlayerIp(target) then
if sk == SKULL_WHITE or sk == SKULL_RED or sk == SKULL_BLACK then
if haveReward(getPlayerName(target)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "The government payed ".. getPlayerReward(getPlayerName(target)) .." gold coins for the killer of ".. getPlayerName(target) ..". Thank you.")
doPlayerAddMoney(cid, getPlayerReward(getPlayerName(target)))
setPlayerReward(getPlayerName(target),0)
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "That player aren't wanted.")
end
else
doPlayerAddReward(getPlayerName(cid), math.random(prize[1],prize[2]))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Now the government will pay ".. getPlayerReward(getPlayerName(cid)) .." gold coins for your head.")
setPlayerReward(getPlayerName(target),0)
end
end
end
return true
end
Utw?rz plik o nazwie rep.lua w data \ talkactions \ scripts i umie?? w nim:
PHP:
function onSay(cid, words, param)
name = {}
for i in param:gmatch('(%a+)') do
table.insert(name,i)
end
name = table.concat(name, ' ')
if words == '!addreward' then
if name == nil and param:match('(%d+)') == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
return true
elseif name == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the player to add ".. param:match('(%d+)') .." in his reward.")
return true
elseif param:match('(%d+)') == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the reward to add to ".. name ..".")
return true
end
if getPlayerGUIDByName(name) then
doPlayerAddReward(name,tonumber(param:match('(%d+)')))
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You added ".. tonumber(param:match('(%d+)')) .. " gold coins in the reward of ".. name ..".")
return true
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, name.." isn't a Player.")
return true
end
elseif words == '!removereward' then
if name == nil and param:match('(%d+)') == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
return true
elseif name == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the player to remove ".. param:match('(%d+)') .." from his reward.")
return true
elseif param:match('(%d+)') == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the reward to remove from ".. name ..".")
return true
elseif getPlayerGUIDByName(name) then
doPlayerRemoveReward(name,tonumber(param:match('(%d+)')))
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You removed ".. param:match('(%d+)') .. " gold coins in the reward of ".. name ..".")
return true
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
return true
end
elseif words == '!setreward' then
if name == nil and param:match('(%d+)') == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
return true
elseif name == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the player to set his reward to ".. param:match('(%d+)') ..".")
return true
elseif param:match('(%d+)') == nil then
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose the reward to set from ".. name ..".")
return true
elseif getPlayerGUIDByName(name) then
setPlayerReward(name,tonumber(param:match('(%d+)')))
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You set the reward from ".. name .." to ".. param:match('(%d+)') ..".")
return true
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
return true
end
elseif words == '!reward' then
local voca = {[0]='No vocation', [1]='Sorcerer',[2]='Druid',[3]='Paladin',[4]='Knight',[5]='Master Sorcerer',[6]='Elder Druid',[7]='Royal Paladin',[8]='Elite Knight'}
if getPlayerGUIDByName(name) then
local voca = {[0]='No vocation', [1]='Sorcerer',[2]='Druid',[3]='Paladin',[4]='Knight',[5]='Master Sorcerer',[6]='Elder Druid',[7]='Royal Paladin',[8]='Elite Knight'}
local query = db.getResult("SELECT `level`,`vocation` FROM `players` WHERE `id` = ".. getPlayerGUIDByName(name) ..";")
local level, voc = query:getDataInt('level'), query:getDataInt('vocation')
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "\n|¯¯¯¯| "..param..": Level "..level.."\n| | "..voca[voc].."\n|____| Reward: ".. getPlayerReward(param) .. "\nWanted")
return true
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Player not found.")
return true
end
elseif words == '!pay' then
gold = param:match('(%d+)')
if gold then
if type(tonumber(gold)) == 'number' then
if getPlayerReward(getPlayerName(cid)) >= tonumber(gold) then
if doPlayerRemoveMoney(cid, tonumber(gold)) then
doPlayerRemoveReward(getPlayerName(cid),tonumber(gold))
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "You removed ".. gold .." gold coins from your reward.")
return true
else
doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE, "You don't have ".. gold .." gold coins.")
return true
end
else
doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE, "You don't have ".. gold .." gold coins in your reward.")
return true
end
else
doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE, gold.." isn't a number.")
return true
end
else
doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, "Choose how many gold coins you'll remove from your reward.")
return true
end
elseif words == '!support' then
local str = "?Functions:\n\n!reward Socket » Will show how many gold coin the government will pay if you kill Socket.\n\n!pay 10 » Will remove 10 gold coins from your reward.\n\n!support » Will show this to you."
local str1 = "?Functions:\n\n!addreward Socket 10 » Will add 10 gold coins in the reward of Socket.\n\n!removereward Socket 10 » Will remove 10 gold coins from the reward of Socket.\n\n!setreward Socket 10 » Will change the reward of Socket to 10.\n\n!reward Socket » Will show how many gold coin the government will pay if you kill Socket.\n\n!pay 10 » Will remove 10 gold coins from your reward.\n\n!support » Will show this to you."
if getPlayerAccess(cid) > 3 then
doPlayerPopupFYI(cid, str1)
return true
else
doPlayerPopupFYI(cid, str)
return true
end
end
end
Utw?rz plik o nazwie rep.lua w data \ lib i dodaj w nim to:
PHP:
function rewardtable()
local q = db.executeQuery("ALTER TABLE `players` ADD `reward` INT NOT NULL DEFAULT '0' AFTER `name`;")
return q
end
function setPlayerReward(player,qnt)
db.executeQuery("UPDATE `players` SET `reward` = '".. qnt .."' WHERE `name` = '".. player .."' LIMIT 1;")
return true
end
function getPlayerReward(player)
local get = db.getResult("SELECT `reward` FROM `players` WHERE `name` = '".. player .."';")
local reward = get:getDataInt('reward')
return reward
end
function haveReward(player)
if getPlayerReward(player) > 0 then
return true
end
return false
end
function doPlayerAddReward(player,qnt)
t = (qnt and qnt or 1)
local get = db.getResult("SELECT `reward` FROM `players` WHERE `name` = '".. player .."';")
local reward = get:getDataInt('reward')
return db.executeQuery("UPDATE `players` SET `reward` = '".. reward + t .."' WHERE `name` = '".. player .."' LIMIT 1;")
end
function doPlayerRemoveReward(player,qnt)
t = (qnt and qnt or 1)
local get = db.getResult("SELECT `reward` FROM `players` WHERE `name` = '".. player .."';")
local reward = get:getDataInt('reward')
if reward > t then
return db.executeQuery("UPDATE `players` SET `reward` = '".. reward - t .."' WHERE `name` = '".. player .."' LIMIT 1;")
else
return db.executeQuery("UPDATE `players` SET `reward` = '".. 0 .."' WHERE `name` = '".. player .."' LIMIT 1;")
end
end
Utw?rz kolejny plik o nazwie rep.lua w data \ movements \ scripts i umie?? w nim:
PHP:
local sex = {
[0] = 'she\'s',
[1] = 'he\'s',
}
local config = {
bc = true,
uid = 1000,
reward = 1500
}
function onStepIn(cid, item, pos)
if item.uid == config.uid then
doPlayerAddReward(getPlayerName(cid),config.reward)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You entered an area of government, now you're wanted for ".. getPlayerReward(getPlayerName(cid)) .." gold coins.")
if config.bc == true then
doBroadcastMessage(getPlayerName(cid).." have entered an area of government, now ".. sex[getPlayerSex(cid)] .." wanted for ".. getPlayerReward(getPlayerName(cid)) .. " gold coins.", 22)
end
end
return true
end
w bazie danych wykonaj zapytanie
PHP:
ALTER TABLE `players` ADD `reward` INT NOT NULL DEFAULT '0' AFTER `name`
w data \ lib lub przejd? do pliku data.lua lub global.lua go i dodaj w nim:
PHP:
dofile(getDataDir() .. "lib/rep.lua")
w pliku creaturescripts.xml dodaj:
PHP:
<event type="kill" name="rep" event="script" value="rep.lua"/>
do login.lua dodaj:
PHP:
registerCreatureEvent(cid, "rep")
do talkactions.xml dodaj:
PHP:
<talkaction words="!addreward" access="5" event="script" value="rep.lua"/>
<talkaction words="!removereward" access="5" event="script" value="rep.lua"/>
<talkaction words="!setreward" access="5" event="script" value="rep.lua"/>
<talkaction words="!reward" event="script" value="rep.lua"/>
<talkaction words="!support" event="script" value="rep.lua"/>
<talkaction words="!pay" event="script" value="rep.lua"/>
do movements.xml dodaj:
PHP:
<movevent type="StepIn" itemid="5588" event="script" value="rep.lua"/>
w itemid = "5588" zmiana id p?yty "chroniona przez rz?d."
Screeny:
!addreward lub !removereward

!pay

!setreward

Co si? dzieje gdy gracz wejdzie na chronion? kratke?

Dok?adniejszego korzystania ze skryptu nie b?d? omawia? gdy? jest to banalne i gdy kto? na prawd? b?dzie chcia? go w?o?y? w sw?j ots to zauwa?y jak dzia?a.