-
Постов
39 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные ПуфЫстик
-
-
Таак... pvpkill сработало, теперь не понимаю другого, вот что у меня в базе в таблице pvprate:
а вот что в игре показывает...
А вот теперь самое интересное , в игре показывает 1 убийство и 1 смерть, а в таблице даже на ник artuur ничего нету... Откуда он это взял ?О_О
-
Подскажи как переделать меню "Ваш Статус" :
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) -
Ыыы... я как бы не тебе =) а тому кто и ошибся
-
Спорим твой скрипт
if(BaseLevel<80){mes "вы не 80";close}
не сработает, точней зависнет=)) Слил новичку недописанный скрипт=))))
после close не хватает ";"
-
Вот наверно как-то так:
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;
- 1
-
Кеник, подскажи правильно я запрос изменил ?
CREATE TABLE `pvprate` (
`id` int(11) unsigned NOT NULL default '0',
`name` varchar(255) NOT NULL default '',
`pvpkill` int(11) unsigned NOT NULL default '0',
`pvpdie` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
)
-
а почему 80 и /5 ?
p.s. кто подскажет как сделать, чтобы без пересчета рейтинга, просто выводилось сколько убийств и смертей. А рейтинг выставлялся по принципу у кого больше убийств тот круче.
-
Ладно , тогда по другому. Объясните мне принцип работы этого кода :
set $@CountLoser, ( $@PvP_Point + ( $@Dead_base - $@Kill_base ) ) / 5;else
set $@CountLoser, ( $@PvP_Point - ( $@Kill_base - $@Dead_base ) ) / 5;
Я правильно понимаю , это переменная которая показывает как рейтинг высчитывается ?
-
И что никто не может помочь ?
-
а почему нет ?
рейтинг он считает(сколько убил, сколько смертей) + если кто кого убивает он анонсит...
-
Почему он не работоспособный ? если он всё делай , только не вычитывает пвп рейтинг ...
-
Всем привет, нашёл в интернете старый пвп рейтинг 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 ?
И вот что находится в phpmyadmin в таблице pvprate
-
Помогите достать эту коллекцию, пожалуйста =)
-
После того как зарегался и нажал на "Download file"
You do not have permission to download this file
-
А ты попробуй по гугли... найдёшь, расцелую твою опу
-
У кого есть такие поринг спрайты поделитесь пожалуйста...
-
А как в игре выглядит ответ от админа ?
-
DB error достаточно
Пвп рейтинг
в Помощь в скриптинге
Опубликовано · Изменено пользователем ПуфЫстик
Хммм... мне интересно, как сделать что бы из определённый таблицы высчитывалось и записывалось ? что бы в таблицу global_reg_value ничего не записывалось...