Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Skrypt chodzenia, w JS


matri

Rekomendowane odpowiedzi

Opublikowano

Witam. Poszukuje skryptu chodzenia w JS, ma być podobny taki jak w Margonem. Nagroda Plusik ;D

Opublikowano

Dobra zobacze


Znalazłem plik "player.js"

 

function player(){var f="";this.autoWalkLock=false;this.updated=false;this.autoFightLock=false;this.ml=[];this.mts=[];var e={pid:getCookie("mchar_id"),x:-1,y:-1,rx:-1,ry:-1,mx:-1,my:-1,step:0,fw:32,fh:48,dir:0,ndir:-1,hp:1,maxhp:1,ml:[],cdir:"",clanrank:100};for(var c in e){this[c]=e[c]}delete e;if(this.pid<1){this.pid=getCookie("user_id")}this.hash=getCookie("chash");if(this.hash){this.hash=this.hash.substr(0,10)}this.statsval=[];var b=-1;var a=0;var d=$("<div id=hero tip='"+_t("my_character",null,"map")+"'></div>").click(function(h){hero.click(h)});$("#base").append(d);this.checkNPCRoadCollision=function(h,k){if(road.length){for(var j=0;j<road.length;j++){if(road[j].x==h&&road[j].y==k){road=road.splice(j+1,road.length-j);break}}}};this.addStep=function(h){this.ml.push(h);this.mts.push(unix_time(false,true))};this.resetSteps=function(){this.ml=[];this.mts=[]};this.sliceSteps=function(h){this.ml=this.ml.slice(h);this.mts=this.mts.slice(h)};this._u=function(L){var q=this.x>=0?this.x:null,p=this.y>=0?this.y:null,I=this.clan;var l=isset(this.lvl)?this.lvl:null;for(var E in L){if(is_int(L[E])){this[E]=parseInt(L[E])}else{this[E]=L[E]}}if(isset(L.x)&&isset(L.y)){var y=Math.sqrt(Math.pow(q-L.x,2)+Math.pow(p-L.y,2));if(y>2&&road.length){this.resetSteps();road=[];this.rx=L.x;this.ry=L.y}}if(l==1&&this.lvl==2){tutorialStart(4)}if(isset(this.wanted)&&this.wanted>=90){$("#hero").attr("tip","<center>"+_t("my_character",null,"map")+'</center><b><span style="color:red">'+_t("my_char_wanted",null,"map")+"</span></b>")}if(isset(this.preview_acc)&&this.lvl<20){var N=getCookie("reg_noshow");if((N===null||!parseInt(N))&&_l()=="en"){$("#bm_register").show()}}if(!this.clan&&I){$(".clan").fadeOut();g.lock.remove("clans")}if(this.lvl>=25){if(this.lvl==25){tutorialStart(16)}$("#skillSwitch").show();$("#skillSwitch").attr("class",(hero.opt&1024?"second":"first"))}if(isset(L.clanrank)&&g.clan&&g.clan.ranks){g.clan.myrank=g.clan.ranks[this.clanrank].r}if((L.back==1)||((q!=this.x||p!=this.y)&&g.lock.check()&&this.ml.length>0)){this.resetSteps()}else{if(this.ml.length>0){var A=-1;for(var E in this.ml){if(this.ml[E]==this.x+","+this.y){A=parseInt(E)}}if(A>=0){this.sliceSteps(A+1);this.x=q;this.y=p}else{var o=this.ml[0].split(",");if((Math.abs(o[0]-this.x)+Math.abs(o[1]-this.y)>1)){this.resetSteps();this.rx=this.x;this.ry=this.y}}}}if(q!=this.x||p!=this.y){function J(){if(hero.rx>=0&&hero.rx>=0){hero.centerViewOnMe()}else{setTimeout(function(){J()},50)}}J()}if(isset(L.img)){if(this.mpath.indexOf("http:")>=0){g.mpath=this.mpath+"obrazki/miasta/"}else{if(this.mpath!=""){g.mpath="http://"+location.host+"/obrazki/miasta/"}}this.icon=g.opath+"postacie"+this.img;var P=new Image();$(P).load(function(){hero.fw=this.width>>2;hero.fh=this.height>>2;var n=Math.round(hero.rx*32+16-hero.fw/2);var k=Math.round(hero.ry*32+32-hero.fh);var i=Math.round(hero.rx)+Math.round(hero.ry)*256,Q=0;if(isset(map)&&isset(map.water)){Q=map.water}$("#hero").css({backgroundImage:"url("+$(this).attr("src")+")",width:hero.fw,height:hero.fh-((Q/4)>8?(Q-32):Q),left:n,top:k+((Q/4)>8?0:Q),backgroundPosition:(hero.step*hero.fw)+"px "+(-hero.dir*hero.fh)+"px",zIndex:hero.y+10});if(!__tutorials.val&&1){Highlighter.startH.synchroStart("hero")}}).error(function(){log($(this).attr("src"),2)}).attr({src:this.icon});$("#b_pvp").data("bp",this.pvp?"-44px -22px":"-66px -22px").css("backgroundPosition",this.pvp?"-44px 0":"-66px 0")}if(isset(L.nick)){var D=this.nick+" · "+this.lvl+this.prof;if(D.length>30){$("#nick").html(D).css({"font-size":"12px"})}else{$("#nick").html(D)}if(this.lvl<80&&g.chat.state!=3){$("#tutorial").show()}else{g.tutor=0;$("#tutorial").hide();reCenter()}}if(isset(L.bag)){g.bag=L.bag;$("#bag").css({top:-198*g.bag});$("#hlbag").css({left:25+33*g.bag})}if(isset(L.gold)||isset(L.ttl)||isset(L.credits)||isset(L.ph)||isset(L.hp)){if(isset(L.credits)){$("#premiumshop .sl_amount_ps").html(L.credits)}$("#base3").html(this.st+"<br>"+this.ag+"<br>"+this.it).attr("tip",_t("base_stats",null,"player")+"<br>"+this.bstr+"/"+this.bagi+"/"+this.bint);$("#gold").html(round(this.gold,10)).attr("tip",_t("goldlimit",null,"player")+"<br>"+round(this.goldlim,10));$("#ah_gl").html(round(this.goldlim,10));var F=parseFloat(this.hp)/parseFloat(this.maxhp);if(isset(L.hp)){if(F<=0.2&&this.hp>1){tutorialStart(5);var s=0;for(var H in g.item){if(g.item[H].loc=="g"&&g.item[H].stat.indexOf("leczy")>=0){s++}if(s>=5){break}}if(s<5&&$("#lehim_button").css("display")=="none"){$("#hieronim_button").fadeIn()}}}$("#life2").css("width",Math.round(1+106*F)+"px");$("#life1").attr("tip","<B>"+_t("life_points",null,"player")+":</B>"+round(this.hp,10)+" / "+round(this.maxhp,10));this.nextexp=Math.round(Math.pow(this.lvl,4)+10);var h=Math.round(Math.pow(this.lvl-1,4)+10);if(this.lvl==1){h=0}var t=Math.min(Math.max((this.exp-h)/(this.nextexp-h),0.001),1);$("#exp2").css("width",Math.round(1+106*t)+"px");$("#exp1").attr("tip","<B>"+_t("experience",null,"player")+":</B>"+round(this.exp,(Math.ceil(this.exp.toString().length/3)<2?2:Math.ceil(this.exp.toString().length/3)))+" / "+round(this.nextexp,(Math.ceil(this.nextexp.toString().length/3)<2?2:Math.ceil(this.nextexp.toString().length/3)))+"<B>"+_t("to %lvl% %exp%",{"%lvl%":(this.lvl+1),"%exp%":round(this.nextexp-this.exp,10)},"player"));var u=this.resis.split("/"),z=this.dmg.toString().split(",");this.fulldmg=[];for(var H in z){var C=(z[H]+"").charAt(z[H].length-1);this.fulldmg+="<span class=dmg"+(C>"a"?C:"")+">+"+round(parseInt(z[H]),1)+"</span>"}this.resist="<span class=dmgf>"+u[0]+"</span> / <span class=dmgl>"+u[1]+"</span> / <span class=dmgc>"+u[2]+'</span> / <span style="color:lime">'+this.act+"</span> %";this.statsval[0]=this.fulldmg+"<br>"+this.ac+"<br>"+this.sa+"<br><br>"+this.resist;this.statsval[1]=this.honor+"<br>"+this.credits+'<br><span tip="'+this.pttl+'">'+Math.max(0,this.ttl)+"</span>";this.statsval[1]+='<div class="stats-row"><div class="golden-text">'+_t("dragon_runes")+":</div><span>"+this.runes+"</span></div>";if(_l()=="en"){this.statsval[1]+='<div class="golden-text" id="ach_link" onclick="_g(\'ach\')">'+_t("ach_btn")+"</div>"}var K=" ("+Math.min(50,Math.round(40*this.evade/this.lvl))+"%)";var j=" ("+Math.round(20*this.block/this.lvl)+"%)";var O="";if(this.of_crit>=0.01){O=_t("critical_dmg_help_txt %crit% %crit_val%",{"%crit%":this.of_crit,"%crit_val%":this.of_critval})}var G=this.critmval2.split(",");var w="";var v="";var r=false;var M="";var B=0;for(var H in G){var x="";switch(parseInt(H)){case 0:x=_t("fire",null,"critval");break;case 1:x=_t("cold",null,"critval");break;case 2:x=_t("lightning",null,"critval");break}w+=_t("m_crit_strenght %name% %val%",{"%name%":x,"%val%":G[H]})+(H!=2?"<br />":"");if(parseFloat(G[H])!=this.critmval){r=true}B+=parseFloat(G[H])}if®{v=w;M='<span tip="'+v+'">'+Math.round((B/3)*Math.pow(10,2))/Math.pow(10,2)+"*</span>"}else{M=this.critmval}this.statsval[2]="<span "+(O!=""?'tip="'+O+'"':"")+">"+this.crit+"%"+(O!=""?"*":"")+"</span><br><span  "+(O!=""?'tip="'+O+'"':"")+">x"+this.critval+(O!=""?"*":"")+"</span><br>x"+M+"<br>"+this.evade+K+"<br>"+this.block+j;this.statsval[3]=this.heal+"<br>"+this.absorb+"<br>"+this.absorbm+"<br>"+this.energy+"<br>"+this.mana;this.statsval[4]=sound.manager.generateMenu();$("#stats").html("<b>"+this.statsval[a]+"</b>");$("#exp2").css("backgroundImage","url(img/"+((this.ttl>0)?"exp.png)":"noexp.png)"));if(this.ttl<=0&&$("#hieronim_button").css("display")=="none"&&!g.pvp&&_l()=="pl"){$("#lehim_button").fadeIn()}}if(isset(L.ap)){if(this.ap>0){$("#abpoints").html(_t("choose skillpoints %amount%",{"%amount%":this.ap}))}else{$("#abpoints").html("<br>"+_t("no_skillpoints_left"))}$("#newlvl").css("display",this.ap?"block":"none");$("#abilitypoints .ab1").css("display",(this.ap>0)?"block":"none");$("#abilitypoints .ab5").css("display",(this.ap>4)?"block":"none")}if(isset(L.mails)){var m=this.mails_all>29;if(this.mails>0&&!g.mails){$("#mailnotifier").html(this.mails+(m?"!":"")).attr("tip",_t("last_mail_msg %from%",{"%from%":this.mails_last})+(m?("<br>"+_t("mail_box_full")):"")).animate({top:485})}else{$("#mailnotifier").animate({top:512})}if(this.mails>0&&g.mails){_g("mail&a=refresh")}}$.fx.off=hero.opt&128;if(hero.opt&4096){$(".itemHighlighter").addClass("nodisp")}else{$(".itemHighlighter").removeClass("nodisp")}this.updated=true;if(g.talk.dialogCloud=="hero"){createDialogCloud("hero")}};this.updatePet=function(j){var h=true;for(var i in j){h=false;break}if(!isset(this.pet)){j.own=true;this.pet=new Pet(j,this);this.pet.update(j,true)}else{if(h){this.pet.remove();delete this.pet}else{this.pet.update(j)}}};$("#stats").click(function(i){var k=$("#stats").offset(),j=i.clientX-k.left-2,h=i.clientY-k.top;if(h>25||j<0){return}a=Math.min(Math.floor(j/23),4);if(a==4){hero.statsval[4]=sound.manager.generateMenu()}$("#stats").html("<b>"+hero.statsval[a]+"</b>").css({backgroundPosition:"0 -"+(98*a)+"px"})});this.togglePvp=function(){this.pvp=this.pvp?0:1;_g("setpvp&mode="+this.pvp);$("#b_pvp").data("bp",this.pvp?"-44px 0":"-66px 0").css("backgroundPosition",this.pvp?"-44px -22px":"-66px -22px")};this.centerViewOnMe=function(){this.run();var j=Math.round(this.rx*32+16-this.fw/2);var i=Math.round(this.ry*32+32-this.fh);var h=Math.round(this.rx)+Math.round(this.ry)*256,k=0;if(isset(map.water[h])){k=map.water[h]}map.center(j,i)};this.run=function(){if(this.rx!=this.x||this.ry!=this.y){if(Math.abs(this.rx-this.x)+Math.abs(this.ry-this.y)>3){this.rx=this.x;this.ry=this.y;this.step=0;if(isset(this.pet)){this.pet.update()}}else{if(this.rx<this.x){this.rx+=0.25}if(this.rx>this.x){this.rx-=0.25}if(this.ry<this.y){this.ry+=0.25}if(this.ry>this.y){this.ry-=0.25}this.step=this.x==this.rx&&this.y==this.ry?0:Math.floor((this.rx+this.ry)*2)%4}var j=Math.round(this.rx*32+16-this.fw/2);var i=Math.round(this.ry*32+32-this.fh);var h=Math.round(this.rx)+Math.round(this.ry)*256,k=0;if(isset(map.water[h])){k=map.water[h]}$("#hero").css({left:j,top:i+((k/4)>8?0:k),height:this.fh-((k/4)>8?(k-32):k),backgroundPosition:(this.step*this.fw)+"px "+(-this.dir*this.fh)+"px",zIndex:this.y+10,width:j+this.fw>map.x*32?this.fw-(j+this.fw-map.x*32):this.fw});if(!g.lock.check()){map.center(j,i)}$("#botloc").text(this.x+","+this.y)}else{if(this.dir!=this.ndir){this.step=0;if(this.ndir==-1){this.ndir=this.dir}else{this.dir=this.ndir;this.cdir=this.dir.toString()}$("#hero").css({backgroundPosition:(this.step*this.fw)+"px "+(-this.dir*this.fh)+"px"})}}if(_l()=="en"&&this.updated){questTrack.draw()}if(isset(this.pet)){this.pet.move()}};this.checkAgressiveNpcs=function(){for(var h in g.agressiveNpc){if(isset(g.npc[h])&&!g.agressiveNpc[h]&&(Math.abs(g.npc[h].x-this.x)<=5&&Math.abs(g.npc[h].y-this.y)<=5)){g.agressiveNpc[h]=true;_g("talk&id="+h)}}};this.go=function(n){if(g.lock.check()||g.menu){road=[]}if(g.lock.check()||g.menu||this.ml.length>9||$("#alert").css("display")=="block"){return false}if(this.rx!=this.x||this.ry!=this.y){return false}var m=this.x,k=this.y,j=this.dir;switch(n){case"W":if(this.dir==1){m=this.x-1}else{this.ndir=1}break;case"E":if(this.dir==2){m=this.x+1}else{this.ndir=2}break;case"N":if(this.dir==3){k=this.y-1}else{this.ndir=3}break;case"S":if(this.dir==0){k=this.y+1}else{this.ndir=0}break;case"R":var i=road.length-1;if(m>road.x){this.dir=1}else{if(m<road.x){this.dir=2}else{if(k>road.y){this.dir=3}else{if(k<road.y){this.dir=0}}}}m=road.x;k=road.y;road=road.slice(0,-1);this.ndir=this.dir;this.cdir=this.dir.toString();if(i==0&&b>=0){this.ndir=b}break}if(n!="R"&&road.length){road=[]}var q=true;if(this.ml.length){var h=this.ml[this.ml.length-1].split(",");if((Math.abs(m-parseInt(h[0]))+Math.abs(k-parseInt(h[1])))>1){q=false;this.resetSteps()}}if(m>=0&&k>=0&&m<map.x&&k<map.y&&!isset(g.npccol[m+k*256])&&(!map.col||map.col.charAt(m+k*map.x)=="0")&&Math.abs(this.rx-this.x)+Math.abs(this.ry-this.y)<0.3&&q){var p=m+","+k;this.checkAgressiveNpcs();if(this.x!=m||this.y!=k){this.addStep(p);var o=g.lastClickedTarget!==null?$(g.lastClickedTarget).hasClass("npc"):false;if(isset(g.gw[m+"."+k])&&g.gw[m+"."+k]&&!(this.opt&2048)&&!this.autoWalkLock&&!o){f=p;setTimeout(function(){hero.autowalk()},500)}else{if(!isset(g.gw[m+"."+k])){this.autoWalkLock=false}}}this.x=m;this.y=k;if(isset(this.pet)){this.pet.update()}return true}return false};this.autowalk=function(){if(f==(this.rx+","+this.ry)){_g("walk")}};this.click=function(k){var h=new Array();if(_l()=="pl"){h.push([_t("take",null,"menu"),'_g("takeitem")'])}else{for(var j in g.npc){if(g.npc[j].x==this.x&&g.npc[j].y==this.y&&g.npc[j].type==7){h.push([_t("take",null,"menu"),'_g("talk&id=+j+'")])}}}if(isset(g.gw[this.x+"."+this.y])){h.push([_t("go",null,"menu"),'_g("walk")'])}if(hero.lvl>19){h.push([_t("emo_mad",null,"menu"),'_g("emo&a=angry")'])}if(h.length){showMenu(k,h,true)}};this.searchPath=function(y,w){var x=[],t=(hero.opt&128)?8:20;var l=Math.max(0,Math.min(y,this.x)-t),h=Math.min(map.x-1,Math.max(y,this.x)+t);var v=Math.max(0,Math.min(w,this.y)-t),u=Math.min(map.y-1,Math.max(w,this.y)+t);for(var q=l-1;q<=h+1;q++){x[q]=[];for(var p=v-1;p<=u+1;p++){x[q][p]=(q>=l&&q<=h&&p>=v&&p<=u&&!isset(g.npccol[q+p*256])&&(!map.col||map.col.charAt(q+p*map.x)=="0"))?-1:-2}}x[this.x][this.y]=0;b=-1;road=[];var s={x:-1,y:-1,dist:99};for(var r=1;r<h-l+u-v+3;r++){for(var q=l;q<=h;q++){for(var p=v;p<=u;p++){if(x[q][p]==-1&&((x[q][p-1]==r-1)||(x[q][p+1]==r-1)||(x[q-1][p]==r-1)||(x[q+1][p]==r-1))){x[q][p]=r}if(x[y][w]>0){q=h+1;break}s.dist2=Math.abs(y-q)+Math.abs(w-p);if((x[q][p]==r)&&(s.dist2<s.dist)){s.x=q;s.y=p;s.dist=s.dist2}}}}s.hdist=Math.abs(y-hero.x)+Math.abs(w-hero.y);if(x[y][w]>0||s.dist<s.hdist){if(x[y][w]<0){if(y>s.x){b=2}else{if(y<s.x){b=1}else{if(w>s.y){b=0}else{if(w<s.y){b=3}}}}y=s.x;w=s.y}road[0]={x:y,y:w};for(var o=x[y][w]-1,n=y,m=w;o>0;o--){if(x[n][m-1]==o){m--}else{if(x[n][m+1]==o){m++}else{if(x[n-1][m]==o){n--}else{if(x[n+1][m]==o){n++}else{o=0}}}}if(o){road[x[y][w]-o]={x:n,y:m}}}}if(road.length>1&&g.playerCatcher.follow==null){$("#target").stop().css({left:y*32,top:w*32,display:"block",opacity:1}).fadeOut(1000)}};this.mClick=function(j){if((hero.opt&64&&!g.playerCatcher.follow)||g.lock.check()||$("#alert").css("display")=="block"){return}var k=$("#ground").offset();var i=(j.clientX-k.left)>>5,h=(j.clientY-k.top)>>5;hero.searchPath(i,h)};$("#ground").click(function(h){if(!$(h.target).hasClass("endtalk2")&&$("#bubbledialog").css("display")=="block"&&g.talk.id&&isset(g.talk.bubbleEndLineCommand)){_g(g.talk.bubbleEndLineCommand);return}g.playerCatcher.stopFollow();hero.mClick(h)})};

Opublikowano

To ja walne moją standardową regułkę. Polecam zapoznać się z biblioteką Phaser.io, w której bardzo łatwo zrobisz "skrypt chodzenia". Warunek jest jeden, należy umieć programować w javascript. Ale sądząc po tym temacie, ta umiejętność jest ci obca. Dlatego polecam najpierw zapoznać się z podstawami tego języka.

gamedevmania.com

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...