- Katılım
- 27 Nis 2018
- Konular
- 121
- Mesajlar
- 2,610
- Online süresi
- 1ay 24g
- Reaksiyon Skoru
- 1,531
- Altın Konu
- 33
- Başarım Puanı
- 261
- TM Yaşı
- 7 Yıl 11 Ay 28 Gün
- MmoLira
- 16,563
- DevLira
- 91
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Selamlar,
Sistem Videoda Gösteriliyor Kısaca Söylemek Gerekirse:
Oyun İçinde Kod İle Edit Yaratabiliyosunuz.
...
Sistem Videoda Gösteriliyor Kısaca Söylemek Gerekirse:
Oyun İçinde Kod İle Edit Yaratabiliyosunuz.
...
Kod:
[/B]
[B] //////////////////////////////////////////////
##cmd.cpp
//////////////////////////////////////////////
//Arat:
ACMD(do_item);
//Değiştir:
ACMD(do_create_item);
ACMD(do_item);
//Arat:
{ "item", do_item, 0, POS_DEAD, GM_GOD },
//Değiştir:
{"create_item", do_create_item, 0, POS_DEAD, GM_IMPLEMENTOR },
{ "item", do_item, 0, POS_DEAD, GM_GOD },
//////////////////////////////////////////////
##cmd_gm.cpp
//////////////////////////////////////////////
//En Üste Ekleyiniz:
#include <iostream>
#include <vector>
#include <string>
void split(const std::string& s, char delim, std::vector<std::string>& v) {
int i = 0;
int pos = s.find(delim);
while (pos != std::string::npos)
{
v.push_back(s.substr(i, pos-i));
i = ++pos;
pos = s.find(delim, pos);
if (pos == std::string::npos) v.push_back(s.substr(i, s.length()));
}
}
int countChars(char* s, char c)
{
return *s == '\0' ? 0 : countChars( s + 1, c ) + (*s == c);
}
//Arat:
ACMD(do_item);
//Altına ekle:
ACMD(do_create_item)
{
char item[256];
char bonus[1024];
two_arguments(argument, item, sizeof(item), bonus, sizeof(bonus));
if (!*item || !*bonus)
{
ch->ChatPacket(CHAT_TYPE_INFO, "/create_item <cod_item> <b1:v1,b2:v2,b3:v3,b4:v4,b5:v5>");
return;
}
if (bonus[(strlen(bonus)-1)] == ',') {
ch->ChatPacket(CHAT_TYPE_INFO, "Lipseste , intre valoare si bonus.");
return;
}
if (bonus[(strlen(bonus)-1)] == ':') {
ch->ChatPacket(CHAT_TYPE_INFO, "Lipseste : intre bonus si valoare.");
return;
}
if (strstr(bonus, ":") == NULL) {
ch->ChatPacket(CHAT_TYPE_INFO, "Lipseste : intre bonus si valoare.");
return;
}
if (strstr(bonus, ",") == NULL) {
ch->ChatPacket(CHAT_TYPE_INFO, "Ai adaugat 1 bonus.");
int vnum=0;
str_to_number(vnum, item);
LPITEM i = ITEM_MANAGER::instance().CreateItem(vnum);
if (!i) {
ch->ChatPacket(CHAT_TYPE_INFO, "");
ch->ChatPacket(CHAT_TYPE_INFO, "Acest item nu exista.");
return;
}
int bonus_vnum=0;
int bonus_value=0;
std::vector<std::string> bonus2;
split(std::string(bonus), ':', bonus2);
str_to_number(bonus_vnum, std::string(bonus2[0]).c_str());
str_to_number(bonus_value, std::string(bonus2[1]).c_str());
i->SetForceAttribute(0, bonus_vnum, bonus_value);
i->SetSocket(0, 1);
int inventario = ch->GetEmptyInventory(i->GetSize());
if (inventario != -1) {
i->AddToCharacter(ch, TItemPos(INVENTORY, inventario));
ch->ChatPacket(CHAT_TYPE_INFO, "Succes!");
}else{
M2_DESTROY_ITEM(i);
ch->ChatPacket(CHAT_TYPE_INFO, "Nu ai suficient spatiu in inventar.");
}
}else{
std::vector<std::string> bonus1;
split(std::string(bonus), ',', bonus1);
if (bonus1.size()>0) {
ch->ChatPacket(CHAT_TYPE_INFO, "Ai adaugat %d bonusuri.", (int)bonus1.size());
if (countChars(bonus, ':') != (int)bonus1.size()) {
ch->ChatPacket(CHAT_TYPE_INFO, "");
ch->ChatPacket(CHAT_TYPE_INFO, "Lipseste , intre valoare si bonus.");
return;
}
int vnum=0;
str_to_number(vnum, item);
LPITEM i = ITEM_MANAGER::instance().CreateItem(vnum);
if (!i) {
ch->ChatPacket(CHAT_TYPE_INFO, "Acest item nu exista.");
return;
}
int b_size=bonus1.size();
if (bonus1.size()>6) b_size=7;
int bonus_vnum=0;
int bonus_value=0;
for (int n=0; n<b_size; n++) {
std::vector<std::string> bonus2;
split(std::string(bonus1[n]), ':', bonus2);
str_to_number(bonus_vnum, std::string(bonus2[0]).c_str());
str_to_number(bonus_value, std::string(bonus2[1]).c_str());
i->SetForceAttribute(n, bonus_vnum, bonus_value);
}
i->SetSocket(0, 1);
int inventario = ch->GetEmptyInventory(i->GetSize());
if (inventario != -1) {
i->AddToCharacter(ch, TItemPos(INVENTORY, inventario));
ch->ChatPacket(CHAT_TYPE_INFO, "Succes!");
}else{
M2_DESTROY_ITEM(i);
ch->ChatPacket(CHAT_TYPE_INFO, "Nu ai suficient spatiu in inventar.");
}
}
}
}
Son düzenleme:
- Katılım
- 8 Eki 2017
- Konular
- 2,419
- Mesajlar
- 10,263
- Online süresi
- 4ay 30869s
- Reaksiyon Skoru
- 4,206
- Altın Konu
- 244
- Başarım Puanı
- 422
- TM Yaşı
- 8 Yıl 6 Ay 14 Gün
- MmoLira
- 7,168
- DevLira
- 15
Teşekkürler
- Katılım
- 19 Ara 2016
- Konular
- 166
- Mesajlar
- 2,102
- Online süresi
- 2ay 12g
- Reaksiyon Skoru
- 1,191
- Altın Konu
- 1
- Başarım Puanı
- 259
- TM Yaşı
- 9 Yıl 4 Ay 2 Gün
- MmoLira
- 2,209
- DevLira
- 36
Selamlar,
Sistem Videoda Gösteriliyor Kısaca Söylemek Gerekirse:
Oyun İçinde Kod İle Edit Yaratabiliyosunuz.
...
Kod:[/B][/B] [B][B] ////////////////////////////////////////////// ##cmd.cpp ////////////////////////////////////////////// //Arat: ACMD(do_item); //Değiştir: ACMD(do_create_item); ACMD(do_item); //Arat: { "item", do_item, 0, POS_DEAD, GM_GOD }, //Değiştir: {"create_item", do_create_item, 0, POS_DEAD, GM_IMPLEMENTOR }, { "item", do_item, 0, POS_DEAD, GM_GOD }, ////////////////////////////////////////////// ##cmd_gm.cpp ////////////////////////////////////////////// //En Üste Ekleyiniz: #include <iostream> #include <vector> #include <string> void split(const std::string& s, char delim, std::vector<std::string>& v) { int i = 0; int pos = s.find(delim); while (pos != std::string::npos) { v.push_back(s.substr(i, pos-i)); i = ++pos; pos = s.find(delim, pos); if (pos == std::string::npos) v.push_back(s.substr(i, s.length())); } } int countChars(char* s, char c) { return *s == '\0' ? 0 : countChars( s + 1, c ) + (*s == c); } //Arat: ACMD(do_item); //Altına ekle: ACMD(do_create_item) { char item[256]; char bonus[1024]; two_arguments(argument, item, sizeof(item), bonus, sizeof(bonus)); if (!*item || !*bonus) { ch->ChatPacket(CHAT_TYPE_INFO, "/create_item <cod_item> <b1:v1,b2:v2,b3:v3,b4:v4,b5:v5>"); return; } if (bonus[(strlen(bonus)-1)] == ',') { ch->ChatPacket(CHAT_TYPE_INFO, "Lipseste , intre valoare si bonus."); return; } if (bonus[(strlen(bonus)-1)] == ':') { ch->ChatPacket(CHAT_TYPE_INFO, "Lipseste : intre bonus si valoare."); return; } if (strstr(bonus, ":") == NULL) { ch->ChatPacket(CHAT_TYPE_INFO, "Lipseste : intre bonus si valoare."); return; } if (strstr(bonus, ",") == NULL) { ch->ChatPacket(CHAT_TYPE_INFO, "Ai adaugat 1 bonus."); int vnum=0; str_to_number(vnum, item); LPITEM i = ITEM_MANAGER::instance().CreateItem(vnum); if (!i) { ch->ChatPacket(CHAT_TYPE_INFO, ""); ch->ChatPacket(CHAT_TYPE_INFO, "Acest item nu exista."); return; } int bonus_vnum=0; int bonus_value=0; std::vector<std::string> bonus2; split(std::string(bonus), ':', bonus2); str_to_number(bonus_vnum, std::string(bonus2[0]).c_str()); str_to_number(bonus_value, std::string(bonus2[1]).c_str()); i->SetForceAttribute(0, bonus_vnum, bonus_value); i->SetSocket(0, 1); int inventario = ch->GetEmptyInventory(i->GetSize()); if (inventario != -1) { i->AddToCharacter(ch, TItemPos(INVENTORY, inventario)); ch->ChatPacket(CHAT_TYPE_INFO, "Succes!"); }else{ M2_DESTROY_ITEM(i); ch->ChatPacket(CHAT_TYPE_INFO, "Nu ai suficient spatiu in inventar."); } }else{ std::vector<std::string> bonus1; split(std::string(bonus), ',', bonus1); if (bonus1.size()>0) { ch->ChatPacket(CHAT_TYPE_INFO, "Ai adaugat %d bonusuri.", (int)bonus1.size()); if (countChars(bonus, ':') != (int)bonus1.size()) { ch->ChatPacket(CHAT_TYPE_INFO, ""); ch->ChatPacket(CHAT_TYPE_INFO, "Lipseste , intre valoare si bonus."); return; } int vnum=0; str_to_number(vnum, item); LPITEM i = ITEM_MANAGER::instance().CreateItem(vnum); if (!i) { ch->ChatPacket(CHAT_TYPE_INFO, "Acest item nu exista."); return; } int b_size=bonus1.size(); if (bonus1.size()>6) b_size=7; int bonus_vnum=0; int bonus_value=0; for (int n=0; n<b_size; n++) { std::vector<std::string> bonus2; split(std::string(bonus1[n]), ':', bonus2); str_to_number(bonus_vnum, std::string(bonus2[0]).c_str()); str_to_number(bonus_value, std::string(bonus2[1]).c_str()); i->SetForceAttribute(n, bonus_vnum, bonus_value); } i->SetSocket(0, 1); int inventario = ch->GetEmptyInventory(i->GetSize()); if (inventario != -1) { i->AddToCharacter(ch, TItemPos(INVENTORY, inventario)); ch->ChatPacket(CHAT_TYPE_INFO, "Succes!"); }else{ M2_DESTROY_ITEM(i); ch->ChatPacket(CHAT_TYPE_INFO, "Nu ai suficient spatiu in inventar."); } } } }
Ve L16 Sahalarda
- Katılım
- 27 Nis 2018
- Konular
- 121
- Mesajlar
- 2,610
- Online süresi
- 1ay 24g
- Reaksiyon Skoru
- 1,531
- Altın Konu
- 33
- Başarım Puanı
- 261
- TM Yaşı
- 7 Yıl 11 Ay 28 Gün
- MmoLira
- 16,563
- DevLira
- 91
Rica Ederim.Teşekkürler
Ve L16 Sahalarda![]()
- Katılım
- 12 Tem 2017
- Konular
- 3,675
- Mesajlar
- 14,203
- Online süresi
- 1ay 19g
- Reaksiyon Skoru
- 6,340
- Altın Konu
- 1
- Başarım Puanı
- 462
- TM Yaşı
- 8 Yıl 9 Ay 12 Gün
- MmoLira
- 2,560
- DevLira
- 166
Konu daha önceden tarafımca paylaşıldığı için kapatıldı.
https://forum.turkmmo.com/konu/3632542-c-create-items/
https://forum.turkmmo.com/konu/3632542-c-create-items/
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 917
- Cevaplar
- 5
- Görüntüleme
- 636
- Cevaplar
- 18
- Görüntüleme
- 1K
- Cevaplar
- 13
- Görüntüleme
- 2K
- Cevaplar
- 2
- Görüntüleme
- 412






