Текущая версия SA-MP: 0.3.7


IP: 77.220.180.96:7777
  Новые сообщения · Поиск
  • Страница 1 из 1
  • 1
Модератор форума: KaTacTpOqpa  
Сохранение очков убийств
DIZ_man Сообщение # 1  | 19:46:37
Пользователи
Сообщений: 27
Репутация: 0
У меня есть регистрация на сервере! Когда я убил несколько игроков и перезашел, то у меня мои убийства не сохраняются (на ТАВ жму и 0 пишет), как мне сделать что бы мои киллы сохранялись в файле и писались в ТАВ'e каждый раз при перезаходе )))

О как

Спасибо всем кто откликница на мой вопрос )



BJIADOKC Сообщение # 2  | 11:51:21
Скриптеры
Сообщений: 601
Репутация: 161
если dini тогда:
OnPlayerDeath (поставь это после прибавления фрага за убийство):
Code

new file[256], name[24];
GetPlayerName(killerid,name,24);
format(file,256,"*Путь к папке с акками*/%d.ini",name);
if(dini_Exists(file))
{
if(!dini_Isset(file,"Score")) {dini_IntSet(file,"Score",GetPlayerScore(killerid));}
else {dini_IntSet(file,"Score",GetPlayerScore(killerid));}
}

и сделай чтобы фраги загружались при заходе
OnPlayerSpawn:
Code

new file[256], name[24];
GetPlayerName(playerid,name,24);
format(file,256,"*Путь к папке с акками*/%d.ini,name);
if(dini_Exists(file) && dini_Isset(file,"Score"))
{
SetPlayerScore(playerid,dini_Int(file,"Score"));
}

ну +ы не забываем только ставить biggrin
by BJIADOKC


тут больше не сижу... открыл свой проект
DIZ_man Сообщение # 3  | 18:05:04
Пользователи
Сообщений: 27
Репутация: 0
О спс! на плюсик

Добавлено (19.04.2011, 18:05)
---------------------------------------------
а вот ты написал...

Code
new file[256], name[24];

что эти цифры обозначают? 24 и 256. А тоя видел в некоторых случаях ставят 50, 48... как это понимать?



BJIADOKC Сообщение # 4  | 23:57:28
Скриптеры
Сообщений: 601
Репутация: 161
Quote (DIZ_man)
а вот ты написал... Code new file[256], name[24]; что эти цифры обозначают? 24 и 256. А тоя видел в некоторых случаях ставят 50, 48... как это понимать?

ну поясню попроще, это "длина" переменной если переменная числовая (тоесть содержит число) то внутри квадратных скобок находится отдельная переменная (ну например есть переменная Freeze на заморозку... а нам нужно замарозить какого нить одного игрока... а если мы просто используем переменную, то заморозит всех) в таком случае используется Freeze[MAX_PLAYERS] (обычно MAX_PLAYERS = 500, тоесть макс. число слотов), тоесть из одной переменной получается уже 500 переменных, каждая для отдельного игрока.
так же можно создать 2ю константу (например для заморозки машины игрока), тогда будет Freeze[MAX_PLAYERS][MAX_VEHICLES] (минус такого в том, что потом амх файл будет +1-3мб, с каждой такой переменной) ну тут уже отдельных переменных получится 500*2000....
другое дело когда работаешь с текстом. когда форматируешь текст (format) лучше всегда бери размер переменной 256, так как это самый максимальный размер для вывода в чат и на текстдрав (так же бери этот размер для strtok и dini_Get, так как неизвестно, сколько будем брать) для имени лучше всего брать 24, так как это макс. длина имени (1 байт (string[256] содержится 256 байт) примерно равен одному латинскому символу, а на русском одна буква принята за 3 байта) есть одно исключение, для диалогов ты можешь брать стринги до 5000 байт, так как это нормальный для диалога размер (для сообщения в чат это слишком перебор)
З.Ы если хочешь сделать стрингу в чат/текстдрав не делай размер больше 256, иначе не выведет
З.Ы.Ы а если юзаешь strtok или dini_Get бери ровно 256, не ошибешься smile


тут больше не сижу... открыл свой проект


Редактировано BJIADOKC - Среда, 20 Апр 2011, 00:00:17
DIZ_man Сообщение # 5  | 20:54:53
Пользователи
Сообщений: 27
Репутация: 0
ООоооо биг сэнкс! Ваще помог! Я это объяснение искал уже где то год )))

Всё.. владокс ты мой кумир angel angel angel



BJIADOKC Сообщение # 6  | 09:40:06
Скриптеры
Сообщений: 601
Репутация: 161
Quote (DIZ_man)
владокс ты мой кумир

lol ok


тут больше не сижу... открыл свой проект
=TRAUSER= Сообщение # 7  | 20:36:03
Пользователи
Сообщений: 132
Репутация: 2
а как сделать чтоб фраги сохр. были на нике
BJIADOKC Сообщение # 8  | 17:13:36
Скриптеры
Сообщений: 601
Репутация: 161
в public OnPlayerConnect(playerid)
Code

new stringa[128], Name[24];
GetPlayerName(playerid,Name,24);
format(stringa,128,"%s.ini",Name);
if(!dini_Exists(stringa)) {RegisterPlayer(playerid,stringa);}

в самый конец:
Code

stock RegisterPlayer(playerid,way[])
{
dini_Create(way);
dini_IntSet(way,"Score",0);
}

и в OnPlayerDeath
Code

new stringa[128], Name[24];
GetPlayerName(killerid,Name,24);
format(stringa,128,"%s.ini",Name);
SetPlayerScore(killerid,dini_Int(stringa,"Score")+1);
dini_IntSet(stringa,"Score",GetPlayerScore(killerid));


тут больше не сижу... открыл свой проект
=TRAUSER= Сообщение # 9  | 17:27:29
Пользователи
Сообщений: 132
Репутация: 2
Code
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(760) : warning 219: local variable "Name" shadows a variable at a preceding level
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(763) : error 017: undefined symbol "dini_Exists"
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(2694) : warning 219: local variable "Name" shadows a variable at a preceding level
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(2697) : error 017: undefined symbol "dini_Int"
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(2698) : error 017: undefined symbol "dini_IntSet"
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(7083) : error 017: undefined symbol "dini_Create"
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(7084) : error 017: undefined symbol "dini_IntSet"
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(7081) : warning 203: symbol is never used: "playerid"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

5 Errors.
sad sad sad
Demetrius Сообщение # 10  | 17:32:58
VIP-пользователи
Сообщений: 1192
Репутация: 158
=TRAUSER=, 1)найди в поиске "инклуд Dini"
2)засунь его в папку "папка_сервера\pawno\include"
3)добавь в самом начале:
Code
#include <Dini>


Sweet >>> Armin >>> Demetrius

SA:MP >> MTA:SA >> IRL
BJIADOKC Сообщение # 11  | 17:34:57
Скриптеры
Сообщений: 601
Репутация: 161
Quote (Armin)
2)засунь его в папку "папка_сервера\pawno\include"

у меня компилятор в папке Program Files tongue


тут больше не сижу... открыл свой проект
=TRAUSER= Сообщение # 12  | 18:43:42
Пользователи
Сообщений: 132
Репутация: 2
Code
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(761) : warning 219: local variable "Name" shadows a variable at a preceding level
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(1120) : error 047: array sizes do not match, or destination array is too small
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(2695) : warning 219: local variable "Name" shadows a variable at a preceding level
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(6814) : error 021: symbol already defined: "strtok"
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(6829) : error 047: array sizes do not match, or destination array is too small
C:\Documents and Settings\User\Рабочий стол\Новый pwn мода\lvdm.pwn(7082) : warning 203: symbol is never used: "playerid"
Pawn compiler 3.2.3664     Copyright (c) 1997-2006, ITB CompuPhase

3 Errors.
BJIADOKC Сообщение # 13  | 12:16:34
Скриптеры
Сообщений: 601
Репутация: 161
в скайп зайди, я тебе немного другой дини кину

тут больше не сижу... открыл свой проект
=TRAUSER= Сообщение # 14  | 12:20:54
Пользователи
Сообщений: 132
Репутация: 2
я в скайпе
Rafo Сообщение # 15  | 11:24:36
Пользователи
Сообщений: 2
Репутация: 0
Всем привет.Хороший урок давно искала.Спасибо автору.Но вот у меня вот это получилось

Code
C:\Documents and Settings\User\Ðàáî÷èé ñòîë\Cragrer\Pawno 2\include\streamer.inc(435) : warning 202: number of arguments does not match definition
C:\Documents and Settings\User\Ðàáî÷èé ñòîë\Cragrer\Pawno 2\include\streamer.inc(449) : warning 202: number of arguments does not match definition
C:\Documents and Settings\User\Ðàáî÷èé ñòîë\modskript\SSN.pwn(3087) : error 037: invalid string (possibly non-terminated string)
C:\Documents and Settings\User\Ðàáî÷èé ñòîë\modskript\SSN.pwn(3087 -- 3088) : error 001: expected token: ",", but found "if"
C:\Documents and Settings\User\Ðàáî÷èé ñòîë\modskript\SSN.pwn(3269) : warning 203: symbol is never used: "strtok"
Pawn compiler 3.0.3367   Copyright (c) 1997-2005, ITB CompuPhase

2 Errors.

Как исправить помогите пожалуйста
  • Страница 1 из 1
  • 1
Поиск: