|
Essential
|
 |
« on: June 01, 2011, 02:06:12 AM » |
|
Ставил новые расы на серв и сталкивался с таким родом ошибок: 1. В списках рас нет новой расы 2. Расу не возможно взять 3. Расу можно взять, но у нее нет скилов 4. Не возможно сменить никакую расу ( приходится удалять нов. расу ) 5. При выборе расы, серв падает
Как и что надо сделать, чтобы таких проблем не было? Что я не учел?
|
|
|
|
|
Logged
|
|
|
|
|
Ownz
|
 |
« Reply #1 on: June 01, 2011, 10:05:36 AM » |
|
base races works? what version of war3source?
|
|
|
|
|
Logged
|
 DarkEnergy
|
|
|
|
Frenzzy
|
 |
« Reply #2 on: June 01, 2011, 07:01:01 PM » |
|
Какая версия War3Source? Что в логах? ..\orangebox\game_mod\addons\sourcemod\logs\
|
|
|
|
|
Logged
|
O_o
|
|
|
Gadman
Newbie

Posts: 36
|
 |
« Reply #3 on: June 02, 2011, 02:59:54 AM » |
|
Version in use 1.2.0.7 Base races worked perfectly.
В логах ошибок касаемо вар3 нету!
|
|
|
|
|
Logged
|
|
|
|
|
Essential
|
 |
« Reply #4 on: June 02, 2011, 03:03:40 AM » |
|
да, и как это можно исправить? у меня каждая 2-3 раса не запускается, могу скинуть пример не запускающихся рас, если надо.
|
|
|
|
|
Logged
|
|
|
|
|
Divix
|
 |
« Reply #5 on: June 04, 2011, 01:08:27 AM » |
|
1. Если в списке расы нету значит она не работает 2. Не возможно взять это в каком смысле ? 3. У нее нету скилов из-за неправильного перевода. Ты заливал w3s.race.XXX.phrases ? Делал ли сам перевод ? 4. Опять проблема из-за перевода, ошибка где-то 5. Это из-за модельки может быть, проверь путь к модельке в sp и на сервере, также если присутствует сервер быстрой закачки не забывай обновлять 6) Дополнительно: не пиши русские символы в .sp, а также старайся держать сервер по англ. пути (на всякий случай) 7) При компиляции ошибок нету ?
|
|
|
|
|
Logged
|
|
|
|
|
Essential
|
 |
« Reply #6 on: June 04, 2011, 03:06:15 AM » |
|
1. А как сделать, чтобы заработала?) с твоим гостом проблема такая. Очень частая такая ошибка, хотя при компиляции ошибок нет. 2. Пишет, что лимит стоит, хотя никакого нет, причем лимит в 0 игроков с этой расой за команду 3. С этим разобрался, кстати перевод госта тогда получается не правильный. 4. Даже без перевода бывает такой косяк 5. моделек нет никаких
При компиляции ошибок нет, у кого какие догадки есть, подскажите, ну очень важно, а обратиться кроме как к вам - некому.
|
|
|
|
|
Logged
|
|
|
|
|
Divix
|
 |
« Reply #7 on: June 05, 2011, 06:01:22 AM » |
|
1. Ну для каждой расы свое... 2. Создай в War3Source лимит расы если нету (даже если тебе это не надо). И вот еще я видел на 0.7 очень часто такую проблему, на 1.7+ уже не замечал... 3. А что в госте неправильного ?) 4. Значит опять же надо проверять саму расу на предмет ошибок 5. Тогда пункт 4 6) Проверяй/ь раса которая не работает через ркон (sm plugins list - в самому низе пишет часто)
|
|
|
|
|
Logged
|
|
|
|
|
Essential
|
 |
« Reply #8 on: June 05, 2011, 06:35:08 AM » |
|
а есть какие-нибудь проги помогающие с расами? в госте хз че не правильно, компилятор молчит Divix добавляйся в скайп, по общаемся, мож найдем общий язык))) ( pro_freeman )
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Essential
|
 |
« Reply #10 on: June 05, 2011, 07:09:32 AM » |
|
к сожалению так и не узнал решения проблем
|
|
|
|
|
Logged
|
|
|
|
|
Divix
|
 |
« Reply #11 on: June 05, 2011, 10:56:01 AM » |
|
Ну мб расу напишешь в которой проблема....
|
|
|
|
|
Logged
|
|
|
|
|
Essential
|
 |
« Reply #12 on: June 05, 2011, 11:14:02 AM » |
|
ну вот твоя раса без перевода только, мож ты модельки какие-нибудь не скинул? из-за них проблема? #pragma semicolon 1
#include <sourcemod> #include "W3SIncs/War3Source_Interface"
new Handle:NoclipCooldownCvar;
new thisRaceID;
new SKILL_METKA,SKILL_ASTRAL,SKILL_INVIS,ULT_NOCLIP;
new Float:NoclipDuration[5]={0.0,1.0,2.0,3.0,4.0}; new Float:Invisible[5]={1.0,0.90,0.80,0.70,0.60}; new Float:oldPos[MAXPLAYERS][3]; new Float:AstralCoolDown[5]={100.0,17.0,14.0,11.0,7.0}; new bool:bMetka[66]; new Float:this_pos[3]; new GlowSprite; new MetkaBy[66]; new Float:Ability1CooldownTime=10.0; new Float:MetkaDuration[]={0.0,1.0,2.0,3.0,4.0};
public Plugin:myinfo = { name = "War3Source Race - Ghost", author = "DiviX", description = "The Ghost race for War3Source.", version = "1.0", url = "http://xn----gtbjdm6ba.xn--p1ai/" };
public OnWar3LoadRaceOrItemOrdered2(num) { if (num==107) { thisRaceID=War3_CreateNewRaceT("ghost"); SKILL_METKA=War3_AddRaceSkillT(thisRaceID,"1",false,4); SKILL_ASTRAL=War3_AddRaceSkillT(thisRaceID,"2",false,4); SKILL_INVIS=War3_AddRaceSkillT(thisRaceID,"3",false,4); ULT_NOCLIP=War3_AddRaceSkillT(thisRaceID,"4",true,4); W3SkillCooldownOnSpawn(thisRaceID,ULT_NOCLIP,20.0,_,"NoClip"); War3_CreateRaceEnd(thisRaceID); } }
public OnGameFrame() { for(new i=0;i<=MaxClients;i++) { if(ValidPlayer(i,true)&&War3_GetRace(i)==thisRaceID) { for(new y=0;y<=MaxClients;y++) { if(ValidPlayer(y,true)&&GetClientTeam(y)!=GetClientTeam(i)) { if(bMetka[y]==true) { GetClientAbsOrigin(y,this_pos); this_pos[2]+=20; TE_SetupGlowSprite(this_pos,GlowSprite,0.1,0.6,80); TE_SendToClient(i,0.1); } } } } } }
public OnMapStart() { GlowSprite=PrecacheModel("effects/redflare.vmt");
}
public OnPluginStart() { NoclipCooldownCvar=CreateConVar("war3_ghost_noclip_cooldown","20","Cooldown timer."); }
public OnRaceChanged(client,oldrace,newrace) { if( newrace != thisRaceID ) { W3ResetAllBuffRace( client, thisRaceID ); } if(newrace==thisRaceID) { if(ValidPlayer(client,true)) { InitPassiveSkills(client); } } }
public OnSkillLevelChanged(client,race,skill,newskilllevel ) { InitPassiveSkills(client); }
public InitPassiveSkills(client) { if( War3_GetRace(client)==thisRaceID ) { War3_SetBuff(client,fInvisibilitySkill,thisRaceID,Invisible[War3_GetSkillLevel(client,thisRaceID,SKILL_INVIS)]); } }
public OnWar3EventSpawn(client) { if(War3_GetRace(client)==thisRaceID) { InitPassiveSkills( client ); } }
public Action:metkaoff(Handle:h, any:client) { if(IS_PLAYER(client)) { bMetka[client]=false; } }
public OnWar3EventDeath(victim,attacker) { if(bMetka[victim]==true) { new old_XP = War3_GetXP(MetkaBy[victim],thisRaceID); new xp; xp = 10; War3_SetXP(MetkaBy[victim],thisRaceID,old_XP+xp); bMetka[victim]=false; } }
public OnAbilityCommand(client,ability,bool:pressed) { if(War3_GetRace(client)==thisRaceID && ability==0 && pressed && IsPlayerAlive(client)) { new skill_level=War3_GetSkillLevel(client,thisRaceID,SKILL_ASTRAL); if(skill_level>0) { if(War3_SkillNotInCooldown(client,thisRaceID,SKILL_ASTRAL,true)) { if(!Silenced(client)) {
PrintHintText(client,"%T","Astral",client); Astral(client); War3_CooldownMGR(client,AstralCoolDown[skill_level],thisRaceID,SKILL_ASTRAL);
} else { PrintHintText(client,"%T","Silenced",client); } } } } if(War3_GetRace(client)==thisRaceID && ability==1 && pressed && IsPlayerAlive(client)) { new skill_level=War3_GetSkillLevel(client,thisRaceID,SKILL_METKA); if(skill_level>0) { if(War3_SkillNotInCooldown(client,thisRaceID,SKILL_METKA,true)&&!Silenced(client)) { War3_CooldownMGR(client,Ability1CooldownTime,thisRaceID,SKILL_METKA); for (new i=1;i<=MaxClients;i++) { if(ValidPlayer(i,true)&&IsPlayerAlive(i)) { if(i>0 && !W3HasImmunity(i,Immunity_Ultimates)) { PrintHintText(client,"%T","Metka: Marked Target",client); bMetka[i]=true; MetkaBy[i]=client; CreateTimer(MetkaDuration[skill_level],metkaoff,i); } else { PrintHintText(client,"No target"); } } } } } } }
Action:Astral(client) {
new Float:client_pos[3]; new Float:pos[3]={0.0,0.0,-900.0}; GetClientAbsOrigin( client, client_pos ); GetClientAbsOrigin( client, oldPos[client] ); TeleportEntity( client, pos, NULL_VECTOR, NULL_VECTOR ); CreateTimer( 0.1, Freeze, client ); CreateTimer( 1.5, UnFreeze, client ); }
public Action:Freeze( Handle:timer, any:client ) { if( ValidPlayer( client, true ) ) { War3_SetBuff( client, bNoMoveMode, thisRaceID, true ); } }
public Action:UnFreeze( Handle:timer, any:client ) { if( ValidPlayer( client, true ) ) { TeleportEntity( client, oldPos[client], NULL_VECTOR, NULL_VECTOR ); War3_SetBuff( client, bNoMoveMode, thisRaceID, false ); } }
public OnUltimateCommand(client,race,bool:pressed) { if(race==thisRaceID && IsPlayerAlive(client) && pressed && !Silenced(client)) { new ult_level=War3_GetSkillLevel(client,race,ULT_NOCLIP); if(ult_level>0) { if(!Silenced(client)&&War3_SkillNotInCooldown(client,thisRaceID,ULT_NOCLIP,true)) { War3_SetBuff(client,bNoClipMode,thisRaceID,true); new Float:noclip_time=NoclipDuration[ult_level]; CreateTimer(noclip_time,StopNoclip,client); War3_CooldownMGR(client,GetConVarFloat(NoclipCooldownCvar),thisRaceID,ULT_NOCLIP,_,_); } } } }
public Action:StopNoclip(Handle:timer,any:client) { War3_SetBuff(client,bNoClipMode,thisRaceID,false); }
|
|
|
|
« Last Edit: June 05, 2011, 11:19:21 AM by Essential »
|
Logged
|
|
|
|
|
Essential
|
 |
« Reply #13 on: June 05, 2011, 11:18:21 AM » |
|
или вот: она тебе наверно покажет ошибки, просто подправь "color" и устаревшие команды /** * File: War3Source_Necromancer.sp * Description: The Necromancer unit for War3Source. * Author(s): [Oddity]TeacherCreature */ #pragma semicolon 1 #include <sourcemod> #include "W3SIncs/War3Source_Interface" #include <sdkhooks> #include <sdktools> #include <sdktools_functions> #include <sdktools_tempents> #include <sdktools_tempents_stocks> //native War3_GetAimEndPoint(client,Float:returnvector[3]); new thisRaceID; //skill 1 new Float:CrippleChance[]={0.00,0.20,0.24,0.28,0.32,0.36,0.40,0.44,0.48}; //skill 2 new FrenzyCost[]={0,8,7,6,5,4,3,2,1}; new bool:bFrenzy[66]; //skill 3 new Mastery[9]={40,45,50,55,60,65,70,75,80}; //skill 4 new String:facsnd[]="vo/trainyard/ba_backup.wav"; new Raiser[66]; new Skeleton[66]; new Float:RaiseDeadChance[9]={0.0,0.40,0.40,0.45,0.50,0.55,0.60,0.65,0.70}; new g_offsCollisionGroup; new SKILL_CRIPPLE, SKILL_UNHOLYFRENZY, SKILL_MASTERY, ULT_RAISEDEAD; public Plugin:myinfo = { name = "War3Source Race - Necromancer", author = "[Oddity]TeacherCreature", description = "The Necromancer unit for War3Source.", version = "1.0.0.0", url = "warcraft-source.net" } public OnWar3LoadRaceOrItemOrdered(num) { if(num==186) { thisRaceID=War3_CreateNewRace("[ALPHA]Necromancer","necro"); SKILL_CRIPPLE=War3_AddRaceSkill(thisRaceID,"Cripple(attacker)","Slow and weaken your enemy",false,8); SKILL_UNHOLYFRENZY=War3_AddRaceSkill(thisRaceID,"Unholy Frenzy(ability)","Take dmg but increased attack rate (+ability)",false,8); SKILL_MASTERY=War3_AddRaceSkill(thisRaceID,"Skeletal Mastery(passive)","Enhanced Skeletons with health and cripple",false,8); ULT_RAISEDEAD=War3_AddRaceSkill(thisRaceID,"Raise Dead(ultimate)","You raise a skeleton to fight with you",true,8); War3_CreateRaceEnd(thisRaceID); } } public OnMapStart() { War3_PrecacheSound(facsnd); } public OnPluginStart() { g_offsCollisionGroup = FindSendPropOffs("CBaseEntity", "m_CollisionGroup"); } public Action:OnWar3TakeDamage(victim,attacker,inflictor,Float:damage,damagetype) { if(IS_PLAYER(victim)&&IS_PLAYER(attacker)&&victim>0&&attacker>0&&attacker!=victim) { new vteam=GetClientTeam(victim); new ateam=GetClientTeam(attacker); if(vteam!=ateam) { new race_attacker=War3_GetRace(attacker); new skill_level=War3_GetSkillLevel(attacker,thisRaceID,SKILL_CRIPPLE); if(race_attacker==thisRaceID && skill_level>0 ) { if(GetRandomFloat(0.0,1.0)<=CrippleChance[skill_level] && !War3_GetImmunity(victim,Immunity_Skills)) { War3_SetBuff(victim,fSlow,thisRaceID,0.6); War3_SetBuff(victim,fAttackSpeed,thisRaceID,0.5); War3_FlashScreen(victim,RGBA_COLOR_RED); CreateTimer(2.0,RemoveCripple,victim); PrintHintText(victim,"You have been crippled!"); PrintHintText(attacker,"Crippled!"); } } } } } public Action:RemoveCripple(Handle:t,any:client){ War3_SetBuff(client,fSlow,thisRaceID,1.0); War3_SetBuff(client,fAttackSpeed,thisRaceID,1.0); } public Action:UnfreezePlayer(Handle:timer,any:userid) { new client=GetClientOfUserId(userid); if(client>0) { //PrintHintText(client,"NO LONGER BASHED"); War3_SetBuff(client,bBashed,thisRaceID,false); SetEntityMoveType(client,MOVETYPE_WALK); } } public OnAbilityCommand(client,ability,bool:pressed) { if(War3_GetRace(client)==thisRaceID && ability==0 && pressed && IsPlayerAlive(client)) { new skill_level=War3_GetSkillLevel(client,thisRaceID,SKILL_UNHOLYFRENZY); if(skill_level>0) { if(War3_SkillNotInCooldown(client,thisRaceID,SKILL_UNHOLYFRENZY,true)) { if(bFrenzy[client]==false) { bFrenzy[client]=true; CreateTimer(0.1,Frenzy,client); War3_CooldownMGR(client,3.0,thisRaceID,SKILL_UNHOLYFRENZY,_,_,_,"Unholy Frenzy"); PrintHintText(client,"Unholy Frenzy: Activated be careful"); } else { bFrenzy[client]=false; PrintHintText(client,"Unholy Frenzy: Deactivated"); } } } } } public Action:Frenzy(Handle:t,any:client) { new skill_level=War3_GetSkillLevel(client,thisRaceID,SKILL_UNHOLYFRENZY); if(skill_level>0) { if(bFrenzy[client]==true) { new hpsub=FrenzyCost[skill_level]; if(hpsub<GetClientHealth(client)) { SetEntityHealth(client,GetClientHealth(client)-hpsub); } else { War3_DealDamage(client,FrenzyCost[skill_level],client,DMG_BULLET,"Unholy Frenzy"); } War3_SetBuff(client,fAttackSpeed,thisRaceID,1.4); CreateTimer(1.0,Frenzy,client); } else { War3_SetBuff(client,fAttackSpeed,thisRaceID,1.0); } } } public OnRaceSelected(client, newrace) { if(newrace!=thisRaceID) { bFrenzy[client]=false; War3_SetBuff(client,fAttackSpeed,thisRaceID,1.0); War3_SetPlayerColor(client,255,255,255); } } public OnWar3EventSpawn(client) { new race = War3_GetRace(client); if (race == thisRaceID) { bFrenzy[client]=false; SetEntityModel(client, "models/player/techknow/trophy/trophy.mdl"); if(GetClientTeam(client)==3) { War3_SetPlayerColor(client,255,255,255); } else { War3_SetPlayerColor(client,220,50,0); } } } public OnUltimateCommand(client,race,bool:pressed) { if(race==thisRaceID && pressed && IsPlayerAlive(client)) { new skill=War3_GetSkillLevel(client,race,ULT_RAISEDEAD); if(skill>0) { if(War3_SkillNotInCooldown(client,thisRaceID,3,true)) { new skill_master=War3_GetSkillLevel(client,thisRaceID,SKILL_MASTERY); if(GetRandomFloat(0.0,1.0)<=RaiseDeadChance[skill]) { new summonerteam; summonerteam=GetClientTeam(client); new possibletargets[MAXPLAYERS]; new possibletargetsfound; for(new x=1;x<=MaxClients;x++) { if(War3_ValidPlayer(x) && summonerteam==GetClientTeam(x) && IsPlayerAlive(x)==false) { //new summonteam=GetClientTeam(x); //if(summonteam==summonerteam && IsPlayerAlive(x)==false) //{ possibletargets[possibletargetsfound]=x; possibletargetsfound++; // } } } new onetarget; if(possibletargetsfound>0) { onetarget=GetRandomInt(0, possibletargetsfound-1); //i hope random 0 0 works to zero if(onetarget>0) { War3_CooldownMGR(client,15.0,thisRaceID,ULT_RAISEDEAD,_,_,_,"Raise dead"); new Float:ang[3]; new Float:pos[3]; War3_SpawnPlayer(onetarget); GetClientEyeAngles(client,ang); GetClientAbsOrigin(client,pos); pos[0]+=45.0; pos[1]+=45.0; pos[2]+=5.0; TeleportEntity(onetarget,pos,ang,NULL_VECTOR); EmitSoundToAll(facsnd,client); Raiser[onetarget]=client; Skeleton[client]=onetarget; SetEntityModel(onetarget, "models/player/slow/bones/bones.mdl"); if(GetClientTeam(onetarget)==3) { War3_SetPlayerColor(onetarget,20,100,200); //fyi the new buff sytem includes setplayercolor, so ud have to change all these functions names } else { War3_SetPlayerColor(onetarget,200,100,20); } //War3_WeaponRestrictTo(onetarget,"weapon_knife"); War3_SetMaxHP(onetarget, Mastery[skill_master]); War3_SetBuff(onetarget,fMaxSpeed,thisRaceID,0.9); PrintHintText(onetarget,"RaiseDead: You were raised as a skeleton"); PrintHintText(client,"RaiseDead: You raise a skeleton"); SetEntData(onetarget, g_offsCollisionGroup, 2, 4, true); CreateTimer(2.0,normal,onetarget); } } else { PrintHintText(client,"RaiseDead: Need a corpse"); } } else { PrintHintText(client,"RaiseDead: Failed"); War3_CooldownMGR(client,3.0,thisRaceID,ULT_RAISEDEAD,_,_,_,"Raise dead"); } } } } } public Action:normal(Handle:timer,any:client) { new Float:end_dist=50.0; new Float:end_pos[3]; GetClientAbsOrigin(client,end_pos); for(new i=1;i<=MaxClients;i++) { if(War3_ValidPlayer(i,true)&&i!=client) { new Float:pos[3]; GetClientAbsOrigin(i,pos); new Float:dist=GetVectorDistance(end_pos,pos); if(dist<=end_dist) { CreateTimer(0.3,normal,i); } else{ SetEntData(client, g_offsCollisionGroup, 5, 4, true); SetEntData(i, g_offsCollisionGroup, 5, 4, true); } } } }
|
|
|
|
« Last Edit: June 05, 2011, 11:23:05 AM by Essential »
|
Logged
|
|
|
|
|
Essential
|
 |
« Reply #14 on: June 06, 2011, 01:48:38 PM » |
|
епт, еще 1 косяк у 1 расы, единственной на серве не сохраняется опыт, че с этим делать???
|
|
|
|
|
Logged
|
|
|
|
|
Frenzzy
|
 |
« Reply #15 on: June 06, 2011, 05:50:38 PM » |
|
..\orangebox\<game mod>\addons\sourcemod\scripting\W3SIncs\constants.inc
У тебя на сервере больше рас чем указанно в этой переменной? #define MAXRACES
|
|
|
|
|
Logged
|
O_o
|
|
|
|
Divix
|
 |
« Reply #16 on: June 07, 2011, 02:51:09 AM » |
|
Для начал некр, тот которого ты скинул он сам по себе не работает... Дальше: Ты стандартные расы smx кидал? В SDKHooks проблема не может быть ? И насчет опыта, наверное что-то в 2 расах похожее, к примеру сокращенное имя zombie и zombie, номер (если честно я не совсем понял зачем он нужен так что насчет этого хз)...
|
|
|
|
|
Logged
|
|
|
|
|
Essential
|
 |
« Reply #17 on: June 07, 2011, 05:18:10 AM » |
|
Divix, я же написал, что некр не работает, свои исправления писать не стал, мало ли. Но я бы не сказал, что абсолютно не работает, вот твой гост, абсолютно не работает, а этот подлежит подправке. Я глянул на твою ульту, как это она может работать, эти 5 строчек в жизни не будут работать. Я не знаю что у тебя за версия, но на моей точно.
|
|
|
|
« Last Edit: June 07, 2011, 06:05:05 AM by Essential »
|
Logged
|
|
|
|
|