Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Hed-kun

Программирование Т. 5

Рекомендованные сообщения

там проблема не в этом

 

я уже в принципе сделал то что хотел, но немного грязновато, ибо без класса UserItem

вообще непонятно зачем тебе этот юзерайтем сдался. поле с коллекцией айтемов у пользователя и колекция пользователей у айтема.

Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha
там проблема не в этом

 

я уже в принципе сделал то что хотел, но немного грязновато, ибо без класса UserItem

вообще непонятно зачем тебе этот юзерайтем сдался. поле с коллекцией айтемов у пользователя и колекция пользователей у айтема.

так и сделал, просто это не красиво и не совсем удобно

Поделиться сообщением


Ссылка на сообщение
там проблема не в этом

 

я уже в принципе сделал то что хотел, но немного грязновато, ибо без класса UserItem

вообще непонятно зачем тебе этот юзерайтем сдался. поле с коллекцией айтемов у пользователя и колекция пользователей у айтема.

так и сделал, просто это не красиво и не совсем удобно

что некрасивого то? когда тебе такой айтем нужен в отрыве от пользователя?

Колы я выросту - то хочу буты такым як я

5c8bbc85b99e.gif

 

годные смайлы

Поделиться сообщением


Ссылка на сообщение

нашёл тот самый файл скрипта на вбс

БД инклюдед

 

 

это охуенно

 

function makeresultgame(gameid,resultX) 'resultX=0(draw);1(sent);2(scou)
addchat vbyellow,"++MakeResultGame++"
call Reload_Settings()
set mode=conn.execute("SELECT mode FROM games WHERE id='"&gameid&"'")
resultGameMode=cstr(mode.fields(0))
addchat vbyellow,"game#="&gameid&", mode="&resultGameMode&", resultX="&resultx
if resultgamemode="3x3 "&gamesystem or resultgamemode="chall 3x3 "&gamesystem then
	Rep_win=fix(Rep_win/2)
	Rep_Lose=fix(Rep_Lose/2)
	Points_Win=Points_Win/2
	Points_Lose=Points_Lose/2
end if
addchat vbyellow,"Rep_win="&Rep_win&", Rep_Lose="&Rep_Lose&", Points_Win="&Points_Win&", Points_Lose="&Points_Lose
if cstr(resultX)="draw" then resultX="0"
if cstr(resultX)="sentinel" then resultX="1"
if cstr(resultX)="scourge" then resultX="2"
call cleargameexp(gameid)
if cstr(resultX)="0" then
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= cint(rs.fields(i))
		if team1(i+1)<>0 then tteam1=tteam1+1
		team2(i+1)= cint(rs.fields(i+5))
		if team2(i+1)<>0 then tteam2=tteam2+1
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		p_id=Id2Name(team1(i))
		m=m&p_id&" "
		call freeuser("id:"&team1(i),gameid)
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		p_id=Id2Name(team2(i))
		m=m&p_id&" "
		call freeuser("id:"&team2(i),gameid)
	next

	ann "Game "&LeagueName&gameid&" result is draw."&m
end if
'///{|n}
IF cstr(resultX)="1" THEN
	coef=getgamecoef(gameid,true)
	sentexp=cint(Points_win*coef)
	scouexp=cint(Points_lose*coef)
	sentB=true
	scouB=false


	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	l=""
	bonuspoints=0
	for i=0 to 4
		team1(i+1)=(rs.fields(i))
		if team1(i+1)<>0 then
			tteam1=tteam1+1
			'streak=getstreak("id:"&team1(i+1))
		end if
		team2(i+1)=cint(rs.fields(i+5))
		if team2(i+1)<>0 then
			'streak=getstreak("id:"&team2(i+1))
			'if streak>5 then
			'   'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
			'   l=l&" ["&Streaks(streak)&"] of "&Id2Name(team2(i+1))&";"
			'end if
			tteam2=tteam2+1
		end if
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp+bonuspoints)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team1(i),Rep_Win)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team2(i))&" "
	next

	if bonuspoints>0 then m=m&"{|n}Sentinels got "&bonuspoints&" bonus points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Sentinel have won! Exp: +"&sentexp&"/"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
'///{|n}
IF cstr(resultX)="2" THEN
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= (rs.fields(i))
		if team1(i+1)<>0 then
			streak=getstreak("id:"&team1(i+1))
			if streak>5 then
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			end if
			tteam1=tteam1+1
		end if
		team2(i+1)= (rs.fields(i+5))
		if team2(i+1)<>0 then
			tteam2=tteam2+1
			'addchat vbwhite,"Scou.id="&team2(i+1)
		end if
	next
	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	next
	if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
addchat vbyellow,"--MakeResultGame--"
end function

 

 

 

:pray:

хорошо что подобного плана функции мне так и не приходилось ни разу редачить

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha
там проблема не в этом

 

я уже в принципе сделал то что хотел, но немного грязновато, ибо без класса UserItem

вообще непонятно зачем тебе этот юзерайтем сдался. поле с коллекцией айтемов у пользователя и колекция пользователей у айтема.

так и сделал, просто это не красиво и не совсем удобно

что некрасивого то? когда тебе такой айтем нужен в отрыве от пользователя?

не могу ответить, я сейчас не соображаю :)

нашёл тот самый файл скрипта на вбс

БД инклюдед

 

 

это охуенно

 

function makeresultgame(gameid,resultX) 'resultX=0(draw);1(sent);2(scou)
addchat vbyellow,"++MakeResultGame++"
call Reload_Settings()
set mode=conn.execute("SELECT mode FROM games WHERE id='"&gameid&"'")
resultGameMode=cstr(mode.fields(0))
addchat vbyellow,"game#="&gameid&", mode="&resultGameMode&", resultX="&resultx
if resultgamemode="3x3 "&gamesystem or resultgamemode="chall 3x3 "&gamesystem then
	Rep_win=fix(Rep_win/2)
	Rep_Lose=fix(Rep_Lose/2)
	Points_Win=Points_Win/2
	Points_Lose=Points_Lose/2
end if
addchat vbyellow,"Rep_win="&Rep_win&", Rep_Lose="&Rep_Lose&", Points_Win="&Points_Win&", Points_Lose="&Points_Lose
if cstr(resultX)="draw" then resultX="0"
if cstr(resultX)="sentinel" then resultX="1"
if cstr(resultX)="scourge" then resultX="2"
call cleargameexp(gameid)
if cstr(resultX)="0" then
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= cint(rs.fields(i))
		if team1(i+1)<>0 then tteam1=tteam1+1
		team2(i+1)= cint(rs.fields(i+5))
		if team2(i+1)<>0 then tteam2=tteam2+1
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		p_id=Id2Name(team1(i))
		m=m&p_id&" "
		call freeuser("id:"&team1(i),gameid)
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		p_id=Id2Name(team2(i))
		m=m&p_id&" "
		call freeuser("id:"&team2(i),gameid)
	next

	ann "Game "&LeagueName&gameid&" result is draw."&m
end if
'///{|n}
IF cstr(resultX)="1" THEN
	coef=getgamecoef(gameid,true)
	sentexp=cint(Points_win*coef)
	scouexp=cint(Points_lose*coef)
	sentB=true
	scouB=false


	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	l=""
	bonuspoints=0
	for i=0 to 4
		team1(i+1)=(rs.fields(i))
		if team1(i+1)<>0 then
			tteam1=tteam1+1
			'streak=getstreak("id:"&team1(i+1))
		end if
		team2(i+1)=cint(rs.fields(i+5))
		if team2(i+1)<>0 then
			'streak=getstreak("id:"&team2(i+1))
			'if streak>5 then
			'   'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
			'   l=l&" ["&Streaks(streak)&"] of "&Id2Name(team2(i+1))&";"
			'end if
			tteam2=tteam2+1
		end if
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp+bonuspoints)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team1(i),Rep_Win)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team2(i))&" "
	next

	if bonuspoints>0 then m=m&"{|n}Sentinels got "&bonuspoints&" bonus points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Sentinel have won! Exp: +"&sentexp&"/"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
'///{|n}
IF cstr(resultX)="2" THEN
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= (rs.fields(i))
		if team1(i+1)<>0 then
			streak=getstreak("id:"&team1(i+1))
			if streak>5 then
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			end if
			tteam1=tteam1+1
		end if
		team2(i+1)= (rs.fields(i+5))
		if team2(i+1)<>0 then
			tteam2=tteam2+1
			'addchat vbwhite,"Scou.id="&team2(i+1)
		end if
	next
	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	next
	if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
addchat vbyellow,"--MakeResultGame--"
end function

 

 

 

:pray:

хорошо что подобного плана функции мне так и не приходилось ни разу редачить

это пять

Поделиться сообщением


Ссылка на сообщение

смотрите

 

есть база списка итемов и класс под нее Item

есть база пользовательских итемов но класса под нее нет

 

хотелось бы сделать под нее класс, чтобы приделать отношения к юзеру hasMany и belongsTo

 

как обозвать ее и как наследоваться?

Нужно писать фабрику фабрик, очевидно же. :buba:

 

нашёл тот самый файл скрипта на вбс

БД инклюдед

 

 

это охуенно

 

function makeresultgame(gameid,resultX) 'resultX=0(draw);1(sent);2(scou)
addchat vbyellow,"++MakeResultGame++"
call Reload_Settings()
set mode=conn.execute("SELECT mode FROM games WHERE id='"&gameid&"'")
resultGameMode=cstr(mode.fields(0))
addchat vbyellow,"game#="&gameid&", mode="&resultGameMode&", resultX="&resultx
if resultgamemode="3x3 "&gamesystem or resultgamemode="chall 3x3 "&gamesystem then
	Rep_win=fix(Rep_win/2)
	Rep_Lose=fix(Rep_Lose/2)
	Points_Win=Points_Win/2
	Points_Lose=Points_Lose/2
end if
addchat vbyellow,"Rep_win="&Rep_win&", Rep_Lose="&Rep_Lose&", Points_Win="&Points_Win&", Points_Lose="&Points_Lose
if cstr(resultX)="draw" then resultX="0"
if cstr(resultX)="sentinel" then resultX="1"
if cstr(resultX)="scourge" then resultX="2"
call cleargameexp(gameid)
if cstr(resultX)="0" then
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= cint(rs.fields(i))
		if team1(i+1)<>0 then tteam1=tteam1+1
		team2(i+1)= cint(rs.fields(i+5))
		if team2(i+1)<>0 then tteam2=tteam2+1
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		p_id=Id2Name(team1(i))
		m=m&p_id&" "
		call freeuser("id:"&team1(i),gameid)
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		p_id=Id2Name(team2(i))
		m=m&p_id&" "
		call freeuser("id:"&team2(i),gameid)
	next

	ann "Game "&LeagueName&gameid&" result is draw."&m
end if
'///{|n}
IF cstr(resultX)="1" THEN
	coef=getgamecoef(gameid,true)
	sentexp=cint(Points_win*coef)
	scouexp=cint(Points_lose*coef)
	sentB=true
	scouB=false


	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	l=""
	bonuspoints=0
	for i=0 to 4
		team1(i+1)=(rs.fields(i))
		if team1(i+1)<>0 then
			tteam1=tteam1+1
			'streak=getstreak("id:"&team1(i+1))
		end if
		team2(i+1)=cint(rs.fields(i+5))
		if team2(i+1)<>0 then
			'streak=getstreak("id:"&team2(i+1))
			'if streak>5 then
			'   'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
			'   l=l&" ["&Streaks(streak)&"] of "&Id2Name(team2(i+1))&";"
			'end if
			tteam2=tteam2+1
		end if
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp+bonuspoints)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team1(i),Rep_Win)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team2(i))&" "
	next

	if bonuspoints>0 then m=m&"{|n}Sentinels got "&bonuspoints&" bonus points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Sentinel have won! Exp: +"&sentexp&"/"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
'///{|n}
IF cstr(resultX)="2" THEN
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= (rs.fields(i))
		if team1(i+1)<>0 then
			streak=getstreak("id:"&team1(i+1))
			if streak>5 then
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			end if
			tteam1=tteam1+1
		end if
		team2(i+1)= (rs.fields(i+5))
		if team2(i+1)<>0 then
			tteam2=tteam2+1
			'addchat vbwhite,"Scou.id="&team2(i+1)
		end if
	next
	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	next
	if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
addchat vbyellow,"--MakeResultGame--"
end function

 

 

 

:pray:

хорошо что подобного плана функции мне так и не приходилось ни разу редачить

А ты случаем не из Самары? :hmm: А то я знаю одну контору в которой так пишут, зп там огромные, но работать там пиздец как невозможно :palevo:

Поделиться сообщением


Ссылка на сообщение

А ты случаем не из Самары? :hmm: А то я знаю одну контору в которой так пишут, зп там огромные, но работать там пиздец как невозможно :palevo:

нет, я хохол

и этот код не я писал, это доработаный код дотабота под ггц бай sP.Might :pray:

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha

Хохлы пишут на шарпах

Бульбаши на Сях

Русские пьют водку и пишут на Java*

Поделиться сообщением


Ссылка на сообщение

нашёл тот самый файл скрипта на вбс

БД инклюдед

 

 

это охуенно

 

function makeresultgame(gameid,resultX) 'resultX=0(draw);1(sent);2(scou)
addchat vbyellow,"++MakeResultGame++"
call Reload_Settings()
set mode=conn.execute("SELECT mode FROM games WHERE id='"&gameid&"'")
resultGameMode=cstr(mode.fields(0))
addchat vbyellow,"game#="&gameid&", mode="&resultGameMode&", resultX="&resultx
if resultgamemode="3x3 "&gamesystem or resultgamemode="chall 3x3 "&gamesystem then
	Rep_win=fix(Rep_win/2)
	Rep_Lose=fix(Rep_Lose/2)
	Points_Win=Points_Win/2
	Points_Lose=Points_Lose/2
end if
addchat vbyellow,"Rep_win="&Rep_win&", Rep_Lose="&Rep_Lose&", Points_Win="&Points_Win&", Points_Lose="&Points_Lose
if cstr(resultX)="draw" then resultX="0"
if cstr(resultX)="sentinel" then resultX="1"
if cstr(resultX)="scourge" then resultX="2"
call cleargameexp(gameid)
if cstr(resultX)="0" then
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= cint(rs.fields(i))
		if team1(i+1)<>0 then tteam1=tteam1+1
		team2(i+1)= cint(rs.fields(i+5))
		if team2(i+1)<>0 then tteam2=tteam2+1
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		p_id=Id2Name(team1(i))
		m=m&p_id&" "
		call freeuser("id:"&team1(i),gameid)
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		p_id=Id2Name(team2(i))
		m=m&p_id&" "
		call freeuser("id:"&team2(i),gameid)
	next

	ann "Game "&LeagueName&gameid&" result is draw."&m
end if
'///{|n}
IF cstr(resultX)="1" THEN
	coef=getgamecoef(gameid,true)
	sentexp=cint(Points_win*coef)
	scouexp=cint(Points_lose*coef)
	sentB=true
	scouB=false


	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	l=""
	bonuspoints=0
	for i=0 to 4
		team1(i+1)=(rs.fields(i))
		if team1(i+1)<>0 then
			tteam1=tteam1+1
			'streak=getstreak("id:"&team1(i+1))
		end if
		team2(i+1)=cint(rs.fields(i+5))
		if team2(i+1)<>0 then
			'streak=getstreak("id:"&team2(i+1))
			'if streak>5 then
			'   'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
			'   l=l&" ["&Streaks(streak)&"] of "&Id2Name(team2(i+1))&";"
			'end if
			tteam2=tteam2+1
		end if
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp+bonuspoints)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team1(i),Rep_Win)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team2(i))&" "
	next

	if bonuspoints>0 then m=m&"{|n}Sentinels got "&bonuspoints&" bonus points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Sentinel have won! Exp: +"&sentexp&"/"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
'///{|n}
IF cstr(resultX)="2" THEN
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= (rs.fields(i))
		if team1(i+1)<>0 then
			streak=getstreak("id:"&team1(i+1))
			if streak>5 then
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			end if
			tteam1=tteam1+1
		end if
		team2(i+1)= (rs.fields(i+5))
		if team2(i+1)<>0 then
			tteam2=tteam2+1
			'addchat vbwhite,"Scou.id="&team2(i+1)
		end if
	next
	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	next
	if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
addchat vbyellow,"--MakeResultGame--"
end function

 

 

 

:pray:

хорошо что подобного плана функции мне так и не приходилось ни разу редачить

вообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написать


Публикация отключена

Поделиться сообщением


Ссылка на сообщение
Гость 2poy_nyasha

нашёл тот самый файл скрипта на вбс

БД инклюдед

 

 

это охуенно

 

function makeresultgame(gameid,resultX) 'resultX=0(draw);1(sent);2(scou)
addchat vbyellow,"++MakeResultGame++"
call Reload_Settings()
set mode=conn.execute("SELECT mode FROM games WHERE id='"&gameid&"'")
resultGameMode=cstr(mode.fields(0))
addchat vbyellow,"game#="&gameid&", mode="&resultGameMode&", resultX="&resultx
if resultgamemode="3x3 "&gamesystem or resultgamemode="chall 3x3 "&gamesystem then
	Rep_win=fix(Rep_win/2)
	Rep_Lose=fix(Rep_Lose/2)
	Points_Win=Points_Win/2
	Points_Lose=Points_Lose/2
end if
addchat vbyellow,"Rep_win="&Rep_win&", Rep_Lose="&Rep_Lose&", Points_Win="&Points_Win&", Points_Lose="&Points_Lose
if cstr(resultX)="draw" then resultX="0"
if cstr(resultX)="sentinel" then resultX="1"
if cstr(resultX)="scourge" then resultX="2"
call cleargameexp(gameid)
if cstr(resultX)="0" then
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= cint(rs.fields(i))
		if team1(i+1)<>0 then tteam1=tteam1+1
		team2(i+1)= cint(rs.fields(i+5))
		if team2(i+1)<>0 then tteam2=tteam2+1
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		p_id=Id2Name(team1(i))
		m=m&p_id&" "
		call freeuser("id:"&team1(i),gameid)
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		p_id=Id2Name(team2(i))
		m=m&p_id&" "
		call freeuser("id:"&team2(i),gameid)
	next

	ann "Game "&LeagueName&gameid&" result is draw."&m
end if
'///{|n}
IF cstr(resultX)="1" THEN
	coef=getgamecoef(gameid,true)
	sentexp=cint(Points_win*coef)
	scouexp=cint(Points_lose*coef)
	sentB=true
	scouB=false


	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	l=""
	bonuspoints=0
	for i=0 to 4
		team1(i+1)=(rs.fields(i))
		if team1(i+1)<>0 then
			tteam1=tteam1+1
			'streak=getstreak("id:"&team1(i+1))
		end if
		team2(i+1)=cint(rs.fields(i+5))
		if team2(i+1)<>0 then
			'streak=getstreak("id:"&team2(i+1))
			'if streak>5 then
			'   'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
			'   l=l&" ["&Streaks(streak)&"] of "&Id2Name(team2(i+1))&";"
			'end if
			tteam2=tteam2+1
		end if
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp+bonuspoints)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team1(i),Rep_Win)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team2(i))&" "
	next

	if bonuspoints>0 then m=m&"{|n}Sentinels got "&bonuspoints&" bonus points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Sentinel have won! Exp: +"&sentexp&"/"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
'///{|n}
IF cstr(resultX)="2" THEN
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= (rs.fields(i))
		if team1(i+1)<>0 then
			streak=getstreak("id:"&team1(i+1))
			if streak>5 then
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			end if
			tteam1=tteam1+1
		end if
		team2(i+1)= (rs.fields(i+5))
		if team2(i+1)<>0 then
			tteam2=tteam2+1
			'addchat vbwhite,"Scou.id="&team2(i+1)
		end if
	next
	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	next
	if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
addchat vbyellow,"--MakeResultGame--"
end function

 

 

 

:pray:

хорошо что подобного плана функции мне так и не приходилось ни разу редачить

вообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написать

а на раби слабо?

Поделиться сообщением


Ссылка на сообщение

нашёл тот самый файл скрипта на вбс

БД инклюдед

 

 

это охуенно

 

function makeresultgame(gameid,resultX) 'resultX=0(draw);1(sent);2(scou)
addchat vbyellow,"++MakeResultGame++"
call Reload_Settings()
set mode=conn.execute("SELECT mode FROM games WHERE id='"&gameid&"'")
resultGameMode=cstr(mode.fields(0))
addchat vbyellow,"game#="&gameid&", mode="&resultGameMode&", resultX="&resultx
if resultgamemode="3x3 "&gamesystem or resultgamemode="chall 3x3 "&gamesystem then
	Rep_win=fix(Rep_win/2)
	Rep_Lose=fix(Rep_Lose/2)
	Points_Win=Points_Win/2
	Points_Lose=Points_Lose/2
end if
addchat vbyellow,"Rep_win="&Rep_win&", Rep_Lose="&Rep_Lose&", Points_Win="&Points_Win&", Points_Lose="&Points_Lose
if cstr(resultX)="draw" then resultX="0"
if cstr(resultX)="sentinel" then resultX="1"
if cstr(resultX)="scourge" then resultX="2"
call cleargameexp(gameid)
if cstr(resultX)="0" then
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= cint(rs.fields(i))
		if team1(i+1)<>0 then tteam1=tteam1+1
		team2(i+1)= cint(rs.fields(i+5))
		if team2(i+1)<>0 then tteam2=tteam2+1
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		p_id=Id2Name(team1(i))
		m=m&p_id&" "
		call freeuser("id:"&team1(i),gameid)
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		p_id=Id2Name(team2(i))
		m=m&p_id&" "
		call freeuser("id:"&team2(i),gameid)
	next

	ann "Game "&LeagueName&gameid&" result is draw."&m
end if
'///{|n}
IF cstr(resultX)="1" THEN
	coef=getgamecoef(gameid,true)
	sentexp=cint(Points_win*coef)
	scouexp=cint(Points_lose*coef)
	sentB=true
	scouB=false


	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	l=""
	bonuspoints=0
	for i=0 to 4
		team1(i+1)=(rs.fields(i))
		if team1(i+1)<>0 then
			tteam1=tteam1+1
			'streak=getstreak("id:"&team1(i+1))
		end if
		team2(i+1)=cint(rs.fields(i+5))
		if team2(i+1)<>0 then
			'streak=getstreak("id:"&team2(i+1))
			'if streak>5 then
			'   'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
			'   l=l&" ["&Streaks(streak)&"] of "&Id2Name(team2(i+1))&";"
			'end if
			tteam2=tteam2+1
		end if
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp+bonuspoints)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team1(i),Rep_Win)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team2(i))&" "
	next

	if bonuspoints>0 then m=m&"{|n}Sentinels got "&bonuspoints&" bonus points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Sentinel have won! Exp: +"&sentexp&"/"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
'///{|n}
IF cstr(resultX)="2" THEN
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= (rs.fields(i))
		if team1(i+1)<>0 then
			streak=getstreak("id:"&team1(i+1))
			if streak>5 then
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			end if
			tteam1=tteam1+1
		end if
		team2(i+1)= (rs.fields(i+5))
		if team2(i+1)<>0 then
			tteam2=tteam2+1
			'addchat vbwhite,"Scou.id="&team2(i+1)
		end if
	next
	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	next
	if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
addchat vbyellow,"--MakeResultGame--"
end function

 

 

 

:pray:

хорошо что подобного плана функции мне так и не приходилось ни разу редачить

вообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написать

а на раби слабо?

ну на раби даже стараться не придется - главное слишком глубоко не погружаться, а то утонешь


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

нашёл тот самый файл скрипта на вбс

БД инклюдед

 

 

это охуенно

 

function makeresultgame(gameid,resultX) 'resultX=0(draw);1(sent);2(scou)
addchat vbyellow,"++MakeResultGame++"
call Reload_Settings()
set mode=conn.execute("SELECT mode FROM games WHERE id='"&gameid&"'")
resultGameMode=cstr(mode.fields(0))
addchat vbyellow,"game#="&gameid&", mode="&resultGameMode&", resultX="&resultx
if resultgamemode="3x3 "&gamesystem or resultgamemode="chall 3x3 "&gamesystem then
	Rep_win=fix(Rep_win/2)
	Rep_Lose=fix(Rep_Lose/2)
	Points_Win=Points_Win/2
	Points_Lose=Points_Lose/2
end if
addchat vbyellow,"Rep_win="&Rep_win&", Rep_Lose="&Rep_Lose&", Points_Win="&Points_Win&", Points_Lose="&Points_Lose
if cstr(resultX)="draw" then resultX="0"
if cstr(resultX)="sentinel" then resultX="1"
if cstr(resultX)="scourge" then resultX="2"
call cleargameexp(gameid)
if cstr(resultX)="0" then
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= cint(rs.fields(i))
		if team1(i+1)<>0 then tteam1=tteam1+1
		team2(i+1)= cint(rs.fields(i+5))
		if team2(i+1)<>0 then tteam2=tteam2+1
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		p_id=Id2Name(team1(i))
		m=m&p_id&" "
		call freeuser("id:"&team1(i),gameid)
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		p_id=Id2Name(team2(i))
		m=m&p_id&" "
		call freeuser("id:"&team2(i),gameid)
	next

	ann "Game "&LeagueName&gameid&" result is draw."&m
end if
'///{|n}
IF cstr(resultX)="1" THEN
	coef=getgamecoef(gameid,true)
	sentexp=cint(Points_win*coef)
	scouexp=cint(Points_lose*coef)
	sentB=true
	scouB=false


	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	l=""
	bonuspoints=0
	for i=0 to 4
		team1(i+1)=(rs.fields(i))
		if team1(i+1)<>0 then
			tteam1=tteam1+1
			'streak=getstreak("id:"&team1(i+1))
		end if
		team2(i+1)=cint(rs.fields(i+5))
		if team2(i+1)<>0 then
			'streak=getstreak("id:"&team2(i+1))
			'if streak>5 then
			'   'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
			'   l=l&" ["&Streaks(streak)&"] of "&Id2Name(team2(i+1))&";"
			'end if
			tteam2=tteam2+1
		end if
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp+bonuspoints)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team1(i),Rep_Win)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team2(i))&" "
	next

	if bonuspoints>0 then m=m&"{|n}Sentinels got "&bonuspoints&" bonus points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Sentinel have won! Exp: +"&sentexp&"/"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
'///{|n}
IF cstr(resultX)="2" THEN
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= (rs.fields(i))
		if team1(i+1)<>0 then
			streak=getstreak("id:"&team1(i+1))
			if streak>5 then
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			end if
			tteam1=tteam1+1
		end if
		team2(i+1)= (rs.fields(i+5))
		if team2(i+1)<>0 then
			tteam2=tteam2+1
			'addchat vbwhite,"Scou.id="&team2(i+1)
		end if
	next
	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	next
	if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
addchat vbyellow,"--MakeResultGame--"
end function

 

 

 

:pray:

хорошо что подобного плана функции мне так и не приходилось ни разу редачить

вообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написать

я и не говорил, что вбс полное говно, я просто говорил о своих ассоциациях по-поводу вбс

это ультраотвратительно было бы на любом ЯПе, но синтаксис вбс добавляет "труднопонимаемости" этому коду

 

самое забавное что эта функция делает порядка 40 отдельных запросов в бд (многие из них тут не видно, они в вызываемых фунциях), хотя при правильном подходе можно было бы обойтись чуть ли не двумя/тремя

Поделиться сообщением


Ссылка на сообщение

нашёл тот самый файл скрипта на вбс

БД инклюдед

 

 

это охуенно

 

function makeresultgame(gameid,resultX) 'resultX=0(draw);1(sent);2(scou)
addchat vbyellow,"++MakeResultGame++"
call Reload_Settings()
set mode=conn.execute("SELECT mode FROM games WHERE id='"&gameid&"'")
resultGameMode=cstr(mode.fields(0))
addchat vbyellow,"game#="&gameid&", mode="&resultGameMode&", resultX="&resultx
if resultgamemode="3x3 "&gamesystem or resultgamemode="chall 3x3 "&gamesystem then
	Rep_win=fix(Rep_win/2)
	Rep_Lose=fix(Rep_Lose/2)
	Points_Win=Points_Win/2
	Points_Lose=Points_Lose/2
end if
addchat vbyellow,"Rep_win="&Rep_win&", Rep_Lose="&Rep_Lose&", Points_Win="&Points_Win&", Points_Lose="&Points_Lose
if cstr(resultX)="draw" then resultX="0"
if cstr(resultX)="sentinel" then resultX="1"
if cstr(resultX)="scourge" then resultX="2"
call cleargameexp(gameid)
if cstr(resultX)="0" then
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= cint(rs.fields(i))
		if team1(i+1)<>0 then tteam1=tteam1+1
		team2(i+1)= cint(rs.fields(i+5))
		if team2(i+1)<>0 then tteam2=tteam2+1
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		p_id=Id2Name(team1(i))
		m=m&p_id&" "
		call freeuser("id:"&team1(i),gameid)
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		p_id=Id2Name(team2(i))
		m=m&p_id&" "
		call freeuser("id:"&team2(i),gameid)
	next

	ann "Game "&LeagueName&gameid&" result is draw."&m
end if
'///{|n}
IF cstr(resultX)="1" THEN
	coef=getgamecoef(gameid,true)
	sentexp=cint(Points_win*coef)
	scouexp=cint(Points_lose*coef)
	sentB=true
	scouB=false


	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	l=""
	bonuspoints=0
	for i=0 to 4
		team1(i+1)=(rs.fields(i))
		if team1(i+1)<>0 then
			tteam1=tteam1+1
			'streak=getstreak("id:"&team1(i+1))
		end if
		team2(i+1)=cint(rs.fields(i+5))
		if team2(i+1)<>0 then
			'streak=getstreak("id:"&team2(i+1))
			'if streak>5 then
			'   'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
			'   l=l&" ["&Streaks(streak)&"] of "&Id2Name(team2(i+1))&";"
			'end if
			tteam2=tteam2+1
		end if
	next

	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp+bonuspoints)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team1(i),Rep_Win)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team2(i))&" "
	next

	if bonuspoints>0 then m=m&"{|n}Sentinels got "&bonuspoints&" bonus points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Sentinel have won! Exp: +"&sentexp&"/"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
'///{|n}
IF cstr(resultX)="2" THEN
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for i=0 to 4
		team1(i+1)= (rs.fields(i))
		if team1(i+1)<>0 then
			streak=getstreak("id:"&team1(i+1))
			if streak>5 then
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			end if
			tteam1=tteam1+1
		end if
		team2(i+1)= (rs.fields(i+5))
		if team2(i+1)<>0 then
			tteam2=tteam2+1
			'addchat vbwhite,"Scou.id="&team2(i+1)
		end if
	next
	m="{|n}Sentinel: "
	for i=1 to tteam1
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	next
	m=m&"{|n}Scourge: "
	for i=1 to tteam2
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	next
	if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
end if
addchat vbyellow,"--MakeResultGame--"
end function

 

 

 

:pray:

хорошо что подобного плана функции мне так и не приходилось ни разу редачить

вообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написать

я и не говорил, что вбс полное говно, я просто говорил о своих ассоциациях по-поводу вбс

это ультраотвратительно было бы на любом ЯПе, но синтаксис вбс добавляет "труднопонимаемости" этому коду

 

самое забавное что эта функция делает порядка 40 отдельных запросов в бд (многие из них тут не видно, они в вызываемых фунциях), хотя при правильном подходе можно было бы обойтись чуть ли не двумя/тремя

сорок запросов, когда можно обойтись двумя - это явно не проблема синтаксиса vbs

 

при чем тут синтаксис vbs вообще?

 

циклы, условное ветвление, вызов функций, присваивание - ну просто охуеть как от других языков отличаются...

 

 

да, у меня пригорело

 


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

потому что всё работает по-разному (в смысле альтернатив)

call function(arg1,arg2) ничем не отличается от function arg1,arg2

чем отличается variable = вызов от set variable = вызов я не понимаю до сих пор

объявления переменных тут наверное не было принципиально, брал и посреди кода писал buba = 0, всё збс, ты даже не узнаешь, что такая переменная уже где-то объявлена в теле скрипта, ошибок при компиляции не будет, а потом копайся почему через полдня работы бота сломалось что-то вообще не связанное с добавлением какой-то новой функции которая почти ничего вообще не делает, но одна из её переменных заменила какую-то глобальную

словесные end if end function тоже абсолютно никак не способствуют читаемости кода в условиях описаного выше ^

 

а главная проблема в том, что именно синтаксис вбс позволяет всю эту вакханалию с разными регистрами одних и тех же вызовов и операторов, разными формами вызова одних и тех же функций, и до тех пор пока язык разрешает весь этот бред его в принципе нельзя считать нормальным

 

да, у меня тоже пригорело

Поделиться сообщением


Ссылка на сообщение

потому что всё работает по-разному (в смысле альтернатив)

call function(arg1,arg2) ничем не отличается от function arg1,arg2

никакой мешанины нет: указал call - должны быть скобочки, опустил call - не должно быть скобочек.

 

чем отличается variable = вызов от set variable = вызов я не понимаю до сих пор

set - оператор присваивания для объектов и их свойств (ссылочные типы), = оператор присваивания для значимых типов.

 

объявления переменных тут наверное не было принципиально, брал и посреди кода писал buba = 0, всё збс

представляешь option explicit, нет во многих скриптовых языках

dim

 

ты даже не узнаешь, что такая переменная уже где-то объявлена в теле скрипта, ошибок при компиляции не будет

vbscript не компилируется

 

а потом копайся почему через полдня работы бота сломалось что-то вообще не связанное с добавлением какой-то новой функции которая почти ничего вообще не делает, но одна из её переменных заменила какую-то глобальную

public

private

 

словесные end if end function тоже абсолютно никак не способствуют читаемости кода в условиях описаного выше ^

используй табуляцию для индентации кода

 

а главная проблема в том, что именно синтаксис вбс позволяет всю эту вакханалию с разными регистрами одних и тех же вызовов и операторов,разными формами вызова одних и тех же функций,

это проблемы автора кода - никакой каши не будет, если ты определил некие правила и пишешь по ним

 

и до тех пор пока язык разрешает весь этот бред его в принципе нельзя считать нормальным

скриптовый интерпретируемый язык


Публикация отключена

Поделиться сообщением


Ссылка на сообщение

никакой мешанины нет: указал call - должны быть скобочки, опустил call - не должно быть скобочек.

тролейбус_из_хлеба.жпг

какой вообще смысл в двух настолько банальных синтаксических конструкциях, которые имеют одинаковый результат?

set - оператор присваивания для объектов и их свойств (ссылочные типы), = оператор присваивания для значимых типов.

допустим

представляешь option explicit, нет во многих скриптовых языках

dim

public

private

дим-хуим, я знаю синтаксис, это пусть и изначально было тупизмом делать полноценного бота с БД в стелсботе со скриптами на вбс (майту привет, я не знаю как он сам с ним работал), но с таким большим скриптом управиться стаёт немыслимо

 

и дело не в private/public, а в том, что я один раз обявил в теле скрипта переменную с названием которое уже использовалось в функции и работа моей функции для той переменной рандомно отваливалась без всяких на то причин, пока я случайно не пустил Ctrl+F по коду и не нашёл такое же название у локальной переменной в одной из старых функций

как тут можно вообще работать с чужим кодом? та даже и со своим, это нужно или наизусть знать все названия переменных, или на каждый пук бегать Ctrl+F по коду или каждой переменной вне функций (или в функциях, смотря где их меньше) нужно ставить префикс?

используй табуляцию для индентации кода

это нихуя не помогает

скриптовый интерпретируемый язык

на котором лучше по возможности ничего не писать

Поделиться сообщением


Ссылка на сообщение
(изменено)

перезапись глобальных переменных в подпрограмме - это недостаток не конкретного языка, а того, кто так пишет программы... в принципе, как и все остальные `проблемы`, описанные тобой сейчас

 

if (...)

{

...

}

else

{

...

}

 

одинаково противно с

 

if (...) then

...

else

...

end if


Изменено пользователем KotZhilkina

Публикация отключена

Поделиться сообщением


Ссылка на сообщение

визуальная структуризация

if (cstr(resultX)="2")
{
	coef=getgamecoef(gameid,false)
	sentexp=cint(Points_lose*coef)
	scouexp=cint(Points_win*coef)
	sentB=false
	scouB=true
	l=""
	bonuspoints=0

	set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
	tteam1=0
	tteam2=0
	for (i=0 to 4)
	{
		team1(i+1)= (rs.fields(i))
		if (team1(i+1)<>0)
		{
			streak=getstreak("id:"&team1(i+1))
			if (streak>5)
			{
				'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
				l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
			}
			tteam1=tteam1+1
		}
		team2(i+1)= (rs.fields(i+5))
		if (team2(i+1)<>0)
		{
			tteam2=tteam2+1
			'call addchat (vbwhite,"Scou.id="&team2(i+1))
		}
	}
	m="{|n}Sentinel: "
	for (i=1 to tteam1)
	{
		call addpoints("ID:"&team1(i),sentexp)
		call addscore("ID:"&team1(i),1,sentB)
		call freeuser("ID:"&team1(i),gameid)

		call addrep("ID:"&team2(i),Rep_Lose)
		m=m&Id2Name(team1(i))&" "
	}
	m=m&"{|n}Scourge: "
	for (i=1 to tteam2)
	{
		call addpoints("ID:"&team2(i),scouexp+bonuspoints)
		call addscore("ID:"&team2(i),1,scouB)
		call freeuser("ID:"&team2(i),gameid)
		call addrep("ID:"&team2(i),Rep_Win)
		m=m&Id2Name(team2(i))&" "
	}
	if (bonuspoints>0) m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
	call addcomment(gameid,m)
	call ann(LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m)
	conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
}

неужели ты не считаешь что это куда более читаемо чем

 

оригинал того же участка кода?

	IF cstr(resultX)="2" THEN
			coef=getgamecoef(gameid,false)
			sentexp=cint(Points_lose*coef)
			scouexp=cint(Points_win*coef)
			sentB=false
			scouB=true
			l=""
			bonuspoints=0

			set rs=conn.execute("SELECT p11,p12,p13,p14,p15,p21,p22,p23,p24,p25 FROM `games` WHERE id="&gameid)
			tteam1=0
			tteam2=0
			for i=0 to 4
					team1(i+1)= (rs.fields(i))
					if team1(i+1)<>0 then
							streak=getstreak("id:"&team1(i+1))
							if streak>5 then
									'bonuspoints=bonuspoints+cint(streak*(Points_win/10))
									l=l&" ["&Streaks(streak) &"streak] of "&Id2Name(team1(i+1))&";"
							end if
							tteam1=tteam1+1
					end if
					team2(i+1)= (rs.fields(i+5))
					if team2(i+1)<>0 then
							tteam2=tteam2+1
							'addchat vbwhite,"Scou.id="&team2(i+1)
					end if
			next
			m="{|n}Sentinel: "
			for i=1 to tteam1
					call addpoints("ID:"&team1(i),sentexp)
					call addscore("ID:"&team1(i),1,sentB)
					call freeuser("ID:"&team1(i),gameid)

					call addrep("ID:"&team2(i),Rep_Lose)
					m=m&Id2Name(team1(i))&" "
			next
			m=m&"{|n}Scourge: "
			for i=1 to tteam2
					call addpoints("ID:"&team2(i),scouexp+bonuspoints)
					call addscore("ID:"&team2(i),1,scouB)
					call freeuser("ID:"&team2(i),gameid)
					call addrep("ID:"&team2(i),Rep_Win)
					m=m&Id2Name(team2(i))&" "
			next
			if bonuspoints>0 then m=m&". Scourges got "&bonuspoints&" BONUS points for breaking"&l
			call addcomment(gameid,m)
			ann LeagueName&gameid&". The Scourge have won! Exp: "&sentexp&"/+"&scouexp&", Rep: +"&Rep_Win&"/"&Rep_Lose&m
			conn.execute("UPDATE `games` SET `END` = '"&timetointeger()&"', `result` = '"&resultX&"', `POINTS` = '"&abs(sentexp)&"' WHERE `id` ="&gameid)
	end if

 

ещё бы точки с запятыми сюда и можно было бы даже одну команду разбивать по строчкам для ещё большей читаемости больших строк

Поделиться сообщением


Ссылка на сообщение
(изменено)

"читаемость" кода - наверное самый последний фактор, который я бы рассматривал при выборе языка для решения конкретной задачи


Изменено пользователем Vovchique

Поделиться сообщением


Ссылка на сообщение

в вопросе выбора скриптовых языков так это точно не последний параметр

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...