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

Pomoc z OTSem - zapis postaci po śmierc, obrażenia czarów, shop module

Nutaharion

New Member
Joined
Oct 29, 2008
Messages
133
Reaction score
4
Location
Poland
Witam;

Mam kilka problemów ze swoim serverem:
Silnik TFS 0.3.6 pod 8.54

I
Jeżeli postać umrze to po kliknięciu OK jesteśmy automatycznie przelogowywani do miejsca ostatniego zalogowania, np. zalogowaliśmy się na orkach, padamy na tych orkach i zamiast w temple jesteśmy w miejsciu w którym sięzalogowaliśmy. Informuję iż w bazie danych mam ustawione miejsce temple.

II
Po śmierci z postaci spada BP ale klikamy OK i oto cała postać jest ubrana jak przed dedem. Podchodzimy do swojego ciała a tam nasze itemy ;/ Dodatkowo postać nie traci po śmierci skillów, lva itp. Na dodatek pojawia się to durne okienko wyboru outfitu. To mi przypomina włączony jakiś moduł PVP Enfo na War OTsach :D A nic takiego nie mam ;/

III
DMG z czarów jest zawsze taki sam. Np. walnę z avalancha w stado dragów i każdy otrzymuje takie same obrażenia. A wiadomo, że tak być nie powinno, na każdą kratkę przypadają inne obrażenia

IV
Podczas handlu z NPC w tym malutkim okienku z pokazaniem przedmiotu jest pokazana liczba 255, próbowałem pozmieniać coś z count, amount ale nic nie wychodzi ;/
Niżej łapcie sska:
food3.png


V
Próbuję skorzystać ze zmiany współrzędnych wszystkich graczy zapytaniem:
UPDATE `players` SET `posx` = 111, `posy` = 222, `posz` = 7;
Ale baza wywala komunikat #1062 - Duplicate entry '111-222' for key 'posx'
Czy da się to jakoś wyłączyć ;)?

VI
Co znaczy ta linijka w config?
useHouseDataStorage = false


No i to by było na tyle, hehe

Piszcie jakbyście mieli za mało informacji a za wszelkie pomoce już dziękuję :)
 
Last edited:
Coś masz źle z bazą danych.
Gdy padasz, TFS próbuje właśnie wykonać to zapytanie, które ty i mu się również nie udaje. Dlatego po śmierci wracasz tam gdzie zginąłeś. Sprawdź czy nie masz dodatkowych unikalnych kluczy w tej tabeli (w phpmyadminie).
 
Coś masz źle z bazą danych.
Gdy padasz, TFS próbuje właśnie wykonać to zapytanie, które ty i mu się również nie udaje. Dlatego po śmierci wracasz tam gdzie zginąłeś. Sprawdź czy nie masz dodatkowych unikalnych kluczy w tej tabeli (w phpmyadminie).

Jeszcze raz zaimportowałem bazę danych to pomogło ; )

Dzięki

// Problem I, II i V są już rozwiązane ale nadal potrzebuję pomocy z resztą!
 
VI
daj to na true to bd Ci szybciej save servera wykonywało
III
musisz zmienić skrypty czarów

Dzięki za punkt VI. A wracając do czarów to próbowałem różne pakiety i nic nie działało tak jak powinno, każdy pakiet czarów dawał te same obrażenia ;/ No ale poszukam, może czegoś ze starszych wersji może będzie działać.

//TOPIC

Zatem zostało jeszcze rozwikłanie zagadki punktu IV
 
@IV
u kazdego tak jest cyz tylko u Ciebie?
Stawiam na zle liby w npc, wgraj te z czystego silnika.

Btw. fajne okienko na dole :thumbup:
 
@IV
u kazdego tak jest cyz tylko u Ciebie?
Stawiam na zle liby w npc, wgraj te z czystego silnika.

Btw. fajne okienko na dole :thumbup:

U każdej postaci tak jest ;/ Liby mam wrzucone prosto z czystego servera.

Dodatkowo jak dana osoba w ręce ma 100 sztuk danego przedmiotu to NPC chce kupić od niego tylko 99, a 1 dalej zostaje w ręce ;/

Przeszukałem troszkę OTS'a i może to cośzłego w pluku table.lua, bo to chyba on za te listy odpowiada, dam niżej wygląd tego pliku
Code:
table.find = function (table, value)
	for i, v in pairs(table) do
		if(v == value) then
			return i
		end
	end

	return nil
end

table.contains = function (txt, str)
	for i, v in pairs(str) do
		if(txt:find(v) and not txt:find('(%w+)' .. v) and not txt:find(v .. '(%w+)')) then
			return true
		end
	end

	return false
end
table.isStrIn = table.contains

table.count = function (table, item)
	local count = 0
	for i, n in pairs(table) do
		if(item == n) then
			count = count + 1
		end
	end

	return count
end
table.countElements = table.count

table.getCombinations = function (table, num)
	local a, number, select, newlist = {}, #table, num, {}
	for i = 1, select do
		a[#a + 1] = i
	end

	local newthing = {}
	while(true) do
		local newrow = {}
		for i = 1, select do
			newrow[#newrow + 1] = table[a[i]]
		end

		newlist[#newlist + 1] = newrow
		i = select
		while(a[i] == (number - select + i)) do
			i = i - 1
		end

		if(i < 1) then
			break
		end

		a[i] = a[i] + 1
		for j = i, select do
			a[j] = a[i] + j - i
		end
	end

	return newlist
end
 
VI
daj to na true to bd Ci szybciej save servera wykonywało
III
musisz zmienić skrypty czarów

On pytal co robi ta linijka, a nie co tam wstawic:

I: Imho. ma zwiazek z pkt. V.
II: Hmmm, pole save w players (0 = wylaczone, 1 = wlaczone).
III: Combat.cpp?
V: Sprawdz czy pola posx, posy, posz nie maja flag Unique w tabeli players.
VI: To oznacza czy ma zapisywac mape w trybie zwyklym czy binarnym, binarny jest wydajniejszy.
 
Diath już został do rozwiązania tylko błąd numer 4 :p

Mam tylko problem z tą liczbą 255 w okienku tego NPC'a. Dodatkowo jak mam w ręce 100 itemków to NPC chce kupić tylko 99, ale wystarczy przenieść do BP i już chce kupić 100 :P
 
Back
Top