Jump to content

Recommended Posts

Posted

Hallo.

 

Ist es möglich per Script zu bestimmen das eine IP zu selben zeit maximal 2 mal online sein kann und eine dritte einfach rausfliegt wenn sie sich einloggt?

 

Ich habe das ganze bisher so das eine IP nur 2 mal pro Map online sein kann.

 

Das Script klappt auch ganz gut ist aber nicht das was ich suche.

Posted

SELECT COUNT(*) FROM `login` l INNER JOIN `char` c ON c.`account_id` = l.`account_id` WHERE `last_ip` = '"+getcharip()+"' AND c.`online` = 1;
So könnte eine Lösung per SQL-Query aussehen. Etwas effizienter wäre evtl. noch ein Scriptcommand.

Allerdings halte ich von so etwas nicht viel. Wenn man sich mal zum gemeinsamen Ragnarok Spielen treffen möchte, dürfen nur maximal 2 Spieler auf den Server. Irgendwie schade ^^"

Posted

Das Problem ist das die Leute sich zig Accounts machen wegen Linker, Bufer Endow etc. Das fördert in keinsterweise das zusammenspiel finde ich.

 

Zudem sind die leute mit High Endp PCs im WoE im vorteil die sich dann 5 Accs aufstellen können. 2 - 3 Accounts je IP müssn einfach reichen.

Posted

Ich würde die IPs, die Online sind in einer Temporären Datenbank ablegen, sobald sich einer ausloggt wird die IP wieder entfernt. So kannst du mittels OnPCLoginEvent: eine Abfrage machen, ob die IP bereits 2 mal vorhanden ist, wenn nicht kannst du die IP in der Temporären DB ablegen.

 

Wenn du noch Fragen hast, dann kannst du dich bei mir melden.

 

Rynbef~

Posted

Ich komme einfach nicht weiter.

 

Akutell sieht das ganze so aus:

 

-    script    abcde    -1,{

    OnPCLoadMapEvent:

          

           getmapxy(.@amap$,.@mapx,.@mapy,0);



           if(.@amap$!="dragonia" && .@amap$ !="morocc" && .@amap$ !="geffen" && .@amap$ !="payon" && .@amap$ !="alberta" && .@amap$ !="izlude" && .@amap$ !="aldebaran" && .@amap$ !="xmas" && .@amap$ !="comodo" && .@amap$ !="yuno" && .@amap$ !="amatsu" && .@amap$ !="gonryun" && .@amap$ !="umbala" && .@amap$ !="niflheim" && .@amap$ !="louyang" && .@amap$ !="gm_haus" && .@amap$ !="jawaii" && .@amap$ !="ayothaya" && .@amap$ !="einbroch" && .@amap$ !="lighthalzen" && .@amap$ !="einbech" && .@amap$ !="hugel" && .@amap$ !="rachel" && .@amap$ !="veins" && .@amap$ !="moscovia" && .@amap$ !="mid_camp" && .@amap$ !="brasilis" && .@amap$ !="dicastes01" && .@amap$ !="mora" && .@amap$ !="dewata" && .@amap$ !="malangdo" && .@amap$ !="malaya" && .@amap$ !="eclage" && .@amap$ !="prontera") end;

              

            query_sql("SELECT last_ip FROM `login` WHERE account_id = "+getcharid(3)+"", .@LastIp$);

            query_sql("SELECT account_id FROM `login` WHERE last_ip = '"+.@LastIp$+"'", .@AccountId);

            set .@aidtemp,getcharid(3,strcharinfo(0));



            for(set .@i ,0;.@i<getarraysize(.@AccountId);set .@i,.@i+1)

               {

                 if(attachrid(.@AccountId[.@i]))

                    {

                      getmapxy(.@qmap$,.@qmapx,.@qmapy,0);

                      if (.@qmap$== .@amap$) set .@j,.@j+1;

                     }

                    detachrid;

               }

            attachrid .@aidtemp;

            if(.@j > $@MaxWimdows)

                  atcommand "@kick " + strcharinfo(0) + "";

    end;

    

    OnInit:

    

    set $@MaxWimdows,2;

    end;

    

    }

    

    //------Enable map OnPCLoadMapEvent-------------------

dragonia    mapflag    loadevent
alberta    mapflag    loadevent
geffen    mapflag    loadevent
morocc    mapflag    loadevent
geffen    mapflag    loadevent
payon    mapflag    loadevent
alberta    mapflag    loadevent
izlude    mapflag    loadevent
aldebaran    mapflag    loadevent
xmas    mapflag    loadevent
comodo    mapflag    loadevent
yuno    mapflag    loadevent
amatsu    mapflag    loadevent
gonryun    mapflag    loadevent
umbala    mapflag    loadevent
niflheim    mapflag    loadevent
louyang    mapflag    loadevent
gm_haus    mapflag    loadevent
jawaii    mapflag    loadevent
ayothaya    mapflag    loadevent
einbroch    mapflag    loadevent
lighthalzen    mapflag    loadevent
einbech    mapflag    loadevent
hugel    mapflag    loadevent
rachel    mapflag    loadevent
veins    mapflag    loadevent
moscovia    mapflag    loadevent
mid_camp    mapflag    loadevent
brasilis    mapflag    loadevent
dicastes01    mapflag    loadevent
mora    mapflag    loadevent
dewata    mapflag    loadevent
malangdo    mapflag    loadevent
malaya    mapflag    loadevent
eclage    mapflag    loadevent
prontera    mapflag    loadevent

 

Aber ich bekomme es nicht global hin. Ich habe das Script auch nicht geschrieben sondern aus dem RA Forum.

Posted (edited)

Lol,

das Script ist auch ziemlich umständlich xD

(Schaut, ob eine IP mehrmals auf einer der Maps ist)

Ich habe an sich schon eine fast vollständige Lösung oben geschrieben oo

OnPCLoadMapEvent:
query_sql("SELECT COUNT(*) FROM `login` l INNER JOIN `char` c ON c.`account_id` = l.`account_id` WHERE `last_ip` = '"+getcharip()+"' AND c.`online` = 1;",.@ipCount);
if( .@ipCount > .MaxIpCount )
  atcommand "@kick " + strcharinfo(0) + "";
end;
Ungetestet. Aber das schaffst du schon ;) Edited by Jey
Posted

Also so gehts nicht und wenn ich auf OnPCLoginEvent: umstelle fliege ich raus wenn ich mich einloggen will.

 

Wo kann ich bei der Variante einstellen was MaxIpCount ist?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...