Avatar billede nwn Nybegynder
18. marts 2008 - 20:20 Der er 9 kommentarer og
1 løsning

While og If statement til Neverwinter Nights programmering

Hej

Jeg har placeret spørgsmålet under PHP, eftersom script måden minder meget om hinanden i dette tilfælde.

Jeg skal have en while til at tage den første player inde på serveren, og tjekke personens team int, og såfremt det er sat til good, så skal den dislike personen. Derefter skal den tage den næste player og kører samme tjek, og så fortsætte indtil den har kørt alle players igennem.

Serveren skriver selv noget med "Too many instruction etc..."

Hvordan kan det laves om, så det er mere korrekt, og muligvis vil virke?

object oPC = GetLastUsedBy();
object oParty = GetFirstPC();
int set_playerteam = GetLocalInt(oParty, "team");
string playerteam = IntToString(set_playerteam);

while (oPC != OBJECT_INVALID)
{
if(playerteam == "good") {
SetPCDislike(oPC, oParty);
}
oParty = GetNextPC();
}

Tak på forhånd (:
Avatar billede nielle Nybegynder
18. marts 2008 - 20:30 #1
Mon det ikke er denne at den er gal med?

while (oPC != OBJECT_INVALID) {

oPC bliver jo aldrig ændret til noget andet, og derfor kører løkken uendeligt.
Avatar billede nwn Nybegynder
18. marts 2008 - 20:33 #2
Dog (:

Ja, ændre den til oParty som det rigtig skulle have været, og så ser jeg.
Avatar billede nielle Nybegynder
18. marts 2008 - 20:43 #3
Mon ikke snarere det er:

oParty = GetNextPC();

der skal ændres til:

oPC = GetNextPC();

?
Avatar billede nwn Nybegynder
18. marts 2008 - 20:50 #4
Det tror jeg ikke, da oParty hele tiden tager den næste player. oParty starter også ud med at tage den første player, og oPC er ens egen player.

Men den gider stadig ikke dislike, dog så skriver serveren ingen fejl mere.

Jeg har også prøvet at smide int set_playerteam osv, og string playerteam osv, ind under oParty = GetNextPC(); inde i whilen, men det virker heller ikke.
Avatar billede nwn Nybegynder
18. marts 2008 - 20:58 #5
Måske er det bare mig der henter team informationen om playeren forkert ud.

Prøver lige noget, og skriver tilbage omlidt.
Avatar billede nielle Nybegynder
18. marts 2008 - 20:59 #6
oParty tager ikke noget i sig selv - det er bare en variabel. I øvrigt indikere navnet at det er en gruppe af PC'er snare end en enkelt PC.

Det virker under alle omstændigheder mest logisk med en løkke på denne gennerelle form:

object oPxxx = GetFirstPC();
while (oPxxx != OBJECT_INVALID)
{
    // Gør et eller andet fo samtlioge medlemmer i party'et

    oPxxx = GetNextPC();
}
Avatar billede nwn Nybegynder
18. marts 2008 - 21:01 #7
Så virker det sgu.

Det skulle se sådan ud:

object oParty = GetFirstPC();
string team_vs = GetLocalString(oParty, "team");

while (oParty != OBJECT_INVALID)
{
if(team_vs == "good") {
SetPCDislike(oPC, oParty);
}
oParty = GetNextPC();
int set_playerteam = GetLocalInt(oParty, "team");
string playerteam = IntToString(set_playerteam);
}

Det var mig der havde lavet en fejl, men din skyld jeg fik det til at virke. Tusind tak, smid et svar :D !
Avatar billede nwn Nybegynder
18. marts 2008 - 21:03 #8
Ja, og så skulle de 2 nederste linier, int og string lige fjernes, og så kunne man jo lige så godt ændre oParty til oDislike.
Avatar billede nielle Nybegynder
18. marts 2008 - 21:08 #9
Jeg vil anbefale dig at bruge indrykninger.

Mon ikke snare det skal være:

while (oParty != OBJECT_INVALID) {
    if (team_vs == "good") {
        SetPCDislike(oPC, oParty);
    }

    int set_playerteam = GetLocalInt(oParty, "team");
    string playerteam = IntToString(set_playerteam);

    oParty = GetNextPC();
}


altså med "oParty = GetNextPC()" sidst i løkken?
Avatar billede nwn Nybegynder
18. marts 2008 - 21:10 #10
Nej. Hvis du henter team informationen via int, så vil det blive vist i nogle tal, og så vil det ikke virke. Informationen skal hentes direkte som string.

Men tak for hjælpen (:
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester