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

ПуфЫстик

Очередь
  • Постов

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

  • Посещение

Сообщения, опубликованные ПуфЫстик

  1. Таак... pvpkill сработало, теперь не понимаю другого, вот что у меня в базе в таблице pvprate:

    6c9aa4916686.jpg

    а вот что в игре показывает...

    87ca7270a8f1.jpg

    А вот теперь самое интересное , в игре показывает 1 убийство и 1 смерть, а в таблице даже на ник artuur ничего нету... Откуда он это взял ?О_О

  2. Подскажи как переделать меню "Ваш Статус" :

    cleararray @pvp_points[0],0,1;

    query_sql "SELECT pvprate FROM "+@db_name$+".pvprate WHERE name='"+strcharinfo(0)+"'", @pvp_points;

    mes "[ PvP Статус ^0000ff"+strcharinfo(0)+"^000000 ]";

    mes "Убийств: ^0000FF"+PvP_Kills+"^000000";

    mes "Сметрей: ^0000FF"+PvP_Death+"^000000";

    close2;

    break;

    Я не понимаю как мне запрос переделать что бы ошибок не было.

    Ошибка когда тыркаю на "Ваш Статус":


    [SQL]: DB error - Unknown column 'pvprate' in 'field list'
    [Debug]: at ..\src\map\script.c:12741 - SELECT pvprate FROM homero.pvprate WHERE
    name='Artur'
    [Debug]: Source (NPC): ╧т╧-╨хщЄшэу at prontera (164,172)

  3. Вот наверно как-то так:

    map,x,y,0 script Квест 50,{

    if( BaseLevel <= 79 ) { mes " Извини, но у тебя лвл больше чем 80"; close; }

    mes "asdasd";

    mes "asdad";

    mes "asdasd";

    mes "adsdas";

    if(select("Сделать квест:Пройти мимо...") == 2 ) { mes "Приятного дня."; close; }

    mes "Мне нуженр след. итем:";

    mes "черные очки";

    if(select("Я принес очки:Хорошо я принесу...") == 2 ) { mes "Хорошо, я тебя жду."; close; }

    if( countitem(2202) < 1 ) { mes "У тебя нету очков..."; close; }

    mes "Молодец ты принёс, вот получи свою експу.";

    getexp 10000000,1000000;

    delitem 2202,1;

    close;

    • Upvote 1
  4. а почему 80 и /5 ?

    p.s. кто подскажет как сделать, чтобы без пересчета рейтинга, просто выводилось сколько убийств и смертей. А рейтинг выставлялся по принципу у кого больше убийств тот круче. :D

  5. Ладно , тогда по другому. Объясните мне принцип работы этого кода :

    set $@CountLoser, ( $@PvP_Point + ( $@Dead_base - $@Kill_base ) ) / 5;

    else

    set $@CountLoser, ( $@PvP_Point - ( $@Kill_base - $@Dead_base ) ) / 5;

    Я правильно понимаю , это переменная которая показывает как рейтинг высчитывается ?

  6. Всем привет, нашёл в интернете старый пвп рейтинг by Empty. Вроде как всё собрал, ерроры которые выдавал мап сервер исправил, но пвп рейтинг всё равно не правильно работает, не понимаю в чем проблема.

    Сам скрипт:

    //////////////////////////////////////////////////////////////

    //===== eAthena Script =======================================

    // PvP Rating System

    //===== By: ==================================================

    // Empty (aka F4nT)

    //===== Current Version: =====================================

    // 2.1a

    //===== Compatible With: =====================================

    // SQL eAthena version

    //===== Description: =========================================

    // Система PvP рейтинга, с использованием счёта.

    // Для работы скрипта c SQL сервером, заугрузите в вашу бд следующий дамп:

    // ALTER TABLE `char` ADD COLUMN `pvprat` int(11) NOT NULL DEFAULT '0' AFTER `fame`;

    //===== Additional Comments: =================================

    // v1.0b - Первый релиз.

    // Счёт очков ведётся по фиксированным числам. [Empty]

    // v1.0 - Исправлен баг с калькуляцией очков [Empty]

    // v1.1 - В табилице не указываются чары с 0 PK поинтов [Empty]

    // v1.1b - Исправлен баг с отниманием очков у убитого.

    // Теперь очков не может быть меньше 0 [Empty]

    // v1.2 - Исправлен баг с начислением "левых" поинтов [Empty]

    // v1.3 - Изменены переменные.

    // Все функции расставлены по порядку. [Empty]

    // v1.4 - Отключены счётчики в замках.

    // Добавлены аннонсы убийце и убитому. [Empty]

    // v1.5 - Добавлены формулы подсчёта рейтинга. [Empty]

    // v1.5b - Добавлено большее количество локаций-исключений.

    // (спасибо Rumpl!) [Empty]

    // v1.6 - При смерти если количиство отнимаемых очков больше,

    // чем количиство имеющихся,

    // значиние приравнивается к 0.

    // (за идею спасиб I'm n00b XD) [Empty]

    // v1.7 - За убийство самого себя не снимают и не прибавляют

    // поинтов (За идею спасиб I'm n00b XD) [Empty]

    // v1.7b - Исправлены ошибки с перенаправлением. [Empty]

    // v2.0b - Заменена система исключений. Теперь проверка

    // Идёт на убийство на PvP арене.

    // В иных зонах не работает. [F4nT]

    // v2.1 - Изменена структура рейтинга. Теперь работает через

    // OnPCKillEvent. Оптимизирован код. Доска рейтинга

    // Теперь расположена отдельно. [F4nT]

    // v2.1a - Добавлена проверка на ГМ левел. За идею спасибо

    // VoidLess. [F4nT]

    //============================================================

    - script OnPCKillEvent -1,{

    OnPCKillEvent:

    function Rating_Winner;

    function Rating_Loser;

    set @disable_gms, 1; // Проверка на Гм уровень. 1 - вкл. 0 - выкл.

    set @servertype, 1; // 1 - Normal Server; 2 - PvP Server.

    set @db_name$, "homero"; // Название базы данных, в которых расположена таблица рейтинга.

    setarray @eventmaps$[0], "guild_vs2";

    if ( getcharid(0) == killerrid ) end;

    if ( getmapxy( @mapname$, @mapx, @mapy, 0, strcharinfo(0) ) != 0 ) end;

    switch (@servertype) {

    case 1:

    for ( set @i, 0; @i <= getstrlen( @eventmaps$ ); set @i, @i+1 )

    {

    if ( @mapname$ == @eventmaps$[@i] )

    {

    set @eventgo, 1;

    break;

    }

    }

    break;

    case 2:

    set @eventgo, 1;

    for ( set @i, 0; @i <= getstrlen( @eventmaps$ ); set @i, @i+1 )

    {

    if ( @mapname$ == @eventmaps$[@i] )

    {

    set @eventgo, 0;

    break;

    }

    }

    break;

    }

    if ( !@eventgo ) end;

    if ( @disable_gms && getgmlevel() >= 40 ) end;

    set $@PvP_Point, 80;

    set PvP_Kills,PvP_Kills+1;

    set $@KillerName$, strcharinfo(0);

    set $@KilledName$, rid2name( killedrid );

    set $@Kill_base, BaseLevel;

    set @killer_sex, Sex;

    set @PPkkanus, rand(1,21);

    if ( @killer_sex ){

    set $@kill_msg$, "убил";

    } else {

    set $@kill_msg$, "убила";

    }

    set @tmp_dead, killedrid;

    attachrid( @tmp_dead );

    set PvP_Death, PvP_Death+1;

    set $@Dead_base, BaseLevel;

    Rating_Winner;

    Rating_Loser;

    announce "[ "+$@KillerName$+" ] "+$@kill_msg$+" [ "+$@KilledName$+" ].",bc_map;

    end;

    function Rating_Winner {

    if ( $@Kill_base < $@Dead_base )

    set $@CountWinner, ( $@PvP_Point + ( $@Dead_base - $@Kill_base ) ) / 5;

    else

    set $@CountWinner, ( $@PvP_Point - ( $@Kill_base - $@Dead_base ) ) / 5;

    if ( PvP_Kills > 1 ) {

    query_sql "UPDATE "+@db_name$+".pvprate SET pvprat=pvprat+"+$@CountWinner+" WHERE name='"+$@KillerName$+"'";

    } else {

    query_sql "INSERT INTO "+@db_name$+".pvprate (`name`,`pvprat`) VALUES ('"+$@KillerName$+"',"+$@CountWinner+")";

    }

    return;

    }

    function Rating_Loser {

    if ( !PvP_Kills ) return;

    set @PvP_LosPoints, 0;

    if ( PvP_Kills - PvP_Death >= 0 ) {

    if ( $@Kill_base < $@Dead_base )

    set $@CountLoser, ( $@PvP_Point + ( $@Dead_base - $@Kill_base ) ) / 5;

    else

    set $@CountLoser, ( $@PvP_Point - ( $@Kill_base - $@Dead_base ) ) / 5;

    cleararray @pvp_loser[0],0,1;

    query_sql "SELECT pvprat FROM "+@db_name$+".pvprate WHERE name='"+$@KilledName$+"'", @pvp_loser;

    if ( $@CountLoser < @pvp_loser[0] )

    set @PvP_LosPoints, @pvp_loser[0] - $@CountLoser;

    }

    query_sql "UPDATE "+@db_name$+".pvprate SET pvprat="+@PvP_LosPoints+" WHERE name='"+$@KilledName$+"'";

    return;

    }

    }

    prontera,164,172,3 script ПвП-Рейтинг 857,{

    set @db_name$, "homero"; // Название базы данных, в которых расположена таблица рейтинга.

    mes "[ PvP System ]";

    mes "Я могу показать вам:";

    mes "1. Лидеров-Убийц (Топ 100).";

    mes "2. Ваш Статус.";

    next;

    switch(select("Лидеры-Убийцы","Мой Cтатус","Выход")) {

    case 1:

    set @topcount, 100;

    cleararray @pvpboard1$[0],"",@topcount;

    cleararray @pvpboard2[0],0,@topcount;

    query_sql "SELECT name, pvprat FROM "+@db_name$+".pvprate ORDER BY pvprat DESC LIMIT "+@topcount+";", @pvpboard1$, @pvpboard2;

    mes "[ ^ff0000Топ "+@topcount+"^000000 ]";

    for (set @i,0; @i<@topcount; set @i,@i+1) {

    if(@pvpboard2[@i] != 0)

    mes "["+(@i+1)+"] ^0000FF[ "+@pvpboard1$[@i]+" ]^000000 - ^FF0000"+@pvpboard2[@i]+"^000000.";

    else

    mes "["+(@i+1)+"] ^0000FF[ Пусто ]^000000 - ^FF0000"+@pvpboard2[@i]+"^000000.";

    }

    close2;

    break;

    case 2:

    cleararray @pvp_points[0],0,1;

    query_sql "SELECT pvprat FROM "+@db_name$+".pvprate WHERE name='"+strcharinfo(0)+"'", @pvp_points;

    mes "[ PvP Статус ^0000ff"+strcharinfo(0)+"^000000 ]";

    mes "Убийств: ^0000FF"+PvP_Kills+"^000000";

    mes "Сметрей: ^0000FF"+PvP_Death+"^000000";

    mes " ";

    mes "PK рейтинг: ^0000FF"+@pvp_points[0]+"^000000";

    close2;

    break;

    case 3:

    close2;

    break;

    }

    end;

    }

    Вот то что я загрузил в sql базу:

    CREATE TABLE `pvprate` (

    `id` int(11) NOT NULL auto_increment,

    `name` varchar(30) NOT NULL default '',

    `pvprat` int(11) NOT NULL DEFAULT '0',

    PRIMARY KEY (`id`)

    )

    Почему пвп рейтинг 0 ?

    9c3383c8633b.jpg

    И вот что находится в phpmyadmin в таблице pvprate

    89e1eafdba59.jpg

×
×
  • Создать...
Яндекс.Метрика