rubish #381 10 июня 2013 там проблема не в этом я уже в принципе сделал то что хотел, но немного грязновато, ибо без класса UserItemвообще непонятно зачем тебе этот юзерайтем сдался. поле с коллекцией айтемов у пользователя и колекция пользователей у айтема. Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #382 10 июня 2013 там проблема не в этом я уже в принципе сделал то что хотел, но немного грязновато, ибо без класса UserItemвообще непонятно зачем тебе этот юзерайтем сдался. поле с коллекцией айтемов у пользователя и колекция пользователей у айтема.так и сделал, просто это не красиво и не совсем удобно Поделиться сообщением Ссылка на сообщение
rubish #383 10 июня 2013 там проблема не в этом я уже в принципе сделал то что хотел, но немного грязновато, ибо без класса UserItemвообще непонятно зачем тебе этот юзерайтем сдался. поле с коллекцией айтемов у пользователя и колекция пользователей у айтема.так и сделал, просто это не красиво и не совсем удобночто некрасивого то? когда тебе такой айтем нужен в отрыве от пользователя? Колы я выросту - то хочу буты такым як я годные смайлы Поделиться сообщением Ссылка на сообщение
TheDeadSkin #384 10 июня 2013 нашёл тот самый файл скрипта на вбсБД инклюдед это охуенно 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 хорошо что подобного плана функции мне так и не приходилось ни разу редачить Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #385 10 июня 2013 там проблема не в этом я уже в принципе сделал то что хотел, но немного грязновато, ибо без класса 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 хорошо что подобного плана функции мне так и не приходилось ни разу редачитьэто пять Поделиться сообщением Ссылка на сообщение
DIMAN123456789 #386 10 июня 2013 смотрите есть база списка итемов и класс под нее Itemесть база пользовательских итемов но класса под нее нет хотелось бы сделать под нее класс, чтобы приделать отношения к юзеру hasMany и belongsTo как обозвать ее и как наследоваться?Нужно писать фабрику фабрик, очевидно же. нашёл тот самый файл скрипта на вбсБД инклюдед это охуенно 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 хорошо что подобного плана функции мне так и не приходилось ни разу редачитьА ты случаем не из Самары? А то я знаю одну контору в которой так пишут, зп там огромные, но работать там пиздец как невозможно Поделиться сообщением Ссылка на сообщение
TheDeadSkin #387 10 июня 2013 А ты случаем не из Самары? А то я знаю одну контору в которой так пишут, зп там огромные, но работать там пиздец как невозможно нет, я хохоли этот код не я писал, это доработаный код дотабота под ггц бай sP.Might Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #388 10 июня 2013 Хохлы пишут на шарпахБульбаши на СяхРусские пьют водку и пишут на Java* Поделиться сообщением Ссылка на сообщение
KotZhilkina #389 10 июня 2013 нашёл тот самый файл скрипта на вбсБД инклюдед это охуенно 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 хорошо что подобного плана функции мне так и не приходилось ни разу редачитьвообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написать Публикация отключена Поделиться сообщением Ссылка на сообщение
Гость 2poy_nyasha #390 10 июня 2013 нашёл тот самый файл скрипта на вбсБД инклюдед это охуенно 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 хорошо что подобного плана функции мне так и не приходилось ни разу редачитьвообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написатьа на раби слабо? Поделиться сообщением Ссылка на сообщение
KotZhilkina #391 10 июня 2013 нашёл тот самый файл скрипта на вбсБД инклюдед это охуенно 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 хорошо что подобного плана функции мне так и не приходилось ни разу редачитьвообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написатьа на раби слабо?ну на раби даже стараться не придется - главное слишком глубоко не погружаться, а то утонешь Публикация отключена Поделиться сообщением Ссылка на сообщение
TheDeadSkin #392 10 июня 2013 нашёл тот самый файл скрипта на вбсБД инклюдед это охуенно 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 хорошо что подобного плана функции мне так и не приходилось ни разу редачитьвообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написатья и не говорил, что вбс полное говно, я просто говорил о своих ассоциациях по-поводу вбсэто ультраотвратительно было бы на любом ЯПе, но синтаксис вбс добавляет "труднопонимаемости" этому коду самое забавное что эта функция делает порядка 40 отдельных запросов в бд (многие из них тут не видно, они в вызываемых фунциях), хотя при правильном подходе можно было бы обойтись чуть ли не двумя/тремя Поделиться сообщением Ссылка на сообщение
KotZhilkina #393 10 июня 2013 нашёл тот самый файл скрипта на вбсБД инклюдед это охуенно 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 хорошо что подобного плана функции мне так и не приходилось ни разу редачитьвообще не вижу проблем vbs в этом коде - так же отвратиельно можно было на чем угодно написатья и не говорил, что вбс полное говно, я просто говорил о своих ассоциациях по-поводу вбсэто ультраотвратительно было бы на любом ЯПе, но синтаксис вбс добавляет "труднопонимаемости" этому коду самое забавное что эта функция делает порядка 40 отдельных запросов в бд (многие из них тут не видно, они в вызываемых фунциях), хотя при правильном подходе можно было бы обойтись чуть ли не двумя/тремясорок запросов, когда можно обойтись двумя - это явно не проблема синтаксиса vbs при чем тут синтаксис vbs вообще? циклы, условное ветвление, вызов функций, присваивание - ну просто охуеть как от других языков отличаются... да, у меня пригорело Публикация отключена Поделиться сообщением Ссылка на сообщение
TheDeadSkin #394 10 июня 2013 потому что всё работает по-разному (в смысле альтернатив)call function(arg1,arg2) ничем не отличается от function arg1,arg2чем отличается variable = вызов от set variable = вызов я не понимаю до сих поробъявления переменных тут наверное не было принципиально, брал и посреди кода писал buba = 0, всё збс, ты даже не узнаешь, что такая переменная уже где-то объявлена в теле скрипта, ошибок при компиляции не будет, а потом копайся почему через полдня работы бота сломалось что-то вообще не связанное с добавлением какой-то новой функции которая почти ничего вообще не делает, но одна из её переменных заменила какую-то глобальнуюсловесные end if end function тоже абсолютно никак не способствуют читаемости кода в условиях описаного выше ^ а главная проблема в том, что именно синтаксис вбс позволяет всю эту вакханалию с разными регистрами одних и тех же вызовов и операторов, разными формами вызова одних и тех же функций, и до тех пор пока язык разрешает весь этот бред его в принципе нельзя считать нормальным да, у меня тоже пригорело Поделиться сообщением Ссылка на сообщение
KotZhilkina #395 10 июня 2013 потому что всё работает по-разному (в смысле альтернатив)call function(arg1,arg2) ничем не отличается от function arg1,arg2никакой мешанины нет: указал call - должны быть скобочки, опустил call - не должно быть скобочек. чем отличается variable = вызов от set variable = вызов я не понимаю до сих порset - оператор присваивания для объектов и их свойств (ссылочные типы), = оператор присваивания для значимых типов. объявления переменных тут наверное не было принципиально, брал и посреди кода писал buba = 0, всё збспредставляешь option explicit, нет во многих скриптовых языкахdim ты даже не узнаешь, что такая переменная уже где-то объявлена в теле скрипта, ошибок при компиляции не будетvbscript не компилируется а потом копайся почему через полдня работы бота сломалось что-то вообще не связанное с добавлением какой-то новой функции которая почти ничего вообще не делает, но одна из её переменных заменила какую-то глобальнуюpublicprivate словесные end if end function тоже абсолютно никак не способствуют читаемости кода в условиях описаного выше ^используй табуляцию для индентации кода а главная проблема в том, что именно синтаксис вбс позволяет всю эту вакханалию с разными регистрами одних и тех же вызовов и операторов,разными формами вызова одних и тех же функций,это проблемы автора кода - никакой каши не будет, если ты определил некие правила и пишешь по ним и до тех пор пока язык разрешает весь этот бред его в принципе нельзя считать нормальнымскриптовый интерпретируемый язык Публикация отключена Поделиться сообщением Ссылка на сообщение
TheDeadSkin #396 10 июня 2013 никакой мешанины нет: указал call - должны быть скобочки, опустил call - не должно быть скобочек.тролейбус_из_хлеба.жпгкакой вообще смысл в двух настолько банальных синтаксических конструкциях, которые имеют одинаковый результат?set - оператор присваивания для объектов и их свойств (ссылочные типы), = оператор присваивания для значимых типов.допустимпредставляешь option explicit, нет во многих скриптовых языкахdimpublicprivateдим-хуим, я знаю синтаксис, это пусть и изначально было тупизмом делать полноценного бота с БД в стелсботе со скриптами на вбс (майту привет, я не знаю как он сам с ним работал), но с таким большим скриптом управиться стаёт немыслимо и дело не в private/public, а в том, что я один раз обявил в теле скрипта переменную с названием которое уже использовалось в функции и работа моей функции для той переменной рандомно отваливалась без всяких на то причин, пока я случайно не пустил Ctrl+F по коду и не нашёл такое же название у локальной переменной в одной из старых функцийкак тут можно вообще работать с чужим кодом? та даже и со своим, это нужно или наизусть знать все названия переменных, или на каждый пук бегать Ctrl+F по коду или каждой переменной вне функций (или в функциях, смотря где их меньше) нужно ставить префикс?используй табуляцию для индентации кодаэто нихуя не помогаетскриптовый интерпретируемый языкна котором лучше по возможности ничего не писать Поделиться сообщением Ссылка на сообщение
KotZhilkina #397 10 июня 2013 (изменено) перезапись глобальных переменных в подпрограмме - это недостаток не конкретного языка, а того, кто так пишет программы... в принципе, как и все остальные `проблемы`, описанные тобой сейчас if (...){...}else{...} одинаково противно с if (...) then...else...end if Изменено 10 июня 2013 пользователем KotZhilkina Публикация отключена Поделиться сообщением Ссылка на сообщение
TheDeadSkin #398 10 июня 2013 визуальная структуризация 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 #399 10 июня 2013 (изменено) "читаемость" кода - наверное самый последний фактор, который я бы рассматривал при выборе языка для решения конкретной задачи Изменено 10 июня 2013 пользователем Vovchique Поделиться сообщением Ссылка на сообщение
TheDeadSkin #400 10 июня 2013 в вопросе выбора скриптовых языков так это точно не последний параметр Поделиться сообщением Ссылка на сообщение