Murderer Disable

05/25/2013 13:41 nybo94#1
Hello ElitePvpers,

I want Disable Murderer.. anyone have a idea :confused:
05/26/2013 05:13 Anonymous-6723#2
Make all chars starting with really really HIGH murder level so the game won't allow them to attack each-other :)
05/26/2013 09:11 magicanoo#3
_Char

DailyPK value,i think the max is 200 or so.
05/26/2013 13:23 nybo94#4
Thanks for the answere but all testet :D nothing work

more idea`s ? I slowly go out of me xD
05/26/2013 16:47 Anonymous-6723#5
wait .. how exactly u made it ? It should work....
05/28/2013 19:03 nybo94#6
Quote:
Originally Posted by Zed* View Post
wait .. how exactly u made it ? It should work....
SRO_VT_SHard - _Char Dailypk 200

I've already tried every combination
05/29/2013 15:22 Anonymous-6723#7
Code:
USE [SRO_VT_SHARD_INIT]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewChar]    Script Date: 05/29/2013 16:18:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




ALTER PROCEDURE [dbo].[_AddNewChar]
	@UserJID			INT,        
	--@CharSlot			INT,        
	@RefCharID			INT,        
	@CharName			varchar (64),        
	@CharScale			tinyINT,        
	@StartRegionID			INT,        
	@StartPos_X			real,        
	@StartPos_Y			real,        
	@StartPos_Z			real,        
	@DefaultTeleport	INT,        
	@RefMailID			INT,        
	@RefPantsID			INT,        
	@RefBootsID			INT,        
	@RefWeaponID		INT,        
	@RefShield			INT,        
	@DurMail			tinyINT,        
	@DurPants			tinyINT,        
	@DurBoots			tinyINT,        
	@DurWeapon			tinyINT,        
	@DurShield			tinyINT,        
	@DefaultArrow		INT        
AS    
    
SET NOCOUNT ON      

	DECLARE @Slot  INT        
	DECLARE @temp  INT        
	        
	DECLARE @NewCharID  INT        
	SET @NewCharID = 0        
       
       
	-----------------------------------------------------------------------------        
	-- 1. 캐릭터 슬롯 넘버가 valid한 것인지, 그리고 빈슬롯이 맞는지 먼저 체크한다.        
	-----------------------------------------------------------------------------        
	     
	-- start by novice.        
	SELECT @temp = count(CharID) FROM _User WITH (NOLOCK) WHERE UserJID = @UserJID        
	      
	IF (@temp >= 4)        
	BEGIN        
		-- 너무 많자나        
		RETURN -2        
	END        
	-- finish by novice.        
      
	-----------------------------------------------------------------------------        
	-- 2. 캐릭터 추가하기        
	-----------------------------------------------------------------------------        
	IF (@CharScale > 68) -- 0100 0100 --> 68 이다!        
	BEGIN        
		-- 캐릭터 생성 실패! 스케일 값이 이상하다!         
		RETURN -3        
	END
        
	EXEC @temp = _IsExistingCharName @CharName        
	IF (@temp <> 0)        
	BEGIN        
		-- 이미 사용중인 이름이라는데?        
		RETURN -4        
	END        
    
BEGIN TRANSACTION
    
	-- 인던시스템이 적용되면�* 마지막에 WorldID와 1값을 더 넣어 주었다!      
	INSERT INTO _Char (RefObjID, CharName16, Scale, Strength, Intellect, LatestRegion,PosX, PosY, PosZ, AppointedTeleport, InventorySize,      
				LastLogout, CurLevel, MaxLevel, RemainGold, RemainStatPoint, RemainSkillPoint, HP, MP, JobLvl_Trader, JobLvl_Hunter, JobLvl_Robber, WorldID, TotalPK, DailyPK)      
	VALUES (@RefCharID, @CharName, @CharScale, 20, 20, 27091, 971.000061, 532.935669, 963, 2094, 77,      
				GetDate(), 1, 1, 5000000, 0, 500000, 200,200, 1, 1, 1, 1,100,100)      
    
	SET @NewCharID = @@IDENTITY        
	IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)        
	BEGIN        
		-- 캐릭터 생성 실패!        
		ROLLBACK TRANSACTION        
		RETURN -5        
	END        
	    
	       
	-- start by novice.        
	-- 이제 Slot 안쓴다.. 그냥 Insert 만..        
	INSERT INTO _User VALUES (@UserJID, @NewCharID)        
	-- finish by novice.        
      
      
	 -----------------------------------------------------------------------------        
	 -- 3-1. 장비 슬롯 채우기        
	 -- [인벤토리 슬롯 96개] + [장비슬롯 13개] <- 인벤토리 확장 �*비스 후 48개에�* 96개로 증가!!!(woos0)
	 -----------------------------------------------------------------------------        
	 --PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	 INSERT INTO _Inventory(CharID, Slot, ItemID)        
	  SELECT @NewCharID, cnt, 0        
	   FROM _RefDummySlot with( nolock )       
	    WHERE cnt < 109        

	      
	IF (@@ERROR <> 0)        
	BEGIN        
		-- 인벤토리 생성 실패!        
		ROLLBACK TRANSACTION        
		RETURN -7         
	END        

	--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	       
	-- 디폴트로 선택한 아이템을 다시 넣어주자...        
	/* 요런 순�*로  정의되어 있다.        
	0: EQUIP_SLOT_HELM        
	1: EQUIP_SLOT_MAIL,        
	2: EQUIP_SLOT_SHOULDERGUARD,        
	3: EQUIP_SLOT_GAUNTLET,        
	4: EQUIP_SLOT_PANTS,        
	5: EQUIP_SLOT_BOOTS,        
	6: EQUIP_SLOT_WEAPON,        
	7: EQUIP_SLOT_SHIELD or ARROW,        
	8: EQUIP_SLOT_EARRING,        
	9: EQUIP_SLOT_NECKLACE,        
	10: EQUIP_SLOT_L_RING,        
	11: EQUIP_SLOT_R_RING,        
	*/        
	       
	DECLARE @ItemID BIGINT        
	SET @ItemID = 0        
	-- 상갑        
	IF (@RefMailID <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 1, @RefMailID, @DurMail        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -8        
		END        
	END        
	-- 바지        
	IF (@RefPantsID <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 4, @RefPantsID, @DurPants        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -9        
		END        
	END        
	-- Boots        
	IF (@RefBootsID <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 5, @RefBootsID, @DurBoots        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -10        
		END        
	END        
	-- Weapon        
	IF (@RefWeaponID <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 6, @RefWeaponID, @DurWeapon        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -11        
		END        
	END        
	-- 방패        
	IF (@RefShield <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @RefShield, @DurShield        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -12        
		END        
	END        
	-- 혹시 default로 선택한 무기가 활이라면 �*살 250개들이 활통도 함께 준다. 죠치?        
	IF (@DefaultArrow <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @DefaultArrow, 250        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -13        
		END        
	END


	 -----------------------------------------------------------------------------        
	 -- 3-2. 아바타 Inventory 슬롯 채우기        
	 -- [아바타 인벤토리 슬롯 5개]
	 -- APPLY_AVATAR_SYSTEM이 적용되면�* 추가되는 부분
	 -----------------------------------------------------------------------------        
	 --PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	 INSERT INTO _InventoryForAvatar(CharID, Slot, ItemID)        
	  SELECT @NewCharID, cnt, 0
	   FROM _RefDummySlot with( nolock )       
	    WHERE cnt < 5

	      
	IF (@@ERROR <> 0)        
	BEGIN        
		-- 아바타 인벤토리 생성 실패!        
		ROLLBACK TRANSACTION        
		RETURN -14
	END        
	--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	      
	-----------------------------------------------------------------------------        
	-- default skill넣어주기        
	-----------------------------------------------------------------------------        
	DECLARE @country tinyINT        
	EXEC @country = _GetObjCountry @RefCharID        
	       
	INSERT INTO _CharSkillMastery (CharID, MasteryID, Level)        
	SELECT @NewCharID, MasteryID, 0        
	FROM _RefCharDefault_SkillMastery  with(nolock)      
	WHERE Race = @country or Race = 3        
	IF (@@error <> 0)        
	BEGIN        
		ROLLBACK TRANSACTION        
		RETURN -15        
	END        
	INSERT INTO _CharSkill (CharID,SkillID,Enable)        
	SELECT @NewCharID, SkillID, 1        
	FROM  _RefCharDefault_Skill  with(nolock)      
	WHERE Race = @country or Race = 3        
	IF (@@error <> 0)        
	BEGIN        
		ROLLBACK TRANSACTION        
		RETURN -16        
	END        
	-----------------------------------------------------------------------------        
	-- 기본 퀘스트 넣어주기
	-----------------------------------------------------------------------------        
	INSERT INTO _CharQuest (CharID, QuestID, Status, AchievementCount, StartTime, EndTime, QuestData1, QuestData2)        
	SELECT @NewCharID, ID, 1, 0, getdate(), getdate(), 0, 0        
	FROM _RefQuest
	WHERE CodeName in (SELECT CodeName FROM _RefCharDefault_Quest  with(nolock) WHERE (Race = @country or Race = 3) and RequiredLevel = 1 and Service = 1)
	IF (@@error <> 0)
	BEGIN
		ROLLBACK TRANSACTION        
		RETURN -17        
	END    
	-----------------------------------------------------------------------------        
	-- Static Avatar Initial Record 넣기        
	-----------------------------------------------------------------------------        
	INSERT INTO _StaticAvatar(CharID) values(@NewCharID)        
	IF (@@ERROR <> 0)        
	BEGIN        
		ROLLBACK TRANSACTION        
		RETURN -18        
	END         
	      
	-----------------------------------------------------------------------------        
	-- Trijob 채워넣기!!!!!        
	-----------------------------------------------------------------------------        
	INSERT INTO _CharTrijob VALUES (@NewCharID, 0, 1, 0, 0, 0)        
	IF (@@ERROR <> 0)        
	BEGIN        
		-- 인벤토리 생성 실패!        
		ROLLBACK TRANSACTION        
		RETURN -19        
	END         
	      
	-----------------------------------------------------------------------------        
	-- CharList에 ID 넣어주기        
	-----------------------------------------------------------------------------        
	INSERT _CharNameList VALUES(@CharName, @NewCharID)        
	      
	      
	-- Quick Slot 정보 저장용!!!        
	exec _AddNewClientConfig @NewCharID  -- by novice...... for saving client configurations...        

COMMIT TRANSACTION        
	      
RETURN @NewCharID
Execute this query, create new character and check it might be wrong didn't tested :) I just made it to add for new chars DailyPK = 100 and TotalPK = 100..
05/31/2013 00:54 royalblade#8
Quote:
IF (@EventID = 4 OR @EventID = 6 OR @EventID = 11)
Update SRO_VT_SHARD.dbo._Char Set DailyPK = MAXAMOUNT where CharID = @CharID
Add that to _AddlogChar

This way, everytime a char teleports, logs in and logsout... the dailypk will be set onto XXXX.... Replace MAXAMOUNT with the maxamount... For TotalPenaltyPoint its like 200k, for the dailypk its 15... not sure with those numbers tho.
05/31/2013 07:12 Anonymous-6723#9
Daily 15, Total 100 not sure about points :)
05/31/2013 23:09 TychusFindlay#10
Code:
/*Created by TychusFindlay*/
USE [SRO_VT_SHARD] -- REPLACE THIS DBNAME WITH YOUR SHARD DB
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[Update_MURDERSTATE_onCharTable]
  ON  [dbo].[_Char]
  AFTER UPDATE
AS 
BEGIN
  SET NOCOUNT ON;
  UPDATE _Char SET DailyPK = 0 , TotalPK = 0 , PKPenaltyPoint = 0 where DailyPK<>0
END
This code will basically stop any character to gain DailyPK points which I assume it will prevent the murderer status.. Completely experimental thus try at your own risk..

best,
Tychus
06/01/2013 18:17 nybo94#11
Quote:
Originally Posted by TychusFindlay View Post
Code:
/*Created by TychusFindlay*/
USE [SRO_VT_SHARD] -- REPLACE THIS DBNAME WITH YOUR SHARD DB
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[Update_MURDERSTATE_onCharTable]
  ON  [dbo].[_Char]
  AFTER UPDATE
AS 
BEGIN
  SET NOCOUNT ON;
  UPDATE _Char SET DailyPK = 0 , TotalPK = 0 , PKPenaltyPoint = 0 where DailyPK<>0
END
This code will basically stop any character to gain DailyPK points which I assume it will prevent the murderer status.. Completely experimental thus try at your own risk..

best,
Tychus
Really nice Query Thanks but ... xD

yet u can kill one and have a error ( DC ) you logged again online without PK ( is nice ) but i want Stop to can attack one without PvP Cape.. i have a pvp Server and i want Disable Murder ( kill anyone without Cape )