ब्राउजर आरपीजी गेम में एसोसिएशन के माध्यम से कई लोग

मैं एक ब्राउज़र आरपीजी टेक्स्ट गेम बना रहा हूं जहां उपयोगकर्ताओं के पास हीरो होगा। इस नायक के पास से चुनने का एक मार्ग होगा..यह एक आरपीजी कक्षा (जादूगर, योद्धा, आदि) की तरह काम करेगा (मुझे नाम बदलना था क्योंकि कक्षा का उपयोग नहीं किया जा सका)।

मेरे मॉडल अब इस तरह सेट हैं:

class Hero < ActiveRecord::Base

belongs_to :user
belongs_to :race
belongs_to :path
end

और पथ:

class Path < ActiveRecord::Base

has_many :heros //Need to fix this to Heroes
end

यहां तक ​​कि सब कुछ ठीक काम करता है। लेकिन मेरी इच्छा है कि हीरो के पास हीरो के पथ के आधार पर कौशल हो सके।

पथ में कई कौशल होंगे और क्योंकि नायक उस पथ पर है, वह पथ वर्ग के माध्यम से उन कौशल को प्राप्त करने में सक्षम होगा .... लेकिन चूंकि वह वर्ग से संबंधित है, मैं थोड़ा उलझन में हूं।

उदाहरण के लिए ... योद्धा पाथ में बैश कौशल होगा। यदि नायक योद्धा मार्ग से है, तो वह भी इस कौशल को प्राप्त करने में सक्षम होगा। लेकिन इन कौशलों के पास अपने स्वयं के उपयोगकर्ता संबंधित गुण होंगे ... क्योंकि उपयोगकर्ता के पास स्तर 1 के साथ बैश कौशल हो सकता है और एक अन्य coiuld के साथ यह एलवीएल 2 है ...

तो मैं समझना चाहूंगा कि इस स्थिति के साथ मुझे सबसे अच्छा तरीका क्या हो सकता है?

धन्यवाद!

0
"पथ" का प्रयोग न करें। यह एक और सुंदर सार्थक शब्द है। वैसे भी, जैसा कि आप कर रहे हैं और पथ करें Imany: कौशल, और फिर उपयोगकर्ता user.path.skills के माध्यम से कौशल हो सकता है ...
जोड़ा लेखक ussferox, स्रोत

1 उत्तर

यह ठीक वैसे ही काम करता है जैसा आप वर्णन करते हैं:

एक और वर्ग, कौशल, जिसे आप पथ से जोड़ते हैं, बनाकर

has_many: skills

अपने पथ मॉडल में, अब आप अपने पथ के माध्यम से कौशल तक पहुंच सकते हैं:

class Hero < ActiveRecord::Base
  belongs_to :user
  belongs_to :race
  belongs_to :path

  has_many :skills through: :path
end

जिस तरह से आप उन्हें एक्सेस करते हैं, वह कुछ लिखकर है

@hero.skills
0
जोड़ा
क्या यह अलग-अलग उपयोगकर्ताओं के लिए अलग-अलग कौशल विशेषताओं (उदाहरण के लिए: Lvl) रखने की अनुमति देगा?
जोड़ा लेखक Ollimac, स्रोत
मेरा मतलब है, उदाहरण के लिए .. दोनों उपयोगकर्ताओं के पास एक ही कौशल हो सकता है, लेकिन उनके पास भिन्न स्तर हो सकते हैं। बैश lvl1 Bash lvl 2 ... आदि ... मैं प्रत्येक खिलाड़ी के लिए उन अलग गुणों को कैसे प्राप्त कर सकता हूं? धन्यवाद
जोड़ा लेखक Ollimac, स्रोत
मुझे समझाने का प्रयास करने दें। मेरे पास नायक चुनने वाले पथ के आधार पर एक कौशल पेड़ होगा ... और इस पथ के आधार पर वह कुछ कौशल प्राप्त कर पाएगा .... प्रत्येक कौशल में स्वतंत्र नायक से संबंधित चर होंगे .. उदाहरण के लिए एलवीएल, क्षति, बोनस , इत्यादि ... और प्रत्येक खिलाड़ी के पास कुशल कौशल स्तर होगा कि वह कौशल में कितना सुधार करता है ... मुझे लगता है कि मैं बहुत स्पष्ट नहीं हूं .. लेकिन कम से कम मुझे पहले से ही मेरी समस्या का हल हो गया है। = D
जोड़ा लेखक Ollimac, स्रोत
धन्यवाद, डैनी। किया हुआ।
जोड़ा लेखक Ollimac, स्रोत
जैसा कि अब दिखता है, आपके पास अलग-अलग उपयोगकर्ताओं के लिए अलग नायकों हैं, और कौशल उनके रास्ते के माध्यम से नायकों से बंधे हैं। तो आपके पास अलग-अलग उपयोगकर्ताओं के लिए अलग-अलग कौशल भी हैं
जोड़ा लेखक Danny, स्रोत
अगर मैं आपको अच्छी तरह से समझता हूं, तो मैं कहूंगा कि एक स्तर किसी उपयोगकर्ता से संबंधित है? नायकों या पथों से कोई लेना देना नहीं है?
जोड़ा लेखक Danny, स्रोत
मुझे लगता है कि आप कर सकते हैं सबसे अच्छा आप अपने कौशल वर्ग में इन हीरो संबंधित चर डाल दिया है। इस तरह आप खेल भर में उपयोगकर्ता के कौशल को बढ़ा/घटा सकते हैं। यदि आप अपने मुख्य प्रश्न का उत्तर देते हैं, तो क्या आप प्रश्न को "उत्तर" के रूप में चिह्नित कर सकते हैं?
जोड़ा लेखक Danny, स्रोत