Enhanced implementation to use Skot's Christmas Present: KARMA. :D

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9246 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
Lance 2006-11-17 16:54:31 +00:00
parent 3bfc48996a
commit d175cdda0b

View File

@ -61,7 +61,7 @@
if(.ai_busy[.@tmp] == 0){ // Not busy if(.ai_busy[.@tmp] == 0){ // Not busy
switch(.ai_action[AI_ACTION_TAR_TYPE]){ // Check what have we here. switch(.ai_action[AI_ACTION_TAR_TYPE]){ // Check what have we here.
case AI_ACTION_TAR_TYPE_PC: // It's a player case AI_ACTION_TAR_TYPE_PC: // It's a player
if(getd("$pkarma_"+.ai_action[AI_ACTION_TAR]) > .karma){ // pkarma is higher? if(Karma > .karma){ // pkarma is higher?
unittalk .ai_action[AI_ACTION_SRC], "Who goes there!"; unittalk .ai_action[AI_ACTION_SRC], "Who goes there!";
unitemote .ai_action[AI_ACTION_SRC], e_gasp; // ! unitemote .ai_action[AI_ACTION_SRC], e_gasp; // !
unitattack .ai_action[AI_ACTION_SRC],.ai_action[AI_ACTION_TAR]; unitattack .ai_action[AI_ACTION_SRC],.ai_action[AI_ACTION_TAR];
@ -86,7 +86,7 @@
break; break;
case AI_ACTION_TYPE_KILL: // We eliminated the criminal case AI_ACTION_TYPE_KILL: // We eliminated the criminal
if(.ai_action[AI_ACTION_TAR_TYPE] == AI_ACTION_TAR_TYPE_PC) if(.ai_action[AI_ACTION_TAR_TYPE] == AI_ACTION_TAR_TYPE_PC)
setd "$pkarma_"+.ai_action[AI_ACTION_TAR], 0; set Karma, 0;
case AI_ACTION_TYPE_UNLOCK: // Target lost :( case AI_ACTION_TYPE_UNLOCK: // Target lost :(
if(.@tmp != -1){ if(.@tmp != -1){
set .ai_busy[.@tmp], 0; // Remove him, we're free. set .ai_busy[.@tmp], 0; // Remove him, we're free.
@ -96,14 +96,20 @@
break; break;
case AI_ACTION_TYPE_DEAD: // We got killed :( case AI_ACTION_TYPE_DEAD: // We got killed :(
if(.ai_action[AI_ACTION_TAR_TYPE] == AI_ACTION_TAR_TYPE_PC){ // Attacker is a player? if(.ai_action[AI_ACTION_TAR_TYPE] == AI_ACTION_TAR_TYPE_PC){ // Attacker is a player?
setd "$pkarma_"+.ai_action[AI_ACTION_TAR], getd("$pkarma_"+.ai_action[AI_ACTION_TAR]) + 5; if(Karma < 250)
set Karma, Karma + 5;
else
set Karma, 255;
} }
sleep 10000; // 10 seconds until reinforcements arrive sleep 10000; // 10 seconds until reinforcements arrive
spawn_guardian .@tmp; spawn_guardian .@tmp;
break; break;
case AI_ACTION_TYPE_ATTACK: // Someone attacked us case AI_ACTION_TYPE_ATTACK: // Someone attacked us
if(.ai_action[AI_ACTION_TAR_TYPE] == AI_ACTION_TAR_TYPE_PC){ // Attacker is a player? if(.ai_action[AI_ACTION_TAR_TYPE] == AI_ACTION_TAR_TYPE_PC){ // Attacker is a player?
setd "$pkarma_"+.ai_action[AI_ACTION_TAR], getd("$pkarma_"+.ai_action[AI_ACTION_TAR]) + 1; if(Karma < 250)
set Karma, Karma + 1;
else
set Karma, 255;
} }
// The system's AI will auto attack any attackers. So we leave it here. // The system's AI will auto attack any attackers. So we leave it here.
break; break;