GetLocalPlayer
|
|
japonesko | Дата: Среда, 24 Июля 2013, 13:06:11 | Сообщение # 1 |
4 уровень
Группа: Пользователи
Сообщений: 86
Награды: 0
Репутация: 8
Блокировки:
| Как сохранять данные через прелоад для определенного игрока?
|
|
|
|
[SeKtOR] | Дата: Среда, 24 Июля 2013, 13:35:39 | Сообщение # 2 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Цитата if (GetLocalPlayer() == Player(0)) then // сохраняем данные для красного игрока call PreloadGenClear() call PreloadGenStart() call PreloadGenEnd("\\code.txt") endif
|
|
|
|
japonesko | Дата: Среда, 24 Июля 2013, 13:47:03 | Сообщение # 3 |
4 уровень
Группа: Пользователи
Сообщений: 86
Награды: 0
Репутация: 8
Блокировки:
| Цитата (|SeKtOR|) Цитата if (GetLocalPlayer() == Player(0)) then // сохраняем данные для красного игрока call PreloadGenClear() call PreloadGenStart() call PreloadGenEnd("\\code.txt") endif да мне не для красного надо Игрок 1(красный) вводит сообщение в чат... Игрок 2(синий) вводит ... ... Игрок 10.. set udg_player_saver_n = GetConvertedPlayerId(GetTriggerPlayer()) if (GetLocalPlayer()== Player(udg_player_saver_n-1)) then написал эту строчку будет правильно?Добавлено (24 Июля 2013, 13:47:03) --------------------------------------------- set udg_player_saver_string = ( "game\\" + GetPlayerName(GetTriggerPlayer()) ) call PreloadGenEnd(udg_player_saver_string)
|
|
|
|
[SeKtOR] | Дата: Среда, 24 Июля 2013, 15:01:30 | Сообщение # 4 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Тогда вот так: Цитата Игрок 1(красный) вводит сообщение в чат... Игрок 2(синий) вводит ... ... Игрок 10.. Код if (GetLocalPlayer() == Player(GetPlayerId(GetTriggerPlayer()))) then // тут, что записывать и т.п. call PreloadGenEnd("game\\" + GetPlayerName(GetTriggerPlayer())) endif
Сообщение отредактировал [SeKtOR] - Среда, 24 Июля 2013, 15:03:02 |
|
|
|
japonesko | Дата: Среда, 24 Июля 2013, 15:34:26 | Сообщение # 5 |
4 уровень
Группа: Пользователи
Сообщений: 86
Награды: 0
Репутация: 8
Блокировки:
| спасибо
|
|
|
|
[SeKtOR] | Дата: Среда, 24 Июля 2013, 15:39:58 | Сообщение # 6 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| А можно более оптимизированную версию: Код if (GetLocalPlayer() == GetTriggerPlayer()) then // тут, что записывать и т.п. call PreloadGenEnd("game\\" + GetPlayerName(GetTriggerPlayer())) endif P.S. Ещё было бы неплохо занести GetTriggerPlayer() в переменную, чтобы избежать повторного вызова ну ладно.
Сообщение отредактировал [SeKtOR] - Среда, 24 Июля 2013, 15:40:25 |
|
|
|
japonesko | Дата: Среда, 24 Июля 2013, 16:39:12 | Сообщение # 7 |
4 уровень
Группа: Пользователи
Сообщений: 86
Награды: 0
Репутация: 8
Блокировки:
| Код function Trig_save_Conditions takes nothing returns boolean if ( not ( GetLocalPlayer() == ConvertedPlayer(GetConvertedPlayerId(GetTriggerPlayer())) ) ) then return false endif return true endfunction
function Trig_save_Func009001 takes nothing returns boolean return ( StringLength(udg_name_string) < 10 ) endfunction
function Trig_save_Func010Func002Func001Func001001 takes nothing returns boolean return ( GetForLoopIndexA() < 10 ) endfunction
function Trig_save_Func010Func002Func001C takes nothing returns boolean if ( not ( SubStringBJ(udg_name_string, GetForLoopIndexA(), GetForLoopIndexA()) == udg_code_symb[GetForLoopIndexB()] ) ) then return false endif return true endfunction
function Trig_save_Func010Func003C takes nothing returns boolean if ( not ( udg_symbol_check == 0 ) ) then return false endif return true endfunction
function Trig_save_Actions takes nothing returns nothing set udg_code_string = "" set udg_code_random = GetRandomInt(1, 5) set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = 36 loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd set udg_code_symb[( GetForLoopIndexA() - 1 )] = SubStringBJ(udg_saveloadcode[udg_code_random], GetForLoopIndexA(), GetForLoopIndexA()) set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop set udg_code_type = udg_code_symb[30] set udg_code_string = ( udg_code_string + udg_code_type ) set udg_name_i = 1 set udg_name_string = GetPlayerName(GetTriggerPlayer()) if ( Trig_save_Func009001() ) then set udg_code_string = ( udg_code_string + ( "0" + I2S(StringLength(udg_name_string)) ) ) else set udg_code_string = ( udg_code_name + I2S(StringLength(udg_name_string)) ) endif set bj_forLoopAIndex = 1 set bj_forLoopAIndexEnd = StringLength(udg_name_string) loop exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd set udg_symbol_check = 0 set bj_forLoopBIndex = 0 set bj_forLoopBIndexEnd = 35 loop exitwhen bj_forLoopBIndex > bj_forLoopBIndexEnd if ( Trig_save_Func010Func002Func001C() ) then if ( Trig_save_Func010Func002Func001Func001001() ) then set udg_code_name = ( udg_code_name + ( "0" + I2S(GetForLoopIndexB()) ) ) else set udg_code_name = ( udg_code_name + I2S(GetForLoopIndexB()) ) endif set udg_symbol_check = 1 else endif set bj_forLoopBIndex = bj_forLoopBIndex + 1 endloop if ( Trig_save_Func010Func003C() ) then set udg_code_name = ( udg_code_name + "!!" ) else endif set bj_forLoopAIndex = bj_forLoopAIndex + 1 endloop set udg_code_string = ( udg_code_string + udg_code_name ) call Preload(code_string) call PreloadGenEnd(mygame\\save) endfunction
//=========================================================================== function InitTrig_save takes nothing returns nothing set gg_trg_save = CreateTrigger( ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(1), "-save", true ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(2), "-save", true ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(3), "-save", true ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(4), "-save", true ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(5), "-save", true ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(6), "-save", true ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(7), "-save", true ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(8), "-save", true ) call TriggerRegisterPlayerChatEvent( gg_trg_save, Player(9), "-save", true ) call TriggerAddCondition( gg_trg_save, Condition( function Trig_save_Conditions ) ) call TriggerAddAction( gg_trg_save, function Trig_save_Actions ) endfunction карта неврубается ;c что не так в коде?Добавлено (24 Июля 2013, 16:35:54) --------------------------------------------- когда убираю PreloadGenEnd карта запускается Добавлено (24 Июля 2013, 16:39:12) --------------------------------------------- думал из-за кавычек добавил - не помогло
|
|
|
|
FEARKILLER | Дата: Среда, 24 Июля 2013, 17:17:34 | Сообщение # 8 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (japonesko) думал из-за кавычек добавил - не помогло Я не понял по коду что ты там хочешь сохранять, покажу лишь ошибки из-за которых карта не компилируется. В гуи глобалки помечаны приставками udg_, и кавычки в строках обязательны. call Preload(udg_code_string) call PreloadGenEnd("mygame\\save")
Делаю из воды вино, хожу по воде...
|
|
|
|
japonesko | Дата: Среда, 24 Июля 2013, 18:08:33 | Сообщение # 9 |
4 уровень
Группа: Пользователи
Сообщений: 86
Награды: 0
Репутация: 8
Блокировки:
| точно глобалки -_- спасибоДобавлено (24 Июля 2013, 18:08:33) --------------------------------------------- call PreloadGenEnd() никак с переменными не работает??? создал переменную в нее вписал путь подставил ничего не создается
|
|
|
|
FEARKILLER | Дата: Среда, 24 Июля 2013, 18:16:03 | Сообщение # 10 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (japonesko) call PreloadGenEnd() никак с переменными не работает??? создал переменную в нее вписал путь подставил ничего не создается Она принимает строчные значения: Код call PreloadGenEnd("save\\"+s) Но ты используешь глобалки созданные через ctrl+b, так что заместо s напиши свою переменную udg_string
Делаю из воды вино, хожу по воде...
Сообщение отредактировал FEARKILLER - Среда, 24 Июля 2013, 18:16:29 |
|
|
|