Сейчас 13:44:36 Вторник, 30 апреля, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » GetLocalPlayer
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
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » GetLocalPlayer
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz