• 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!

Debugi na start ots

Daniel13

New Member
Joined
Nov 30, 2008
Messages
178
Reaction score
1
Witam

czy wie ktoś jak zrobić aby przy starcie ots jak loguje np 300 osób nie było debugów ? tylko każdy loguje się bez problemu ?

Prosiłbym o taki skrypt :)

Z góry dziękuje
 
Last edited:
Witam drogi Danielu13,
Miło widzieć Cię w ten cudowny czwartkowy wieczór. Widzę iż interesuje Cie tematyka OpenTibia, jednak miewasz pewne problemy i postanowiłeś zwrócić się o pomoc do naszej społeczności jaką jest Polish Board na Otland.net. Pytasz czy ktokolwiek posiada wiedzę dotyczącą problemu związanego z jednoczesnym logowaniem się dużej ilości graczy na serwer. Mam przyjemność odpowiedzieć Ci, że tak, na tym forum jest dużo osób które posiada taką wiedzę a być może są w stanie spełnić prośbę znajdującą się w drugiej części Twojej wypowiedzi. Ja osobiście nie podzielę się z Tobą taką wiedzą gdyż jestem przeciwnikiem socjalizmu, a to w pewnym stopniu pokrewne zachowanie. Spróbuj dojść do rozwiązania samemu.

Z wyrazami szacunku
Rzułty Krulik
 
Postaw każdego sample w innym miejscu, lub Update players set posx = x, posy = x, posz = x where vocation = x, albo napisz sobie skrypt. Ale te 2 sposoby, które dałem łatwiejsze i nie sprawiają problemu :D
 
Mała podpowiedz, napisz skrypt który będzie automatycznie przydzielał inną pozycje postaci logującej się w temple.

Np. Każda nowa postać loguje się na kratce załóżmy od 1 do 12.
 
gdy przestawie sample to i tak kazdy char loguje sie na tej samej kratce . Postaram się sam cos ogarnąc ;)
 
Cuddlez - dobre psychotropy bierzesz

Najprostszym sposobem byłoby zrobienie teleportu który by teleportował w różne pozycje np 1-10 , nawet gdzieś kiedyś taki skrypt miałem . Jak znajdę to wrzucę
 
LUA:
local sqm = 5
function onLogin(cid)
	local pos = getCreaturePosition(cid)
	local r = math.random
	doTeleportThing(cid, {x=r(pos.x-sqm, pos.x+sqm), y=r(pos.y-sqm, pos.y+sqm), z=pos.z})
	return TRUE
end
sqm = 5 -- odległość na jakiej rozrzuca logujących się graczy po temple.
 
Code:
function onLogin(cid)
	if getPlayerLastLoginSaved(cid) == 0 then
		local p = getArea(getTownTemplePosition(getPlayerTown(cid)), 5, 5)
		doTeleportThing(cid, p[math.random(#p)])
	end
	return true
end

ez
 
Code:
function onLogin(cid)
	if getPlayerLastLoginSaved(cid) == 0 then
		local p = getArea(getTownTemplePosition(getPlayerTown(cid)), 5, 5)
		doTeleportThing(cid, p[math.random(#p)])
	end
	return true
end
I ten skrypt bedzie przerzucał na town 5 czy jak, niech mi to ktoś wytłumaczy :)
 
I ten skrypt bedzie przerzucał na town 5 czy jak, niech mi to ktoś wytłumaczy :)

ten skrypt najpierw pobierze chujowego id towna z chujowej bazy do ktorego przypisana jest chujowa postac a nastepnie wyrzuci na 5 chujowych randomowych kratek od chuja
 
ludzie, użyjcie mózgu

PHP:
UPDATE `players` SET `posx` = 998, `posy` = 1004, `posz` = 7 WHERE `id` >= 7 AND `id` <= 20;
UPDATE `players` SET `posx` = 999, `posy` = 1004, `posz` = 7 WHERE `id` >= 21 AND `id` <= 40;
UPDATE `players` SET `posx` = 1000, `posy` = 1004, `posz` = 7 WHERE `id` >= 41 AND `id` <= 60;
UPDATE `players` SET `posx` = 1001, `posy` = 1004, `posz` = 7 WHERE `id` >= 61 AND `id` <= 80;
UPDATE `players` SET `posx` = 1002, `posy` = 1004, `posz` = 7 WHERE `id` >= 81 AND `id` <= 100;

i tak dalej....

za where może jeszcze dać `town_id` = 5
 
ludzie, użyjcie mózgu

PHP:
UPDATE `players` SET `posx` = 998, `posy` = 1004, `posz` = 7 WHERE `id` >= 7 AND `id` <= 20;
UPDATE `players` SET `posx` = 999, `posy` = 1004, `posz` = 7 WHERE `id` >= 21 AND `id` <= 40;
UPDATE `players` SET `posx` = 1000, `posy` = 1004, `posz` = 7 WHERE `id` >= 41 AND `id` <= 60;
UPDATE `players` SET `posx` = 1001, `posy` = 1004, `posz` = 7 WHERE `id` >= 61 AND `id` <= 80;
UPDATE `players` SET `posx` = 1002, `posy` = 1004, `posz` = 7 WHERE `id` >= 81 AND `id` <= 100;

i tak dalej....

za where może jeszcze dać `town_id` = 5
czlowieku, zyjesz w polsce naucz się kombinować -,-
PHP:
<?PHP
$query = MySQL_Query("Select `id FROM `players`");
for($i = 0; $i <= MySQL_Num_Rows($query); $i=$i+20) {
	$sqm = ceil($i/20);
	MySQL_Query("UPDATE `players` SET `posx` = posx+$sqm, `posy` = posy+$sqm WHERE `id` >= ".($i+1)." AND `id` <= ".($i+20)); 
}
?>
 
Last edited:
Back
Top