Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

char

Par Adalorn le 5/7/2002 à 13:37:23 (#1762123)

Je suis en train de faire un script de recherche dans une biblio, ) à placer dans OnUse (ou OnOpen), pas, à la ligne de déclaration de char c1 , il me dit "NO SEMICOLON AFTER EXPRESSION", es que NWN reconnait les 'char'?


void main()
{
int search_score = GetSkillRank(SKILL_SEARCH, oPlayer);
object oPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC,OBJECT_SELF,1);
char c1;
c1 = d10();
string parchemin = "parchemin" + c1;
AssignCommand(oPlayer, ActionWait());
if (d20(1)+search_score > 22)
{
AssignCommand(oPlayer, SpeakString("eh! j'ai trouve un parchemin entre deux livres!"));
ActionGiveItem ( parchemin, oPlayer );
}
}

( sinon, je pourais le faire avec un
getsubstring ("1234567890", d10(1), d10(1)+1);
, mais, ça demande + de resources)

Par Gargantuel le 5/7/2002 à 13:53:15 (#1762192)

La fonbction d10() renvoi un int et pas un char. Essaye plutot ca :


void main()
{
object oPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC,OBJECT_SELF,1);
int search_score = GetSkillRank(SKILL_SEARCH, oPlayer);
int c1;
c1 = d10();
string parchemin = "parchemin" + IntToString(c1);
AssignCommand(oPlayer, ActionWait());
if (d20(1)+search_score > 22)
{
AssignCommand(oPlayer, SpeakString("eh! j'ai trouve un parchemin entre deux livres!"));
ActionGiveItem ( parchemin, oPlayer );
}
}


EDIT: Correction du script suite au message de leZilou

Par Gargantuel le 5/7/2002 à 14:02:00 (#1762237)

Sinon tu peux remplacer ActionGiveItem par un CreateItemOnObject sur la bibliothèque.
Comme ca le parchemin apparaitra réellement au millieu des livres (a tester, bien sur).

Sympa ton script *copie le script dans sa boite à outils*
:-)

Par leZilou le 5/7/2002 à 14:06:27 (#1762261)

Je peux dire une connerie ?

C'est pas une erreur, de mettre la ligne :

int search_score = GetSkillRank(SKILL_SEARCH, oPlayer);

avant celle-ci, qui définit oPlayer ?
object oPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC,OBJECT_SELF,1);

Par Gargantuel le 5/7/2002 à 14:10:43 (#1762290)

Tu as raison, j'ai corrigé le problème mais j'ai pas regardé autour, désolé.
(Je compile pas encore de tête, moa ;) )

je suis un peu ridicule sur ce coups là moi...

Par Adalorn le 8/7/2002 à 10:39:58 (#1775323)

nouvelle version (pour que monsieur grosbill cherche pas comme un malade dans là même biblio pendant 1 h)


void main()
{
object oPlayer = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR,PLAYER_CHAR_IS_PC,OBJECT_SELF,1);
int search_score = GetSkillRank(SKILL_SEARCH, oPlayer);
string parchemin = "parchemin" + IntToString(d10(1));
int dif = 22;
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
dif += 5;
}
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ApplyEffectToObject (DURATION_TYPE_TEMPORARY, EffectParalyze(), oPlayer, 3.0);
if (d20(1)+ search_score > dif)
{
AssignCommand(oPlayer, SpeakString("eh! j'ai trouve un parchemin entre deux livres!"));
ActionGiveItem ( GetObjectByTag ( parchemin, 0 ), oPlayer );
}
}


PS : je donne l'objet exprés au perso, pour qu'il n'ait pas à réouvrir la biblio, et puis, je préfére comme ça...

PPS : en c, tu peux faire
char c1 = 65
printf("letre : %c .\n", c1), et il t'affiche le caractére correspondant à 65 (A)

JOL Archives 1.0.1
@ JOL / JeuxOnLine