World of Gothic Archiv > NWN-Hilfe
hab ne frage
Seite 1 von 1  1 
05.11.2002, 15:09 #1
Fawn
Beiträge: 4
hab ne frage
also wie kann ich es machen das wen ich ein schild anklicke ich eine top list zu sehn bekommer also wer wieviel kills hat hab mit dem skripte versucht void main()
{
SetLocalInt(GetLastKiller(), "Name int variable", GetLocalInt(GetLastKiller(), " Name int variable") + 1);
}
aber irgentwie hauts nich hin kann mir jemand helfen wen bitte ne genaue anleutung bin nen n00b

danke
05.11.2002, 16:11 #2
Shirat
Beiträge: 511

Das was du da hast, is schon ganz gut. Das muss ins OnDeath-Script von jedem Monster rein. Ich hab's noch mal nen bisser rausgeputzt:

code\:

void main()
{
//Jetzt erst alles, was so im OnDeath()-Script steht
// ...
//Jetzt, dass die Kills-Variable erhöht wird:

Object oKiller = GetLastKiller();
int nKills = GetLocalInt(oKiller,"Kills") + 1;
int nTopKills = GetLocalInt(GetModule(),"TopKills");

SetLocalInt(oKiller,"Kills",nKills);

AssignCommand(oKiller,ActionSpeakString("Aktuelle Kills: " + IntToStr(nKills));

if ( nKills > nTopKills )
{
SetLocalInt(GetModule(),"TopKills",nKills);
SetLocalString(GetModule(),"TopKiller",GetName(oKiller);
}
}



Dann hau das hier ins OnModuleLoad()-Script rein:

code\:

void main()
{
SetLocalInt(GetModule(),"TopKills",0);
SetLocalString(GetModule(),"TopKiller","Niemand");
}



Und dann noch das hier ins OnUse()-Script von dem Schild:

code\:

void main()
{
string sTopKiller = GetLocalString(GetModule(),"TopKiller");
int nTopKills = GetLocalInt(GetModule(),"TopKills");

ActionSpeakString(sTopKiller + " führt mit " + IntToStr(nTopKills) + " Kills.");
}



Im Ganzen wird dann jedesmal, wenn jemand das Schild anklickt, angezeigt, wer die meisten Kills hat. Jedesmal, wenn ein Monster stirbt, wird ebenfalls angezeigt, wie viele Kills jemand hat.


___________________________

Visit:
Martins Homepage[/font]
05.11.2002, 16:20 #3
Fawn
Beiträge: 4

ok danke
05.11.2002, 16:22 #4
Shirat
Beiträge: 511

Bitte! :D
05.11.2002, 17:34 #5
The King
Beiträge: 100

Anstadt die OnDeath zu löschen(da sind wertvolle sachen drinn solltest du lieber dass hier bei onSpawn

//SetSpawnInCondition(NW_FLAG_DEATH_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1007
Die // vor -fire wegnehmen

Dann schreibst du das hier bei on userdefined der Monster:
code\:

int userd=GetUserDefinedEventNumber();

switch(userd)
{
case 1007:

Object oKiller = GetLastKiller();
int nKills = GetLocalInt(oKiller,"Kills") + 1;
int nTopKills = GetLocalInt(GetModule(),"TopKills");

SetLocalInt(oKiller,"Kills",nKills);

AssignCommand(oKiller,ActionSpeakString("Aktuelle Kills: " + IntToStr(nKills));

if ( nKills > nTopKills )
{
SetLocalInt(GetModule(),"TopKills",nKills);
SetLocalString(GetModule(),"TopKiller",GetName(oKiller);
}
break;
}


05.11.2002, 19:32 #6
Shirat
Beiträge: 511

Ich hab' ja net gesagt, er soll das OnDeath()-Script löschen, sondern das Script, was ich ihm gegeben hab, am Ende einfügen.

Ach ja, bevor ich es vergesse: Ich hab' das Script in keiner Weise getestet, also bitte net ärgerlich sein, wenns net funzt!
05.11.2002, 20:03 #7
The King
Beiträge: 100

Dan würde dass aber viel unübersichtlicher werden.
Seite 1 von 1  1