Jump to content
Pysk

Card Check NPC

Recommended Posts

Guten Abend.

Wie kann ich einem NPC sagen das er eine ID Range abchecken soll?

Es geht darum, ich würde gernen einen NPC schreiben der die Card Range abfragte also von 4001 - 4453 und erkennt ob ich eines dieser ID Range im Inventar habe, oder 2 oder mehr, egal wie viele.

Also ich spreche den NPC an und er fragt mich ob ich meine Cards gegen punkte eintauschen will würde heißen 1 Card = 1 Punkt 2 Cards = 2 Punkte usw.

Der NPC müsste als erkennen ob und wie viele Cards ich besitze und diese löschen, wenn ich sage ich möschte meine Cards eintauschen. Das ganze soll natürlich nur für Cards gelten die im Inventar liegen, nicht im EQ.

Kann mir jemand netterweise ein kleines beispiel schreiben wie ich das anstelle?

Link to comment
Share on other sites

Es gibt doch schon so einen NPC.

Card Trader wenn ich mich nicht irre.

Und er erkennt jede Card was du im Inventar hast.

Müsstest im alten Ea Forum nachschauen oder ob es hier auch schon einen gibt.

Das könnte dich interessieren:

http://www.eathena.w...l=Card+Trader

http://www.eathena.ws/board/index.php?showtopic=269190&hl=Card+Trader

Edited by May
Link to comment
Share on other sites

Card Trader verkauft Cards, das ist nicht das was ich suche.

Zum Link den du geschickt hast, der hilft mir nicht da der NPC ja nur Coins tauscht. Ich könnte wohl jede Card die es gibt in ein fi countitem eintragen, aber das ist mühselig, Ich suche eine möglichkeit wie der NPC mit bzw if countitem einen ID bereich abfragen kann...

Link to comment
Share on other sites

Hier der wichtigste Teil von so einem Script.

//- Prüfen ob der Spieler Cards bei sich hat (ID Range 4000 - 4700)
getinventorylist;
set @amount, 0; //- Um Bugs zu vermeiden
for (set [email protected], 0; [email protected] < @inventorylist_count; set [email protected], [email protected] +1){
 if (@inventorylist_id[[email protected]] > 4000 && @inventorylist_id[[email protected]] < 4700){
  set @amount, @amount [email protected]_amount[[email protected]];
 }
}
//- Sollte der Spieler keine Cards bei haben
if ([email protected]){
 mes "Keine Cards dabei.";
 close;
}
//- Anzeige was für Cards der Spieler bei sich hat und in welcher Menge
mes "Du hast folgende Karten in deinem Inventory:";
set @points, 0; //- Um Bugs zu vermeiden
for (set [email protected], 0; [email protected] < @inventorylist_count; set [email protected], [email protected] +1){
 if (@inventorylist_id[[email protected]] > 4000 && @inventorylist_id[[email protected]] < 4700){
set @points, @points [email protected]_amount[[email protected]] *$Card_PTS;
mes "^FF0000"+countitem(@inventorylist_id[[email protected]])+"x "+getitemname(@inventorylist_id[[email protected]])+"^000000";
 }
}
//- Löschen der Cards aus dem Inventar
for (set [email protected], 0; [email protected] < @inventorylist_count; set [email protected], [email protected] +1){
 if (@inventorylist_id[[email protected]] > 4000 && @inventorylist_id[[email protected]] < 4700){
  delitem @inventorylist_id[[email protected]], @inventorylist_amount[[email protected]];
 }
}
//- Punkte vergabe oder sonst irgendwas als Belohnung für die Abgabe der Cards
set #CARDPOINTS, #CARDPOINTS [email protected];

Den Rest wie z.B. Texte und wo der NPC stehen soll, darfst du dir überlegen.

Edited by Hismoon
Link to comment
Share on other sites

Ehm Card Trader verkauft keine Cards sondern tauscht Cards gegen Punkte oder sonst was xD.

Kannst von mir aus ihn Umbennenen in "Card Exchanger".

Naja aber Hismoon hat dir ja ne Einleitung geschickt.

Gut gemacht Benny xD!

Edited by May
Link to comment
Share on other sites

Hier habe den NPC endlich gefunden http://www.eathena.ws/board/index.php?act=attach&type=post&id=2945

Das ist im übrigen der NPC den ich eigentlich suche... http://forums.irowik...ead.php?t=14054

Also ich habe das jetztmal zum teste so gemacht:

prontera,152,195,5 script Card Converter 97,{
mes "[Card Converter]";
mes "Wie kann ich dir helfen?";
menu "Cards eintauschen",card_t;
card_t:
next;
mes "[Card Converter]";
//- Prüfen ob der Spieler Cards bei sich hat (ID Range 4000 - 4700)
getinventorylist;
set @amount, 0; //- Um Bugs zu vermeiden
for (set [email protected], 0; [email protected] < @inventorylist_count; set [email protected], [email protected] +1){
if (@inventorylist_id[[email protected]] > 4000 && @inventorylist_id[[email protected]] < 4700){
set @amount, @amount [email protected]_amount[[email protected]];
}
}
//- Sollte der Spieler keine Cards bei haben
if ([email protected]){
 mes "Du hast keine Karten dabei";
 close;
}
//- Anzeige was für Cards der Spieler bei sich hat und in welcher Menge
mes "Du hast folgende Karten in deinem Inventory:";
mes "Willst du sie tauschen?";
set @points, 0; //- Um Bugs zu vermeiden
for (set [email protected], 0; [email protected] < @inventorylist_count; set [email protected], [email protected] +1){
if (@inventorylist_id[[email protected]] > 4000 && @inventorylist_id[[email protected]] < 4700){
set @points, @points [email protected]_amount[[email protected]] *$Card_PTS;
mes "^FF0000"+countitem(@inventorylist_id[[email protected]])+"x "+getitemname(@inventorylist_id[[email protected]])+"^000000";
next;
menu "Ja",ja,"Nein",nein;
}
}
ja:
next;
mes "[Card Converter]";
//- Löschen der Cards aus dem Inventar
for (set [email protected], 0; [email protected] < @inventorylist_count; set [email protected], [email protected] +1){
if (@inventorylist_id[[email protected]] > 4000 && @inventorylist_id[[email protected]] < 4700){
delitem @inventorylist_id[[email protected]], @inventorylist_amount[[email protected]];
}
}
//- Punkte vergabe oder sonst irgendwas als Belohnung für die Abgabe der Cards
set #CARDPOINTS, #CARDPOINTS [email protected];
close;
nein:
close;
}

Das ganze Funktioniert auch richtig.

zwei Fragen bleiber aber offen.

1. Wo merkt der NPC sich wie viele Punkter der einzelne Spieler hat, da sie im SQL nicht zu finden sind.

2. Wie lasse ich den NPC anzeigen wie viele Punkte der Spieler hat?

Edited by Pysk
Link to comment
Share on other sites

zwei Fragen bleiber aber offen.

1. Wo merkt der NPC sich wie viele Punkter der einzelne Spieler hat, da sie im SQL nicht zu finden sind.

2. Wie lasse ich den NPC anzeigen wie viele Punkte der Spieler hat?

1. global_reg_value

2. mes " " + #CARDPOINTS + " ";

Wenn das ne Quiz Frage war /ok

Edited by InnosTM
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.