×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [برنامج تعليمي] تقسيم الفأران الي فريقين
[برنامج تعليمي] تقسيم الفأران الي فريقين
Yatsuki
« Censeur »
1488119100000
    • Yatsuki#9574
    • Profil
    • Derniers messages
#1
  4
  • الطريقة 1
  • الطريقة 2
  • الاستعمال

http://atelier801.com/img/sections/roue-dentee.png برنامج تعليمي http://atelier801.com/img/sections/roue-dentee.png


تقسيم الفأران الي فريقين




• لقد لحضت مؤخراً العديد من الاشخاص الذي يصنعون سكربت يتظمن نظام الفريقين ( احمر - ازرق )
لكن لا يعرفون طريقة تقسيم الفئران و تحكم في كل فريق على حدى بينما يلجئون الى ChatCommand - TextArea او الي الخرائط ذو مركزين لولادة الفأران
لكنها ليست فعالة لانهم لا يستطعون تنفيذ اكواد على فريق معين كتغير لون الاسماء وغيرها
• وما سنشرحه هنا هي طريقة وضع لاعبي الفريق الاحمر في جدول و لاعبي فريق الازرق في جدول اخر كي يتيح لنا التحكم بهما بسهولة تامة وساقوم بشرح طريقتين لذلك


• طريقة 1 : طريقة اولى لتقسيم اللاعبين في جداول و تعتمد الخرائط ذو مركزين لولادة الفأران.
• طريقة 2 : طريقة ثانية لتقسيم اللاعبين في جداول و تعتمد التناوب .
• الاستعمال: شرح تنفيذ اكواد على فريق محدد بعد اختيار احدى الطريقتين.


اذا لم تفهم الموضوع او لديك سؤال يمكنك مراسلتي من هنا

• كما ذكرت هذه طريقة تستخدم فقط لخرائط ذو مركزين لولادة الفأران فنحن سنعتمد على بُعْدِ الفأر في ذلك
• لصنع خارطة ذو مركزين لولادة الفأران
قبل اي شي نقوم بإنشاء الجدولين الفارغين الذي سنقوم بوضع فيهما الفريقان

Code Lua

1
2
Team_blue={} 
Team_red={}

الان سنقوم بادخال اسماء اللاعبين الى الجدولان بالإعتماد على البعد x لكل لاعب
مثال :
لو كان بُعد اللاعب مابين 0 و 400 ندخله لجدول الفريق الازرق
لو كان بُعد اللاعب مابين 400 و 800 ندخله لجدول الفريق الاحمر

صورة توضيحيّة

http://img.atelier801.com/4524f07a.png


Code Lua

1
2
3
4
5
6
7
8
for n,p in pairs(tfm.get.room.playerList) do
if x.p < 400 then -- اذا كان البعد اكس للاعب اصغر من 400
table.insert(Team_blue,n) -- ادخله لجدول الفريق الازرق
end
if x.p > 400 then -- اذا كان البعد اكس للاعب اكبر من 400
table.insert(Team_red,n) -- ادخله لجدول الفريق الاحمر
end
end

الان يمكننا تنفيذ اكواد على فريق محدد بكل سهولة و لمعرفة الطريقة ادخل قسم الاستعمال

السكربت الكامل لطريقة 1

Code Lua

1
2
3
4
5
6
7
8
9
10
11
Team_blue={} 
Team_red={}

for n,p in pairs(tfm.get.room.playerList) do
if x.p < 400 then -- اذا كان البعد اكس للاعب اصغر من 400
table.insert(Team_blue,n) -- ادخله لجدول الفريق الازرق
end
if x.p > 400 then -- اذا كان البعد اكس للاعب اكبر من 400
table.insert(Team_red,n) -- ادخله لجدول الفريق الاحمر
end
end



هذه طريقة يمكننا استعمالها عندما نحتاج الي فريقين دون استعمال خريطة ذو مركزين لولادة الفأران
على سبيل المثال لدينا سكربت للعبة سباق رسينغ يحتوى على فريقان بطبع لن نقوم بوضع لكل فريق مركز بداية و انما الفريقان بنفس النقطة

ننشئ الجدولين تماماً مثل طريقة الاولى

Code Lua

1
2
Team_blue={} 
Team_red={}

سنستعمل نظام اخر هنا و هي طريقة التناوب او الدور
اي بترتيب مرةً نضع لاعب في جدول ازرق و مرةً اخرى نضع لاعب في جدول الاحمر و نستمر الى حد الإنتهاء من جميع اللاعبين

Code Lua

1
2
3
4
5
6
7
8
9
10
a="blue" -- متغير نعرف فيه دور اي جدول سنقوم بإدخال اللاعب فيه
for n in pairs(tfm.get.room.playerList) do -- الدوران على اللاعبين و التنفيذ الاتي
if a == "blue" then -- اذا كان دور الجدول الازرق
table.insert(Team_blue,n) -- ادخل اللاعب لجدول الفريق الازرق
a="red" -- و غير الدور الى جدول الاحمر
elseif a == "red" then -- اذا كان دور الجدول الاحمر
table.insert(Team_red,n) -- ادخل اللاعب لجدول الفريق الاحمر
a="blue" -- و غير الدور الى جدول الازرق
end
end

الان يمكننا تنفيذ اكواد على فريق محدد بكل سهولة و لمعرفة الطريقة ادخل قسم الاستعمال

السكربت الكامل لطريقة 2

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
Team_blue={} 
Team_red={}

a="blue" -- متغير نعرف فيه دور اي جدول سنقوم بإدخال اللاعب فيه
for n in pairs(tfm.get.room.playerList) do -- الدوران على اللاعبين و التنفيذ الاتي
if a == "blue" then -- اذا كان دور الجدول الازرق
table.insert(Team_blue,n) -- ادخل اللاعب لجدول الفريق الازرق
a="red" -- و غير الدور الى جدول الاحمر
elseif a == "red" then -- اذا كان دور الجدول الاحمر
table.insert(Team_red,n) -- ادخل اللاعب لجدول الفريق الاحمر
a="blue" -- و غير الدور الى جدول الازرق
end
end



بعد ان اخترت احدى الطريقتان تتسأل بالطبع ماذا افعل كي انفذ كود على لاعبي الفريق الازرق فقط او على لاعبي الفريق الاحمر فقط ؟ .. تابع

انظر للمثال الأتي استعملت فيه كود لتلوين اسماء الفريق الازرق

Code Lua

1
2
3
for i,n in pairs(Team_blue) do -- الدوران على لاعبي الفريق الازرق
tfm.exec.setNameColor(n,0x0000ff) -- الكود الذي ستنفذه للفريق
end

نفس الشيئ مع فريق الاحمر

Code Lua

1
2
3
for i,n in pairs(Team_red) do -- الدوران على لاعبي الفريق الاحمر
tfm.exec.setNameColor(n,0xff0000) -- الكود الذي ستنفذه للفريق
end

و بهذا التماشي يمكنك نقل فريق محدد او تلوين اسماءهم ,تحويلهم الى شامان و غيرها من الاشياء

سكربت بسيط يستعمل الطريقة الثانية و يلون اسماء كل فريق

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Team_red={}
Team_blue={}

a="blue"
for n in pairs(tfm.get.room.playerList) do
if a == "blue" then
table.insert(Team_blue,n)
a="red"
elseif a == "red" then
table.insert(Team_red,n)
a="blue"
end
end

for i,n in pairs(Team_blue) do
tfm.exec.setNameColor(n,0x0000ff)
end

for i,n in pairs(Team_red) do
tfm.exec.setNameColor(n,0xff0000)
end



Dernière modification le 1488119580000
Noooooooorr
« Censeur »
1488119100000
    • Noooooooorr#0000
    • Profil
    • Derniers messages
    • Tribu
#2
  0
رائع شكرا للموضوع
Perogirly
« Citoyen »
1488119820000
    • Perogirly#0000
    • Profil
    • Derniers messages
#3
  0
شكرَا على الموضوع
Prainti
« Citoyen »
1488121740000
    • Prainti#0000
    • Profil
    • Derniers messages
    • Tribu
#4
  1
شكرا على الموضوع
Dodger
« Citoyen »
1488122820000
    • Dodger#4550
    • Profil
    • Derniers messages
#5
  0
شكرًا هيثم.
Yatsuki
« Censeur »
1488136440000
    • Yatsuki#9574
    • Profil
    • Derniers messages
#6
  3
Noooooooorr a dit :
رائع شكرا للموضوع

Perogirly a dit :
شكرَا على الموضوع

Prainti a dit :
شكرا على الموضوع

Spiiir a dit :
شكرًا هيثم.

العفو اتمنى انكم استفدتم منه
Kingkomand2o
« Consul »
1488141900000
    • Kingkomand2o#0000
    • Profil
    • Derniers messages
    • Tribu
#7
  0
شكرا على الموضوع الرائع هيثم !!
Massi
« Consul »
1488148080000
    • Massi#0095
    • Profil
    • Derniers messages
    • Tribu
#8
  0
شكرا لك مع انني تعلمت الطريقة قبل اسبوعين
Emadeloomda
« Censeur »
1488199020000
    • Emadeloomda#0000
    • Profil
    • Derniers messages
#9
  0
شكرًا علَى الموضوعِ الرائعِ هيثمْ + تمتِ الإضافةُ.
Liiliiith
« Censeur »
1488203340000
    • Liiliiith#0000
    • Profil
    • Derniers messages
    • Tribu
#10
  0
شكرا على الموضوع .
Yatsuki
« Censeur »
1488205320000
    • Yatsuki#9574
    • Profil
    • Derniers messages
#11
  3
Kingkomand2o a dit :
شكرا على الموضوع الرائع هيثم !!

Unlocker001 a dit :
شكرا لك مع انني تعلمت الطريقة قبل اسبوعين

Emadeloomda a dit :
شكرًا علَى الموضوعِ الرائعِ هيثمْ + تمتِ الإضافةُ.

Liiliiith a dit :
شكرا على الموضوع .

العفو
Jack_sparrow
« Censeur »
1488490020000
    • Jack_sparrow#8381
    • Profil
    • Derniers messages
    • Tribu
#12
  0
شكراً هيثم على الموضوع ولكن اود إضافة طريقة اخرى وهى طريقة انشاء مركزين لولادة الفئران عن طريق لوا

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
local red = {} --  اسم الفريق الاول
local blue = {} -- اسم الفريق الثانى

function makeTeams()
local playerList={}
for name,player in pairs(tfm.get.room.playerList) do -- الدوران على اللاعبين و التنفيذ الاتي
table.insert(playerList,name) -- انشاء جدول
end

for i=1,#playerList,1 do
local index=math.random(#playerList)
local name=playerList[index]
if i%2==0 then
table.insert(red,name) --ادخله لجدول الفريق الاحمر
tfm.exec.setNameColor(name, 0xDE2929) -- يتم تغيير اسمه لـ اللون الاحمر
tfm.exec.movePlayer(name,110,360,false,0,50,false) -- يتم نقل اللاعب الى 110 و 360
else
table.insert(blue,name) -- ادخله لجدول الفريق الازرق
tfm.exec.setNameColor(name, 0x1026E1) -- يتم تغيير اسمه لـ اللون الازرق
tfm.exec.movePlayer(name,700,360,false,0,50,false) -- يتم نقل اللاعب الى 700 و 360
end
table.remove(playerList,index)
end
end

function eventPlayerDied(name)
local blueCount,redCount=#blue,#red
for i=1,#blue do
if tfm.get.room.playerList[blue[i]].isDead then
blueCount=blueCount-1
end
end
for i=1,#red do
if tfm.get.room.playerList[red[i]].isDead then
redCount=redCount-1
end
end
if blueCount==0 then -- اذا اصبح عدد الفريق الازرق = صفر
for i=1,#red do -- افعل مع لاعبين الفريق الاحمر
tfm.exec.respawnPlayer(red[i]) -- انعاش لاعبى الفريق الاحمر
tfm.exec.giveCheese(red[i]) -- اعطاء جبن له
tfm.exec.playerVictory(red[i]) -- اجعله يفوز
end
end
if redCount==0 then -- اذا اصبح عدد الفريق الاحمر = صفر
for i=1,#blue do -- افعل مع لاعبين الفريق الازرق
tfm.exec.respawnPlayer(blue[i]) -- انعاش لاعبى الفريق الازرق
tfm.exec.giveCheese(blue[i]) -- اعطاء جبن له
tfm.exec.playerVictory(blue[i]) -- اجعله يفوز
end
end
end

makeTeams()
Boucharma
« Censeur »
1488492720000
    • Boucharma#0000
    • Profil
    • Derniers messages
#13
  0
شكرا على الموضوع !!!
Omaraldin
« Citoyen »
1488512820000
    • Omaraldin#1619
    • Profil
    • Derniers messages
    • Tribu
#14
  0
شُكراً هيثم بحثت عن طريقة تقسيم الفئران لفرق مختلفة في المنتدي البرازيلي/الاسباني لكن لم اجد,, شُكراً لك
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [برنامج تعليمي] تقسيم الفأران الي فريقين
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27