Problema PM AUTOMAT

Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Avatar utilizator
Marius Dragomir
Membru Club

Membru Club
Mesaje: 1020
Membru din: 13 Noi 2017, 21:32
Server: HellHound
Regat: Jinno
Aprecieri: 499  
Mulţumiri: 1211  
Discord: Copiază ID
Medalii

*Problemă/Întrebare: Se trimite o data mesajul dar daca modific textul caracterele ce au primit deja nu mai primesc mesajul
Tipologie server:
*Resursă folosită: https://mega.nz/file/dR02kC6C#bS9J4X45w ... ZPHkXBSN6c Nu mai gasesc link-ul de pe j4m
*ServerFiles utilizat: serverfiles/serverfiles-clean-martysama-t75119.html
*Syserr: -
Poză: -
*Detalii suplimentare: Cum am mai spus, se trimite prima oara la implementare, daca modific textul nu se mai trimite de nici o culoare... cel putin nu pt cei ce au primit o data acest mesaj
Pentru acest mesaj, Marius Dragomir a primit 2 (de) mulţumiri
haristhc • you_ionut94
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.
Afișează semnătura
Avatar utilizator
Vladii
Utilizator interzis !

Utilizator interzis !
Mesaje: 402
Membru din: 03 Iun 2018, 18:33
Server: Arena2
Regat: Chunjo
Aprecieri: 230  
Mulţumiri: 252  
Discord: Copiază ID
 Contact:
Medalii

ai version.txt, tre sa modifici si acolo.
Avatar utilizator
Marius Dragomir
Membru Club

Membru Club
Mesaje: 1020
Membru din: 13 Noi 2017, 21:32
Server: HellHound
Regat: Jinno
Aprecieri: 499  
Mulţumiri: 1211  
Discord: Copiază ID
Medalii

Vladii scrie: ↑28 Apr 2020, 09:17 ai version.txt, tre sa modifici si acolo.
Acolo banuiesc ca trebuie doar sa sterg cifrele nu?

EDIT: Am sters, am modificat, am recompilat questul. NIMIC, nu trimite din nou
Pentru acest mesaj, Marius Dragomir for the post:
you_ionut94
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.
Afișează semnătura
Avatar utilizator
Kazuhiri
Nivel 9

Nivel 9
Mesaje: 2088
Membru din: 26 Mar 2017, 19:14
Server: Demetris
Regat: Shinsoo
Aprecieri: 396  
Mulţumiri: 3227  
  Rezolvări prob.: 2
Discord: Copiază ID
Medalii

Salut,deci intri in folderul system,din quest,acolo ai un fisier numit text_file.txt.Modific acolo ce text vrei,apoi mergi in putty si scrii /.qc notificari.lua.In final ,pe joc o sa dai un /reload q
Demetris2 Imagine
Afișează semnătura
Avatar utilizator
Marius Dragomir
Membru Club

Membru Club
Mesaje: 1020
Membru din: 13 Noi 2017, 21:32
Server: HellHound
Regat: Jinno
Aprecieri: 499  
Mulţumiri: 1211  
Discord: Copiază ID
Medalii

Kazuhiri scrie: ↑28 Apr 2020, 09:32 Salut,deci intri in folderul system,din quest,acolo ai un fisier numit text_file.txt.Modific acolo ce text vrei,apoi mergi in putty si scrii /.qc notificari.lua.In final ,pe joc o sa dai un /reload q
Am facut asta si nu se intampla nimic, primesc noul mesaj doar cei ce nu au primit initial primul mesaj. Aici este problema cea mai mare
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.
Afișează semnătura
Avatar utilizator
Marius Dragomir
Membru Club

Membru Club
Mesaje: 1020
Membru din: 13 Noi 2017, 21:32
Server: HellHound
Regat: Jinno
Aprecieri: 499  
Mulţumiri: 1211  
Discord: Copiază ID
Medalii

up
Pentru acest mesaj, Marius Dragomir for the post:
you_ionut94
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.
Afișează semnătura
Avatar utilizator
[RaffaeL]
Software Developer

Software Developer
Mesaje: 3223
Membru din: 19 Mar 2016, 12:58
Server: ...
Aprecieri: 15  
Mulţumiri: 2502  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

Daca citesti acel quest cu atentie, vei observa ca dupa trimiterea mesajului, se seteaza un questflag, care este egal cu "version"
pc.setqf("state_of_quest", version), iar in loop_timer, se verifica relatia "version-questflag" if tonumber(version) > pc.getqf("state_of_quest") then.
Bun, acum, daca verifici db(navicat)->baza player->tabela quest, vei observa ca acel flag este inregistrat cu numarul prezent in fisierul "version.txt" notificari state_of_quest 258.

Prin urmare, revenind la verificarea din acel timer(nu stiu cum sa ma exprim, ca sa intelegi ce si cum), va trimite un nou mesaj, doar daca tonumber(version) este mai mare decat version, ceea ce este fals, acel version fiind tot timpul 258.

Ca solutie, modifica if tonumber(version) > pc.getqf("state_of_quest") then cu if tonumber(version) >= pc.getqf("state_of_quest") then in acest fel relatia fiind adevarata(258 =258 bineinteles).
Imagine
Imagine
https://www.youtube.com/watch?v=GhYkCIETEto
Do everything, if you know what you're doing, else... Imagine
Ma gasesti si aici: Discord https://discord.gg/5J5GnyZVSR
Afișează semnătura
Avatar utilizator
Marius Dragomir
Membru Club

Membru Club
Mesaje: 1020
Membru din: 13 Noi 2017, 21:32
Server: HellHound
Regat: Jinno
Aprecieri: 499  
Mulţumiri: 1211  
Discord: Copiază ID
Medalii

[RaffaeL] scrie: ↑28 Apr 2020, 15:26 Daca citesti acel quest cu atentie, vei observa ca dupa trimiterea mesajului, se seteaza un questflag, care este egal cu "version"
pc.setqf("state_of_quest", version), iar in loop_timer, se verifica relatia "version-questflag" if tonumber(version) > pc.getqf("state_of_quest") then.
Bun, acum, daca verifici db(navicat)->baza player->tabela quest, vei observa ca acel flag este inregistrat cu numarul prezent in fisierul "version.txt" notificari state_of_quest 258.

Prin urmare, revenind la verificarea din acel timer(nu stiu cum sa ma exprim, ca sa intelegi ce si cum), va trimite un nou mesaj, doar daca tonumber(version) este mai mare decat version, ceea ce este fals, acel version fiind tot timpul 258.

Ca solutie, modifica if tonumber(version) > pc.getqf("state_of_quest") then cu if tonumber(version) >= pc.getqf("state_of_quest") then in acest fel relatia fiind adevarata(258 =258 bineinteles).
Cu metoda asta a functionat, a trimis iar pm dar mi s-a intamplat sa imi trimita unul dupa altul, nu se mai oprea, sa fie din cauza ca am modificat si loop timer din 5 in 1?

EDIT : Am modificat inapoi in 5 si imi trimite acelasi mesaj o data la 5 secunde, cum as putea rezolva sa trimita o singura pana modific eu mesajul?
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.
Afișează semnătura
Avatar utilizator
[RaffaeL]
Software Developer

Software Developer
Mesaje: 3223
Membru din: 19 Mar 2016, 12:58
Server: ...
Aprecieri: 15  
Mulţumiri: 2502  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

mariusdrg95 scrie: ↑28 Apr 2020, 16:59
[RaffaeL] scrie: ↑28 Apr 2020, 15:26 Daca citesti acel quest cu atentie, vei observa ca dupa trimiterea mesajului, se seteaza un questflag, care este egal cu "version"
pc.setqf("state_of_quest", version), iar in loop_timer, se verifica relatia "version-questflag" if tonumber(version) > pc.getqf("state_of_quest") then.
Bun, acum, daca verifici db(navicat)->baza player->tabela quest, vei observa ca acel flag este inregistrat cu numarul prezent in fisierul "version.txt" notificari state_of_quest 258.

Prin urmare, revenind la verificarea din acel timer(nu stiu cum sa ma exprim, ca sa intelegi ce si cum), va trimite un nou mesaj, doar daca tonumber(version) este mai mare decat version, ceea ce este fals, acel version fiind tot timpul 258.

Ca solutie, modifica if tonumber(version) > pc.getqf("state_of_quest") then cu if tonumber(version) >= pc.getqf("state_of_quest") then in acest fel relatia fiind adevarata(258 =258 bineinteles).
Cu metoda asta a functionat, a trimis iar pm dar mi s-a intamplat sa imi trimita unul dupa altul, nu se mai oprea, sa fie din cauza ca am modificat si loop timer din 5 in 1?

EDIT : Am modificat inapoi in 5 si imi trimite acelasi mesaj o data la 5 secunde, cum as putea rezolva sa trimita o singura pana modific eu mesajul?
Cel mai simplu ar fi(parerea mea) sa modifici questul de notificari, in asa fel incat sa trimiti notificare doar atunci cand vrei tu(modificand in prealabil textul din "text_file.txt").
Pentru a realiza acest lucru, modifica questul de forma asta:

Cod: Selectaţi tot

quest notificari begin
	state start begin
		function read_notice_line(l)
			return read_server_line("/usr/game/share/locale/romania/quest/system/text_file.txt", l)
		end
		when 20094.click begin -- schimbi cu alt npc, sau pui pe un item, folosind when vnum_item.use begin
			if pc.is_gm() then
				say("[ENTER]Trimite notificare globala")
				if select("Trimite notificare", "Anuleaza") == 1 then
					local lines = 0
					for line in io.lines("/usr/game/share/locale/romania/quest/system/text_file.txt") do lines = lines + 1 end
					cmdchat("open_notice_info")
					for i = 1,lines do
						cmdchat("write_notice_info "..string.gsub(notificari.read_notice_line(i), ' ', '_'))
					end
				end
			end
		end
	end
end
Iar daca vrei sa fii sigur, ca playerii care se logheaza dupa ce ai trimis notificarea, primesc acea notificare, foloseste questul de forma asta:

Cod: Selectaţi tot

quest notificari begin
	state start begin
		function read_notice_line(l)
			return read_server_line("/usr/game/share/locale/romania/quest/system/text_file.txt", l)
		end
		when 20094.click begin -- schimbi cu alt npc, sau pui pe un item, folosind when vnum_item.use begin
			if pc.is_gm() then
				say("[ENTER]Trimite notificare globala")
				if select("Trimite notificare", "Anuleaza") == 1 then
					local lines = 0
					for line in io.lines("/usr/game/share/locale/romania/quest/system/text_file.txt") do lines = lines + 1 end
					cmdchat("open_notice_info")
					for i = 1,lines do
						cmdchat("write_notice_info "..string.gsub(notificari.read_notice_line(i), ' ', '_'))
					end
					pc.setqf("new", 1)
				end
			end
		end
		when login begin
			if pc.getqf("new") == 1 then
				local lines = 0
				for line in io.lines("/usr/game/share/locale/romania/quest/system/text_file.txt") do lines = lines + 1 end
				cmdchat("open_notice_info")
				for i = 1,lines do
					cmdchat("write_notice_info "..string.gsub(notificari.read_notice_line(i), ' ', '_'))
				end
				pc.setqf("new", 0)
			end
		end
	end
end
Pentru acest mesaj, [RaffaeL] for the post:
Marius Dragomir
Imagine
Imagine
https://www.youtube.com/watch?v=GhYkCIETEto
Do everything, if you know what you're doing, else... Imagine
Ma gasesti si aici: Discord https://discord.gg/5J5GnyZVSR
Afișează semnătura
Avatar utilizator
Marius Dragomir
Membru Club

Membru Club
Mesaje: 1020
Membru din: 13 Noi 2017, 21:32
Server: HellHound
Regat: Jinno
Aprecieri: 499  
Mulţumiri: 1211  
Discord: Copiază ID
Medalii

[RaffaeL] scrie: ↑28 Apr 2020, 17:47
mariusdrg95 scrie: ↑28 Apr 2020, 16:59
[RaffaeL] scrie: ↑28 Apr 2020, 15:26 Daca citesti acel quest cu atentie, vei observa ca dupa trimiterea mesajului, se seteaza un questflag, care este egal cu "version"
pc.setqf("state_of_quest", version), iar in loop_timer, se verifica relatia "version-questflag" if tonumber(version) > pc.getqf("state_of_quest") then.
Bun, acum, daca verifici db(navicat)->baza player->tabela quest, vei observa ca acel flag este inregistrat cu numarul prezent in fisierul "version.txt" notificari state_of_quest 258.

Prin urmare, revenind la verificarea din acel timer(nu stiu cum sa ma exprim, ca sa intelegi ce si cum), va trimite un nou mesaj, doar daca tonumber(version) este mai mare decat version, ceea ce este fals, acel version fiind tot timpul 258.

Ca solutie, modifica if tonumber(version) > pc.getqf("state_of_quest") then cu if tonumber(version) >= pc.getqf("state_of_quest") then in acest fel relatia fiind adevarata(258 =258 bineinteles).
Cu metoda asta a functionat, a trimis iar pm dar mi s-a intamplat sa imi trimita unul dupa altul, nu se mai oprea, sa fie din cauza ca am modificat si loop timer din 5 in 1?

EDIT : Am modificat inapoi in 5 si imi trimite acelasi mesaj o data la 5 secunde, cum as putea rezolva sa trimita o singura pana modific eu mesajul?
Cel mai simplu ar fi(parerea mea) sa modifici questul de notificari, in asa fel incat sa trimiti notificare doar atunci cand vrei tu(modificand in prealabil textul din "text_file.txt").
Pentru a realiza acest lucru, modifica questul de forma asta:

Cod: Selectaţi tot

quest notificari begin
	state start begin
		function read_notice_line(l)
			return read_server_line("/usr/game/share/locale/romania/quest/system/text_file.txt", l)
		end
		when 20094.click begin -- schimbi cu alt npc, sau pui pe un item, folosind when vnum_item.use begin
			if pc.is_gm() then
				say("[ENTER]Trimite notificare globala")
				if select("Trimite notificare", "Anuleaza") == 1 then
					local lines = 0
					for line in io.lines("/usr/game/share/locale/romania/quest/system/text_file.txt") do lines = lines + 1 end
					cmdchat("open_notice_info")
					for i = 1,lines do
						cmdchat("write_notice_info "..string.gsub(notificari.read_notice_line(i), ' ', '_'))
					end
				end
			end
		end
	end
end
Iar daca vrei sa fii sigur, ca playerii care se logheaza dupa ce ai trimis notificarea, primesc acea notificare, foloseste questul de forma asta:

Cod: Selectaţi tot

quest notificari begin
	state start begin
		function read_notice_line(l)
			return read_server_line("/usr/game/share/locale/romania/quest/system/text_file.txt", l)
		end
		when 20094.click begin -- schimbi cu alt npc, sau pui pe un item, folosind when vnum_item.use begin
			if pc.is_gm() then
				say("[ENTER]Trimite notificare globala")
				if select("Trimite notificare", "Anuleaza") == 1 then
					local lines = 0
					for line in io.lines("/usr/game/share/locale/romania/quest/system/text_file.txt") do lines = lines + 1 end
					cmdchat("open_notice_info")
					for i = 1,lines do
						cmdchat("write_notice_info "..string.gsub(notificari.read_notice_line(i), ' ', '_'))
					end
					pc.setqf("new", 1)
				end
			end
		end
		when login begin
			if pc.getqf("new") == 1 then
				local lines = 0
				for line in io.lines("/usr/game/share/locale/romania/quest/system/text_file.txt") do lines = lines + 1 end
				cmdchat("open_notice_info")
				for i = 1,lines do
					cmdchat("write_notice_info "..string.gsub(notificari.read_notice_line(i), ' ', '_'))
				end
				pc.setqf("new", 0)
			end
		end
	end
end
Am incercat in acest fel dar nu merge, nu se trimite acel mesaj ...
Continut: Ascuns
Trebuie sa multumesti autorului pentru a putea vedea mesajul.
Afișează semnătura
Închis
Răspunsuri
5
Vizualizări
549
Răspunsuri
3
Vizualizări
295
Răspunsuri
1
Vizualizări
132
Răspunsuri
9
Vizualizări
517

Înapoi la “Arhivă Probleme şi Întrebări”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Baidu [Spider] și 42 vizitatori