Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Функция f_onchar_create, помогите разобраться
KonstantiN
сообщение 3.8.2012, 19:06
Сообщение #1


******

Группа: Пользователи
Наличность: 0
Пользователь №: 6.583



Народ, доброго времени вам суток, вообщем проблема в следущем ест функци f_onchar_create. Argn3 этой
функции отвечает за за расу выбраную игроком при создании чара, то есть жмем на кнопку эльфа получаем эльфа, а мне нужно туда запихнуть другой ид не c_elf* а другой. Как это можно сделать потому что просто тупо при создании чара переписать ид не получаеться, можно это как-то реализовать именно через этот триггер?


--------------------
По тихоньку возрождаю The Odyssey.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KonstantiN
сообщение 3.8.2012, 19:59
Сообщение #2


******

Группа: Пользователи
Наличность: 0
Пользователь №: 6.583



Так ребята разобрался работает все только есть теперь другой вопрос

Код

IF(<ARGN3>)
IF StrMatch("*_woman","<SRC.OBODY>")
SRC.OBODY = cv_woman
ELSE
SRC.OBODY = cv_man
ENDIF


Сфера не ругаеться но почему проверка не выполняеться и теперь все чары которых бы ты не создавал имею cv_man не зависими от того что я выбираю в клиенте

вот полностью

Код

[FUNCTION f_onchar_create]
IF StrMatch("*'*","<SRC.NAME>") || StrMatch("*`*","<SRC.NAME>")
   SERV.LOG @[Account: <ARGS>] Char: <SRC.NAME> - Character name is forbidden.
   SRC.TAG.Delete=1
   SENDPACKET 053 B02
   SENDPACKET 026 B01
ELIF (<SERV.SQL_AccountCharacterExists 1,<SRC.NAME>>)
   SERV.LOG @[Account: <ARGS>] Char: <SRC.NAME> - Character name already exists.
   SRC.TAG.Delete=1
   SENDPACKET 053 B02
   SENDPACKET 026 B01
ELIF (<SERV.SQL_AccountCharacterCreate 1,<ARGS>,<SRC.NAME>,<SRC.UID>,<SERV.ACCOUNT.<ARGS>.LASTIP>>,<SERV.RTIME>>)
   SERV.LOG @[Account: <ARGS>] Char: <SRC.NAME> - Character successfull created to SQL.

   // 3010,3370,15 - Serpents Hold (Vampire)
   // 1496,1629,10 - Britain (Humans)
   SRC.HOME = <QVAL (<ARGN3>)?3010,3370,15,0:1496,1629,10,0>
   SRC.P = <SRC.HOME> // Установка где будет появляться персонаж
   // Цвет кожи вампиров всегда 0 (серый)
   SRC.OSKIN = <QVAL (<ARGN3>)?0:<SRC.OSKIN>>
   SRC.COLOR = <QVAL (<ARGN3>)?0:<SRC.COLOR>>
   SERV.LOG @> Character Name: <SRC.NAME>
   SERV.LOG @> Flags: <ARGN1>
   SERV.LOG @> Class: <ARGN3>
   SERV.LOG @> Profession: <ARGN2>
   SERV.LOG @> Home at: <SRC.HOME>
   SERV.LOG @> Start at: <SRC.P> [<SRC.REGION.NAME>]
   IF StrMatch("*_woman","<SRC.OBODY>")
      SERV.NEWITEM=i_shirt_plain,1,<SRC.UID>
      NEW.ATTR=attr_newbie
      NEW.COLOR=colors_all
      SERV.NEWITEM=random_skirt,1,<SRC.UID>
      NEW.ATTR=attr_newbie
      NEW.COLOR=colors_neutral
      SERV.NEWITEM=random_shoes,1,<SRC.UID>
      NEW.ATTR=attr_newbie
      NEW.COLOR=colors_neutral
   ELSE
      SERV.NEWITEM=i_shirt_plain,1,<SRC.UID>
      NEW.ATTR=attr_newbie
      NEW.COLOR=colors_all
      SERV.NEWITEM=random_pants,1,<SRC.UID>
      NEW.ATTR=attr_newbie
      NEW.COLOR=colors_neutral
      SERV.NEWITEM=random_shoes,1,<SRC.UID>
      NEW.ATTR=attr_newbie
      NEW.COLOR=colors_neutral
   ENDIF
   SERV.NEWITEM=i_spellbook,1,<SRC.FINDLAYER.21.UID>
   NEW.ATTR=attr_newbie
   SERV.NEWITEM=i_coin_silver,1000,<SRC.FINDLAYER.21.UID>
   SERV.NEWITEM={i_cutlass 1 i_kryss 1 i_maul 1},1,<SRC.FINDLAYER.21.UID>
   NEW.ATTR=attr_newbie
ELSE
   SERV.LOG @ERROR: [Account: <ARGS>] Char: <SRC.NAME> - Fail to create record into SQL.
   SRC.TAG.Delete=2
   SENDPACKET 053 B02
   SENDPACKET 026 B01
ENDIF
// This function is called after client have created a new char.
// SRC --> char being created
// ARGN1 --> flags
// ARGN2 --> profession chosen
// ARGN3 --> elf
// ARGS  --> account name

IF(<ARGN3>) || StrMatch("c_elf_man","<SRC.OBODY>")
SRC.OBODY = cv_man
ELIF StrMatch("c_elf_woman","<SRC.OBODY>")
SRC.OBODY = cv_woman
ENDIF


--------------------
По тихоньку возрождаю The Odyssey.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 3.8.2012, 20:50
Сообщение #3


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



IF(<ARGN3>) это что за? ты что проверяешь то? есть ли какая то раса вообще 1 2 или 3
если какую то конкретную то так и пиши
IF (<ARGN3>==2)


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KonstantiN
сообщение 3.8.2012, 20:53
Сообщение #4


******

Группа: Пользователи
Наличность: 0
Пользователь №: 6.583



Все равно не рабоате


--------------------
По тихоньку возрождаю The Odyssey.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Wap
сообщение 3.8.2012, 21:26
Сообщение #5


**********

Администратор Форума
Сообщений: 3.003
Регистрация: 22.12.2006
Группа: Администраторы
Наличность: 31652
Пользователь №: 9.227



Звездочка в StrMatch... Это точно поддерживается? Просто "c" пробовал?

Сообщение отредактировал wap - 3.8.2012, 21:26


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 3.8.2012, 21:32
Сообщение #6


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



нафига эти функции пользовать когда тут варианта всего два, сделай по советски
Код

IF (<SRC.OBODY> == C_ELF_MALE)
SRC.OBODY Cv_MAN
SRC.BODY Cv_MAN
ELIF (<SRC.OBODY> == C_ELF_FEMALE)
SRC.OBODY Cv_WOMAN
SRC.BODY Cv_WOMAN
ENDIF


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KonstantiN
сообщение 4.8.2012, 1:56
Сообщение #7


******

Группа: Пользователи
Наличность: 0
Пользователь №: 6.583



Народ обьясню зачем мне нужен вообще этот велосипед, система гвардов переписанная, они разлучают свой чужой по телам чара. Так вот то есть кв это тело другой рассы, которая встроенна в клиент как эльфы, но сфере хоть ты подовись нужен чар c_elf_male. Всю систему ровнять под новую переменую как-то впадлу, да и должно же так работать. Я знаю что данный вопрос можно решить и другими методами, но мне хотелось бы этим.

Код


IF(<ARGN3> == 2) || StrMatch("c_elf_man","<SRC.OBODY>")
SRC.OBODY = cv_man
ELIF StrMatch("c_elf_woman","<SRC.OBODY>")
SRC.OBODY = cv_woman
ENDIF



Все значения равны


--------------------
По тихоньку возрождаю The Odyssey.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 4.8.2012, 2:08
Сообщение #8


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



проверь код что выше а то у меня даже эльфов выбрать то нельзя, убрал


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KonstantiN
сообщение 4.8.2012, 5:34
Сообщение #9


******

Группа: Пользователи
Наличность: 0
Пользователь №: 6.583



у тебя нет chardef cv_man


--------------------
По тихоньку возрождаю The Odyssey.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WRWR
сообщение 4.8.2012, 19:48
Сообщение #10


*******

Adept
Сообщений: 986
Регистрация: 17.7.2007
Группа: Пользователи
Наличность: 0
Из: Город герой
Пользователь №: 9.946
Возраст: 33



у тебя то есть (IMG:style_emoticons/default/smile.gif)


--------------------
Sphere56/Muls
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KonstantiN
сообщение 4.8.2012, 21:53
Сообщение #11


******

Группа: Пользователи
Наличность: 0
Пользователь №: 6.583



У меня все можно выбрать и сфера пишет в лог, что если argn3=2, то это эльф! НУ как его заставить различать может быть другой вид проверки поставить?

Все ребята всем спасибо разобрался что там до как. Можно тему закрывать.


--------------------
По тихоньку возрождаю The Odyssey.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Nickname
сообщение 6.8.2012, 22:10
Сообщение #12


****

Группа: Пользователи
Наличность: 0
Пользователь №: 11.067



попробуй использовать таймер:
Код
IF(<ARGN3>==2)
IF StrMatch("*_woman","<SRC.OBODY>")
  SRC.TIMERF 1,OBODY = cv_woman
  SRC.TIMERF 1,BODY = cv_woman
ELSE
  SRC.TIMERF 1,OBODY = cv_man
  SRC.TIMERF 1,BODY = cv_man
ENDIF
SRC.TIMERF 1,UPDATE


--------------------
Промокод на 10% скидку Windows VDS: ODEI-XTPJ
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KonstantiN
сообщение 7.8.2012, 11:17
Сообщение #13


******

Группа: Пользователи
Наличность: 0
Пользователь №: 6.583



Спасибо ребята за советы но я просто переписал всю эту херню по новой и стало нормально работать


--------------------
По тихоньку возрождаю The Odyssey.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 27.4.2024, 13:05
Designed by Nickostyle