Jump to content

Card Check NPC


Pysk

Recommended Posts


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  234
  • Reputation:   8
  • Joined:  01/19/12
  • Last Seen:  

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


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  01/15/12
  • Last Seen:  

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


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  234
  • Reputation:   8
  • Joined:  01/19/12
  • Last Seen:  

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


  • Group:  Members
  • Topic Count:  7
  • Topics Per Day:  0.00
  • Content Count:  48
  • Reputation:   0
  • Joined:  12/07/11
  • Last Seen:  

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 .@i, 0; .@i < @inventorylist_count; set .@i, .@i +1){
 if (@inventorylist_id[.@i] > 4000 && @inventorylist_id[.@i] < 4700){
  set @amount, @amount +@inventorylist_amount[.@i];
 }
}
//- Sollte der Spieler keine Cards bei haben
if (!@amount){
 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 .@i, 0; .@i < @inventorylist_count; set .@i, .@i +1){
 if (@inventorylist_id[.@i] > 4000 && @inventorylist_id[.@i] < 4700){
set @points, @points +@inventorylist_amount[.@i] *$Card_PTS;
mes "^FF0000"+countitem(@inventorylist_id[.@i])+"x "+getitemname(@inventorylist_id[.@i])+"^000000";
 }
}
//- Löschen der Cards aus dem Inventar
for (set .@i, 0; .@i < @inventorylist_count; set .@i, .@i +1){
 if (@inventorylist_id[.@i] > 4000 && @inventorylist_id[.@i] < 4700){
  delitem @inventorylist_id[.@i], @inventorylist_amount[.@i];
 }
}
//- Punkte vergabe oder sonst irgendwas als Belohnung für die Abgabe der Cards
set #CARDPOINTS, #CARDPOINTS +@points;

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


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  01/15/12
  • Last Seen:  

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


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  234
  • Reputation:   8
  • Joined:  01/19/12
  • Last Seen:  

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 .@i, 0; .@i < @inventorylist_count; set .@i, .@i +1){
if (@inventorylist_id[.@i] > 4000 && @inventorylist_id[.@i] < 4700){
set @amount, @amount +@inventorylist_amount[.@i];
}
}
//- Sollte der Spieler keine Cards bei haben
if (!@amount){
 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 .@i, 0; .@i < @inventorylist_count; set .@i, .@i +1){
if (@inventorylist_id[.@i] > 4000 && @inventorylist_id[.@i] < 4700){
set @points, @points +@inventorylist_amount[.@i] *$Card_PTS;
mes "^FF0000"+countitem(@inventorylist_id[.@i])+"x "+getitemname(@inventorylist_id[.@i])+"^000000";
next;
menu "Ja",ja,"Nein",nein;
}
}
ja:
next;
mes "[Card Converter]";
//- Löschen der Cards aus dem Inventar
for (set .@i, 0; .@i < @inventorylist_count; set .@i, .@i +1){
if (@inventorylist_id[.@i] > 4000 && @inventorylist_id[.@i] < 4700){
delitem @inventorylist_id[.@i], @inventorylist_amount[.@i];
}
}
//- Punkte vergabe oder sonst irgendwas als Belohnung für die Abgabe der Cards
set #CARDPOINTS, #CARDPOINTS +@points;
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


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.00
  • Content Count:  13
  • Reputation:   0
  • Joined:  01/09/12
  • Last Seen:  

Ehm, hab das jez nur ma kurz überflogen aber...

set #CARDPOINTS, #CARDPOINTS +@points;

In der Variablen [#CARDPOINTS] sieht doch ganz gut aus :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  75
  • Topics Per Day:  0.02
  • Content Count:  234
  • Reputation:   8
  • Joined:  01/19/12
  • Last Seen:  

Habe den NPC jetzt mal getestet und ins deutsche übersetzt, klappt wunderbar.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.01
  • Content Count:  62
  • Reputation:   5
  • Joined:  08/23/17
  • Last Seen:  

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...