SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 26/02/2014, 10:48 AM   #11081
Alexander_Petrov
Gangsta
 
Join Date: Oct 2011
Location: Russia
Posts: 835
Reputation: 22
Default Re: Скриптинг курилка

Quote:
Originally Posted by Jon_De View Post
У каждой квартиры и так свой id, по нему и мир ставиться будет.
У подъездов тоже свои ид, но этажей то в каждом подъезде больше 1
Можно конечно составить массив этажей, но это уже костыли какие то - всё должно само подсчитываться
У каждого подъезда есть id, у каждого этажа есть id, vw этажа = id подъезда*кол-во этажей + id этажа
0
0: 0*5+0 = 0
1: 0*5+1 = 1
2: 2
3: 3
4: 4
1
0: 1*5+0 = 5
1: 1*5+1 = 6
2: 7
3: 8
4: 9
2
0: 2*5+0 = 10
1: 11
2: 12
3: 13
4: 14
3
0: 3*5+0 = 15
и так далее.
Alexander_Petrov is offline   Reply With Quote
Old 26/02/2014, 11:07 AM   #11082
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Скриптинг курилка

Quote:
Originally Posted by Alexander_Petrov View Post
У каждого подъезда есть id, у каждого этажа есть id, vw этажа = id подъезда*кол-во этажей + id этажа
0
0: 0*5+0 = 0
1: 0*5+1 = 1
2: 2
3: 3
4: 4
1
0: 1*5+0 = 5
1: 1*5+1 = 6
2: 7
3: 8
4: 9
2
0: 2*5+0 = 10
1: 11
2: 12
3: 13
4: 14
3
0: 3*5+0 = 15
и так далее.
Если количество этажей разное, формула немного другая
vw этажа = id подъезда*(кол-во этажей предыдущего подъезда+id подъезда - 1) + id этажа
В вашей логике есть дыра, её наглядный пример:
  • 5 подьезд * 15 этажка + 1 этаж = 76
  • 15 подъезд * 5 этажка + 1 этаж = 76
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 26/02/2014, 11:09 AM   #11083
Alexander_Petrov
Gangsta
 
Join Date: Oct 2011
Location: Russia
Posts: 835
Reputation: 22
Default Re: Скриптинг курилка

Quote:
Originally Posted by Stepashka View Post
В вашей логике есть дыра, её наглядный пример:
  • 5 подьезд * 15 этажка + 1 этаж = 76
  • 15 подъезд * 5 этажка + 1 этаж = 76
кк, сам проверил уже
Выходит, с разным количеством этажей нужно иметь хотя бы номер мира первого этажа для каждого подъезда. В крайнем случае, просто умножать на максимально возможное число этажей.
Alexander_Petrov is offline   Reply With Quote
Old 26/02/2014, 11:43 AM   #11084
Jon_De
High-roller
 
Join Date: Mar 2011
Location: ru
Posts: 1,246
Reputation: 21
Default Re: Скриптинг курилка

Quote:
Originally Posted by Alexander_Petrov View Post
кк, сам проверил уже
Выходит, с разным количеством этажей нужно иметь хотя бы номер мира первого этажа для каждого подъезда. В крайнем случае, просто умножать на максимально возможное число этажей.
В принципе мой вариант нормально подойдет (номер подъезда*всего подъездов+этаж), хотя мне уже не пригодится
Jon_De is offline   Reply With Quote
Old 26/02/2014, 11:48 AM   #11085
Alexander_Petrov
Gangsta
 
Join Date: Oct 2011
Location: Russia
Posts: 835
Reputation: 22
Default Re: Скриптинг курилка

Quote:
Originally Posted by Jon_De View Post
В принципе мой вариант нормально подойдет (номер подъезда*всего подъездов+этаж), хотя мне уже не пригодится
Подойдет любой вариант, в котором номер подъезда умножается на число, большее или равное количеству этажей
Alexander_Petrov is offline   Reply With Quote
Old 26/02/2014, 11:50 AM   #11086
DrumYum
Big Clucker
 
Join Date: Oct 2011
Location: Russia
Posts: 186
Reputation: 2
Default Re: Скриптинг курилка

Quote:
Originally Posted by Mutha_X View Post
Не проще ли всю информацию распределить по байтам в переменной?
А почему вы эту идею проигнорили? Самый разумный вариант, я считаю.
DrumYum is offline   Reply With Quote
Old 26/02/2014, 11:51 AM   #11087
Urukhay
Gangsta
 
Join Date: Sep 2013
Posts: 639
Reputation: 2
Default Re: Скриптинг курилка

Проще записывать в PVar.
Urukhay is offline   Reply With Quote
Old 26/02/2014, 03:21 PM   #11088
Mutha_X
Gangsta
 
Join Date: Sep 2009
Location: recursion
Posts: 658
Reputation: 37
Default Re: Скриптинг курилка

Quote:
Originally Posted by DrumYum View Post
А почему вы эту идею проигнорили? Самый разумный вариант, я считаю.
Могу тебе ответить почему проигнорили:
1) потому что тут мало кто умеет думать
2) потому что тут мало кто имеет базовые навыки в программировании (не говоря уже о некотором приближении к низкоуровневому программированию)
3) потому что тут ещё меньше кто имеет фантазию и не смотрит дальше своего носа.

Никак не пойму, что они тут делают... а этот способ наверно для них гениален до непригодности, когда это самое красивое и элементарное решение. А кроме того этот метод не даст сбоя, если вдруг придётся изменить максимальное кол-во подъездов/комнат в подъезде до 256, но таких зданий вообще в игре не найдётся. Да, метод избыточный, но 60к зданий в игре ещё никто не запиливал.

Quote:
Originally Posted by Нубы View Post
... бла-бла-бла... умножается на ... бла-бла...
Quote:
Originally Posted by Urukhay View Post
Проще записывать в PVar.
А это просто невьебенная брехня.
Mutha_X is offline   Reply With Quote
Old 26/02/2014, 03:36 PM   #11089
Urukhay
Gangsta
 
Join Date: Sep 2013
Posts: 639
Reputation: 2
Default Re: Скриптинг курилка

Quote:
Originally Posted by Mutha_X View Post
А это просто невьебенная брехня.
Обоснуй.
Urukhay is offline   Reply With Quote
Old 26/02/2014, 03:40 PM   #11090
Hawkins
Big Clucker
 
Hawkins's Avatar
 
Join Date: Oct 2011
Location: Russia
Posts: 167
Reputation: 0
Default Re: Скриптинг курилка

Ребят помогите. Как сделать если ввел допустим /set 444 (3-ого значения не написал, выдало значение автоматом 250) ?
PHP Code:
if(strcmp(cmd"/set"true) == 0)
    {
        if(
PlayerInfo[playerid][pAdmin] < 1) return 1;
        if(
sscanf(params"ud"params[0], params[1])) return SendClientMessage(playeridCOLOR_WHITE"Введите: /set [id] [значение]");
        if(!
params[1]) { //вот тут не пойму какую проверку поставить
            
PlayerInfo[params[0]][pSet] = 250;
            return 
1;
        }
        
PlayerInfo[params[0]][pSet] = params[1];
        return 
1;
    } 
Hawkins is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
IRC-канал по скриптингу: #sa-mp.scripting.RU Zeex Русский/Russian 9 22/05/2015 03:24 AM
как понять кто убил и того кого убили? fooxid Русский/Russian 5 11/07/2010 06:21 PM
как разбить длинную строку? KPECTak Русский/Russian 14 08/06/2010 04:23 AM
Рускоязычные порталы по PAWN скриптингу isan Русский/Russian 15 21/03/2010 08:10 PM


All times are GMT. The time now is 12:15 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.