[Quest]Cufar Premium User, cu activare tag VIP direct din Mysql.

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

Nume: Cufar premium user
Descriere: Cu ajutorul acestui quest poti activa statusul VIP permanent.
Questul ofera posibilitatea schimbarii numelui, in cazul in care acesta este prea lung(8 caractere)
Imagini: Fara.
Quest:

Cod: Selectaţi tot

quest cufar_vip begin
	state start begin
		when 38053.use begin
			say_title(string.format("Salut %s[ENTER]", pc.get_name()))
			say("Odata cu deschiderea acestui cufar")
			say("vei primi iteme corespunzatoare,")
			say("si tagul VIP in fata numelui,")
			say("PERMANENT.[ENTER]")
			say_title("Doresti activarea statusului Premium User?")
			if select("Da", "Nu") == 2 then
				return
			else
				pc.remove_item(38053, 1)
				pc.give_item2(70021, 1)
				pc.give_item2(41324, 1)
				pc.give_item2(41325, 1)
				pc.give_item2(50513, 50)
				pc.give_item2(80007, 1)
				pc.give_item2(80007, 1)
				local hostname="nume server"
				name = pc.get_name()
				lname = string.len(name)
				if lname <= 8 then
					mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
					say_title("Nume schimbat cu succes!")
					say("Felicitari! Acum esti VIP pe "..hostname)
					say("")
					say("")
					say("Informatie")
					say_reward("Schimbarea in statusul (VIP) poate dura 15-20 de minute..")
				elseif lname > 8 then
					say_title("Numele tau!")
					say("Numnele tau este prea lung.")
					say("Numele nu are voie sa aiba mai mult de 8 caractere.")
					say("Daca nu respecti regula, la schimbarea numelui, ")
					say("acesta poate fi incomplet")
					say("")
					say_reward("Vrei totusi sa continui?")
					if select("Da", "Nu") == 2 then
						return
					else
						say_title("Schimbarea numelui")
						say("Introdu numele dorit:")
						say_reward("Fii atent!Nu mai mult de 8 caractere.")
						local inp = input()
						if string.len(inp) > 8 or inp == "" then
							say("Numele tau are mai mult de 8 caractere[ENTER]sau nu ai introdus un nume.")
							say("Imi pare sincer rau.")
							return
						else
							say_title("In regula")
							say("Numele tau respecta cerinta.")
							say("")
							say("Esti sigur ca vrei sa activezi statusul VIP")
							say("cu numele (VIP)", inp," ?")
							if select("Da", "Nu") == 2 then
								return
							else
								mysql_query("UPDATE player.player SET name='[VIP]"..inp.."' WHERE name='"..pc.get_name().."'")
								say_title("Nume schimbat cu succes!")
								say("Felicitari! Acum esti VIP pe "..hostname)
								say("")
								say("")
								say("Info")
								say_reward("Schimbarea in statusul (VIP) poate dura 15-20 de minute..")
							end
						end
					end
				end
			end
		end
	end
end
In cazul in care nu exista deja, adaugati in questing.lua urmatoarea functie:

Cod: Selectaţi tot

mysql_query = function(query)
    if not pre then
        local rt = io.open('CONFIG','r'):read('*all')
        pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
    end
    math.randomseed(os.time())
    local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
    -- os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi)
    os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi)
    for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'t')) end; os.remove(fi);
    for i = 2, table.getn(t) do table.foreach(t[i],function(a,B)
        out[i-1]               = out[i-1] or {}
        out[i-1][a]            = tonumber(B) or b or 'NULL'
        out[t[1][a]]           = out[t[1][a]] or {}
        out[t[1][a]][i-1]      = tonumber(B) or b or 'NULL'
    end) end
    return out
end
Adaugati in quest_functions:

Cod: Selectaţi tot

mysql_query
Tutorial instalare quest:
Salvaţi conţinutul quest-ului într-un fişier text numit de exemplu nume_quest.quest/.lua
Vă conectaţi la filezilla / winscp şi întrati în /usr/home/game/share/locale/germany/quest (depinde ce server aveţi).
Îl puneţi acolo (să fie .quest sau .lua).
Te loghezi în FreeBSD / putty şi scrii în felul următor: cd /usr/home/game/share/locale/germany/quest (depinde ce server aveţi) apoi ./qc nume_quest.quest/.lua
Intraţi pe server şi scrieţi /reload q
Testaţi quest-ul.

Puteti modifica itemele oferite, prin modificarea in quest a vnum-urilor

Cod: Selectaţi tot

pc.give_item2(70021, 1)
				pc.give_item2(41324, 1)
				pc.give_item2(41325, 1)
				pc.give_item2(50513, 50) 
				pc.give_item2(80007, 1)
				pc.give_item2(80007, 1)
Schimbati in quest "hostname" cu numele serverului vostru.
Pentru acest mesaj, [RaffaeL] a primit 9 (de) mulţumiri
Moț • mangaliotu10 • Qpnm12 • cosmyyn1997 • PandiCore • ReNo. • Doctoru • toma7489 • elefant200
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
.Jose
Nivel 1

Nivel 1
Mesaje: 72
Membru din: 08 Apr 2017, 15:35
Aprecieri: 4  
Mulţumiri: 32  
Medalii

nu ai verificat daca ce a introdus sunt doar numere si litere
poti introduce asa '; ca nume si toate numele din tabelul player se modifica in [VIP]
si nu ai verificat daca numele e deja luat
Ultima oară modificat 14 Aug 2017, 18:18 de către .Jose, modificat 1 dată în total.
Pentru acest mesaj, .Jose for the post:
FRANCIS
Imagine
Afișează semnătura
Avatar utilizator
ManiacRobert
Developer

Developer
Mesaje: 1526
Membru din: 09 Dec 2013, 09:51
Server: Canary-World
Regat: Shinsoo
Aprecieri: 310  
Mulţumiri: 687  
Discord: Copiază ID
 Contact:
Medalii

Nici verificare pentru nume nu este, eu daca am numele ManiacRobert, e clar ca nu o sa incapa acolo [VIP]ManiacRobert si o sa-mi poceasca numele.
Imagine
Imagine
Imagine
Imagine
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

R.Gabriel. scrie:Nici verificare pentru nume nu este, eu daca am numele ManiacRobert, e clar ca nu o sa incapa acolo [VIP]ManiacRobert si o sa-mi poceasca numele.

if string.len(inp) > 8 or inp == "" then
say("Numele tau are mai mult de 8 caractere.")
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
[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

.Jose scrie:nu ai verificat daca ce a introdus sunt doar numere si litere
poti introduce asa '; ca nume si toate numele din tabelul player se modifica in [VIP]
si nu ai verificat daca numele e deja luat

mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
Serios? , atunci cand am testat eu acest lucru nu s-au schimbat toate in [VIP].
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
.Jose
Nivel 1

Nivel 1
Mesaje: 72
Membru din: 08 Apr 2017, 15:35
Aprecieri: 4  
Mulţumiri: 32  
Medalii

[RaffaeL] scrie:
.Jose scrie:nu ai verificat daca ce a introdus sunt doar numere si litere
poti introduce asa '; ca nume si toate numele din tabelul player se modifica in [VIP]
si nu ai verificat daca numele e deja luat

mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
Ai testat tu? , pentru ca atunci cand am facut eu acest lucru nu s-au schimbat toate in [VIP].
nume: ';
asa o sa fie echivalent cu
UPDATE player.player SET name='[VIP]';
nu o sa mai citeasca ce ai dupa ; si o sa faca update la toate
nu am nevoie sa testez ceva ce este evident
Imagine
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

.Jose scrie:
[RaffaeL] scrie:
.Jose scrie:nu ai verificat daca ce a introdus sunt doar numere si litere
poti introduce asa '; ca nume si toate numele din tabelul player se modifica in [VIP]
si nu ai verificat daca numele e deja luat

mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
Ai testat tu? , pentru ca atunci cand am facut eu acest lucru nu s-au schimbat toate in [VIP].
nume: ';
asa o sa fie echivalent cu
UPDATE player.player SET name='[VIP]';
nu o sa mai citeasca ce ai dupa ; si o sa faca update la toate
nu am nevoie sa testez ceva ce este evident
Ok, fiecare cu parerea si cunostintele lui.Cine vrea sa foloseasca questul, sa o faca, cine nu ...
Eu incerc sa ajut aici cum stiu si cum pot, nu oblig pe nimeni sa faca nimic.
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
[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

[CHULI] scrie:faza e că postezi cu numele tău nu o postezi in numele lui altul... şi dacă tu postezi un shit de pe numele tău automat şi conţinutul forumului just4meting e shit din cauză ce ai postat tu .. asta e ideea....că sunt atâţia care postează care nu le aparţin resursele e partea a 2 ... dar tu postezi in numele tău
Eu zic sa nu vorbiti pana nu testati, chiar si ce pare evident.
Fii sigur ca nu pun aici nimic, fara sa fi testat inainte, si luand in calcul toate posibilitatile.
Iar daca forumul devine "shit", din cauza unui quest postat de mine, sunt pe aici destui [DEV]-i care posteaza "shit" (in numele lor), si nu sunt luati la pietre...
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
mangaliotu
Nivel 1

Nivel 1
Mesaje: 98
Membru din: 04 Oct 2013, 22:50
Regat: Chunjo
Aprecieri: 102  
Mulţumiri: 19  
Medalii

[RaffaeL] scrie:Nume: Cufar premium user
Descriere: Cu ajutorul acestui quest poti activa statusul VIP permanent.
Questul ofera posibilitatea schimbarii numelui, in cazul in care acesta este prea lung(8 caractere)
Imagini: Fara.
Quest:

Cod: Selectaţi tot

quest cufar_vip begin
	state start begin
		when 38053.use begin
			say_title("Salut "..pc.get_name().."")
			say("")
			say("Odata cu deschiderea acestui cufar")
			say("vei primi iteme corespunzatoare,")
			say("si tagul VIP in fata numelui,")
			say("PERMANENT.")
			say("")

			say_title("Doresti activarea statusului Premium User?")
			
			local change = select("Da", "Nu")
			if change == 2 then
			return
			end	
			if change == 1 then
				pc.remove_item(38053, 1) 
				pc.give_item2(70021, 1)
				pc.give_item2(41324, 1)
				pc.give_item2(41325, 1)
				pc.give_item2(50513, 50) 
				pc.give_item2(80007, 1)
				pc.give_item2(80007, 1)
				local hostname="nume server"
                name = pc.get_name()
                lname = string.len(name)
                if change == 1 and lname <= 8 then
                mysql_query("UPDATE player.player SET name='[VIP]"..pc.get_name().."' WHERE name='"..pc.get_name().."'")
                say_title("Nume schimbat cu succes!")
                say("Felicitari! Acum esti VIP pe "..hostname)
                say("")
                say("")
                say("Informatie")
                say_reward("Schimbarea in statusul (VIP) poate dura 15-20 de minute..")
                elseif lname > 8 then
                say_title("Numele tau!")
                say("Numnele tau este prea lung.")
                say("Numele nu are voie sa aiba mai mult de 8 caractere.")
                say("Daca nu respecti regula, la schimbarea numelui, ")
                say("acesta poate fi incomplet")
                say("")
                say_reward("Vrei totusi sa continui?")
                local a = select("Da", "Nu")
					if a == 2 then
					return
					end
					if a == 1 then
						say_title("Schimbarea numelui")
						say("Introdu numele dorit:")
						say_reward("Fii atent!Nu mai mult de 8 caractere.")
						local inp = input()
						if string.len(inp) > 8 or inp == "" then
						say("Numele tau are mai mult de 8 caractere.")
						say("Imi pare sincer rau.")
						return
						else
						say_title("In regula")
						say("Numele tau respecta cerinta.")
						say("")
						say("Esti sigur ca vrei sa activezi statusul VIP")
						say("cu numele (VIP)", inp," ?")
						local b = select("Da", "Nu")
							if b == 2 then
							return
							else
							mysql_query("UPDATE player.player SET name='[VIP]"..inp.."' WHERE name='"..pc.get_name().."'")
							say_title("Nume schimbat cu succes!")
							say("Felicitari! Acum esti VIP pe "..hostname)
							say("")
							say("")
							say("Info")
							say_reward("Schimbarea in statusul (VIP) poate dura 15-20 de minute..")
							end
						end
					end
				end
            end
		end
	end
end
In cazul in care nu exista deja, adaugati in questing.lua urmatoarea functie:

Cod: Selectaţi tot

mysql_query = function(query)
    if not pre then
        local rt = io.open('CONFIG','r'):read('*all')
        pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
    end
    math.randomseed(os.time())
    local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
    -- os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi)
    os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi)
    for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'t')) end; os.remove(fi);
    for i = 2, table.getn(t) do table.foreach(t[i],function(a,B)
        out[i-1]               = out[i-1] or {}
        out[i-1][a]            = tonumber(B) or b or 'NULL'
        out[t[1][a]]           = out[t[1][a]] or {}
        out[t[1][a]][i-1]      = tonumber(B) or b or 'NULL'
    end) end
    return out
end
Adaugati in quest_functions:

Cod: Selectaţi tot

mysql_query
Tutorial instalare quest:
Salvaţi conţinutul quest-ului într-un fişier text numit de exemplu nume_quest.quest/.lua
Vă conectaţi la filezilla / winscp şi întrati în /usr/home/game/share/locale/germany/quest (depinde ce server aveţi).
Îl puneţi acolo (să fie .quest sau .lua).
Te loghezi în FreeBSD / putty şi scrii în felul următor: cd /usr/home/game/share/locale/germany/quest (depinde ce server aveţi) apoi ./qc nume_quest.quest/.lua
Intraţi pe server şi scrieţi /reload q
Testaţi quest-ul.

Puteti modifica itemele oferite, prin modificarea in quest a vnum-urilor

Cod: Selectaţi tot

pc.give_item2(70021, 1)
				pc.give_item2(41324, 1)
				pc.give_item2(41325, 1)
				pc.give_item2(50513, 50) 
				pc.give_item2(80007, 1)
				pc.give_item2(80007, 1)
Schimbati in quest "hostname" cu numele serverului vostru.
ma ajuti cu problema asta?

Cod: Selectaţi tot

mysql: ambiguous option '--e=UPDATE player.player SET name='[VIP]OneGame' WHERE name='OneGame'' (enable_cleartext_plugin, execute)
Avatar utilizator
Moralised
Nou Venit

Nou Venit
Mesaje: 13
Membru din: 05 Iun 2018, 00:16
Regat: Chunjo
Aprecieri: 0
Mulţumiri: 2  
Medalii

e foarte bun , testat
Răspunde
Răspunsuri
7
Vizualizări
398
Răspunsuri
4
Vizualizări
5509
Răspunsuri
4
Vizualizări
1137

Înapoi la “Quest-uri”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 4 vizitatori