• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Kupno/sprzedaż przedmiotów na stole

CyCu91

New Member
Joined
Aug 2, 2008
Messages
114
Reaction score
0
Witam mam pytanie jak zrobić lub ktoś zna skrypt który polega na sprzedaży lub kupnie przedmiotów(oczywiście np kupno pokeball a na innym stołach było by że sprzedajemy przykładowo wodny amulet) prawym przyciskiem myszy . Widziałem to na 1 serwerze możliwe że ktoś zna ten sposób lub skrypt bo szczerze mówiąc nie widziałem tego nigdzie :)
 
LUA:
local price = 10000
local itemid = 1234
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if getPlayerMoney(cid) >= price then
		doPlayerBuyItem(cid, itemid, 1, price, 1)
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You bought " .. getItemNameById(itemid) .. " for " .. price .. "!")
	else
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You dont have a money (" .. price .. ")!")
	end
	
	return true
end
 
LUA:
local price = 10000
local itemid = 1234
function onUse(cid, item, fromPosition, itemEx, toPosition)
	if getPlayerMoney(cid) >= price then
		doPlayerBuyItem(cid, itemid, 1, price, 1)
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You bought " .. getItemNameById(itemid) .. " for " .. price .. "!")
	else
		doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You dont have a money (" .. price .. ")!")
	end
	
	return true
end

Dziekuje Ci bardzo a możesz dokładnie napisać gdzie mam to wstawić bo kod miej więcej rozumiem :). No niestety dopiero zaczynam zabawę z OTS :) dodatkowo z pokemon OTS a niestety żadnych poradników niema na ten temat :(
 
No niestety dopiero zaczynam zabawę z OTS :)

Przepraszam. Pytam z czystej ciekawości, bo zawsze chciałem się kogoś takiego jak Ty o to zapytać - dowiedziałeś się od kolegów kolegi że na OTSach można fajną kasiorke zarobić i pragniesz zrobić swój pierwszy OTS, aby poczuć smak marnego grosza?

A co do skryptu, najlepiej zrób sobie tablicę z itemami, żeby nie robić dla każdego itemu nowego skryptu.
Przykłady walają się na forum, poszukaj.
 
Przepraszam. Pytam z czystej ciekawości, bo zawsze chciałem się kogoś takiego jak Ty o to zapytać - dowiedziałeś się od kolegów kolegi że na OTSach można fajną kasiorke zarobić i pragniesz zrobić swój pierwszy OTS, aby poczuć smak marnego grosza?

A co do skryptu, najlepiej zrób sobie tablicę z itemami, żeby nie robić dla każdego itemu nowego skryptu.
Przykłady walają się na forum, poszukaj.

Nie bo akurat niema żadnej innej gry typu pokemon online.Jest 1 w miarę stabilny nazywa się (skrót) PWO ale już jeszcze brakuje mu bardzo dużo żeby chociaż serwer stał 24/h :). Po prostu jestem jak to Ci powiedzieć zagorzałym fanem pokemon i zawsze mi się marzyło żeby zagrać w taką grę która będzie przypominała to samo co było na GameBoy Advance lub na No-DS prze kabelek. Ja jestem jeszcze za czasów tych 1 pokemonów pikachu itp, pokemony "neo" aż tak bardzo mnie już nie fascynowały ale też oczywiście przyszły jeszcze inne rzeczy ważniejsze niż jakieś tam bajeczki :) Oczywiście w późniejszym terminie nie wątpię w to że bardzo możliwe że na serwerze będę mógł zarabiać ale tylko i wyłącznie za czas poświęcony który włożył w konfiguracje oraz utrzymanie serwera na pewno nie sugerowało mnie to dlatego ze już zarabiam na takich grach jak Silkroad-Online( Chwilowo offline z powodu aktualizacji plików serwerowych które są strasznie zbugowane oraz modyfikacje klienta), WoW (chwilowo jest w 70 % gotowy coś koło tego), oraz dla ludzi hostujemy serwery TeamSpeak 3 za darmo :) żeby każdy mógł sobie porozmawiać bez problemowo :) Chwilowo do tego interesu sam dopłacam 60% całego serwera wirtualnego, a reszta to są zagorzali fani takich gier a najwięcej i tak dają mi moi znajomi z internetu jak też z uczelni :) niestety te gry już posiadają bardzo duży podaż a popyt średni z powodu że jest już bardzo dużo serwerów i mniej donatorów niż kiedyś :) ale akurat robię te serwery dla: --> siebie, znajomych i na końcu oczywiście dla ludzi a na szarym końcu dopiero dla zarobku. Przypuszczam że zanim będę w ogóle otrzymywał jakieś korzyści finansowe z tego tytułu to upłynie przypuszczam bardzo dużo czas :)
 
Last edited:
Przepraszam. Pytam z czystej ciekawości, bo zawsze chciałem się kogoś takiego jak Ty o to zapytać - dowiedziałeś się od kolegów kolegi że na OTSach można fajną kasiorke zarobić i pragniesz zrobić swój pierwszy OTS, aby poczuć smak marnego grosza?

A co do skryptu, najlepiej zrób sobie tablicę z itemami, żeby nie robić dla każdego itemu nowego skryptu.
Przykłady walają się na forum, poszukaj.

Heh ja np. zawsze byłem ciekaw jak to działa, a kasy z ots'a to narazie nie miałem, jedyne zyski to miałem ze sprzedaży skryptów do bota i ots ;d

pamiętam jak zrobiłem skrypt do inq, by po użyciu Holy Water na Big Boil usunęło nam go i wysłało efekt "podpalenia" w miejsce kotła, to się zajebiście tym podjarałem ;p


@topic
jak masz np. nie przesuwalny item, a chcesz by po użyciu go dostać inny item to wtedy zrób tablice w skrypcie onUse (który dajemy do actions)

coś ala
[itemid klikany/lub jego uid] = {cena = , ilosc = , itemktorydostajemy = }


//edit
nie jestem pewien, ale chyba się da, że przedmiot jest nieprzesuwalny gdy dasz mu UID na mapie, ale nie jestem tego pewien
 
LUA:
local tab {
	[actionid] = {price = 10000, itemid = 1234},
	[actionid] = {price = 10000, itemid = 1234},
	[actionid] = {price = 10000, itemid = 1234}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)

	if (item.actionid == tab[item.actionid]) then
		if getPlayerMoney(cid) >= tab[item.actionid][price] then
			doPlayerBuyItem(cid, tab[item.actionid][itemid], 1, tab[item.actionid][price], 1)
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You bought " .. getItemNameById(tab[item.actionid][itemid]) .. " for " .. tab[item.actionid][price] .. "!")
		else
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You dont have a money (" .. tab[item.actionid][price] .. ")!")
		end
	end
 
	return true
end
 
@CyCu91
Ciekawi mnie jaki serwer w Silkroad Online masz ?:)
Pewnie jakieś gówno na tym śmiesznym emulatorze SeaShadow, który nie jest emulatorem tylko ścierwem pełnym bugów, bo Pax to Ty nie jesteś ;D
 
LUA:
local tab {
	[actionid] = {price = 10000, itemid = 1234},
	[actionid] = {price = 10000, itemid = 1234},
	[actionid] = {price = 10000, itemid = 1234}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
 
	if (item.actionid == tab[item.actionid]) then
		if getPlayerMoney(cid) >= tab[item.actionid][price] then
			doPlayerBuyItem(cid, tab[item.actionid][itemid], 1, tab[item.actionid][price], 1)
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You bought " .. getItemNameById(tab[item.actionid][itemid]) .. " for " .. tab[item.actionid][price] .. "!")
		else
			doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,"You dont have a money (" .. tab[item.actionid][price] .. ")!")
		end
	end
 
	return true
end
To nie zadziała - po pierwszego brakuje = w pierwszej linijce, po 2 warunek "if (item.actionid == tab[item.actionid]) then" jest nie poprawny. Tutaj poprawka, nie testowałem ofc.
LUA:
local config = 
{
	-- [action id] = {price, item id, count of items, charges of item}
	[XXXX] = {price = XXXX, itemId = XXXX, count = XXXX, charges = XXXX}
}

function onUse(cid, item, fromPos, itemEx, toPos)
	if (config[item.actionid]) then
		if (getPlayerMoney(cid) >= config[item.actionid].price) then
			doPlayerBuyItem(cid, config[item.actionid].itemId, config[item.actionid].count, config[item.actionid].charges)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You bought ".. getItemNameById(config[item.actionid].itemId) .." for ".. config[item.actionid].price .."!")
		else
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You dont have a money (".. config[item.actionid].price ..")!")
		end
	end
	return true
end


@down
Bez różnicy czy będzie zmienna przechowująca aktualny config, czy nie. "Spam" w skrypcie nie będzie mu raczej przeszkadzał, bo config jest na samej górze.
 
Last edited:
po chuj robicie taki spam? i stale powtarzacie 20 wyrazów zamiast 1..?

zrób

gamon = config[item.actionid]

i potem w dalszej czesci zamiast ciagle pisac config[item.actionid] config[item.actionid] config[item.actionid] wystarczy prosty gamon
 
@CyCu91
Ciekawi mnie jaki serwer w Silkroad Online masz ?:)
Pewnie jakieś gówno na tym śmiesznym emulatorze SeaShadow, który nie jest emulatorem tylko ścierwem pełnym bugów, bo Pax to Ty nie jesteś ;D
No to widać że twoja przygoda z SRO zatrzymała się przy kamieniach i patykach. Teraz są w 80 % kompletne pliki z vSRO jeżeli nie znasz tego skrótu to nigdy nie zrozumiesz o co dokładnie chodzi :0 Pozdrawiam :P

I mam to wpisać do action.lua ? w katalogu : data\actions\lib
Czy po prostu muszę nowy skrypt dodać a później dodać to do eventów ?
 
Last edited:
Ok już wszystko mi działa dziękuje za poprawienie kodu tylko teraz :) jest taka sprawa
1. Jak zrobić żeby tych przedmiotów nie mógł nikt ruszać ?
2. Jak zrobić jak ktoś naciska na to PPM to tego przedmiotu nie używa :)
3. A jaki jest skrypt na sprzedaż przedmiotów :)
 
daj sobie na to jakiegoś kamienia i w nim wpisz actionid taki jak na przedmiocie kapewu?
a co do sprzedaży zrób sobie takie pomieszczenia, na jednej kratce kładziesz itemek a na drugiej masz dźwignie
 
@CyCu91
Wybacz kolego ale w SRO gram od wprowadzenia Europy :)
Nadal nie dostałem nazwy Twojego projektu na dennych plikach vSRO
Jak doskonale napisałeś są one kompletne w 80%
Te 20% nie nie poprawisz znająć się na tibii :)
Dalej czekam na nazwę Twojego serwera;)
 
@Azi
A bo widzisz...
W silku nie ma tak, że odpalisz Dev C++ i wjb, poprawiasz tam tylko.
W silku przebiega to zupełnie inaczej :)
 
@Azi
A bo widzisz...
W silku nie ma tak, że odpalisz Dev C++ i wjb, poprawiasz tam tylko.
W silku przebiega to zupełnie inaczej :)

No tak, tam odpalasz kompilator i w dodatku musisz znać język programowania. Zgadłem?
 
Back
Top