Перейти к содержанию

Agasper

Проверенные
  • Постов

    148
  • Зарегистрирован

  • Посещение

  • Победитель дней

    191

Весь контент Agasper

  1. Посмотри внимательно на кусок 'Upper'. eA/doc/item_db.txt: (FIXME: Someone give this file better formatting) - Explanation of the item_db.txt file and structure. ID: Item id AegisName: Server name to reference the item in scripts and lookups, should use no spaces. Name: Name in english for displaying as output for @ and script commands. Type: 0 Healing item. 2 Usable item. 3 Etc item 4 Weapon 5 Armor/Garment/Boots/Headgear 6 Card 7 Pet egg 8 Pet equipment 10 Ammo (Arrows/Bullets/etc) 11 Usable with delayed consumption (item is lost from inventory after selecting a target, for use with skills and pet lures) 18 Another delayed consume that requires user confirmation before using item. Buy: Default buying price. When not specified, becomes double the sell price. Sell: Default selling price. When not specified, becomes half the buy price. Weight: Item's weight. Each 10 is 1 weight. ATK: Weapon's attack DEF: Armor's defense Range: Weapon's attack range Slots: Amount of slots the item possesses. Job: Equippable jobs. Uses the following bitmask table: (S.) Novice (2^00): 0x00000001 Swordman (2^01): 0x00000002 Mage (2^02): 0x00000004 Archer (2^03): 0x00000008 Acolyte (2^04): 0x00000010 Merchant (2^05): 0x00000020 Thief (2^06): 0x00000040 Knight (2^07): 0x00000080 Priest (2^08): 0x00000100 Wizard (2^09): 0x00000200 Blacksmith (2^10): 0x00000400 Hunter (2^11): 0x00000800 Assassin (2^12): 0x00001000 Unused (2^13): 0x00002000 Crusader (2^14): 0x00004000 Monk (2^15): 0x00008000 Sage (2^16): 0x00010000 Rogue (2^17): 0x00020000 Alchemist (2^18): 0x00040000 Bard/Dancer (2^19): 0x00080000 Unused (2^20): 0x00100000 Taekwon (2^21): 0x00200000 Star Gladiator (2^22): 0x00400000 Soul Linker (2^23): 0x00800000 Gunslinger (2^24): 0x01000000 Ninja (2^25): 0x02000000 Gangsi (2^26): 0x04000000 Death Knight (2^27): 0x08000000 Dark Collector (2^28): 0x10000000 Upper: Equippable upper-types. Uses the following bitmasks to set type of job the player is required to be to beable to use that item: 1: Only base/normal jobs can use it. (Supposed to allow all jobs to use it. Code needs fixing for this later.) 2: Trans and higher jobs/ Baby Thirds (All Trans, Thirds, and Third Babys) 4: Babys only (Only baby jobs can use it) 8: Thirds (Thirds and Third Babys) Gender: Gender restriction. 0 is female, 1 is male, 2 for both. Loc: Equipment's placement. Values are: Equipment Tab 2^8 256 = Upper Headgear 2^9 512 = Middle Headgear 2^0 001 = Lower Headgear 2^4 016 = Armor 2^1 002 = Weapon 2^5 032 = Shield 2^2 004 = Garment 2^6 064 = Footgear 2^3 008 = Accessory 1 2^7 128 = Accessory 2 Costume Tab 2^10 1024 = Costume - Upper Headgear 2^11 2048 = Costume - Middle Headgear 2^12 4096 = Costume - Lower Headgear 2^13 8192 = Costume - Armor wLV: Weapon level. eLV: Base level required to be able to equip. Refineable: 1 if the item can be refined, 0 otherwise. View: For normal items, defines a replacement view-sprite for the item (eg: Making apples look like apple juice). The special case are weapons and ammo where this value indicates the weapon-class of the item. For weapons, the types are: 0: bare fist 1: Daggers 2: One-handed swords 3: Two-handed swords 4: One-handed spears 5: Two-handed spears 6: One-handed axes 7: Two-handed axes 8: Maces 9: Unused 10: Staves 11: Bows 12: Knuckles 13: Musical Instruments 14: Whips 15: Books 16: Katars 17: Revolvers 18: Rifles 19: Gatling guns 20: Shotguns 21: Grenade launchers 22: Fuuma Shurikens For ammo, the types are: 1: Arrows 2: Throwable daggers 3: Bullets 4: Shells 5: Grenades 6: Shuriken 7: Kunai 8: Cannonball 9: Throwable Item Script: Script to execute when the item is used/equipped. OnEquip_Script: Script to execute when the item is equipped. Warning, not all item bonuses will work here as expected. OnUnequip_Script: Script to execute when the item is unequipped. Warning, not all item bonuses will work here as expected.
  2. Без флуда давай,что было в исходном варианте,то и перенес. Ну а фраза про правку src конечно улыбнула
  3. prontera,151,181,5 script Бонусный уровень 811,{ if(BaseLevel==100){ mes "[Бонусный уровень]"; mes "У вас уже есть 100-ый уровень!"; close; } if(BaseLevel!=99){ mes "[Бонусный уровень]"; mes "Приходите ко мне когда апните 99-ый уровень!"; close; } mes "[Бонусный уровень]"; mes "Для получения 100-ого уровня нужно принести:"; mes "10 Poring Card"; mes "10.000.000 Zeny"; if(select("Я все принес:Выход")==2){ close; } if(countitem(4001)<10){ next; mes "[Бонусный уровень]"; mes "А где карты?Приходи когда будут!"; close; } if(Zeny<10000000){ next; mes "[Бонусный уровень]"; mes "А где деньги?Приходи когда будут!"; close; } set BaseLevel,BaseLevel+1; set Zeny,Zeny-10000000; set StatusPoint,StatusPoint + rand(1000,5000); delitem 4001,10; announce "Игрок "+strcharinfo(0)+" получил 100-ый уровень!",0; close; }
  4. Agasper

    S>RCP 3.8

    Продам RCP 3.8 Стоимость защиты у Hawk'а: 120 WMZ(29,42 руб*120=3530,4 руб). Продажа через Hawk'а,после покупки Вы станете полноценным владельцем защиты. Я отдаю защиту за 70 WMZ(2059,4р) в эту цену входит стоимость перепрошивки защиты. Экономия: 3530,4-2059,4=1471 руб. Причина продажи: защита больше не нужна. --- Пишите либо в ЛС либо в ICQ(6498906).
  5. if(otvet==4){ mes "У вас 4 правильных ответа!"; close; } set otvet,otvet+1; close;
  6. @kadze,раскрой мне тайну.Нахера в скриптах простых NPC юзать 'end;' ? Нужно 'close;' юзать. @Cлавик Панфилыч,лейблы не юзай.
  7. Не совсем понятно,что ты хочешь.Выложи полный код скрипта.
  8. Agasper

    CP

    А поиск юзануть религия не позволяет? http://ea-support.ru/index.php?/topic/12-csilki-na-skachivanie-cp/
  9. sec_in01.gat,73,167,0 script Регистратор 871,{ if(registrator==1){ mes "[Регистратор]"; mes "Я тебе дал необходимые бумаги,пожалуйста поговорите с моим помощником."; close; } mes "[Регистратор]"; mes "Привет "+strcharinfo(0)+". Я главный Регистратор."; mes "Я вижу, что ты тут новенький!"; mes "Для того чтобы начать играть, я должен тебя зарегистрировать."; next; mes "[Регистратор]"; mes "Приступим..."; next; mes "[Регистратор]"; mes "..."; next; mes "[Регистратор]"; mes "......"; next; mes "[Регистратор]"; mes "........."; next; mes "[Регистратор]"; mes "Твое имя - "+strcharinfo(0)+""; mes "Твоя профессия - "+Job+""; mes "Твой базовый уровень - "+BaseLevel+""; mes "Твой рабочий уровень - "+JobLevel+""; mes "Время - "+gettime(3)+""; next; mes "[Регистратор]"; mes "Великолепно!"; mes "Хорошо, отнеси эти бумаги моему помощнику."; getitem 7848,1; next; mes "[Регистратор]"; mes "Не потеряй их! Без них ты не сможешь пройти обучающий курс новичка!"; mes "Удачи тебе и успехов."; set registrator,1; close; }
  10. Да сколько раз повторять то...Для чара переменная должна быть без ПРИСТАВКИ.
  11. Переменная для чаров всегда без приставки. Можно использовать для аккаунтов либо "#" либо "##" особой разницы нету.
  12. Перед названием переменной добавить "#" : prontera,100,100,5 script Подарок 811,{ if(#podarok==1){ mes "Ваш аккаунт уже получал подарок!"; close; } mes "Хочешь подарок?"; if(select("Да:Нет")==2){ close; } getitem 909,1; set #podarok,1; close; }
  13. prontera,100,100,5 script Подарок 811,{ if(podarok==1){ mes "Ты уже получил подарок!"; close; } mes "Хочешь подарок?"; if(select("Да:Нет")==2){ close; } getitem 909,1; set podarok,1; close; }
  14. ---------------------------------------------- Переменные ---------------------------------------------- Каждый язык програмирования имеет переменные - место где вы храните информацию. Переменная делится на такие части: Приставка - определяет область и степень переменной. Название - идентификатор состоящий из "_" и альфаметрических символов. Положение - определяет тип переменной: целое число или последовательностью. Области: Глобальная. Локальная. Аккаунт. Персонаж. NPC. Степень может быть: Постоянной - постоянная переменная,закрепленная на персонажа. Временная - переменная перестает существовать после перезагрузки сервера(т.е. если на персонажа повешена переменная,то она будет снята). Приставка: Без приставки - постоянная переменная. "@" - Временная переменная, закрепленная на персонажа. "$" - Глобальная постоянная переменная. "#" - Постоянная переменная для аккаунтов. "." - Переменная NPC;
  15. Создание меню NPC через скриптовую команду 'menu' = говнокод. Пример: menu "Пункт 1",l1,"Пункт 2",l2; l1: close; l2: close; Для создания меню с 2 пунктами юзаем команду 'select': if(select("Пункт 1:Пункт 2")==1){ close; } close; Если нужно несколько пунктов,то юзаем 'switch': switch(select("Пункт 1:Пункт 2:Пункт 3")){ case 1: close; case 2: close; case 3: close; }
  16. Раздел 'Школа Скриптинга' добавлен.
  17. 1) - script lvl_announce -1,{ OnPCBaseLvUpEvent: if(BaseLevel==99){ announce "Поздравляем "+strcharinfo(0)+","+((sex)?"он":"она")+" "+((sex)?"получил":"получила")+" 99 уровень!",0; } end; } 2) eA/conf/battle/drops.conf: // Make broadcast ** Player1 won Pupa's Pupa Card (chance 0.01%) *** // Note: It also announces STEAL skill usage with rare items // 0 = don't show announces at all // 1 = show announces for 0.01% drop chance items // 333 = show announces for 3.33% or lower drop chance items // 10000 = show announces for all items rare_drop_announce: 0
  18. Agasper

    @go

    Команда @go с новыми городами:
  19. Мы будем отслеживать и банить засранцев,которые специально репу минусуют во всех постах без причины.
  20. Ну так проверка никакая не добавлялась в battle.c. А вообще нужно еще в скрипт добавить 'setcastledata'.Имп арена должна быть мини-вое эвентом => в скрипте должно быть несколько кусков из agit_template.txt Если говорить о банальной реализации с проверкой на переменную то это будет так: При разбитии импа вешаем на чара переменную: set myemp,1; При смерте(OnPCDieEvent) или при при выходе из игры(OnPCLogoutEvent) обнуляем переменную: set myemp,0; Ну а в battle_check_target в BL_MOB(Checks on target master) после такой строчки: struct mob_data *md = BL_CAST(BL_MOB, t_bl); Вставляем это: struct map_session_data *sd; sd = BL_CAST(BL_PC, s_bl); Ну и добавляем проверку: if(t_bl->type==BL_MOB && ((TBL_MOB*)target)->class_== ID монстра && pc_readregistry((TBL_PC*)s_bl,"myemp",3)==1) return 0; Теперь если на чаре будет висеть переменная myemp со значением 1,то он не сможет бить моба с указанным ID. ---- P.S: Вот посмотри еще такой скриптик: guild_vs4.gat,0,0,0 script Agit_AW01 -1,{ OnInit: callfunc "F_BtStart","guild_vs4","AW01",50,50; end; OnImpBreak: callfunc "F_BtBreak","guild_vs4","AW01"; end; } prontera,97,172,4 script Arena War::GvGArena 722,{ mes "[^770000Arena War^000000]"; mes "Арена принадлежит гильдии: ^FF0000"+$GvG_Owner$+"^000000"; close2; end; OnGvGRecive: FlagEmblem GetCastleData("guild_vs4",1); end; } function script F_BtStart { MapRespawnGuildID getarg(0),GetCastleData(getarg(0),1),2; killmonsterall getarg(0); if (!mobcount(getarg(0),"Agit_"+getarg(1)+"::OnImpBreak")) { monster getarg(0),getarg(2),getarg(3),"Emperium",1288,1,"Agit_"+getarg(1)+"::OnImpBreak"; } } // Function for OnAgitBreak ====================================== function script F_BtBreak { killmonsterall getarg(0); set .@GID,getcharid(2); if (.@GID <= 0) { set $GvG_Owner$, "None"; set $GvG_Owner_id, 0; donpcevent "GvGArena::OnGvGRecive"; callfunc "F_BtStart","guild_vs4","AW01",50,50; return 0; } // Lower castle Economy set .@Economy,GetCastleData("guild_vs4",2) - 5; if (.@Economy < 0) set .@Economy, 0; SetCastleData "guild_vs4", 2, .@Economy; // Lower Castle Defence set .@Defence,GetCastleData("guild_vs4",3) - 5; if (.@Defence < 0) set .@Defence, 0; SetCastleData "guild_vs4", 3, .@Defence; // Set new owner SetCastleData "guild_vs4",1, .@GID; // Clear castle's data. for( set .@i, 4; .@i <= 9; set .@i, .@i+1 ) SetCastleData "guild_vs4", .@i, 0; GetCastleData "guild_vs4",0,"::OnGvGRecive"; set $GvG_Owner$, strcharinfo(2); set $GvG_Owner_id, @GID; donpcevent "GvGArena::OnGvGRecive"; sleep getbattleflag("gvg_eliminate_time"); MapAnnounce "guild_vs4","Гильдия ["+$GvG_Owner$+"] сломали империум.",17; callfunc "F_BtStart","guild_vs4","AW01",50,50; sleep2 500; MapAnnounce "guild_vs4","Арену взял [" + strcharinfo(0) + "].",17; announce "Арену [Arena War] взяла гильдия ["+$GvG_Owner$+"].",0; end; }
  21. Разницы никакой нету,в моем посте просто вариант старый,в котором еще WoE2 не было. Вот для новых: Эту строчку: if( !((agit_flag || agit2_flag) && map[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id ) Заменяем на эту: if( !((agit_flag || agit2_flag || map[m].flag.gvg ) && map[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id )
×
×
  • Создать...
Яндекс.Метрика