Archived copy of war3source.com, the War3Source forum (2009–2020), rebuilt from the Internet Archive by wc3mods.net. This page was captured on 2012-10-25 (original capture). Forum · All archived topics · Wiki · Bug tracker · Blog
Chat

War3:Source
October 24, 2012, 07:44:07 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: Download: http://war3source.com/index.php?board=9.0
What is War3Source?: http://war3source.com/index.php?topic=200.0
Sample Stats: http://war3source.com/war3stats
Steam Community Group: http://steamcommunity.com/groups/war3source
War3Source SVN Checkout: http://ownageclan.com/svn/war3source/
War3Source servers: http://www.game-monitor.com/search.php?vars=war3_version=
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: [Russian] Перевод расы  (Read 479 times)
Divix
Sr. Member
****
Posts: 280


View Profile Email
« on: March 10, 2011, 02:06:02 PM »

Что я не так сделал? Помогите с переводом расы пожалуйста...
Мое:
War3Source_070_Headcrab.sp
Code:
/**
 * vim: set ai et ts=4 sw=4 :
 * File: War3Source_Headcrab.sp
 * Description: The HeadCrab race for War3Source.
 * Author(s): Vladislav Dolgov
 */

#pragma semicolon 1

#include <sourcemod>
#include "W3SIncs/War3Source_Interface"
#include <sdktools>
#include <sdktools_functions>
#include <sdktools_tempents>
#include <sdktools_tempents_stocks>

#include <sdkhooks>

new thisRaceID;

new SKILL_LONGJUMP,SKILL_FANGS,SKILL_FOURLEGS,SKILL_LATCH;

//skill 3
new const FangsInitialDamage=20;
new const FangsTrailingDamage=5;
new Float:FangsChanceArr[]={0.0,0.05,0.1,0.15,0.2};
new FangsTimes[]={0,2,3,4,5};
new BeingFangedBy[66];
new FangsRemaining[66];

//latch
new bool:bRound[66];
new BeingLatchedBy[66];
// Target getting killed
new LatchKilled[66];
new Float:LatchChanceArr[]={0.0,0.14,0.16,0.18,0.20};
new Float:LatchonDamageMin[]={0.0,3.0,4.0,5.0,6.0};
new Float:LatchonDamageMax[]={0.0,7.0,8.0,9.0,10.0};

new String:Fangsstr[]={"npc/roller/mine/rmine_blades_out2.wav"};

public Plugin:myinfo =
{
name = "War3Source Race - Headcrab",
author = "[Oddity]TeacerCreature",
description = "Headcrab race for War3Source.",
version = "1.0.0",
url = "http://warcraft-source.net/"
};

public OnPluginStart()
{
HookEvent("player_jump", Event_PlayerJump);
HookEvent("round_start",RoundStartEvent);

LoadTranslations("w3s.race.headcrab.phrases");
}

public OnWar3LoadRaceOrItemOrdered(num)
{
if(num==70)
{
/*thisRaceID=War3_CreateNewRace("Headcrab [HL2]", "headcrab");
SKILL_LONGJUMP=War3_AddRaceSkill(thisRaceID,"Power legs (passive)", "Long jump.",false,4);
SKILL_FOURLEGS=War3_AddRaceSkill(thisRaceID,"Four legs (passive)", "Low gravity.",false,4);
SKILL_FANGS=War3_AddRaceSkill(thisRaceID,"Fangs (attacker)", "Poison damage over time",false,4);
SKILL_LATCH=War3_AddRaceSkill(thisRaceID,"Latch On", "Latch on to killer and respawn",false,4); */

///new translated system
thisRaceID=War3_CreateNewRaceT("headcrab");
SKILL_LONGJUMP=War3_AddRaceSkillT(thisRaceID,"PowerLegs",false,4);
SKILL_FOURLEGS=War3_AddRaceSkillT(thisRaceID,"FourLegs",false,4);
SKILL_FANGS=War3_AddRaceSkillT(thisRaceID,"Fangs",false,4);
SKILL_LATCH=War3_AddRaceSkillT(thisRaceID,"LatchOn",false,4);

War3_CreateRaceEnd(thisRaceID);
}
}

public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
{
MarkNativeAsOptional("SDKHook");
MarkNativeAsOptional("SDKUnhook");
return APLRes_Success;
}

public OnMapStart()
{
PrecacheModel("models/headcrab.mdl", true);
PrecacheModel("models/headcrabblack.mdl", true);
War3_PrecacheSound(Fangsstr);
}

public RoundStartEvent(Handle:event,const String:name[],bool:dontBroadcast)
{
for(new i=1;i<=MaxClients;i++)
{
if(ValidPlayer(i))
{
bRound[i]=false;
}
}
}

public OnWar3EventSpawn(client)
{
new race = War3_GetRace(client);
if (race == thisRaceID)
{  
War3_SetMaxHP(client,War3_GetMaxHP(client)-50);
SetEntityHealth(client, 50);
if(GetClientTeam(client) == 3){
SetEntityModel(client, "models/headcrab.mdl");
}
else{
SetEntityModel(client, "models/headcrabblack.mdl");
}
new skill3_fourlegs = War3_GetSkillLevel(client, race, SKILL_FOURLEGS);
new Float:gravity = 1.00;
switch (skill3_fourlegs)
{
case 0:
gravity = 1.00;
case 1:
gravity = 0.90;
case 2:
gravity = 0.80;
case 3:
gravity = 0.70;
case 4:
gravity = 0.60;
}
War3_SetBuff(client,fLowGravitySkill,thisRaceID,gravity);
}
}

public OnSkillLevelChanged(client, race, skill, newskilllevel)
{
    if (client > 0)
    {
        if (race == thisRaceID && skill == 1)
        {
            new Float:gravity = 1.00;
            switch (newskilllevel)
            {
                case 0:
                    gravity = 1.00;
                case 1:
                    gravity = 0.90;
                case 2:
                    gravity = 0.80;
                case 3:
                    gravity = 0.70;
                case 4:
                    gravity = 0.60;
            }
            War3_SetBuff(client,fLowGravitySkill,thisRaceID,gravity);
        }
    }
}

public OnRaceSelected(client,  newrace)
{
if(newrace != thisRaceID)
{
War3_WeaponRestrictTo(client,thisRaceID,"");
War3_SetBuff(client,fLowGravitySkill,thisRaceID,1.0);
}
if(newrace == thisRaceID)
{
War3_WeaponRestrictTo(client,thisRaceID,"weapon_knife");
if(ValidPlayer(client,true))
{
if(GetClientTeam(client) == 3)
{
SetEntityModel(client, "models/headcrab.mdl");
}
else
{
SetEntityModel(client, "models/headcrabblack.mdl");
}
}
}
}

public Event_PlayerJump(Handle:event, const String:name[], bool:dontBroadcast)
{
    new client = GetClientOfUserId(GetEventInt(event,"userid"));
    if (client > 0)
    {
        new race = War3_GetRace(client);
        if (race == thisRaceID)
        {
            new skill2_longjump = War3_GetSkillLevel(client, race, SKILL_LONGJUMP);
            new Float:long_push = 1.00;
            switch (skill2_longjump)
            {
                case 0:
                    long_push = 1.10;
                case 1:
                    long_push = 1.15;
                case 2:
                    long_push = 1.20;
                case 3:
                    long_push = 1.25;
                case 4:
                    long_push = 1.30;
            }

            if (skill2_longjump > 0)
            {
                new v_0 = FindSendPropOffs("CBasePlayer","m_vecVelocity[0]");
                new v_1 = FindSendPropOffs("CBasePlayer","m_vecVelocity[1]");
                new v_b = FindSendPropOffs("CBasePlayer","m_vecBaseVelocity");
                new Float:finalvec[3];
                finalvec[0] = GetEntDataFloat(client, v_0) * long_push / 2.0;
                finalvec[1] = GetEntDataFloat(client, v_1) * long_push / 2.0;
                finalvec[2] = long_push * 50.0;
                SetEntDataVector(client, v_b, finalvec, true);
            }
        }
    }
}

public OnW3TakeDmgBullet(victim,attacker,Float:damage)
{
if(ValidPlayer(attacker,true)&&ValidPlayer(victim,true)&&GetClientTeam(victim)!=GetClientTeam(attacker))
{

//ATTACKER IS headcrab
if(War3_GetRace(attacker)==thisRaceID)
{
//fangs poison
new Float:chance_mod=W3ChanceModifier(attacker);
/// CHANCE MOD BY VICTIM
new skill_level = War3_GetSkillLevel(attacker,thisRaceID,SKILL_FANGS);
if(skill_level>0 && FangsRemaining[victim]==0 && GetRandomFloat(0.0,1.0)<=chance_mod*FangsChanceArr[skill_level]&&!Silenced(attacker))
{
if(W3HasImmunity(victim,Immunity_Skills))
{
PrintHintText(victim,"Immunity to Fangs");
PrintHintText(attacker,"Fangs Immunity");
}
else
{
PrintHintText(victim,"You got bitten by enemy with Fangs");
PrintHintText(attacker,"You bit your enemy with Fangs");
BeingFangedBy[victim]=attacker;
FangsRemaining[victim]=FangsTimes[skill_level];
War3_DealDamage(victim,FangsInitialDamage,attacker,DMG_BULLET,"fangs");
W3FlashScreen(victim,RGBA_COLOR_RED);

EmitSoundToAll(Fangsstr,attacker);
EmitSoundToAll(Fangsstr,victim);
CreateTimer(1.0,FangsLoop,victim);
}
}
}
}
}

public OnWar3EventDeath(victim,attacker)
{
if(ValidPlayer(victim)&&ValidPlayer(attacker))
{
new race = War3_GetRace(victim);
decl skilllevel;
if(race==thisRaceID)
{
skilllevel=War3_GetSkillLevel(victim,thisRaceID,SKILL_LATCH);
if(skilllevel>0&&GetRandomFloat(0.0,1.0)<=LatchChanceArr[skilllevel]&&!W3HasImmunity(attacker,Immunity_Ultimates)&&!Silenced(victim))
{
BeingLatchedBy[attacker]=victim;
PrintHintText(attacker,"You are being latched on by headcrab");
PrintHintText(victim,"Latched on to your killer");
EmitSoundToAll(Fangsstr,attacker);
EmitSoundToAll(Fangsstr,victim);
CreateTimer(2.0,LatchDamageLoop,attacker);
bRound[attacker]=true;
}
}
new headcrabperson=BeingLatchedBy[victim];
if(ValidPlayer( headcrabperson ))
{
if(War3_GetRace(headcrabperson)==thisRaceID && !IsPlayerAlive(headcrabperson))
{
War3_ChatMessage( headcrabperson , "Your killer died, you get to respawn");
LatchKilled[headcrabperson]=victim;
CreateTimer(0.2,RespawnPlayer,headcrabperson);
}
BeingLatchedBy[victim]=0;
}
}
}


public Action:LatchDamageLoop(Handle:timer,any:client)
{
if(ValidPlayer(client,true)&&ValidPlayer(BeingLatchedBy[client])&&bRound[client])
{

decl skill;
skill=War3_GetSkillLevel(BeingLatchedBy[client],thisRaceID,SKILL_LATCH);
War3_DealDamage(client,RoundFloat(GetRandomFloat(LatchonDamageMin[skill],LatchonDamageMax[skill])),BeingLatchedBy[client],_,"LatchOn",W3DMGORIGIN_ULTIMATE,W3DMGTYPE_TRUEDMG);
W3FlashScreen(client,RGBA_COLOR_RED, 0.5,0.5);
PrintToConsole(client,"Recieved -%d Latchon dmg",War3_GetWar3DamageDealt());
PrintToConsole(BeingLatchedBy[client],"Dealt -%d Latchon dmg",War3_GetWar3DamageDealt());
CreateTimer(1.0,LatchDamageLoop,client);
}
}

public Action:FangsLoop(Handle:timer,any:victim)
{
if(FangsRemaining[victim]>0 && ValidPlayer(BeingFangedBy[victim]) && ValidPlayer(victim,true))
{
War3_DealDamage(victim,FangsTrailingDamage,BeingFangedBy[victim],_,"Fangs",W3DMGORIGIN_ULTIMATE,W3DMGTYPE_TRUEDMG);
//War3_DealDamage(victim,FangsTrailingDamage,BeingFangedBy[victim],DMG_BULLET,"fangs");
FangsRemaining[victim]--;
W3FlashScreen(victim,RGBA_COLOR_RED, 0.3, 0.4);
CreateTimer(1.0,FangsLoop,victim);
}
}

public Action:RespawnPlayer(Handle:timer,any:client)
{
if(client>0&&!IsPlayerAlive(client)&&ValidPlayer(LatchKilled[client]))
{
War3_SpawnPlayer(client);
new Float:pos[3];
new Float:ang[3];
War3_CachedAngle(LatchKilled[client],ang);
War3_CachedPosition(LatchKilled[client],pos);
TeleportEntity(client,pos,ang,NULL_VECTOR);
}
}
w3s.race.headcrab.phrases.txt
Code:
"Phrases"
{
//<shortname>_RaceName
"headcrab_RaceName"
{
"ru" "Крабик"
}
"headcrab_skill_PowerLegs"
{
"ru" "Сильные ноги"
}
"headcrab_skill_PowerLegs_desc"
{
"ru" "авыф"
}
"headcrab_skill_FourLegs"
{
"ru" "Легкие ноги"
}
"headcrab_skill_FourLegs_desc"
{
"ru" "asd"
}
"headcrab_skill_Fangs"
{
"ru" "Ядовитые клыки"
}
"headcrab_skill_Fangs_desc"
{
"ru" "123"
}
"headcrab_skill_LatchOn"
{
"ru" "Чужая жизнь"
}
"headcrab_skill_LatchOn_desc"
{
"ru" "zzz"
}
"Immunity to Fangs"
{
"ru" "Имунитет от Клыков"
}
"Fangs Immunity"
{
"ru" "Имунитет от Клыков"
}
"You got bitten by enemy with Fangs"
{
"ru" "Вы были отравлены Клыками"
}
"You bit your enemy with Fangs"
{
"ru" "Вы укусили врага Клыками"
}
"Latched on to your killer"
{
"ru" "Вы получили чужую жизнь"
}
"You are being latched on by headcrab"
{
"ru" "В вас краб!"
}
"Your killer died, you get to respawn"
{
"ru" "Ваш убийца мертв, вы возраждаетесь!"
}
}
Исходник: http://war3source.com/index.php?topic=253.0
« Last Edit: March 12, 2011, 03:56:17 AM by Divix » Logged
rostex
Newbie
*
Posts: 8


View Profile Email
« Reply #1 on: March 11, 2011, 04:31:25 PM »

Нужно файл с переводом сохранять в формате .phrases
То есть должно быть w3s.race.headcrab.phrases, а не w3s.race.headcrab.phrases.txt
Logged
Divix
Sr. Member
****
Posts: 280


View Profile Email
« Reply #2 on: March 12, 2011, 12:18:10 AM »

Все разобрался, забыл дописать одну букву)))
Перевод из релиза скилов/рас/итемов был в .txt, все работает..
Logged
rostex
Newbie
*
Posts: 8


View Profile Email
« Reply #3 on: March 12, 2011, 04:23:58 AM »

Наверно что то перепутал, просто у меня была проблема с расширением файлов
Logged
Schmarotzer
Full Member
***
Posts: 189


Ich schmarotze dich!

258631507
View Profile WWW
« Reply #4 on: March 21, 2011, 05:35:47 PM »

Нужно файл с переводом сохранять в формате .phrases
То есть должно быть w3s.race.headcrab.phrases, а не w3s.race.headcrab.phrases.txt
лол, винду сперва настрой Smiley и не давай советов не зная
Logged

Welcome to my server
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!